OhMyForm项目Docker Compose部署指南
2025-07-10 05:34:06作者:胡唯隽
概述
OhMyForm是一个开源的在线表单构建工具,允许用户快速创建和分享各种类型的表单。本文将详细介绍如何使用Docker Compose部署OhMyForm项目,包括环境配置、服务依赖和部署注意事项。
核心服务组件
OhMyForm的Docker Compose配置包含四个主要服务组件:
- OhMyForm应用服务:主应用程序容器
- PostgreSQL数据库:存储表单数据和用户信息
- Redis服务:用于缓存和会话管理
- MailHog邮件服务:开发环境下的邮件模拟服务
详细配置解析
1. 数据库服务配置
数据库采用PostgreSQL 10的Alpine版本,这是一个轻量级的Linux发行版,适合容器化部署:
db:
image: postgres:10-alpine
volumes:
- ./pg_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: root
POSTGRES_DB: ohmyform
关键配置说明:
- 数据持久化:通过卷挂载将数据库数据保存在本地
pg_data
目录 - 认证信息:默认用户名和密码均为"root"
- 数据库名称:设置为"ohmyform"
2. Redis服务配置
Redis作为缓存和会话存储服务,配置简单高效:
redis:
image: redis
3. 邮件服务配置
开发环境使用MailHog模拟邮件服务:
mail:
image: mailhog/mailhog
ports:
- "5051:8025"
MailHog提供了一个Web界面(端口8025)用于查看发送的邮件,本地映射到5051端口。
4. OhMyForm主应用配置
主应用的核心配置如下:
ohmyform:
build: .
environment:
CREATE_ADMIN: "TRUE"
MAILER_URI: smtp://mail:1025
DATABASE_DRIVER: postgres
DATABASE_URL: postgresql://root:root@db:5432/ohmyform
LOGIN_NOTE: "login with root:root!"
SECRET_KEY: 12345
ports:
- "5200:3000"
depends_on:
- db
- redis
重要环境变量说明:
CREATE_ADMIN
:设置为"TRUE"时,首次启动会自动创建管理员账户DATABASE_*
:配置数据库连接信息SECRET_KEY
:用于加密会话等重要数据,生产环境必须修改LOGIN_NOTE
:登录页面显示的提示信息
部署流程
-
准备环境:
- 确保已安装Docker和Docker Compose
- 克隆OhMyForm源代码到本地
-
配置调整:
- 修改
SECRET_KEY
为强密码 - 根据需要调整数据库认证信息
- 生产环境应配置真实的邮件服务
- 修改
-
启动服务:
docker-compose up -d
-
访问应用:
- 主应用:http://localhost:5200
- 邮件界面:http://localhost:5051
生产环境注意事项
-
安全加固:
- 必须修改默认的SECRET_KEY
- 更改默认的数据库用户名和密码
- 考虑添加TLS/SSL加密
-
性能优化:
- 为PostgreSQL和Redis配置资源限制
- 考虑使用连接池配置
-
高可用性:
- 配置数据库备份策略
- 考虑使用云数据库服务替代本地PostgreSQL
常见问题解决
-
端口冲突:
- 如果5200或5051端口被占用,修改ports映射配置
-
数据库初始化失败:
- 检查pg_data目录权限
- 确保PostgreSQL容器有足够的资源
-
邮件发送问题:
- 生产环境应替换为真实SMTP服务
- 检查MAILER_URI配置格式
通过以上配置和说明,开发者可以快速搭建OhMyForm的开发和测试环境,为后续的表单创建和管理功能开发奠定基础。