
Etebase Server(又称Etesync 2.0)的Docker镜像,基于Tom Hacohen的https://github.com/etesync/server%E4%BB%93%E5%BA%93%E6%9E%84%E5%BB%BA%EF%BC%8C%E6%8F%90%E4%BE%9B%E5%AE%89%E5%85%A8%E7%9A%84%E7%AB%AF%E5%88%B0%E7%AB%AF%E5%8A%A0%E5%AF%86%E6%95%B0%E6%8D%AE%E5%90%8C%E6%AD%A5%E6%9C%8D%E5%8A%A1%E3%80%82
以下标签基于最新Python镜像和Etebase Server最新版本构建:
latest https://github.com/victor-rds/docker-etebase/blob/master/tags/base/Dockerfileslim https://github.com/victor-rds/docker-etebase/blob/master/tags/slim/Dockerfilealpine https://github.com/victor-rds/docker-etebase/blob/master/tags/alpine/Dockerfile发布版本以带版本号的标签提供,例如:X.Y.Z 或 X.Y.Z-type。
bashdocker run -d -e SUPER_USER=admin -p 80:3735 -v /path/on/host:/data victorrds/etesync
创建使用HTTP协议运行的Etebase容器。更多使用docker-compose的示例可查看此处。
所有Etebase镜像变体共享相同的目录结构:
包含Etebase Server源代码,请勿修改或挂载此目录。
默认存储用户数据和服务器配置的卷:
/data/etebase-server.ini:服务器配置文件,可通过ETEBASE_EASY_CONFIG_PATH环境变量修改位置;/data/media:用户数据存储目录(可修改¹,但不建议);/data/secret.txt:Django SECRET_KEY存储文件(可修改¹);/data/db.sqlite3:SQLite数据库文件(若使用SQLite,可修改¹)。¹ 所有位置可在etebase-server.ini文件中设置,或首次运行时通过环境变量配置。
包含反向代理(如nginx)所需的静态文件。当使用uwsgi或asgi协议时,/entrypoint.sh会检查并更新/重建这些文件。
容器默认以用户和组etebase(ID均为373)运行。若将目录挂载到主机(非Docker卷),有两种权限配置方式:
设置主机目录正确权限:
console$ chown -vR 373:373 /host/data/path changed ownership of '/host/data/path' from user:group to 373:373 $ docker run -v /host/data/path:/data victorrds/etebase
修改容器运行用户:
console$ stat -c '%u:%g' /host/data/path 1000:1000 $ docker run -u 1000:1000 -v /host/data/path:/data victorrds/etebase
Etebase配置存储在/data/etebase-server.ini中。若文件不存在,/entrypoint.sh将根据以下环境变量生成配置。
uvicorn:使用uvicorn(ASGI服务器,支持HTTP/1.1和WebSocket),无SSL,需配合反向代理(如nginx、traefik)。别名:http、http-socket、asgi;uvicorn-https:同上,启用SSL/TLS,需挂载证书。别名:https;uwsgi、daphne和Django-server,现已废弃(详见https://github.com/victor-rds/docker-etebase/issues/103%EF%BC%89%EF%BC%9B/entrypoint.sh详细日志,不影响Etebase服务器输出;set -x运行/entrypoint.sh,用于调试;false;与etebase-server.ini相关的设置
/data/etebase-server.ini;/data/media(https://github.com/etesync/server#data-locations-and-backups%EF%BC%89%EF%BC%9Bsqlite(默认)和postgres;localhost,127.0.0.1,[::1](详见https://github.com/etesync/server#183%EF%BC%89%EF%BC%9B/data/secret.txt(文件不存在则自动生成);false;en-us;UTC(需为有效的tz数据库名称);false;² 更多详情参见https://github.com/etesync/server#configuration%E3%80%82
若DB_ENGINE设为**sqlite**:
/data/db.sqlite3。若DB_ENGINE设为**postgres**,支持以下变量(列出默认值):
etebase;DATABASE_NAME相同;DATABASE_USER相同;database;5432。LDAP集成(高级用法)
%%s替换为用户名);详情参见https://github.com/etesync/server/commit/fac36aae***fdc5ae4874065a3528626ef68%E3%80%82
可在环境变量后添加_FILE后缀,从容器内文件加载敏感信息(如Docker secrets)。支持的变量:DB_ENGINE、DATABASE_NAME、DATABASE_USER、DATABASE_PASSWORD、SUPER_USER、SUPER_PASS。
示例:
bashdocker run -d --name etebase \ -e DB_ENGINE=postgres \ -e POSTGRES_PASSWORD_FILE=/run/secrets/postgres-passwd \ victorrds/etebase
镜像暴露3735/TCP端口。
选择Dockerfile并运行:
bashdocker build -f tags/alpine/Dockerfile -t etebase:alpine .
默认基于Etebase master分支构建。如需指定版本,设置ETE_VERSION构建参数:
bashdocker build --build-arg ETE_VERSION=v0.5.3 -f tags/base/Dockerfile -t etebase:dev .
方法1:首次运行时使用环境变量
设置SUPER_系列变量(SUPER_USER、SUPER_PASS、SUPER_EMAIL),首次运行时自动创建超级用户。
方法2:Python Shell
数据库就绪后,执行以下命令并按提示操作:
bashdocker exec -it {container_name} python manage.py createsuperuser
若未启用AUTO_UPDATE,手动升级:
bashdocker exec -it {container_name} python manage.py migrate
需挂载有效证书,默认查找/certs/crt.pem和/certs/key.pem。可通过X509_CRT和X509_KEY环境变量修改路径。
Etebase服务器升级至Django 4.2+后,需正确配置CSRF_TRUSTED_ORIGINS。解决方法:在etebase-server.ini的[allowed_hosts] section添加服务器域名/IP。
新安装时,可通过ALLOWED_HOSTS环境变量生成配置。示例:
ini[allowed_hosts] allowed_host1 = example.com allowed_host2 = api.example.com allowed_host3 = 10.0.0.1 allowed_host4 = *.etebase.example.com ; 支持通配符(单独*无效)
详情参见https://github.com/etesync/server#183%E3%80%82
自0.14.0版本起,不再支持arm/v7架构的Docker镜像。因Etebase Server依赖在arm/v7架构上构建困难,后续版本不再提供更新。
Etesync 1.0与Etebase(Etesync 2.0)的数据库和服务器不兼容。由于端到端加密特性,无法在未知用户密钥的情况下迁移数据。
迁移方法:创建新实例,同时运行新旧服务器,通过Web客户端或移动应用手动迁移数据,完成后关闭旧服务器。
新镜像存在破坏性变更,entrypoint.sh会在修改前检查数据库兼容性。
Etesync 1.0镜像可通过legacy标签获取(基础镜像已过时,不再维护):
legacy https://github.com/victor-rds/docker-etesync-server/blob/legacy/tags/base/Dockerfilelegacy-slim https://github.com/victor-rds/docker-etesync-server/blob/legacy/tags/slim/Dockerfilelegacy-alpine https://github.com/victor-rds/docker-etesync-server/blob/legacy/tags/alpine/Dockerfile您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 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 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务