AppFlowy Cloud 部署教程

使用 Docker Compose 自建部署 AppFlowy Cloud 详细教程

本教程将指导你如何在自己的服务器上使用 Docker Compose 部署 AppFlowy 的后端服务 AppFlowy Cloud。部署完成后,你将能够通过 AppFlowy 桌面或移动客户端连接到自己的服务器,实现数据同步和团队协作,同时完全掌控你的数据。

注意: 本教程假设你对 Linux 命令行和 Docker 有一定的基本了解。

前提条件

在开始部署之前,请确保你的服务器满足以下条件:

  • 一台运行 Linux (推荐)、macOS 或 Windows 的服务器或虚拟机。
  • 已安装 Docker:请参考 Docker 官方文档 进行安装。
  • 已安装 Docker Compose:请参考 Docker Compose 官方文档 进行安装。
  • 具备足够的硬件资源:至少 2GB 内存和 10GB 可用存储空间(具体需求取决于用户数量和数据量)。
  • 一个域名 (可选,但强烈推荐用于通过 HTTPS 安全访问)。
  • 如果使用域名,需要将域名的 DNS A 记录指向你的服务器 IP 地址。

部署步骤

1. 克隆 AppFlowy Cloud 仓库

首先,通过 Git 将 AppFlowy Cloud 的代码仓库克隆到你的服务器上。选择一个合适的目录存放代码,例如 /opt/appflowy-cloud

1
2
3
4
5
sudo apt update && sudo apt upgrade -y # (Optional) Update your system
sudo apt install git -y # Install git if you don't have it
cd /opt # Or your preferred directory
sudo git clone https://github.com/AppFlowy-IO/AppFlowy-Cloud.git
cd AppFlowy-Cloud

2. 配置环境变量

AppFlowy Cloud 使用环境变量来配置数据库连接、密钥、管理员信息等。

  • 复制示例环境变量文件:

    1
    sudo cp .env.example .env
  • 编辑 .env 文件,根据你的需求修改以下重要配置项:

    1
    sudo nano .env

    以下是一些你需要重点关注和修改的变量:

    • 数据库配置 (PostgreSQL):
      1
      2
      3
      4
      POSTGRES_USER=appflowy # 修改为你希望的数据库用户名
      POSTGRES_PASSWORD=your_db_password # **务必修改为安全的密码**
      POSTGRES_DB=appflowy # 修改为你希望的数据库名
      DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}
    • Redis 配置:
      1
      REDIS_URL=redis://redis:6379/0
    • JWT Secret: 用于用户认证的密钥,务必修改为随机生成的强密码
      1
      GOTRUE_JWT_SECRET=your_jwt_secret # **务必修改为随机生成的长字符串**
    • 管理员账户: 用于登录管理后台的初始管理员账户,务必修改
      1
      2
      [email protected] # 修改为你的管理员邮箱
      GOTRUE_ADMIN_PASSWORD=your_admin_password # **务必修改为安全的管理员密码**
    • 服务地址: 如果你使用域名并配置了 HTTPS,请修改 FQDNSCHEMEFQDN 是你的域名,SCHEME 通常是 https
      1
      2
      3
      4
      5
      6
      7
      # 如果使用域名和HTTPS
      FQDN=yourdomain.com # 修改为你的域名
      SCHEME=https

      # 如果仅使用IP地址 (不推荐用于生产环境)
      # FQDN=your_server_ip
      # SCHEME=http
    • SMTP 配置 (可选): 如果你需要启用邮件通知(例如密码重置),需要配置 SMTP 服务器信息。
      1
      2
      3
      4
      5
      6
      7
      # 启用SMTP,如果需要邮件功能
      # SMTP_ENABLED=true
      # SMTP_HOST=your_smtp_host
      # SMTP_PORT=your_smtp_port
      # SMTP_USER=your_smtp_user
      # SMTP_PASS=your_smtp_password
      # SMTP_SENDER=AppFlowy <[email protected]>
    • 其他配置项请根据需要和注释进行修改。

3. 配置反向代理 (Nginx)

虽然可以直接通过 IP 地址和端口访问,但为了安全和方便,强烈推荐使用 Nginx 配置反向代理,并启用 HTTPS。AppFlowy Cloud 仓库中提供了 Nginx 的配置示例。

  • 进入 Nginx 配置目录:

    1
    cd nginx
  • 复制示例配置文件:

    1
    sudo cp nginx.conf.example nginx.conf
  • 编辑 nginx.conf 文件,主要是将 yourdomain.com 替换为你的实际域名,并配置 SSL 证书路径。

    1
    sudo nano nginx.conf

    找到 server 块,修改 server_name 为你的域名,并更新 ssl_certificatessl_certificate_key 的路径。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    server {
    listen 80;
    listen [::]:80;
    server_name yourdomain.com; # 修改为你的域名
    return 301 https://$host$request_uri;
    }

    server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name yourdomain.com; # 修改为你的域名

    # 配置你的SSL证书路径
    ssl_certificate /etc/nginx/ssl/certificate.crt; # 修改为你的证书文件路径
    ssl_certificate_key /etc/nginx/ssl/private.key; # 修改为你的私钥文件路径

    # ... 其他配置 ...
    }
  • 将你的 SSL 证书文件 (certificate.crt) 和私钥文件 (private.key) 放到 /opt/AppFlowy-Cloud/nginx/ssl/ 目录下(或者你配置的路径)。

  • 回到 AppFlowy-Cloud 根目录。

    1
    cd ..

4. 启动 Docker Compose 服务

现在,你可以使用 Docker Compose 启动所有服务了。

1
sudo docker compose up -d
  • -d 参数表示在后台运行服务。
  • Docker Compose 会拉取所需的 Docker 镜像(如果本地没有),然后按照 docker-compose.yml 文件中定义的顺序启动服务。

你可以使用以下命令查看服务运行状态:

1
sudo docker compose ps

确保所有服务的状态都是 runninghealthy

5. 防火墙设置

如果你的服务器有防火墙,需要开放以下端口:

  • 80 (HTTP,如果配置了 HTTP 跳转 HTTPS)
  • 443 (HTTPS)

例如,使用 UFW (Uncomplicated Firewall):

1
2
3
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable # 如果防火墙未启用

6. 访问 AppFlowy 并连接客户端

  • 访问管理后台: 打开浏览器,访问 https://yourdomain.com/console (将 yourdomain.com 替换为你的域名)。使用你在 .env 文件中配置的管理员邮箱和密码登录。
  • 连接 AppFlowy 客户端:
    • 下载并安装最新版本的 AppFlowy 桌面或移动客户端应用。
    • 打开 AppFlowy 应用。
    • 在登录界面,找到“设置”或类似的选项。
    • 选择“云服务提供商”为“AppFlowy Cloud”。
    • 在“服务器地址”字段中,输入你的自建服务器地址(例如 https://yourdomain.com)。
    • 输入你在 AppFlowy Cloud 中创建的用户账号(可以是管理员账号,也可以是你在管理后台创建的其他用户账号)的邮箱和密码进行登录。

恭喜你!你已经成功自建部署了 AppFlowy Cloud 服务。现在你可以在自己的服务器上使用 AppFlowy 进行笔记、项目管理和协作了。

更新 AppFlowy Cloud

定期更新 AppFlowy Cloud 是非常重要的,可以获取新功能、性能改进和安全补丁。

  1. 进入 AppFlowy-Cloud 仓库目录:

    1
    cd /opt/AppFlowy-Cloud # 或你的安装目录
  2. 拉取最新的代码:

    1
    sudo git pull origin main
  3. 可能需要根据最新的 .env.example 文件更新你的 .env 文件,添加或修改新的配置项。

  4. 重新构建并启动服务:

    1
    2
    3
    sudo docker compose down # 停止并移除旧的服务
    sudo docker compose pull # 拉取最新的镜像
    sudo docker compose up -d # 启动新版本的服务

故障排除

如果在部署过程中遇到问题,可以尝试以下方法:

  • 查看 Docker Compose 日志: 使用 sudo docker compose logs 命令查看各个服务的日志输出,这有助于诊断问题。
  • 检查防火墙: 确保所需的端口已开放。
  • 检查环境变量: 仔细检查 .env 文件中的配置是否正确,特别是数据库连接信息和密钥。
  • 查看官方文档: 访问 AppFlowy Cloud 的 GitHub 仓库和官方文档,查找更详细的部署说明和常见问题解答。
  • 寻求社区帮助: 如果问题依然存在,可以在 AppFlowy 的社区论坛或 Discord 频道寻求帮助。