mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-09-30 17:58:11 +00:00
96 lines
2.6 KiB
YAML
96 lines
2.6 KiB
YAML
services:
|
|
db:
|
|
image: postgres:18.6
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: ${DATABASE_NAME}
|
|
POSTGRES_USER: ${DATABASE_USERNAME}
|
|
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
|
|
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql
|
|
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}" ]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
pyrigs:
|
|
build: .
|
|
restart: unless-stopped
|
|
environment:
|
|
SECRET_KEY: ${SECRET_KEY}
|
|
DJANGO_ALLOWED_HOSTS: ${DJANGO_ALLOWED_HOSTS}
|
|
DOMAIN: ${DOMAIN:-example.com}
|
|
DEBUG: ${DEBUG:-false}
|
|
STAGING: ${STAGING:-false}
|
|
SESSION_COOKIE_SECURE_ENABLED: ${SESSION_COOKIE_SECURE_ENABLED:-true}
|
|
CSRF_COOKIE_SECURE_ENABLED: ${CSRF_COOKIE_SECURE_ENABLED:-true}
|
|
FORUM_WEBHOOK_SECRET: ${FORUM_WEBHOOK_SECRET}
|
|
DATABASE_ENGINE: ${DATABASE_ENGINE:-postgresql}
|
|
DATABASE_NAME: ${DATABASE_NAME}
|
|
DATABASE_USERNAME: ${DATABASE_USERNAME}
|
|
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
|
|
DATABASE_HOST: ${DATABASE_HOST:-db}
|
|
DATABASE_PORT: ${DATABASE_PORT:-5432}
|
|
EMAIL_HOST: ${EMAIL_HOST}
|
|
EMAIL_PORT: ${EMAIL_PORT:-25}
|
|
EMAIL_HOST_USER: ${EMAIL_HOST_USER}
|
|
EMAIL_HOST_PASSWORD: ${EMAIL_HOST_PASSWORD}
|
|
EMAIL_USE_TLS: ${EMAIL_USE_TLS:-false}
|
|
EMAIL_USE_SSL: ${EMAIL_USE_SSL:-false}
|
|
EMAIL_FROM: ${EMAIL_FROM}
|
|
HCAPTCHA_SITEKEY: ${HCAPTCHA_SITEKEY:-10000000-ffff-ffff-ffff-000000000001}
|
|
HCAPTCHA_SECRET: ${HCAPTCHA_SECRET:-0x0000000000000000000000000000000000000000}
|
|
SENTRY_DSN: ${SENTRY_DSN:-}
|
|
expose:
|
|
- "8000"
|
|
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
python manage.py migrate --noinput &&
|
|
gunicorn \
|
|
--bind 0.0.0.0:8000 \
|
|
--workers 2 \
|
|
PyRIGS.wsgi
|
|
|
|
develop:
|
|
# Create a `watch` configuration to update the app
|
|
watch:
|
|
# Sync the working directory with the `/app` directory in the container
|
|
- action: sync
|
|
path: .
|
|
target: /app
|
|
# Exclude the project virtual environment
|
|
ignore:
|
|
- .venv/
|
|
|
|
# Rebuild the image on changes to the `pyproject.toml`
|
|
- action: rebuild
|
|
path: ./pyproject.toml
|
|
|
|
nginx:
|
|
image: nginx:stable-alpine
|
|
restart: unless-stopped
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
|
|
volumes:
|
|
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
|
|
- ./nginx/certs:/etc/nginx/certs:ro
|
|
- ./nginx/certbot:/var/www/certbot:ro
|
|
|
|
depends_on:
|
|
- pyrigs
|
|
|
|
volumes:
|
|
postgres_data:
|