首页
/ TellForm项目部署指南:从本地Docker到AWS云服务

TellForm项目部署指南:从本地Docker到AWS云服务

2025-07-10 03:57:58作者:尤辰城Agatha

项目概述

TellForm是一个开源的在线表单构建平台,允许用户快速创建和分享各类表单。本文将详细介绍TellForm的两种主要部署方式:本地Docker部署和AWS云服务部署。

本地Docker部署

环境准备

  1. 确保系统已安装Docker和Docker Compose
  2. 建议分配至少4GB内存给Docker

部署步骤

  1. 获取TellForm的Docker配置文件
  2. 配置必要的环境变量
  3. 构建并启动容器

这种部署方式适合开发测试环境,可以快速搭建完整的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

部署后验证

  1. 检查容器运行状态:docker ps
  2. 查看应用日志:docker-compose logs
  3. 通过浏览器访问实例公网IP,确认应用正常运行

常见问题解决

  1. 端口冲突:确保80端口未被占用
  2. MongoDB连接问题:检查DB_PORT_27017_TCP_ADDR配置是否正确
  3. 邮件服务配置:确保邮件服务商支持SMTP协议

性能优化建议

  1. 为生产环境配置负载均衡
  2. 启用Redis缓存提升性能
  3. 定期备份MongoDB数据

安全建议

  1. 定期更新Docker镜像和安全补丁
  2. 配置HTTPS加密传输
  3. 限制数据库访问权限

通过以上步骤,您可以成功在AWS云服务上部署TellForm应用。如需进一步支持,可以联系项目维护团队获取专业帮助。