Fully dockerized deployment with automatic Let's Encrypt certificates via Traefik's static file provider (no docker.sock needed), bind-mounted data folders instead of named volumes, and domain/secrets kept out of git via .env + rendered templates. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
40 lines
1.7 KiB
Plaintext
40 lines
1.7 KiB
Plaintext
# =============================================================================
|
|
# Matrix stack configuration
|
|
# Copy this file to ".env" and fill in real values before starting the stack.
|
|
# ".env" is git-ignored on purpose: it is the only place where your real
|
|
# domain name and secrets live.
|
|
# =============================================================================
|
|
|
|
# --- Domain ------------------------------------------------------------------
|
|
# Bare domain used as the Matrix server_name (this is what ends up in every
|
|
# user id: @user:DOMAIN). A DNS A/AAAA record for DOMAIN and for each
|
|
# subdomain below must point to this server's IP.
|
|
DOMAIN=example.com
|
|
|
|
# Subdomains (each needs its own DNS record pointing here)
|
|
MATRIX_SUBDOMAIN=matrix
|
|
ELEMENT_SUBDOMAIN=element
|
|
ADMIN_SUBDOMAIN=admin
|
|
TRAEFIK_SUBDOMAIN=traefik
|
|
|
|
# --- Traefik / Let's Encrypt ---------------------------------------------------
|
|
# Email used for Let's Encrypt account registration and expiry notices.
|
|
ACME_EMAIL=changeme@example.com
|
|
|
|
# htpasswd credentials for the Traefik dashboard (traefik.DOMAIN).
|
|
# Generate your own with:
|
|
# openssl passwd -apr1
|
|
# Format: user:hash (escape any literal "$" as "$$" if you edit this by hand
|
|
# outside of a real .env file consumed by docker compose)
|
|
TRAEFIK_DASHBOARD_AUTH='admin:changeme'
|
|
|
|
# --- PostgreSQL (Synapse database) -------------------------------------------
|
|
POSTGRES_DB=synapse
|
|
POSTGRES_USER=synapse
|
|
POSTGRES_PASSWORD=changeme
|
|
|
|
# --- Synapse -------------------------------------------------------------------
|
|
# Shared secret used only once, to create the first admin account via
|
|
# `register_new_matrix_user`. Generate with: openssl rand -hex 32
|
|
REGISTRATION_SHARED_SECRET=changeme
|