Rallly 日程投票工具搭建教程

Rallly(注意三个 l)是一款开源的日程投票和会议安排工具,类似 Doodle 的自托管替代方案。它让组织者创建包含多个候选时间的投票,参与者选择自己可以参加的时间段,系统自动统计最适合所有人的时间。界面简洁现代,无需注册即可参与投票。本教程将在搬瓦工 VPS 上通过 Docker 部署 Rallly。

一、Rallly 核心功能

  • 日程投票:创建包含多个候选日期/时间的投票,参与者选择可用时间。
  • 无需注册:参与者无需创建账户即可投票,降低参与门槛。
  • 三级选择:参与者可以对每个时间选择"可以"、"也许"或"不行"。
  • 自动统计:实时统计每个候选时间的投票结果,高亮最佳选项。
  • 评论功能:参与者可以在投票中留下评论说明偏好。
  • 邮件通知:新投票和结果变更时通过邮件通知组织者和参与者。
  • 响应式设计:完美适配手机和平板,随时随地参与投票。

二、环境准备

  • 操作系统:Ubuntu 20.04+(推荐 Ubuntu 22.04)。
  • 内存:至少 512MB RAM。
  • 磁盘:至少 2GB 可用空间。
  • Docker:已安装 Docker 和 Docker Compose(参考 Docker 安装教程)。

购买搬瓦工 VPS 请参考 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 折扣。

三、Docker Compose 部署

3.1 创建项目目录

mkdir -p /opt/rallly && cd /opt/rallly

3.2 创建 Docker Compose 文件

cat > docker-compose.yml <<'EOF'
version: '3.8'

services:
  rallly:
    image: lukevella/rallly:latest
    container_name: rallly
    restart: always
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: "postgresql://rallly:your_db_password@db:5432/rallly"
      SECRET_PASSWORD: "your_secret_password_at_least_32_chars"
      NEXT_PUBLIC_BASE_URL: "http://your-domain.com"
      NOREPLY_EMAIL: "noreply@example.com"
      SMTP_HOST: "smtp.example.com"
      SMTP_PORT: "587"
      SMTP_SECURE: "false"
      SMTP_USER: "your-email@example.com"
      SMTP_PWD: "your-email-password"
      SUPPORT_EMAIL: "support@example.com"
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    container_name: rallly-db
    restart: always
    environment:
      POSTGRES_USER: rallly
      POSTGRES_PASSWORD: your_db_password
      POSTGRES_DB: rallly
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:
EOF

生成密码和密钥:

openssl rand -base64 32

3.3 启动服务

docker compose up -d
docker compose logs -f rallly

启动完成后,访问 http://你的服务器IP:3000 即可使用 Rallly。

四、Nginx 反向代理

cat > /etc/nginx/sites-available/rallly <<'EOF'
server {
    listen 80;
    server_name poll.example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
EOF

ln -s /etc/nginx/sites-available/rallly /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d poll.example.com

五、使用 Rallly

5.1 创建投票

在首页点击"Create Poll",输入投票标题和描述(如"团队周会时间")。在日历上选择候选日期,可以为每天设置具体的时间段。确认候选时间后生成投票链接,将链接分享给参与者。

5.2 参与投票

参与者点击链接后输入姓名,然后对每个候选时间选择可用状态。投票结果实时更新,所有参与者都可以看到统计情况。组织者可以根据投票结果确定最终时间。

5.3 管理投票

组织者可以在投票管理页面修改候选时间、删除参与者的投票或关闭投票。确定最终时间后可以标记为最终结果,系统会通知所有参与者。

六、备份与升级

# 备份数据库
docker exec rallly-db pg_dump -U rallly rallly > /opt/rallly/backup_$(date +%Y%m%d).sql

# 升级
cd /opt/rallly
docker compose pull
docker compose down
docker compose up -d

总结

Rallly 简洁高效地解决了团队日程协调的难题,部署在搬瓦工 VPS 上完全自主可控。如果你需要更完整的日程预约功能,可以参考 Cal.com。购买搬瓦工 VPS 请参考 全部方案,使用优惠码 NODESEEK2026 可享受 6.77% 折扣。更多教程请访问 搬瓦工VPS中文网

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。