|
|
|
version: '3'
|
|
|
|
|
|
|
|
services:
|
|
|
|
bookwyrm-db:
|
|
|
|
container_name: bookwyrm-db
|
|
|
|
image: postgres
|
|
|
|
env_file: bookwyrm/env
|
|
|
|
volumes:
|
|
|
|
- ./data/bookwyrm/pgdata:/var/lib/postgresql/data
|
|
|
|
|
|
|
|
bookwyrm-redis_activity:
|
|
|
|
container_name: bookwyrm-redis_activity
|
|
|
|
image: redis
|
|
|
|
env_file: bookwyrm/env
|
|
|
|
command: redis-server --requirepass redispassword123 --appendonly yes
|
|
|
|
volumes:
|
|
|
|
- ./bookwyrm/redis.conf:/etc/redis/redis.conf:ro
|
|
|
|
- ./data/bookwyrm/redis_activity_data:/data
|
|
|
|
restart: on-failure
|
|
|
|
|
|
|
|
bookwyrm-redis_broker:
|
|
|
|
container_name: bookwyrm-redis_broker
|
|
|
|
image: redis
|
|
|
|
command: redis-server --requirepass redispassword123 --appendonly yes
|
|
|
|
env_file: bookwyrm/env
|
|
|
|
volumes:
|
|
|
|
- ./bookwyrm/redis.conf:/etc/redis/redis.conf:ro
|
|
|
|
- ./data/bookwyrm/redis_broker_data:/data
|
|
|
|
restart: on-failure
|
|
|
|
|
|
|
|
bookwyrm-web:
|
|
|
|
container_name: bookwyrm-web
|
|
|
|
image: osresearch/bookwyrm:oidc
|
|
|
|
command: python manage.py runserver 0.0.0.0:8000
|
|
|
|
env_file: bookwyrm/env
|
|
|
|
volumes:
|
|
|
|
- ./data/bookwyrm/static_volume:/app/static
|
|
|
|
- ./data/bookwyrm/media_volume:/app/images
|
|
|
|
environment:
|
|
|
|
- DB_INIT=True
|
|
|
|
- DOMAIN=${BOOKWYRM_HOSTNAME}.${DOMAIN_NAME}
|
|
|
|
- EMAIL=books@${DOMAIN_NAME}
|
|
|
|
- EMAIL_HOST=${SMTP_SERVER}
|
|
|
|
- EMAIL_PORT=${SMTP_PORT}
|
|
|
|
- EMAIL_HOST_USER=${SMTP_USER}
|
|
|
|
- EMAIL_HOST_PASSWORD=${SMTP_PASSWORD}
|
|
|
|
- EMAIL_USE_TLS=true
|
|
|
|
- EMAIL_USE_SSL=false
|
|
|
|
- EMAIL_SENDER_NAME=books
|
|
|
|
- EMAIL_SENDER_DOMAIN=${DOMAIN_NAME}
|
|
|
|
- OIDC_ENABLED=true
|
|
|
|
- OIDC_CLIENT_ID=bookwyrm
|
|
|
|
- OIDC_CLIENT_SECRET=${BOOKWYRM_CLIENT_SECRET}
|
|
|
|
- OIDC_OP_BASE_URL=${KEYCLOAK_BASE_URL}
|
|
|
|
depends_on:
|
|
|
|
- bookwyrm-db
|
|
|
|
- bookwyrm-celery_worker
|
|
|
|
- bookwyrm-redis_activity
|
|
|
|
|
|
|
|
bookwyrm-celery_worker:
|
|
|
|
container_name: bookwyrm-worker
|
|
|
|
image: osresearch/bookwyrm:oidc
|
|
|
|
command: celery -A celerywyrm worker -l info -Q high_priority,medium_priority,low_priority
|
|
|
|
env_file: bookwyrm/env
|
|
|
|
volumes:
|
|
|
|
- ./data/bookwyrm/static_volume:/app/static
|
|
|
|
- ./data/bookwyrm/media_volume:/app/images
|
|
|
|
environment:
|
|
|
|
- DOMAIN=${BOOKWYRM_HOSTNAME}.${DOMAIN_NAME}
|
|
|
|
- EMAIL=books@${DOMAIN_NAME}
|
|
|
|
- EMAIL_HOST=${SMTP_SERVER}
|
|
|
|
- EMAIL_PORT=${SMTP_PORT}
|
|
|
|
- EMAIL_HOST_USER=${SMTP_USER}
|
|
|
|
- EMAIL_HOST_PASSWORD=${SMTP_PASSWORD}
|
|
|
|
- EMAIL_USE_TLS=true
|
|
|
|
- EMAIL_USE_SSL=false
|
|
|
|
- EMAIL_SENDER_NAME=books
|
|
|
|
- EMAIL_SENDER_DOMAIN=${DOMAIN_NAME}
|
|
|
|
depends_on:
|
|
|
|
- bookwyrm-db
|
|
|
|
- bookwyrm-redis_broker
|
|
|
|
restart: on-failure
|
|
|
|
|
|
|
|
bookwyrm-celery_beat:
|
|
|
|
container_name: bookwyrm-beat
|
|
|
|
image: osresearch/bookwyrm:oidc
|
|
|
|
command: celery -A celerywyrm beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler
|
|
|
|
env_file: bookwyrm/env
|
|
|
|
volumes:
|
|
|
|
- ./data/bookwyrm/static_volume:/app/static
|
|
|
|
- ./data/bookwyrm/media_volume:/app/images
|
|
|
|
environment:
|
|
|
|
- DOMAIN=${BOOKWYRM_HOSTNAME}.${DOMAIN_NAME}
|
|
|
|
- EMAIL=books@${DOMAIN_NAME}
|
|
|
|
- EMAIL_HOST=${SMTP_SERVER}
|
|
|
|
- EMAIL_PORT=${SMTP_PORT}
|
|
|
|
- EMAIL_HOST_USER=${SMTP_USER}
|
|
|
|
- EMAIL_HOST_PASSWORD=${SMTP_PASSWORD}
|
|
|
|
- EMAIL_USE_TLS=true
|
|
|
|
- EMAIL_USE_SSL=false
|
|
|
|
- EMAIL_SENDER_NAME=books
|
|
|
|
- EMAIL_SENDER_DOMAIN=${DOMAIN_NAME}
|
|
|
|
depends_on:
|
|
|
|
- bookwyrm-celery_worker
|
|
|
|
restart: on-failure
|
|
|
|
|
|
|
|
bookwyrm-flower:
|
|
|
|
container_name: bookwyrm-flower
|
|
|
|
image: osresearch/bookwyrm:oidc
|
|
|
|
command: celery -A celerywyrm flower --basic_auth=admin:${BOOKWYRM_ADMIN_PASSWORD} --url_prefix=flower
|
|
|
|
env_file: bookwyrm/env
|
|
|
|
volumes:
|
|
|
|
- ./data/bookwyrm/static_volume:/app/static
|
|
|
|
- ./data/bookwyrm/media_volume:/app/images
|
|
|
|
environment:
|
|
|
|
- DOMAIN=${BOOKWYRM_HOSTNAME}.${DOMAIN_NAME}
|
|
|
|
- EMAIL=books@${DOMAIN_NAME}
|
|
|
|
- EMAIL_HOST=${SMTP_SERVER}
|
|
|
|
- EMAIL_PORT=${SMTP_PORT}
|
|
|
|
- EMAIL_HOST_USER=${SMTP_USER}
|
|
|
|
- EMAIL_HOST_PASSWORD=${SMTP_PASSWORD}
|
|
|
|
- EMAIL_USE_TLS=true
|
|
|
|
- EMAIL_USE_SSL=false
|
|
|
|
- EMAIL_SENDER_NAME=books
|
|
|
|
- EMAIL_SENDER_DOMAIN=${DOMAIN_NAME}
|
|
|
|
depends_on:
|
|
|
|
- bookwyrm-db
|
|
|
|
- bookwyrm-redis_broker
|
|
|
|
restart: on-failure
|
|
|
|
|
|
|
|
nginx:
|
|
|
|
volumes:
|
|
|
|
- ./bookwyrm/nginx.conf:/etc/nginx/templates/bookwyrm.conf.template:ro
|
|
|
|
- ./data/bookwyrm/static_volume:/bookwyrm/app/static:ro
|
|
|
|
- ./data/bookwyrm/media_volume:/bookwyrm/app/images:ro
|
|
|
|
|
|
|
|
# add the subdomain client secrets to the keycloak-setup volume
|
|
|
|
keycloak:
|
|
|
|
volumes:
|
|
|
|
- ./bookwyrm/keycloak.sh:/keycloak-setup/bookwyrm.sh:ro
|