TellForm项目部署指南:从本地Docker到AWS云服务
2025-07-10 03:57:58作者:尤辰城Agatha
项目概述
TellForm是一个开源的在线表单构建平台,允许用户快速创建和分享各类表单。本文将详细介绍TellForm的两种主要部署方式:本地Docker部署和AWS云服务部署。
本地Docker部署
环境准备
- 确保系统已安装Docker和Docker Compose
- 建议分配至少4GB内存给Docker
部署步骤
- 获取TellForm的Docker配置文件
- 配置必要的环境变量
- 构建并启动容器
这种部署方式适合开发测试环境,可以快速搭建完整的TellForm运行环境。
AWS云服务部署
环境准备
1. 系统配置
建议使用Amazon Linux AMI作为基础系统。首先需要设置环境变量:
sudo vim /etc/environment
添加以下内容:
LANG=en_US.utf-8
LC_ALL=en_US.utf-8
2. 系统更新与工具安装
sudo yum update -y
sudo yum groupinstall "Development Tools" -y
Docker环境搭建
1. 安装Docker
sudo yum install -y docker
sudo service docker start
2. 配置非root用户权限
sudo usermod -a -G docker ec2-user
logout
重新登录后,验证Docker是否安装成功:
docker info
3. 安装Docker Compose
sudo -i
curl -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
logout
项目部署
1. 获取项目代码
git clone https://github.com/datagovsg/formsg.git
2. 环境变量配置
创建.env
文件并配置以下关键参数:
APP_NAME=FormSG
NODE_ENV=production
BASE_URL=<实例公网IP>
PORT=4545
DB_PORT_27017_TCP_ADDR=<MongoDB主机私有IP>
MAILER_SERVICE_PROVIDER=<邮件服务商>
MAILER_EMAIL_ID=<邮件账号>
MAILER_PASSWORD=<邮件密码>
MAILER_FROM=<发件人>
3. Node.js环境配置
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install 6.11.2
npm install -g bower
npm install -g grunt-cli
npm install grunt
4. 安装项目依赖
npm install --production
5. 构建Docker镜像
docker-compose -f docker-compose-production.yml build
6. 启动服务
先启动MongoDB容器:
docker run -d -p 27017:27017 -v /data/db:/data/db --name formsg-mongo mongo
再启动应用服务:
docker-compose -f docker-compose-production.yml up
部署后验证
- 检查容器运行状态:
docker ps
- 查看应用日志:
docker-compose logs
- 通过浏览器访问实例公网IP,确认应用正常运行
常见问题解决
- 端口冲突:确保80端口未被占用
- MongoDB连接问题:检查DB_PORT_27017_TCP_ADDR配置是否正确
- 邮件服务配置:确保邮件服务商支持SMTP协议
性能优化建议
- 为生产环境配置负载均衡
- 启用Redis缓存提升性能
- 定期备份MongoDB数据
安全建议
- 定期更新Docker镜像和安全补丁
- 配置HTTPS加密传输
- 限制数据库访问权限
通过以上步骤,您可以成功在AWS云服务上部署TellForm应用。如需进一步支持,可以联系项目维护团队获取专业帮助。