coolify/templates/compose/reactive-resume.yaml
2026-01-27 21:30:50 +01:00

101 lines
3 KiB
YAML

# documentation: https://rxresu.me/
# slogan: A one-of-a-kind resume builder that keeps your privacy in mind.
# category: productivity
# tags: reactive-resume,resume-builder,open-source,2fa
# logo: svgs/rxresume.svg
# port: 3000
services:
reactive-resume:
image: amruthpillai/reactive-resume:v4.3.7
environment:
- SERVICE_URL_REACTIVERESUME_3000
- PUBLIC_URL=$SERVICE_URL_REACTIVERESUME
- 'STORAGE_URL=${SERVICE_URL_MINIO}/default'
- DATABASE_URL=postgresql://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@postgres:5432/${POSTGRES_DB:-postgres}
- ACCESS_TOKEN_SECRET=$SERVICE_PASSWORD_ACCESSTOKEN
- REFRESH_TOKEN_SECRET=$SERVICE_PASSWORD_REFRESHTOKEN
- CHROME_TOKEN=$SERVICE_PASSWORD_CHROMETOKEN
- CHROME_URL=ws://chrome:3000/chrome
- REDIS_URL=redis://redis:6379
- STORAGE_ENDPOINT=minio
- STORAGE_PORT=9000
- STORAGE_REGION=us-east-1
- STORAGE_BUCKET=default
- STORAGE_ACCESS_KEY=$SERVICE_USER_MINIO
- STORAGE_SECRET_KEY=$SERVICE_PASSWORD_MINIO
- STORAGE_USE_SSL=false
- 'DISABLE_SIGNUPS=${SERVICE_DISABLE_SIGNUPS:-false}'
- 'DISABLE_EMAIL_AUTH=${SERVICE_DISABLE_EMAIL_AUTH:-false}'
depends_on:
- postgres
- minio
- chrome
healthcheck:
test:
- CMD
- node
- '-e'
- "require('http').get('http://127.0.0.1:3000', res => process.exit(res.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"
interval: 10s
timeout: 3s
retries: 5
start_period: 10s
postgres:
image: postgres:16-alpine
environment:
- POSTGRES_DB=${POSTGRES_DB:-postgres}
- POSTGRES_USER=$SERVICE_USER_POSTGRES
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 20s
retries: 10
minio:
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
command: server /data --console-address ":9001"
environment:
- MINIO_SERVER_URL=$MINIO_SERVER_URL
- MINIO_BROWSER_REDIRECT_URL=$MINIO_BROWSER_REDIRECT_URL
- MINIO_ROOT_USER=$SERVICE_USER_MINIO
- MINIO_ROOT_PASSWORD=$SERVICE_PASSWORD_MINIO
volumes:
- minio-data:/data
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 5s
timeout: 20s
retries: 10
chrome:
image: ghcr.io/browserless/chrome:latest
platform: linux/amd64
environment:
- HEALTH=true
- TIMEOUT=10000
- CONCURRENT=10
- TOKEN=$SERVICE_PASSWORD_CHROMETOKEN
healthcheck:
test:
- CMD
- curl
- '-f'
- 'http://127.0.0.1:3000/'
interval: 10s
timeout: 3s
retries: 5
redis:
image: redis:7-alpine
command: redis-server
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 20s
retries: 10