
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Jonline是一个采用Rust、React、Flutter结合gRPC和HTTP构建的联邦式、开源、社区规模社交网络。本镜像基于标准Debian服务器(非精简版)运行Jonline,可暴露Flutter Web应用(端口80、8000和443,TLS通过环境变量启用时)及Jonline gRPC后端(端口27707)。
Makefile管理设置
若系统安装了make、Docker及提供createdb命令的PostgreSQL,可通过克隆GitHub仓库使用Jonline的Makefile快速设置(需参考https://github.com/JonLatane/jonline/blob/main/backend/.env-example%E7%9A%84%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%92%8Chttps://github.com/JonLatane/jonline/blob/main/backend/Makefile%E7%9A%84Make%E7%9B%AE%E6%A0%87%EF%BC%89%EF%BC%9A
bashgit clone git@github.com:JonLatane/jonline.git cd jonline # 创建数据库jonline_dev并后台运行MinIO Docker镜像 make local_db_create local_minio_create # 启动最新Jonline镜像 docker run --rm --env-file=backend/.env-example \ -p 27707:27707 -p 80:80 -p 8000:8000 -p 443:443 \ jonlatane/jonline
完成后清理数据:make local_db_delete local_minio_delete
PostgreSQL设置
需自行设置PostgreSQL(平台差异较大,如Homebrew、apt等),最终需创建:
jonline_devdb_user,密码:secure_passworddb_user需具备数据库迁移权限(可能需通过Postgres管理员执行ALTER USER db_user WITH SUPERUSER)db_user连接MinIO设置
以下命令可在当前目录创建jonline-minio-data目录并启动本地MinIO(S3兼容对象存储)服务,名称为jonline-dev-minio:
bashmkdir jonline-minio-data docker run -d -p 9000:9000 -p 9090:9090 --name jonline-dev-minio \ -v $(pwd)/jonline-minio-data:/data \ -e "MINIO_ROOT_USER=ROOTNAME" \ -e "MINIO_ROOT_PASSWORD=CHANGEME123" \ minio/minio server /data --console-address ":9090"
可通过 http://localhost:9090 访问MinIO控制台。
本地运行Jonline镜像
以下命令可基于现有PostgreSQL和MinIO启动最新Jonline镜像:
bashdocker run --rm -e DATABASE_URL=postgres://db_user:secure_password@host.docker.internal/jonline_dev \ -e MINIO_ENDPOINT=http://host.docker.internal:9000 \ -e MINIO_REGION= \ -e MINIO_BUCKET=jonline-dev \ -e MINIO_ACCESS_KEY=ROOTNAME \ -e MINIO_SECRET_KEY=CHANGEME123 \ -p 27707:27707 -p 80:80 -p 8000:8000 -p 443:443 \ jonlatane/jonline
Jonline通过环境变量提供配置,包括敏感信息:
DATABASE_URL:PostgreSQL数据库连接URL(包含凭据)MINIO_ENDPOINT:MinIO服务端点MINIO_REGION:MinIO区域(可选)MINIO_BUCKET:存储桶名称MINIO_ACCESS_KEY:访问密钥MINIO_SECRET_KEY:密钥(当前MinIO为必需依赖)TLS_KEY、TLS_CERT:TLS密钥和证书。未提供时不启动安全服务器;无效时记录错误但仍运行其他端口;有效时,80和8000端口的Web服务器会将http://header-host[:8000]/path/to请求重定向至https://header-host/path/to。CA_CERT(高级用户):用于gRPC服务的自定义CA证书,支持双向TLS(注意:443端口的安全Web服务器在此配置下可能崩溃,但gRPC后端仍可运行)bash)通过Docker连接
docker container ls获取Jonline容器IDdocker exec -it <ContainerID> bash进入bash通过Kubernetes连接
cd deploys,然后make deploy_be_shell(非默认命名空间时:NAMESPACE=my-namespace deploy_be_shell)环境和系统工具
基于Debian镜像,支持Debian服务器管理工具:
apt install htop && htopcurl、psql、grpcurl(路径:/opt/grpcurl)echo $DATABASE_URLpsql $DATABASE_URL./opt/grpcurl jonline.io:27707 listJonline工具
工具位于/opt目录,依赖DATABASE_URL,服务器正常运行时即可使用:
./opt/set_permission my_username admin on(admin可替换为https://github.com/JonLatane/jonline/blob/main/docs/protocol.md#jonline-Permission%E4%B8%AD%E5%AE%9A%E4%B9%89%E7%9A%84%E4%BB%BB%E6%84%8F%E6%9D%83%E9%99%90%EF%BC%8C%E4%B8%8D%E5%8C%BA%E5%88%86%E5%A4%A7%E5%B0%8F%E5%86%99%EF%BC%89./opt/delete_expired_tokens(标准K8s部署通过CronJob自动执行)./opt/delete_preview_images(标准K8s部署通过CronJob重新生成,本镜像不包含预览图生成功能,需使用https://hub.docker.com/r/jonlatane/jonline_preview_generator%E6%88%96%E5%8F%82%E8%80%83https://github.com/JonLatane/jonline/blob/main/deploys/docker/preview_generator/Dockerfile%E5%AE%89%E8%A3%85Chromium Headless)27707:Jonline协议端口,暴露gRPC服务及gRPC反射服务443:TLS密钥和证书有效时,运行HTTPS服务器(默认Tamagui UI,可选Flutter UI)80、8000:HTTP服务器。TLS有效时重定向至443端口;否则直接提供UI(默认Tamagui,可选Flutter)/opt/jonline:主服务器程序(容器入口点)/opt/delete_expired_tokens:删除过期刷新令牌和认证令牌的任务/opt/delete_preview_images:删除Jonline预览图片的一次性任务(通常用于让预览生成器重新生成)您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务