version: "3.8" # In this Docker Compose example, it assumes that you maintain a reverse proxy externally (or chose not to). # The only two exposed ports here are from minio (:9000) and the app itself (:3000). # If these ports are changed, ensure that the env vars passed to the app are also changed accordingly. services: # Database (Postgres) postgres: image: postgres:16-alpine restart: unless-stopped volumes: - postgres_data:/var/lib/postgresql/data environment: POSTGRES_DB: pg-reactive POSTGRES_USER: pg-reactive POSTGRES_PASSWORD: reactiveresume healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres -d postgres"] interval: 10s timeout: 5s retries: 5 # Storage (for image uploads) minio: image: minio/minio restart: unless-stopped command: server /data ports: - "9000:9000" volumes: - minio_data:/data environment: MINIO_ROOT_USER: rr-minioadmin MINIO_ROOT_PASSWORD: minioreactive # Chrome Browser (for printing and previews) chrome: image: ghcr.io/browserless/chromium:latest restart: unless-stopped environment: TIMEOUT: 10000 CONCURRENT: 10 TOKEN: chrome_token EXIT_ON_HEALTH_FAILURE: true PRE_REQUEST_HEALTH_CHECK: true app: image: amruthpillai/reactive-resume:latest restart: unless-stopped ports: - "3000:3000" depends_on: - postgres - minio - chrome environment: # -- Environment Variables -- PORT: 3000 NODE_ENV: production # -- URLs -- PUBLIC_URL: http://192.168.200.73:3000 STORAGE_URL: http://192.168.200.73:9000/default # -- Printer (Chrome) -- CHROME_TOKEN: chrome_token CHROME_URL: ws://chrome:3000 # -- Database (Postgres) -- DATABASE_URL: postgresql://pg-reactive:reactiveresume@pg-postgres:5432/postgres # -- Auth -- ACCESS_TOKEN_SECRET: c13fdfdacfdeb2b5185dffe89ba4d152a2e71d5d36c691fbc0a594e9695d992c87 REFRESH_TOKEN_SECRET: d8665ce1f01b1dd2db85a53517c362a7668f025058e5218ee4e0d6fe233a81 # -- Emails -- MAIL_FROM: no-reply-web@rsmsn.co # SMTP_URL: smtp://user:pass@smtp:587 # Optional # -- Storage (Minio) -- STORAGE_ENDPOINT: minio STORAGE_PORT: 9000 STORAGE_REGION: us-east-1 # Optional STORAGE_BUCKET: default STORAGE_ACCESS_KEY: minioadmin STORAGE_SECRET_KEY: minioadmin STORAGE_USE_SSL: false STORAGE_SKIP_BUCKET_CHECK: false # -- Crowdin (Optional) -- # CROWDIN_PROJECT_ID: # CROWDIN_PERSONAL_TOKEN: # -- Email (Optional) -- # DISABLE_SIGNUPS: false # DISABLE_EMAIL_AUTH: false # -- GitHub (Optional) -- # GITHUB_CLIENT_ID: github_client_id # GITHUB_CLIENT_SECRET: github_client_secret # GITHUB_CALLBACK_URL: http://192.168.200.73:3000/api/auth/github/callback # -- Google (Optional) -- # GOOGLE_CLIENT_ID: google_client_id # GOOGLE_CLIENT_SECRET: google_client_secret # GOOGLE_CALLBACK_URL: http://192.168.200.73:3000/api/auth/google/callback volumes: minio_data: postgres_data: