mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-22 12:41:31 +10:00
- Added missing `type="button"` attributes to various toolbar buttons in the rich-input component for better accessibility. - Updated Gengar template to ensure the summary section is only displayed when populated. - Changed boolean values in Docker Compose files from unquoted to quoted strings for consistency and to prevent potential parsing issues.
133 lines
3.9 KiB
YAML
133 lines
3.9 KiB
YAML
version: "3.8"
|
|
|
|
# In this Docker Compose example, we use Traefik to route requests to the app and storage containers.
|
|
# This example assumes you have a domain name (example.com) and a wildcard DNS record pointing to your server.
|
|
# The only exposed port here is from Traefik (80). If you choose to use SSL, check the Traefik docs for more info.
|
|
# Note: Please change `example.com` to your domain name where necessary.
|
|
|
|
services:
|
|
# Database (Postgres)
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
environment:
|
|
POSTGRES_DB: postgres
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres -d postgres"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
# Storage (for image uploads)
|
|
minio:
|
|
image: minio/minio:latest
|
|
restart: unless-stopped
|
|
command: server /data
|
|
volumes:
|
|
- minio_data:/data
|
|
environment:
|
|
MINIO_ROOT_USER: minioadmin
|
|
MINIO_ROOT_PASSWORD: minioadmin
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.storage.rule=Host(`storage.example.com`)
|
|
- traefik.http.services.storage.loadbalancer.server.port=9000
|
|
|
|
# Chrome Browser (for printing and previews)
|
|
chrome:
|
|
image: ghcr.io/browserless/chromium:v2.18.0 # Upgrading to newer versions causes issues
|
|
restart: unless-stopped
|
|
environment:
|
|
TIMEOUT: 10000
|
|
CONCURRENT: 10
|
|
TOKEN: chrome_token
|
|
EXIT_ON_HEALTH_FAILURE: "true"
|
|
PRE_REQUEST_HEALTH_CHECK: "true"
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.printer.rule=Host(`printer.example.com`)
|
|
- traefik.http.services.printer.loadbalancer.server.port=3000
|
|
|
|
app:
|
|
image: amruthpillai/reactive-resume:latest
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- postgres
|
|
- minio
|
|
- chrome
|
|
environment:
|
|
# -- Environment Variables --
|
|
PORT: 3000
|
|
NODE_ENV: production
|
|
|
|
# -- URLs --
|
|
PUBLIC_URL: http://example.com
|
|
STORAGE_URL: http://storage.example.com
|
|
|
|
# -- Printer (Chrome) --
|
|
CHROME_TOKEN: chrome_token
|
|
CHROME_URL: ws://chrome:3000
|
|
|
|
# -- Database (Postgres) --
|
|
DATABASE_URL: postgresql://postgres:postgres@postgres:5432/postgres
|
|
|
|
# -- Auth --
|
|
ACCESS_TOKEN_SECRET: access_token_secret
|
|
REFRESH_TOKEN_SECRET: refresh_token_secret
|
|
|
|
# -- Emails --
|
|
MAIL_FROM: noreply@example.com
|
|
# 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:
|
|
|
|
# -- Feature Flags (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://example.com/api/auth/github/callback
|
|
|
|
# -- Google (Optional) --
|
|
# GOOGLE_CLIENT_ID: google_client_id
|
|
# GOOGLE_CLIENT_SECRET: google_client_secret
|
|
# GOOGLE_CALLBACK_URL: http://example.com/api/auth/google/callback
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.app.rule=Host(`example.com`)
|
|
- traefik.http.services.app.loadbalancer.server.port=3000
|
|
|
|
traefik:
|
|
image: traefik
|
|
command:
|
|
- --api.insecure=true
|
|
- --providers.docker=true
|
|
- --providers.docker.exposedbydefault=false
|
|
- --entrypoints.web.address=:80
|
|
ports:
|
|
- "80:80"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
|
|
volumes:
|
|
minio_data:
|
|
postgres_data:
|