AppFlowy-Cloud部署指南:Docker Compose与生产环境配置

AppFlowy-Cloud部署指南:Docker Compose与生产环境配置

【免费下载链接】AppFlowy-Cloud AppFlowy is an open-source alternative to Notion. You are in charge of your data and customizations. Built with Flutter and Rust. 【免费下载链接】AppFlowy-Cloud 项目地址: https://gitcode.com/GitHub_Trending/ap/AppFlowy-Cloud

还在为Notion替代方案的数据安全和定制化需求而烦恼吗?AppFlowy-Cloud作为开源协作平台的核心后端,提供了完整的自托管解决方案。本文将深入解析基于Docker Compose的生产级部署策略,助你快速搭建企业级知识管理平台。

🎯 部署前准备:环境要求与依赖检查

硬件资源配置

资源类型最低配置推荐配置说明
内存2GB4GB+确保协作服务稳定运行
存储16GB32GB+文档和文件存储空间
CPU2核4核+处理实时协作请求

软件依赖清单

# 验证Docker Compose版本
docker compose version
# 输出示例:Docker Compose version v2.23.3

# 检查端口占用情况
sudo lsof -i :80 -i :443 -i :5432 -i :6379

🚀 快速部署:五步搭建生产环境

步骤1:获取源码与初始化配置

# 克隆官方仓库
git clone https://gitcode.com/GitHub_Trending/ap/AppFlowy-Cloud
cd AppFlowy-Cloud

# 复制环境配置模板
cp deploy.env .env

步骤2:关键环境变量配置详解

基础网络配置
# 域名配置(生产环境必须修改)
FQDN=your-domain.com
SCHEME=https
WS_SCHEME=wss

# 应用基础URL
APPFLOWY_BASE_URL=${SCHEME}://${FQDN}
APPFLOWY_WEBSOCKET_BASE_URL=${WS_SCHEME}://${FQDN}/ws/v2
数据库与缓存配置
# PostgreSQL配置
POSTGRES_HOST=postgres
POSTGRES_USER=appflowy_prod
POSTGRES_PASSWORD=SecurePassword123!
POSTGRES_PORT=5432
POSTGRES_DB=appflowy_production

# Redis配置
REDIS_HOST=redis
REDIS_PORT=6379
文件存储配置(MinIO)
# MinIO对象存储
MINIO_HOST=minio
MINIO_PORT=9000
AWS_ACCESS_KEY=your-minio-access-key
AWS_SECRET=your-minio-secret-key

# S3存储配置
APPFLOWY_S3_USE_MINIO=true
APPFLOWY_S3_CREATE_BUCKET=false  # 生产环境建议手动创建bucket
APPFLOWY_S3_BUCKET=appflowy-prod
身份认证安全配置
# JWT密钥(必须修改!)
GOTRUE_JWT_SECRET=YourSecureJWTSecretKey2024!

# 管理员账户
GOTRUE_ADMIN_EMAIL=admin@your-company.com
GOTRUE_ADMIN_PASSWORD=AdminSecurePassword!

# 注册控制
GOTRUE_DISABLE_SIGNUP=false  # 生产环境建议设为true
GOTRUE_MAILER_AUTOCONFIRM=false  # 要求邮箱验证

步骤3:Docker Compose服务架构解析

mermaid

步骤4:启动完整服务栈

# 构建并启动所有服务
docker compose up -d --build

# 监控服务状态
docker compose logs -f --tail=50

# 验证服务健康状态
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"

步骤5:服务验证与监控

# 检查关键服务健康状态
curl -f http://localhost/health || echo "Health check failed"

# 监控日志输出
docker compose logs appflowy_cloud --tail=100 -f

# 数据库连接测试
docker exec -it appflowy-cloud-postgres-1 psql -U postgres -d postgres -c "\l"

🔧 生产环境高级配置

SSL证书配置

# 替换默认SSL证书(位于nginx/ssl/目录)
cp your-domain.crt nginx/ssl/certificate.crt
cp your-domain.key nginx/ssl/private_key.key

# 重启Nginx服务
docker compose restart nginx

数据库持久化与备份

# 在docker-compose.yml中确保卷配置
volumes:
  postgres_data:
    driver: local
  minio_data:
    driver: local

# 数据库备份脚本示例
#!/bin/bash
docker exec -t appflowy-cloud-postgres-1 pg_dump -U postgres -d postgres > backup_$(date +%Y%m%d).sql

性能优化配置

# 数据库连接池优化
APPFLOWY_DATABASE_MAX_CONNECTIONS=50

# WebSocket性能调优
APPFLOWY_WEBSOCKET_MAILBOX_SIZE=10000

# Redis连接配置
APPFLOWY_REDIS_URI=redis://redis:6379/0?timeout=30

🛡️ 安全加固指南

网络隔离策略

# 在docker-compose.yml中添加网络配置
networks:
  appflowy_network:
    driver: bridge
    internal: true  # 限制外部访问

# 为每个服务指定网络
services:
  postgres:
    networks:
      - appflowy_network

身份认证增强

# 强制使用安全密码策略
GOTRUE_PASSWORD_MIN_LENGTH=12
GOTRUE_SECURITY_UPDATE_PASSWORD_REQUIRE_REAUTH=true

# 会话管理
GOTRUE_JWT_EXP=3600  # 1小时过期
GOTRUE_REFRESH_TOKEN_REUSE_INTERVAL=3600

监控与日志管理

# 启用详细日志记录
RUST_LOG=info,actix_web=info,sqlx=warn

# 日志轮转配置
docker run --log-driver=json-file --log-opt max-size=10m --log-opt max-file=3

📊 运维监控与故障排除

健康检查端点

服务健康检查URL预期响应
AppFlowy Cloud/api/healthHTTP 200
GoTrue/gotrue/healthHTTP 200
PostgreSQLTCP 5432连接成功
RedisTCP 6379PONG响应

常见问题排查表

问题现象可能原因解决方案
502 Bad GatewayNginx配置错误检查upstream服务状态
数据库连接超时连接池耗尽调整max_connections
文件上传失败MinIO权限问题验证S3凭证配置
WebSocket断开防火墙限制检查WebSocket代理配置

性能监控指标

# 监控数据库性能
docker exec -it appflowy-cloud-postgres-1 psql -U postgres -c "SELECT * FROM pg_stat_activity;"

# Redis内存使用情况
docker exec -it appflowy-cloud-redis-1 redis-cli info memory

# 容器资源使用
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}"

🔄 升级与维护策略

版本升级流程

# 1. 拉取最新镜像
docker compose pull

# 2. 备份数据库
docker exec -t appflowy-cloud-postgres-1 pg_dump -U postgres -d postgres > backup_pre_upgrade.sql

# 3. 停止服务并更新
docker compose down
git pull origin main

# 4. 重新启动
docker compose up -d --build

# 5. 验证升级
docker compose logs --tail=100

自动化维护脚本

#!/bin/bash
# 每日维护任务:备份、清理、监控
BACKUP_DIR="/opt/backups/appflowy"
mkdir -p $BACKUP_DIR

# 数据库备份
docker exec -t appflowy-cloud-postgres-1 pg_dump -U postgres -d postgres | gzip > $BACKUP_DIR/backup_$(date +%Y%m%d).sql.gz

# 清理旧备份(保留最近7天)
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

# 日志文件清理
docker exec -it appflowy-cloud-appflowy_cloud-1 find /app/logs -name "*.log" -mtime +30 -delete

🎯 部署成功验证清单

完成部署后,请逐一验证以下项目:

  •  通过浏览器访问 https://your-domain.com 显示登录页面
  •  管理员账户能够成功登录管理后台 (/console)
  •  文件上传下载功能正常运作
  •  实时协作编辑功能测试通过
  •  数据库持久化数据完整保存
  •  SSL证书有效且浏览器显示安全连接
  •  所有健康检查端点返回200状态码
  •  监控告警系统正常接收指标数据

💡 最佳实践总结

  1. 安全第一:始终修改默认凭证,启用HTTPS,配置防火墙规则
  2. 监控先行:部署前建立完整的监控体系,包括日志、指标、告警
  3. 备份为重:建立定期备份机制,测试恢复流程
  4. 渐进部署:先在测试环境验证,再逐步推广到生产环境
  5. 文档更新:维护部署文档,记录所有配置变更和故障处理经验

通过本指南,你应该能够成功部署一个生产就绪的AppFlowy-Cloud实例。记得根据实际业务需求调整配置参数,并建立完善的运维流程来确保系统长期稳定运行。

提示:部署过程中遇到问题,可查看各服务的详细日志:docker compose logs [service_name]

【免费下载链接】AppFlowy-Cloud AppFlowy is an open-source alternative to Notion. You are in charge of your data and customizations. Built with Flutter and Rust. 【免费下载链接】AppFlowy-Cloud 项目地址: https://gitcode.com/GitHub_Trending/ap/AppFlowy-Cloud

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值