重新部署 Anytype 自建服务是一个“重置环境 + 保持身份”的过程。既然你决定重新部署,为了避开之前遇到的各种权限、Redis 模块和副本集初始化坑,我为你制定了一个标准化的一键重置流程。
重新部署前的“清理与准备”
如果你要在当前 VPS 或新 VPS 上重置:
- 备份(可选):如果你还有任何数据想保留,请务必备份
/data目录(尤其是bundle-config.yml,这是你的私有网络身份)。如果你不在乎之前的笔记(因为客户端可以重新同步),可以直接删掉重来。 彻底清理:
# 进入目录 cd /opt/anytype # 停止并删除所有容器与卷 docker compose down -v # 彻底清空数据目录,确保没有脏数据(注意:若要保留网络身份,请先备份 bundle-config.yml) rm -rf ./data/* ./mongo-data/* ./redis-data/*
标准化部署文件 (docker-compose.yml)
这是一个优化过、完全兼容 MongoDB 副本集自动初始化、包含 RedisBloom 模块的最新配置文件。
services:
anytype-bundle:
image: ghcr.io/grishy/any-sync-bundle:minimal
container_name: anytype-bundle
restart: always
ports:
- "33010:33010"
- "33020:33020/udp"
environment:
# 这里填入你最终决定的域名
- ANY_SYNC_BUNDLE_INIT_EXTERNAL_ADDRS=gate.yourdomain.com
- ANY_SYNC_BUNDLE_INIT_MONGO_URI=mongodb://anytype-mongodb:27017/
- ANY_SYNC_BUNDLE_INIT_REDIS_URI=redis://anytype-redis:6379/
- ANY_SYNC_BUNDLE_LOG_LEVEL=info
volumes:
- ./data:/data
depends_on:
anytype-mongodb:
condition: service_healthy
anytype-redis:
condition: service_started
networks:
- anytype-net
anytype-mongodb:
image: mongo:6.0
container_name: anytype-mongodb
restart: always
# 自动开启副本集,并确保节点绑定所有接口
command: ["mongod", "--replSet", "rs0", "--wiredTigerCacheSizeGB", "0.5", "--bind_ip_all"]
volumes:
- ./mongo-data:/data/db
healthcheck:
# 优化后的初始化逻辑,直接尝试初始化,忽略重复错误
test: ["CMD", "mongosh", "--quiet", "--eval", "try { rs.initiate() } catch(e) {}; db.adminCommand('ping')"]
interval: 10s
timeout: 5s
retries: 5
start_period: 20s
networks:
- anytype-net
anytype-redis:
image: redis/redis-stack-server:latest
container_name: anytype-redis
restart: always
networks:
- anytype-net
networks:
anytype-net:
driver: bridge
部署与激活步骤
创建目录与设置权限(防止权限拒绝):
mkdir -p /opt/anytype/data /opt/anytype/mongo-data /opt/anytype/redis-data # 将目录归属权设为容器内常用的 UID 999 chown -R 999:999 /opt/anytype/mongo-data启动服务:
docker compose up -d验证启动状态:
查看日志,确保没有panic,且 MongoDB 显示为healthy:docker logs -f anytype-bundle获取新的连接配置:
服务启动后,它会在./data/目录下生成client-config.yml。cat /opt/anytype/data/client-config.yml
注意:此时生成的 client-config.yml 是完全“出厂”状态的,请确保里面的 addresses 已经正确填入了你的域名。
- 客户端操作:
- 彻底清空旧客户端数据(删除
Application Support/anytype)。 - 打开客户端,先导入这个新的
client-config.yml。 - 再输入你的助记词登录。