Files
szurubooru/compose.yml
Amras 60979c15c4 fix: remove "-" from ENV names
The BULK-EDIT config variables had the illegal char '-',
which prevents deployment.
Replaced these with BULK_EDIT.
2026-01-14 09:00:05 +00:00

204 lines
5.8 KiB
YAML

version: "3.8"
services:
app:
image: szurubooru/client:2.5
depends_on:
- server
environment:
- BACKEND_HOST=${STACK_NAME}_server
- BASE_URL
- BUILD_INFO=2.5
volumes:
- data:/data:ro
deploy:
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=80"
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})"
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "coop-cloud.${STACK_NAME}.version=0.1.1+2.5"
networks:
- internal_network
- proxy
server:
image: szurubooru/server:2.5
hostname: ${STACK_NAME}_server
depends_on:
- db
volumes:
- data:/data
deploy:
update_config:
failure_action: rollback
order: start-first
configs:
- source: server_entrypoint
target: /entrypoint.sh
mode: 0555
- source: server_config
target: /opt/app/config.yaml
mode: 0555
secrets:
- db_password
- smtp_password
- salt
environment:
- POSTGRES_HOST=${DB_HOST}
- POSTGRES_USER=${DB_USER}
- POSTGRES_DB=${DB_NAME}
- POSTGRES_PORT=${DB_PORT}
- LOG_SQL
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
- THREADS
- DOMAIN
- WEBSITE_NAME
- SMTP_HOST
- SMTP_PORT
- SMTP_USER
- SMTP_FROM
- CONTACT_EMAIL
- ALLOW_BROKEN_UPLOADS
- PRIVILEGE_CREATE_SELF
- PRIVILEGE_CREATE_ANY_USERS
- PRIVILEGE_LIST_USERS
- PRIVILEGE_VIEW_USERS
- PRIVILEGE_EDIT_ANY_NAME
- PRIVILEGE_EDIT_ANY_PASS
- PRIVILEGE_EDIT_ANY_EMAIL
- PRIVILEGE_EDIT_ANY_AVATAR
- PRIVILEGE_EDIT_ANY_RANK
- PRIVILEGE_EDIT_OWN_NAME
- PRIVILEGE_EDIT_OWN_PASS
- PRIVILEGE_EDIT_OWN_EMAIL
- PRIVILEGE_EDIT_OWN_AVATAR
- PRIVILEGE_EDIT_OWN_RANK
- PRIVILEGE_DELETE_ANY_USERS
- PRIVILEGE_DELETE_SELF
- PRIVILEGE_LIST_ANY_USER_TOKENS
- PRIVILEGE_LIST_OWN_USER_TOKENS
- PRIVILEGE_CREATE_ANY_USER_TOKENS
- PRIVILEGE_CREATE_OWN_USER_TOKENS
- PRIVILEGE_EDIT_ANY_USER_TOKENS
- PRIVILEGE_EDIT_OWN_USER_TOKENS
- PRIVILEGE_DELETE_ANY_USER_TOKENS
- PRIVILEGE_DELETE_OWN_USER_TOKENS
- PRIVILEGE_CREATE_ANONYMOUS_POSTS
- PRIVILEGE_CREATE_IDENTIFIED_POSTS
- PRIVILEGE_LIST_POSTS
- PRIVILEGE_REVERSE_SEARCH_POSTS
- PRIVILEGE_VIEW_POSTS
- PRIVILEGE_VIEW_FEATURED_POSTS
- PRIVILEGE_EDIT_POST_CONTENT
- PRIVILEGE_EDIT_POST_FLAGS
- PRIVILEGE_EDIT_POST_NOTES
- PRIVILEGE_EDIT_POST_RELATIONS
- PRIVILEGE_EDIT_POST_SAFETY
- PRIVILEGE_EDIT_POST_SOURCE
- PRIVILEGE_EDIT_POST_TAGS
- PRIVILEGE_EDIT_POST_THUMBNAIL
- PRIVILEGE_FEATURE_POSTS
- PRIVILEGE_DELETE_POSTS
- PRIVILEGE_SCORE_POSTS
- PRIVILEGE_MERGE_POSTS
- PRIVILEGE_FAVORITE_POSTS
- PRIVILEGE_BULK_EDIT_POST_TAGS
- PRIVILEGE_BULK_EDIT_POST_SAFETY
- PRIVILEGE_BULK_DELETE_POSTS
- PRIVILEGE_CREATE_TAGS
- PRIVILEGE_EDIT_TAG_NAMES
- PRIVILEGE_EDIT_TAG_CATEGORY
- PRIVILEGE_EDIT_TAG_DESCRIPTION
- PRIVILEGE_EDIT_TAG_IMPLICATIONS
- PRIVILEGE_EDIT_TAG_SUGGESTIONS
- PRIVILEGE_LIST_TAGS
- PRIVILEGE_VIEW_TAGS
- PRIVILEGE_MERGE_TAGS
- PRIVILEGE_DELETE_TAGS
- PRIVILEGE_CREATE_TAG_CATEGORIES
- PRIVILEGE_EDIT_TAG_CATEGORY_NAME
- PRIVILEGE_EDIT_TAG_CATEGORY_COLOR
- PRIVILEGE_EDIT_TAG_CATEGORY_ORDER
- PRIVILEGE_LIST_TAG_CATEGORIES
- PRIVILEGE_VIEW_TAG_CATEGORIES
- PRIVILEGE_DELETE_TAG_CATEGORIES
- PRIVILEGE_SET_DEFAULT_TAG_CATEGORIES
- PRIVILEGE_CREATE_POOLS
- PRIVILEGE_EDIT_POOL_NAMES
- PRIVILEGE_EDIT_POOL_CATEGORY
- PRIVILEGE_EDIT_POOL_DESCRIPTION
- PRIVILEGE_EDIT_POOL_POSTS
- PRIVILEGE_LIST_POOLS
- PRIVILEGE_VIEW_POOLS
- PRIVILEGE_MERGE_POOLS
- PRIVILEGE_DELETE_POOLS
- PRIVILEGE_CREATE_POOL_CATEGORIES
- PRIVILEGE_EDIT_POOL_CATEGORY_NAME
- PRIVILEGE_EDIT_POOL_CATEGORY_COLOR
- PRIVILEGE_LIST_POOL_CATEGORIES
- PRIVILEGE_VIEW_POOL_CATEGORIES
- PRIVILEGE_DELETE_POOL_CATEGORIES
- PRIVILEGE_SET_DEFAULT_POOL_CATEGORIES
- PRIVILEGE_CREATE_COMMENTS
- PRIVILEGE_DELETE_ANY_COMMENTS
- PRIVILEGE_DELETE_OWN_COMMENTS
- PRIVILEGE_EDIT_ANY_COMMENTS
- PRIVILEGE_EDIT_OWN_COMMENTS
- PRIVILEGE_LIST_COMMENTS
- PRIVILEGE_VIEW_COMMENTS
- PRIVILEGE_SCORE_COMMENTS
- PRIVILEGE_LIST_SNAPSHOTS
- PRIVILEGE_CREATE_UPLOADS
- PRIVILEGE_USE_DOWNLOADER
entrypoint: /entrypoint.sh
networks:
- internal_network
- proxy
db:
image: postgres:11-alpine
secrets:
- db_password
environment:
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
volumes:
- postgres:/var/lib/postgresql/data
networks:
- internal_network
configs:
server_config:
name: ${STACK_NAME}_server_config_${SERVER_CONFIG_VERSION}
file: server.conf.tmpl
template_driver: golang
server_entrypoint:
name: ${STACK_NAME}_entrypoint_${SERVER_ENTRYPOINT_VERSION}
file: entrypoint.sh.tmpl
template_driver: golang
secrets:
db_password:
external: true
name: ${STACK_NAME}_db_password_${SECRET_DB_PASSWORD_VERSION}
smtp_password:
external: true
name: ${STACK_NAME}_smtp_password_${SECRET_SMTP_PASSWORD_VERSION}
salt:
external: true
name: ${STACK_NAME}_salt_${SECRET_SALT_VERSION}
volumes:
data:
postgres:
networks:
proxy:
external: true
internal_network:
internal: true