Deploying Fluxer - An Open Source Instant Messaging and VoIP Platform
Description and use
Fluxer is deployed on a Linux server with HTTPS, all services are healthy, an administrator account is created, and the platform is ready for use.
Problem
Deploying a self‑hosted instant messaging and VoIP platform with secure HTTPS and an administrator account.
Outcome
Fluxer is deployed on a Linux server, HTTPS is automatically provisioned by Caddy, all services are healthy, and an administrator account is created, enabling full platform functionality.
Workflow
- Create a working directory and download Docker Compose, Caddyfile, livekit.yaml, and .env.example
- Edit .env to set FLUXER_DOMAIN, FLUXER_CADDY_SITE_ADDRESS, FLUXER_VAPID_EMAIL
- Generate random secrets for PostgreSQL, Meilisearch, S3, LiveKit, admin, and media services using openssl and sed
- Generate VAPID key pair with a temporary Node.js container and insert public/private keys into .env
- Restrict .env permissions to 600
- Validate Docker Compose configuration with
docker compose config --quiet - Pull container images with
docker compose pull - Start containers with
docker compose up -d - Verify all services are Up and healthy with
docker compose ps -a - Check API and other logs with
docker compose logs - Validate Caddy configuration with
docker compose exec caddy caddy validate - Access the web UI at https://
<domain>to create the first administrator account and authorize the admin app
Evidence
Fluxer ships an official Docker Compose stack that runs the web application, API, gateway, administration dashboard, messaging services, media services, PostgreSQL, Valkey, NATS, Meilisearch, SeaweedFS, LiveKit, and Caddy.
Generate a VAPID key pair using a temporary Node.js container: docker run --rm node:24-alpine npx --yes web-push generate-vapid-keys --json
- Record date: 2026-10-01T22:10:59.386Z