
Fluxer is a free and open-source instant messaging and VoIP platform for friends, groups, and communities. It provides messaging, communities, text and voice channels, media uploads, search, presence, and voice and video communication from a web-based interface. Fluxer provides 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.
This article explains how to deploy Fluxer on a Linux server using Docker Compose, expose it over HTTPS with Caddy as a reverse proxy, and create the owner account.
Before you begin, you need to:
fluxer.example.com).This section covers creating a working directory for Fluxer, downloading the official Docker Compose files, and configuring the environment variables required by the application.
Create a new directory for Fluxer.
Navigate into the fluxer directory.
Download the official Docker Compose manifest.
Download the default Caddy configuration.
Download the LiveKit configuration.
Download the example environment file and save it as .env.
The Fluxer directory now contains the following files:
These files define the Fluxer containers, public routing, voice services, and application configuration.
Open the .env file.
Set the following variables at the beginning of the file.
Replace:
fluxer.example.com with your Fluxer domain.admin@example.com with your email address.Save and close the file.
The FLUXER_DOMAIN variable defines the public Fluxer address. FLUXER_CADDY_SITE_ADDRESS specifies the hostname Caddy serves.
Fluxer requires separate secrets for PostgreSQL, Meilisearch, object storage, internal RPC communication, the administration dashboard, media uploads, and LiveKit.
Run the following loop to generate random hexadecimal values and insert them into .env.
Generate the media upload relay secret in Base64 format and insert it into .env file.
Fluxer uses VAPID keys for web push notifications.
Add your user to the docker group to run Docker commands without sudo.
Apply the group change to the current session.
Generate a VAPID key pair using a temporary Node.js container.
Your output contains two values:
publicKey: VAPID public key.privateKey: VAPID private key. Copy the value displayed after publicKey and privateKey.
Add the public key to .env.
Replace YOUR_VAPID_PUBLIC_KEY with the publicKey value from your output.
Add the private key to .env.
Replace YOUR_VAPID_PRIVATE_KEY with the privateKey value from your output.
Restrict access to the .env file so that only your account can read or modify it.
The .env file contains the credentials and secrets for your Fluxer deployment. Do not upload it to a public repository or include its contents in screenshots.
Verify the public Fluxer settings.
Output:
This section covers validating the Docker Compose configuration, deploying the Fluxer containers, and verifying that all services initialize correctly.
Navigate to the Fluxer directory.
Validate the Docker Compose configuration.
The command returns no output when the Compose configuration is valid.
Download the Fluxer container images.
Docker downloads the Fluxer application images and supporting services required by the stack.
Create and start the containers.
The first deployment can take several minutes while Docker downloads images and Fluxer initializes its application, database, search, object storage, and messaging services.
Verify the containers.
Every service should show a status of Up, and services with a health check also show (healthy) once it passes.
The seaweedfs-init container exits after creating the required object-storage buckets. An exit code of 0 for this container is expected.
View the Fluxer API logs.
Press Ctrl + C after the API completes its startup process.
View recent logs from all Fluxer services.
If a container fails to start, view its logs using the service name.
Replace SERVICE_NAME with the failed service, such as api, gateway, or livekit.
Fluxer's official Docker Compose stack includes Caddy as the reverse proxy. Caddy listens on ports 80 and 443, automatically provisions HTTPS certificates for the hostname defined by FLUXER_CADDY_SITE_ADDRESS, and forwards requests to the appropriate Fluxer containers. The API, gateway, media service, administration dashboard, LiveKit signaling, and web application are available through the same public hostname.
Validate the Caddy configuration.
A successful validation indicates that Caddy can load the configuration.
View the Caddy logs.
Caddy automatically requests and renews TLS certificates when fluxer.example.com resolves to your server and ports 80 and 443 are publicly reachable.
This section covers accessing the Fluxer web application, creating the initial owner account, and reviewing the main instance settings.
Open the URL in your web browser.
The Fluxer Set Up Welcome page should appear. Select your preferred language from the Language menu and click Next to continue.
Choose a theme for the Fluxer Admin interface and click Next to continue.
The Create the administrator account page appears. Fluxer displays a message that the instance does not have any accounts yet and that the first account you create automatically becomes the administrator. Click Next to continue.
Configure the administrator account. Enter all required information and click Next to create an account.
Open a new tab in your web browser and access the Fluxer administration dashboard.
Log in using the Fluxer account you created.
Review the requested permissions required by the administration application. Keep the required scopes enabled and click Authorize.
Fluxer redirects you to the Admin dashboard after authorization. The dashboard displays administrative tools in the left navigation menu.
Your Fluxer administrator account is now configured and ready to manage users, guilds, applications, moderation settings, and other instance-level features.
You have deployed Fluxer using Docker Compose and exposed the application through Caddy. Your instance now supports messaging, voice and video channels, and media sharing for your users. For more information, see the official Fluxer documentation.
0 Comments
Be the first to comment and share your perspective with the community.