# .env.example # ── core ────────────────────────────────────────────────────────────── DATABASE_URL=postgres://mapserver:CHANGEME@127.0.0.1:5432/mapserver BIND_ADDR=127.0.0.1:8080 # Subpath nginx serves this under. nginx does NOT strip it. # Leave empty (or "/") to serve from the domain root. BASE_PATH=/maps # Origin only, no trailing slash. BASE_PATH is appended for reset links. PUBLIC_URL=https://your-domain.example # ── auth ────────────────────────────────────────────────────────────── # Shared secret required at registration. There is no other admin lever. REG_TOKEN=CHANGEME-long-random-string SESSION_DURATION_DAYS=30 # ── map ─────────────────────────────────────────────────────────────── # Served to the browser via GET /api/config, so switching providers (or to # OpenTopoMap for hiking) is an edit and a restart, not a recompile. # Use the apex host: the {s}.tile.openstreetmap.org sharded form is deprecated. TILE_URL=https://tile.openstreetmap.org/{z}/{x}/{y}.png # ── storage ─────────────────────────────────────────────────────────── GPX_DIR=/home/mapserver/gpx # ── smtp ────────────────────────────────────────────────────────────── # Leave SMTP_HOST empty to use the stub transport: reset links get logged # at info level instead of emailed. The whole flow is testable that way. SMTP_HOST= SMTP_PORT=587 # starttls (587) | implicit (465) | none (localhost/mailpit only) SMTP_TLS=starttls SMTP_USERNAME= SMTP_PASSWORD= # MUST be an address this SMTP account is allowed to send as, or the # provider returns 550/553 at send time and it looks like an auth failure. SMTP_FROM=mapserver@your-domain.example RUST_LOG=rs_maps=info,tower_http=warn