mirror of
https://github.com/ancsemi/Haven.git
synced 2026-10-26 16:45:16 +00:00
56 lines
3.1 KiB
YAML
56 lines
3.1 KiB
YAML
# ── Haven Docker Compose ─────────────────────────────────
|
|
# Quick start: docker compose up -d
|
|
# Stop: docker compose down
|
|
# View logs: docker compose logs -f haven
|
|
# Update: docker compose pull && docker compose up -d --force-recreate
|
|
# Shell: docker compose exec haven sh
|
|
# ─────────────────────────────────────────────────────────
|
|
|
|
services:
|
|
haven:
|
|
image: ghcr.io/ancsemi/haven:latest
|
|
# build: . # Uncomment to build from source instead of using the pre-built image
|
|
container_name: haven
|
|
ports:
|
|
- "${PORT:-3000}:${PORT:-3000}" # Main HTTPS port
|
|
- "${REDIRECT_PORT:-3001}:${REDIRECT_PORT:-3001}" # HTTP → HTTPS redirect
|
|
# ── Voice relay (Settings → Large Server Setup) ──
|
|
# Uncomment both lines when you switch the relay on, and use the same
|
|
# port the setup page shows. It needs UDP and TCP.
|
|
# - "40000:40000/udp"
|
|
# - "40000:40000/tcp"
|
|
volumes:
|
|
- haven_data:/data
|
|
# ── Or use a local folder instead (good for NAS / Synology): ──
|
|
# - ./haven-data:/data
|
|
environment:
|
|
- PORT=${PORT:-3000}
|
|
- HOST=0.0.0.0
|
|
# - SERVER_NAME=My Haven # Name shown in the UI
|
|
# - ADMIN_USERNAME=admin # First account to register becomes admin
|
|
# - GIPHY_API_KEY= # Optional: enable GIF search (GIPHY)
|
|
# - KLIPY_API_KEY= # Optional: enable GIF search (KLIPY)
|
|
# - PREFERRED_GIF_SEARCH= # Optional: klipy, giphy, or tenor
|
|
# - VAPID_EMAIL=mailto:you@example # Optional: email for push notifications
|
|
# - TURN_URL=turn:your-server:3478 # Optional: TURN relay for voice over internet
|
|
# - TURN_SECRET=your-secret # Shared secret (coturn --use-auth-secret)
|
|
# - OIDC_CLIENT_SECRET=client-secret # The client secret as defined by your OIDC provider.
|
|
# Full text search tokenizer. Controls how message text is matched.
|
|
# Takes effect on restart; changing it triggers a one time reindex.
|
|
# trigram Matches text anywhere inside words, so apple finds apple,
|
|
# applesauce and pineapple. Most flexible for partial matches.
|
|
# Largest index (about 3 to 4x the message text) and needs
|
|
# queries of at least 3 characters.
|
|
# unicode61 Whole word and prefix matching, so apple finds apple and
|
|
# apple* but not applesauce. Smallest and fastest, best ranking.
|
|
# porter Like unicode61 plus English stemming, so run also finds
|
|
# running and ran. Small index, English focused, no substrings.
|
|
# Default is unicode61, the closest match to how Discord search behaves.
|
|
# - HAVEN_SEARCH_TOKENIZER=unicode61
|
|
# Uncomment to load settings from a .env file:
|
|
# env_file: .env
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
haven_data:
|