Anytype部署教程:复用已有服务

官方文档与资源

Github 仓库

any-sync-dockercompose 是官方提供的用于测试 any-sync 的 docker-compose 项目。

Wiki位置

Configuration 提供了详细的配置指南。

自建说明

个人方案逻辑

当前个人已有服务说明

  1. 复用 MongoDB

    • 原因:服务器中已部署 MongoDB,避免额外部署。
    • 版本:最新。
    • 额外服务 -1:设置额外的 key,当设置了账号密码时需要。

      # 生成随机密钥文件
      openssl rand -base64 756 > mongo.key
      
      # 修改权限
      sudo chmod 400 mongo.key
      
      # 修改所有者为 999
      sudo chown 999:999 mongo.key
      # 修改docker-compose
      # 添加command命令
      volumes:
      - ./mongo.key:/etc/mongo/mongo.key
      command:
      - "--keyFile"
      - "/etc/mongo/mongo.key"
    • 额外服务 -2:开启集群化。

      # 进入容器
      docker exec -it <容器名字> mongosh -u 账号 -p 密码 --authenticationDatabase admin
      
      # 设置当前配置
      cfg = rs.conf()
      
      # 将原本的随机 ID 改为固定的容器名 局域网内ip
      cfg.members[0].host = "局域网内ip:27017"
      
      # 强制应用新配置
      rs.reconfig(cfg, {force: true})
  2. 复用 Redis

    • 指的是 Redis-stack。
  3. 复用 S3

    • 官方提供的是 minIO,但 minIO 已停止版本更新和维护。

Self-Host

导入官方配置

# 进入你要的dir路径
git clone https://github.com/anyproto/any-sync-dockercompose.git .

copy .env.override .env.override.prod
# override 可以用 .env.override.latest  .env.override.prod    .env.override.stage1
# prod版本是最稳定的

Config配置

  1. .env.override 的目的

    • 覆盖 .env.default 的服务。
    • 理论上,只要 .env.default 存在的服务,都可以改成自己的 self-host 配置。
  2. S3配置说明

    AWS_ACCESS_KEY_ID=""
    AWS_SECRET_ACCESS_KEY=""
    MINIO_BUCKET=""
    # docker-generateconfig/etc/filenode.yml
    s3Store:
      region: us-east-1
      endpoint: http://ip:port
      forcePathStyle: true
  3. 修改 MongoDB 以及 Redis 服务

    • 问题一:URL识别出现了问题。

      MONGO_CONNECT=mongodb://admin:[email protected]:27017 

      解决步骤:

      • 使用 VSCode 或全局搜索工具进行链接和修改。
      • 遍历 docker-generateconfig/etc 中的各类 yml 文件,找到对应的 key 并替换。
  4. 修改 docker-compose.yml

    • 按需删除掉 minIO, mongoDb, redis的相关配置。
    • 删除 minIO 配置中建立桶的操作(如果不是用自建 minIO)。
  5. 执行 make start 服务

    • 如果构建失败,解决完日志之后可以删除掉 etc/*, .env 重新构建。
  6. 获取 etc/client.yml
  7. frp 或是 vps直接开放 node端口
  8. 连接到 anytype app即可
  • 部署之后的 client.yml 应该会有一个 127.0.0.1 的配置,可以将其删掉。

结语

通过以上步骤,您可以成功部署 Anytype 并复用已有的服务,从而节省资源并简化管理。希望这些信息对您有所帮助!

标签: none

评论已关闭