
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预览图片的一次性任务(通常用于让预览生成器重新生成)您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务