mirror of
https://github.com/bulwarkmail/webmail.git
synced 2026-11-03 08:15:38 +00:00
55 lines
2.0 KiB
YAML
55 lines
2.0 KiB
YAML
services:
|
|
webmail:
|
|
image: ghcr.io/bulwarkmail/webmail:latest
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
- HOSTNAME=0.0.0.0 # Use "::" for IPv6
|
|
- PORT=3000
|
|
env_file:
|
|
- .env.local
|
|
volumes:
|
|
# Everything Bulwark keeps, in one volume:
|
|
# settings/ encrypted user settings (SETTINGS_DATA_DIR)
|
|
# admin/ config.json, policy.json, admin.json, plugins, themes,
|
|
# branding uploads (ADMIN_CONFIG_DIR)
|
|
# admin-state/ login timestamps, audit.log, setup token (ADMIN_STATE_DIR)
|
|
# plugin-secrets/ users' plugin credentials (PLUGIN_SECRETS_DIR)
|
|
# telemetry/ instance id and usage stats consent (TELEMETRY_DATA_DIR)
|
|
# version-check/ result of the last update check
|
|
#
|
|
# To lock the admin config after the setup wizard, give admin/ its own
|
|
# mount with `:ro` and set ADMIN_CONFIG_READONLY=true.
|
|
#
|
|
# Upgrading from the four volumes this file used to have
|
|
# (bulwark-settings, bulwark-admin, bulwark-admin-state,
|
|
# bulwark-telemetry)? Copy them into the new one before the first start,
|
|
# or the wizard runs again. With the project name from `docker volume ls`:
|
|
# docker compose down && docker compose create
|
|
# docker run --rm -v <project>_bulwark-settings:/old/settings \
|
|
# -v <project>_bulwark-admin:/old/admin \
|
|
# -v <project>_bulwark-admin-state:/old/admin-state \
|
|
# -v <project>_bulwark-telemetry:/old/telemetry \
|
|
# -v <project>_bulwark-data:/new alpine \
|
|
# sh -c 'cp -a /old/. /new/ && chown -R 1001:1001 /new'
|
|
# docker compose up -d
|
|
- bulwark-data:/app/data
|
|
healthcheck:
|
|
test:
|
|
[
|
|
"CMD",
|
|
"wget",
|
|
"--no-verbose",
|
|
"--tries=1",
|
|
"--spider",
|
|
"http://127.0.0.1:3000/api/health",
|
|
]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 10s
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
bulwark-data:
|