Skip to content

Instantly share code, notes, and snippets.

@fwartner
Created August 31, 2022 14:56
Show Gist options
  • Save fwartner/d76e3b94bb4e162a69b059004f7dfa36 to your computer and use it in GitHub Desktop.
Save fwartner/d76e3b94bb4e162a69b059004f7dfa36 to your computer and use it in GitHub Desktop.
Papermerge custom ports
version: '3.7'
# Any top-level key starting with x- in a Docker Compose file will be
# ignored
x-backend: &backend # yaml anchor definition
image: ${APP_IMAGE}:${APP_TAG}
volumes:
- media_root:/app/media
environment:
# PAPERMERGE__<section>__<variable>
- PAPERMERGE__MAIN__SECRET_KEY=${SECRET_KEY}
- PAPERMERGE__DATABASE__TYPE=postgres
- PAPERMERGE__DATABASE__USER=${DB_USER}
- PAPERMERGE__DATABASE__NAME=${DB_NAME}
- PAPERMERGE__DATABASE__PASSWORD=${DB_PASSWORD}
- PAPERMERGE__DATABASE__HOST=${DB_HOST}
- PAPERMERGE__REDIS__HOST=${REDIS_HOST}
- PAPERMERGE__REDIS__PORT=${REDIS_PORT}
- PAPERMERGE__ELASTICSEARCH__HOSTS=${ES_HOSTS}
- PAPERMERGE__ELASTICSEARCH__PORT=${ES_PORT}
- PAPERMERGE__MAIN__TIMEZONE=${TIMEZONE}
- DJANGO_SUPERUSER_USERNAME=${SUPERUSER_USERNAME}
- DJANGO_SUPERUSER_EMAIL=${SUPERUSER_EMAIL}
- DJANGO_SUPERUSER_PASSWORD=${SUPERUSER_PASSWORD}
- DJANGO_SETTINGS_MODULE=config.settings
services:
worker: # celery worker
<<: *backend
command: worker
ws_server: # websockets server / daphne
<<: *backend
command: ws_server
labels:
- "traefik.enable=true"
- "traefik.http.routers.ws_server.rule=Host(`${USE_HOSTNAME}`) && PathPrefix(`/ws/`)"
backend: # rest api backend / uwsgi
<<: *backend
labels:
- "traefik.enable=true"
- "traefik.http.routers.backend.rule=Host(`${USE_HOSTNAME}`) && PathPrefix(`/api/`)"
db:
image: postgres:14.4
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=${DB_USER}
- POSTGRES_DB=${DB_NAME}
- POSTGRES_PASSWORD=${DB_PASSWORD}
redis:
image: 'redis:6'
ports:
- '6379:6379'
volumes:
- 'redisdata:/data'
traefik:
image: "traefik:v2.6"
command:
#- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
ports:
- "8012:80"
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
frontend: # emberjs
image: ${PAPERMERGE_JS_IMAGE}:${PAPERMERGE_JS_TAG}
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.rule=Host(`${USE_HOSTNAME}`) && PathPrefix(`/`)"
es:
image: docker.elastic.co/elasticsearch/elasticsearch:7.16.2
environment:
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ports:
- 9220:9200
- 9330:9300
volumes:
postgres_data:
media_root:
redisdata:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment