docker-compose environment for the entire v.st system https://v.st/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
env/bookwyrm.yaml

140 lines
4.5 KiB

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