bewcloud/docker-compose.yml
Bruno Bernardino d86e65475c
Improve App Selection
This allows not enabling Dashboard and Files. It also sorts the apps in the menu according to the order in the `config.core.enabledApps` array.

Since this will require a major version upgrade (`v3.0.0`), I also took the opportunity to upgrade PostgreSQL. You can [follow this guide on how to upgrade PostgreSQL on Docker containers](https://news.onbrn.com/step-by-step-guide-upgrading-postgresql-docker-containers/).

Finally, this has some minor security improvements (confirming API endpoints won't work if their app is disabled in the config).

Closes #114
Closes #108
2025-12-01 12:25:21 +00:00

58 lines
1.4 KiB
YAML

services:
website:
image: ghcr.io/bewcloud/bewcloud:v3.0.0
restart: always
ports:
- 127.0.0.1:8000:8000
mem_limit: '256m'
env_file:
- path: .env
required: true
volumes:
- ./data-files:/app/data-files
- ./bewcloud.config.ts:/app/bewcloud.config.ts
postgresql:
image: postgres:18.1
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=fake
- POSTGRES_DB=bewcloud
restart: always
volumes:
- bewcloud-db:/var/lib/postgresql/18/docker
# NOTE: uncomment below only if you need to connect to the database from outside the container
# ports:
# - 127.0.0.1:5432:5432
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: '256m'
# NOTE: If you don't want to use the CardDav/CalDav servers, you can comment/remove this service.
radicale:
image: tomsquest/docker-radicale:3.5.8.2
# NOTE: uncomment below only if you need to connect to the CardDav/CalDav servers from outside the container
# ports:
# - 127.0.0.1:5232:5232
init: true
read_only: true
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
cap_add:
- SETUID
- SETGID
- CHOWN
- KILL
restart: always
volumes:
- ./data-radicale:/data
- ./radicale-config:/config:ro
mem_limit: '256m'
volumes:
bewcloud-db:
driver: local