diff --git a/projects/reactive-resume/.env b/projects/reactive-resume/.env new file mode 100644 index 0000000..859f994 --- /dev/null +++ b/projects/reactive-resume/.env @@ -0,0 +1,45 @@ +POSTGRES_DB=redacted +POSTGRES_USER=redacted +POSTGRES_PASSWORD=redacted +HEALTH=true +TOKEN=redacted +PROXY_HOST=chrome +PROXY_PORT=3000 +PROXY_SSL=false + +# -- Environment Variables -- +PORT=3000 +NODE_ENV=production + +# -- URLs -- +PUBLIC_URL=redacted +STORAGE_URL=redacted + +# -- Printer (Chrome) -- +CHROME_TOKEN=redacted +CHROME_URL=ws://chrome:3000 +#CHROME_IGNORE_HTTPS_ERRORS=true + +# -- Database (Postgres) -- +DATABASE_URL=postgresql://postgres:postgres@postgres:5432/postgres + +# -- Auth -- +ACCESS_TOKEN_SECRET=redacted +REFRESH_TOKEN_SECRET=redacted + +# -- Emails -- +MAIL_FROM=redacted +SMTP_URL=smtp://redacted:587 + +# -- Storage (Minio) -- +STORAGE_ENDPOINT=redacted +STORAGE_PORT=9000 +STORAGE_BUCKET=reactive-resume +STORAGE_ACCESS_KEY=redacted +STORAGE_SECRET_KEY=redacted +STORAGE_USE_SSL=false +STORAGE_SKIP_BUCKET_CHECK=false + +# -- Email (Optional) -- +DISABLE_SIGNUPS=true +#DISABLE_EMAIL_AUTH=false diff --git a/projects/reactive-resume/.gitignore b/projects/reactive-resume/.gitignore new file mode 100644 index 0000000..7b8eeeb --- /dev/null +++ b/projects/reactive-resume/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +.vscode/ diff --git a/projects/reactive-resume/README.md b/projects/reactive-resume/README.md new file mode 100644 index 0000000..fb2653d --- /dev/null +++ b/projects/reactive-resume/README.md @@ -0,0 +1,3 @@ +# reactive-resume + +This is the reactive-resume Docker Compose stack extracted from the homelab monorepo. diff --git a/projects/reactive-resume/compose.yaml b/projects/reactive-resume/compose.yaml new file mode 100644 index 0000000..f04a477 --- /dev/null +++ b/projects/reactive-resume/compose.yaml @@ -0,0 +1,59 @@ +services: + postgres: + image: postgres:16-alpine + restart: unless-stopped + volumes: + - postgres_data:/var/lib/postgresql/data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] + interval: 10s + timeout: 5s + retries: 5 + environment: + - POSTGRES_DB=${POSTGRES_DB} + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + + chrome: + image: ghcr.io/browserless/chromium:latest + restart: unless-stopped + extra_hosts: + - "host.docker.internal:host-gateway" + environment: + - HEALTH=${HEALTH} + - TOKEN=${CHROME_TOKEN} + - PROXY_HOST=${PROXY_HOST} + - PROXY_PORT=${PROXY_PORT} + - PROXY_SSL=${PROXY_SSL} + + app: + image: amruthpillai/reactive-resume:latest + restart: unless-stopped + ports: + - "3007:3000" + depends_on: + - postgres + - chrome + environment: + - PORT=${PORT} + - NODE_ENV=${NODE_ENV} + - PUBLIC_URL=${PUBLIC_URL} + - STORAGE_URL=${STORAGE_URL} + - CHROME_TOKEN=${CHROME_TOKEN} + - CHROME_URL=${CHROME_URL} + - DATABASE_URL=${DATABASE_URL} + - ACCESS_TOKEN_SECRET=${ACCESS_TOKEN_SECRET} + - REFRESH_TOKEN_SECRET=${REFRESH_TOKEN_SECRET} + - MAIL_FROM=${MAIL_FROM} + - SMTP_URL=${SMTP_URL} + - STORAGE_ENDPOINT=${STORAGE_ENDPOINT} + - STORAGE_PORT=${STORAGE_PORT} + - STORAGE_BUCKET=${STORAGE_BUCKET} + - STORAGE_ACCESS_KEY=${STORAGE_ACCESS_KEY} + - STORAGE_SECRET_KEY=${STORAGE_SECRET_KEY} + - STORAGE_USE_SSL=${STORAGE_USE_SSL} + - STORAGE_SKIP_BUCKET_CHECK=${STORAGE_SKIP_BUCKET_CHECK} + - DISABLE_SIGNUPS=${DISABLE_SIGNUPS} + +volumes: + postgres_data: \ No newline at end of file