82541536af
This should fix most scaling problems without needing to start more server instances. By default, waitress maintains at most 4 threads. This works fine if the database is small (sub 100k posts) but causes a large Task queue depth to occur if the database is larger. Letting users increase the amount of threads means that one server instance is able to handle more requests without locking up the rest of the site. This adds a new environment variable to .env, THREADS, which can be used to configure the amount of threads to start and is by default set to 4 (the default amount used by waitress).
48 lines
1.2 KiB
YAML
48 lines
1.2 KiB
YAML
## Example Docker Compose configuration
|
|
##
|
|
## Use this as a template to set up docker-compose, or as guide to set up other
|
|
## orchestration services
|
|
version: '2'
|
|
|
|
services:
|
|
|
|
server:
|
|
image: szurubooru/server:latest
|
|
depends_on:
|
|
- sql
|
|
environment:
|
|
## These should be the names of the dependent containers listed below,
|
|
## or FQDNs/IP addresses if these services are running outside of Docker
|
|
POSTGRES_HOST: sql
|
|
## Credentials for database:
|
|
POSTGRES_USER:
|
|
POSTGRES_PASSWORD:
|
|
## Commented Values are Default:
|
|
#POSTGRES_DB: defaults to same as POSTGRES_USER
|
|
#POSTGRES_PORT: 5432
|
|
#LOG_SQL: 0 (1 for verbose SQL logs)
|
|
THREADS:
|
|
volumes:
|
|
- "${MOUNT_DATA}:/data"
|
|
- "./server/config.yaml:/opt/app/config.yaml"
|
|
|
|
client:
|
|
image: szurubooru/client:latest
|
|
depends_on:
|
|
- server
|
|
environment:
|
|
BACKEND_HOST: server
|
|
BASE_URL:
|
|
volumes:
|
|
- "${MOUNT_DATA}:/data:ro"
|
|
ports:
|
|
- "${PORT}:80"
|
|
|
|
sql:
|
|
image: postgres:11-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER:
|
|
POSTGRES_PASSWORD:
|
|
volumes:
|
|
- "${MOUNT_SQL}:/var/lib/postgresql/data"
|