rallly Docker & Self-Hosted Deployment

GitHub

Rallly is an open-source scheduling and collaboration tool designed to make organizing events and meetings easier.

5,313 stars TypeScript TypeScript 52 files ยท ~71,550 tokens #i18next#next-auth#nextjs#postgresql#prisma#react-email#t3-stack#tailwindcss
RAW Compose
1. Pull Image (DOCKERHUB) docker pull library/postgres
2. Docker Run (1-Click Launch) docker run -d --name rallly -p 5450:5450 --restart always postgres:18-alpine
3. Podman Run podman run -d --name rallly -p 5450:5450 --restart always postgres:18-alpine
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/library/postgres:18-alpine
5. ORAS Pull (OCI Artifact) oras pull postgres:18-alpine
6. Compose Deployment docker compose up -d
docker-compose.dev.yml
Download .yml
services:
  rallly_db:
    image: postgres:18-alpine
    restart: always
    ports:
      - "5450:5432"
    volumes:
      - db-data:/var/lib/postgresql
    environment:
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=rallly
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 5
  redis:
    image: redis:7.4-alpine
    restart: always
    ports:
      - "6379:6379"
    volumes:
      - redis-data:/data
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping"]
      interval: 5s
      timeout: 5s
      retries: 5
  serverless-redis-http:
    ports:
      - "8079:80"
    image: hiett/serverless-redis-http:latest
    environment:
      SRH_MODE: env
      SRH_TOKEN: dev_fake_token_123456789abcdefghijklmnop
      SRH_CONNECTION_STRING: "redis://redis:6379"
  garage:
    image: dxflrs/garage:v2.3.0
    restart: always
    ports:
      - "3900:3900"
      - "3903:3903"
    volumes:
      - ./docker/garage.toml:/etc/garage.toml:ro
      - garage-meta:/var/lib/garage/meta
      - garage-data:/var/lib/garage/data
    environment:
      - GARAGE_DEFAULT_ACCESS_KEY=rallly-access-key
      - GARAGE_DEFAULT_SECRET_KEY=rallly-secret-key
      - GARAGE_DEFAULT_BUCKET=rallly
    command: /garage server --single-node --default-bucket
    healthcheck:
      test: ["CMD", "/garage", "stats", "-a"]
      interval: 1h
      timeout: 5s
      retries: 3
      start_period: 10s
      start_interval: 5s
  mailpit:
    image: axllent/mailpit
    ports:
      - "8025:8025"
      - "1025:1025"
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8025/readyz"]
      interval: 5s
      timeout: 5s
      retries: 5


  garage_init:
    image: amazon/aws-cli
    depends_on:
      garage:
        condition: service_healthy
    environment:
      - AWS_ACCESS_KEY_ID=rallly-access-key
      - AWS_SECRET_ACCESS_KEY=rallly-secret-key
      - AWS_DEFAULT_REGION=garage
    volumes:
      - ./docker/cors.json:/cors.json:ro
    entrypoint: ["sh", "-c", "aws --endpoint-url http://garage:3900 s3api put-bucket-cors --bucket rallly --cors-configuration file:///cors.json"]
    restart: "no"

volumes:
  db-data:
    driver: local
  redis-data:
    driver: local
  garage-meta:
    driver: local
  garage-data:
    driver: local