Dokploy

Rallly

Rallly is an open-source scheduling and collaboration tool for organizing events and meetings.

Rallly logo

Configuration

version: "3.8"

services:
  rallly:
    image: lukevella/rallly:4.11.1
    restart: unless-stopped
    depends_on:
      - db
      - minio
      - minio-init
    environment:
      NEXT_PUBLIC_BASE_URL: ${NEXT_PUBLIC_BASE_URL}
      DATABASE_URL: ${DATABASE_URL}
      SECRET_PASSWORD: ${SECRET_PASSWORD}
      SUPPORT_EMAIL: ${SUPPORT_EMAIL}
      NOREPLY_EMAIL: ${NOREPLY_EMAIL}
      SMTP_HOST: ${SMTP_HOST}
      SMTP_PORT: ${SMTP_PORT}
      SMTP_USER: ${SMTP_USER}
      SMTP_PWD: ${SMTP_PWD}
      SMTP_SECURE: ${SMTP_SECURE}
      S3_ENDPOINT: ${S3_ENDPOINT}
      S3_BUCKET_NAME: ${S3_BUCKET_NAME}
      S3_REGION: ${S3_REGION}
      S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID}
      S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY}
      INITIAL_ADMIN_EMAIL: ${INITIAL_ADMIN_EMAIL}

  db:
    image: postgres:14-alpine
    restart: unless-stopped
    environment:
      POSTGRES_DB: rallly
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    volumes:
      - rallly-db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres -d rallly"]
      interval: 10s
      timeout: 5s
      retries: 5

  minio:
    image: minio/minio:latest
    restart: unless-stopped
    command: server /data
    environment:
      MINIO_ROOT_USER: ${S3_ACCESS_KEY_ID}
      MINIO_ROOT_PASSWORD: ${S3_SECRET_ACCESS_KEY}
    volumes:
      - rallly-minio:/data

  minio-init:
    image: minio/mc:latest
    depends_on:
      - minio
    restart: "no"
    entrypoint: >
      /bin/sh -c "
      until mc alias set local http://minio:9000 ${S3_ACCESS_KEY_ID} ${S3_SECRET_ACCESS_KEY}; do sleep 2; done;
      mc mb --ignore-existing local/rallly;
      "

volumes:
  rallly-db:
  rallly-minio:
[variables]
main_domain = "${domain}"
support_email = "${email}"
noreply_email = "${email}"
initial_admin_email = "${email}"
postgres_password = "${password:32}"
secret_password = "${password:32}"
s3_access_key_id = "rallly"
s3_secret_access_key = "${password:32}"
smtp_host = "smtp.example.com"
smtp_port = "587"
smtp_user = "change-me"
smtp_password = "${password:32}"
smtp_secure = "false"

[config]
env = [
  "NEXT_PUBLIC_BASE_URL=https://${main_domain}",
  "DATABASE_URL=postgres://postgres:${postgres_password}@db:5432/rallly",
  "SECRET_PASSWORD=${secret_password}",
  "SUPPORT_EMAIL=${support_email}",
  "NOREPLY_EMAIL=${noreply_email}",
  "SMTP_HOST=${smtp_host}",
  "SMTP_PORT=${smtp_port}",
  "SMTP_USER=${smtp_user}",
  "SMTP_PWD=${smtp_password}",
  "SMTP_SECURE=${smtp_secure}",
  "S3_ENDPOINT=http://minio:9000",
  "S3_BUCKET_NAME=rallly",
  "S3_REGION=us-east-1",
  "S3_ACCESS_KEY_ID=${s3_access_key_id}",
  "S3_SECRET_ACCESS_KEY=${s3_secret_access_key}",
  "INITIAL_ADMIN_EMAIL=${initial_admin_email}",
  "POSTGRES_PASSWORD=${postgres_password}",
]

[[config.domains]]
serviceName = "rallly"
port = 3000
host = "${main_domain}"

Base64

To import this template in Dokploy: create a Compose service → AdvancedBase64 import and paste the content below:

ewogICJjb21wb3NlIjogInZlcnNpb246IFwiMy44XCJcblxuc2VydmljZXM6XG4gIHJhbGxseTpcbiAgICBpbWFnZTogbHVrZXZlbGxhL3JhbGxseTo0LjExLjFcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGRlcGVuZHNfb246XG4gICAgICAtIGRiXG4gICAgICAtIG1pbmlvXG4gICAgICAtIG1pbmlvLWluaXRcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIE5FWFRfUFVCTElDX0JBU0VfVVJMOiAke05FWFRfUFVCTElDX0JBU0VfVVJMfVxuICAgICAgREFUQUJBU0VfVVJMOiAke0RBVEFCQVNFX1VSTH1cbiAgICAgIFNFQ1JFVF9QQVNTV09SRDogJHtTRUNSRVRfUEFTU1dPUkR9XG4gICAgICBTVVBQT1JUX0VNQUlMOiAke1NVUFBPUlRfRU1BSUx9XG4gICAgICBOT1JFUExZX0VNQUlMOiAke05PUkVQTFlfRU1BSUx9XG4gICAgICBTTVRQX0hPU1Q6ICR7U01UUF9IT1NUfVxuICAgICAgU01UUF9QT1JUOiAke1NNVFBfUE9SVH1cbiAgICAgIFNNVFBfVVNFUjogJHtTTVRQX1VTRVJ9XG4gICAgICBTTVRQX1BXRDogJHtTTVRQX1BXRH1cbiAgICAgIFNNVFBfU0VDVVJFOiAke1NNVFBfU0VDVVJFfVxuICAgICAgUzNfRU5EUE9JTlQ6ICR7UzNfRU5EUE9JTlR9XG4gICAgICBTM19CVUNLRVRfTkFNRTogJHtTM19CVUNLRVRfTkFNRX1cbiAgICAgIFMzX1JFR0lPTjogJHtTM19SRUdJT059XG4gICAgICBTM19BQ0NFU1NfS0VZX0lEOiAke1MzX0FDQ0VTU19LRVlfSUR9XG4gICAgICBTM19TRUNSRVRfQUNDRVNTX0tFWTogJHtTM19TRUNSRVRfQUNDRVNTX0tFWX1cbiAgICAgIElOSVRJQUxfQURNSU5fRU1BSUw6ICR7SU5JVElBTF9BRE1JTl9FTUFJTH1cblxuICBkYjpcbiAgICBpbWFnZTogcG9zdGdyZXM6MTQtYWxwaW5lXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIFBPU1RHUkVTX0RCOiByYWxsbHlcbiAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiAke1BPU1RHUkVTX1BBU1NXT1JEfVxuICAgIHZvbHVtZXM6XG4gICAgICAtIHJhbGxseS1kYjovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBcInBnX2lzcmVhZHkgLVUgcG9zdGdyZXMgLWQgcmFsbGx5XCJdXG4gICAgICBpbnRlcnZhbDogMTBzXG4gICAgICB0aW1lb3V0OiA1c1xuICAgICAgcmV0cmllczogNVxuXG4gIG1pbmlvOlxuICAgIGltYWdlOiBtaW5pby9taW5pbzpsYXRlc3RcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGNvbW1hbmQ6IHNlcnZlciAvZGF0YVxuICAgIGVudmlyb25tZW50OlxuICAgICAgTUlOSU9fUk9PVF9VU0VSOiAke1MzX0FDQ0VTU19LRVlfSUR9XG4gICAgICBNSU5JT19ST09UX1BBU1NXT1JEOiAke1MzX1NFQ1JFVF9BQ0NFU1NfS0VZfVxuICAgIHZvbHVtZXM6XG4gICAgICAtIHJhbGxseS1taW5pbzovZGF0YVxuXG4gIG1pbmlvLWluaXQ6XG4gICAgaW1hZ2U6IG1pbmlvL21jOmxhdGVzdFxuICAgIGRlcGVuZHNfb246XG4gICAgICAtIG1pbmlvXG4gICAgcmVzdGFydDogXCJub1wiXG4gICAgZW50cnlwb2ludDogPlxuICAgICAgL2Jpbi9zaCAtYyBcIlxuICAgICAgdW50aWwgbWMgYWxpYXMgc2V0IGxvY2FsIGh0dHA6Ly9taW5pbzo5MDAwICR7UzNfQUNDRVNTX0tFWV9JRH0gJHtTM19TRUNSRVRfQUNDRVNTX0tFWX07IGRvIHNsZWVwIDI7IGRvbmU7XG4gICAgICBtYyBtYiAtLWlnbm9yZS1leGlzdGluZyBsb2NhbC9yYWxsbHk7XG4gICAgICBcIlxuXG52b2x1bWVzOlxuICByYWxsbHktZGI6XG4gIHJhbGxseS1taW5pbzoiLAogICJjb25maWciOiAiW3ZhcmlhYmxlc11cbm1haW5fZG9tYWluID0gXCIke2RvbWFpbn1cIlxuc3VwcG9ydF9lbWFpbCA9IFwiJHtlbWFpbH1cIlxubm9yZXBseV9lbWFpbCA9IFwiJHtlbWFpbH1cIlxuaW5pdGlhbF9hZG1pbl9lbWFpbCA9IFwiJHtlbWFpbH1cIlxucG9zdGdyZXNfcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6MzJ9XCJcbnNlY3JldF9wYXNzd29yZCA9IFwiJHtwYXNzd29yZDozMn1cIlxuczNfYWNjZXNzX2tleV9pZCA9IFwicmFsbGx5XCJcbnMzX3NlY3JldF9hY2Nlc3Nfa2V5ID0gXCIke3Bhc3N3b3JkOjMyfVwiXG5zbXRwX2hvc3QgPSBcInNtdHAuZXhhbXBsZS5jb21cIlxuc210cF9wb3J0ID0gXCI1ODdcIlxuc210cF91c2VyID0gXCJjaGFuZ2UtbWVcIlxuc210cF9wYXNzd29yZCA9IFwiJHtwYXNzd29yZDozMn1cIlxuc210cF9zZWN1cmUgPSBcImZhbHNlXCJcblxuW2NvbmZpZ11cbmVudiA9IFtcbiAgXCJORVhUX1BVQkxJQ19CQVNFX1VSTD1odHRwczovLyR7bWFpbl9kb21haW59XCIsXG4gIFwiREFUQUJBU0VfVVJMPXBvc3RncmVzOi8vcG9zdGdyZXM6JHtwb3N0Z3Jlc19wYXNzd29yZH1AZGI6NTQzMi9yYWxsbHlcIixcbiAgXCJTRUNSRVRfUEFTU1dPUkQ9JHtzZWNyZXRfcGFzc3dvcmR9XCIsXG4gIFwiU1VQUE9SVF9FTUFJTD0ke3N1cHBvcnRfZW1haWx9XCIsXG4gIFwiTk9SRVBMWV9FTUFJTD0ke25vcmVwbHlfZW1haWx9XCIsXG4gIFwiU01UUF9IT1NUPSR7c210cF9ob3N0fVwiLFxuICBcIlNNVFBfUE9SVD0ke3NtdHBfcG9ydH1cIixcbiAgXCJTTVRQX1VTRVI9JHtzbXRwX3VzZXJ9XCIsXG4gIFwiU01UUF9QV0Q9JHtzbXRwX3Bhc3N3b3JkfVwiLFxuICBcIlNNVFBfU0VDVVJFPSR7c210cF9zZWN1cmV9XCIsXG4gIFwiUzNfRU5EUE9JTlQ9aHR0cDovL21pbmlvOjkwMDBcIixcbiAgXCJTM19CVUNLRVRfTkFNRT1yYWxsbHlcIixcbiAgXCJTM19SRUdJT049dXMtZWFzdC0xXCIsXG4gIFwiUzNfQUNDRVNTX0tFWV9JRD0ke3MzX2FjY2Vzc19rZXlfaWR9XCIsXG4gIFwiUzNfU0VDUkVUX0FDQ0VTU19LRVk9JHtzM19zZWNyZXRfYWNjZXNzX2tleX1cIixcbiAgXCJJTklUSUFMX0FETUlOX0VNQUlMPSR7aW5pdGlhbF9hZG1pbl9lbWFpbH1cIixcbiAgXCJQT1NUR1JFU19QQVNTV09SRD0ke3Bvc3RncmVzX3Bhc3N3b3JkfVwiLFxuXVxuXG5bW2NvbmZpZy5kb21haW5zXV1cbnNlcnZpY2VOYW1lID0gXCJyYWxsbHlcIlxucG9ydCA9IDMwMDBcbmhvc3QgPSBcIiR7bWFpbl9kb21haW59XCIiCn0=

Tags

scheduling, polls, collaboration


Version: 4.11.1

On this page