2026-10-21 13:17:44 +03:00
|
|
|
# goChat configuration.
|
|
|
|
|
#
|
|
|
|
|
# Copy to .env and adjust:
|
|
|
|
|
# cp .env.example .env
|
|
|
|
|
#
|
|
|
|
|
# docker-compose loads this file into the container via `env_file`, so every
|
|
|
|
|
# variable below is available to the backend (and to nginx for the BACKEND_*
|
|
|
|
|
# ones). When running the backend outside Docker, its own loader reads
|
|
|
|
|
# backend/.env in the same format.
|
|
|
|
|
|
|
|
|
|
# --- backend ---------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
# Address the Go server binds to. Locally: localhost:8080 keeps it off the
|
|
|
|
|
# network. Inside the bundle container docker-compose overrides this to
|
|
|
|
|
# 127.0.0.1:8080 (nginx is the only thing that should reach it).
|
|
|
|
|
ADDR=localhost:8080
|
|
|
|
|
|
|
|
|
|
# SQLite database file. docker-compose overrides this to /data/gochat.db, which
|
|
|
|
|
# lives on the gochat-data volume.
|
|
|
|
|
DB_PATH=gochat.db
|
|
|
|
|
|
|
|
|
|
# Publicly reachable base URL of this service, used to build absolute links
|
|
|
|
|
# such as the avatar URL embedded in Jitsi JWTs. Point it at the external origin
|
|
|
|
|
# (the nginx / reverse-proxy address). Empty falls back to the request Host,
|
|
|
|
|
# which is unreliable behind a proxy.
|
|
|
|
|
PUBLIC_BASE_URL=http://localhost:8088
|
|
|
|
|
|
|
|
|
|
# Comma-separated list of browser origins allowed to call the API. Only needed
|
|
|
|
|
# if the frontend is served from a different origin than the API; in the
|
|
|
|
|
# single-origin setup the frontend and API share one origin.
|
|
|
|
|
CORS_ORIGINS=http://localhost:5173,http://localhost:8088
|
|
|
|
|
|
|
|
|
|
# Send the session and csrf cookies over HTTPS only (sets the Secure flag).
|
|
|
|
|
# The container is intended to run behind an SSL-terminating reverse proxy, so
|
|
|
|
|
# this is true. Set to false only for plain-HTTP local use.
|
|
|
|
|
COOKIE_SECURE=true
|
|
|
|
|
|
|
|
|
|
# Session lifetimes (Go duration strings). "short" is used unless the user
|
|
|
|
|
# chose "remember me", in which case "long" applies.
|
|
|
|
|
SESSION_SHORT_DURATION=24h
|
|
|
|
|
SESSION_LONG_DURATION=720h
|
|
|
|
|
|
2026-10-21 20:13:27 +03:00
|
|
|
# How often the backend purges expired sessions, spent/expired invites and
|
|
|
|
|
# never-activated users (Go duration string). Set to 0 (or a negative value) to
|
|
|
|
|
# disable the background cleanup.
|
|
|
|
|
CLEANUP_INTERVAL=1h
|
|
|
|
|
|
2026-10-21 13:17:44 +03:00
|
|
|
# --- jitsi -----------------------------------------------------------------
|
|
|
|
|
# Shared secret and app id must match the Jitsi (JaaS) deployment that signs
|
|
|
|
|
# and verifies room tokens. JITSI_SECRET has no default and must be set for
|
|
|
|
|
# room joining to work.
|
|
|
|
|
JITSI_SECRET=change-me
|
|
|
|
|
JITSI_APP_ID=gochat
|
|
|
|
|
JITSI_APP_NAME=goChat
|
|
|
|
|
# Where meetings are hosted (the browser is redirected here with a signed JWT).
|
|
|
|
|
JITSI_DOMAIN=meet.jit.si
|
|
|
|
|
|
|
|
|
|
# --- container / compose ---------------------------------------------------
|
|
|
|
|
|
|
|
|
|
# Host port nginx is published on (docker-compose maps ${HTTP_PORT} -> 80).
|
|
|
|
|
HTTP_PORT=8088
|
|
|
|
|
|
|
|
|
|
# Upstream nginx proxies /api to. In the single-image bundle the backend runs
|
|
|
|
|
# on loopback in the same container, so this is 127.0.0.1:8080. Change it if
|
|
|
|
|
# you point nginx at an external backend instead.
|
|
|
|
|
BACKEND_HOST=127.0.0.1
|
|
|
|
|
BACKEND_PORT=8080
|