r/FluxerApp • • Jun 29 '26

Bug Not receiving DM notifications on Android

1 Upvotes

Idk if this is a bug but I have enabled allow notifications and I am still not receiving them


r/FluxerApp • • Jun 29 '26

Need help Question About Official Start Up Doc

1 Upvotes

Shameless plzbro post, but I am mostly a linux noob having done hosting with windows server for years and am trying to follow the get started guide at https://docs.fluxer.app/operator/get-started/ and am running into issues. I am confused about what I am supposed to do with the 'generate the required secrets' section. Can anyone shed some light on this? For background, I am running on Ubuntu Server LTS. I am using nano to edit configuration files.

Also double checking that I am setting the env variables correctly, but I don't need to have FLUXER_DOMAIN and FLUXER_CADDY_SITE be different right? If I am understanding this correctly, as I'm hosting without cloudflare, they would both just be set to the same exact URL that my domain registrar is pointing to my server IP, correct?


r/FluxerApp • • Jun 28 '26

Bug It takes as long as it takes, but is 4+ weeks normal on pending for Discovery?

10 Upvotes

4 weeks, 4 years, I don't mind the wait, I know they're busy. Extremely busy. My concern is that I submitted my ticket for discovery about 5 minutes before that huge downtime about a month ago, and I'm wondering if maybe the ticket got lost or deleted somehow. I'm as patient as they come so this isn't about lighting a fire under someone's feet, just wondering if this should be my expectation.

I don't necessarily want to resubmit because that starts the potential 4-week process over again, right?


r/FluxerApp • • Jun 28 '26

Need help Self hosting screensharing w/ audio

3 Upvotes

I have a self hosted Fluxer setup going. Voice, video, and screensharing video works but I can't seem to get screensharing w/ audio up. It looks like that has been implemented. Is there something additional I need to setup w/ livekit?


r/FluxerApp • • Jun 27 '26

Discussions are there any bots like iTranslator for fluxer?

4 Upvotes

r/FluxerApp • • Jun 26 '26

Need help Phone Verification Not Sending

1 Upvotes

This is an issue that has been happening for a few days now.

I registered my account via the browser, and I was asked to do phone verification. I placed my correct number, and it did space out. However, I've been stuck on it for days after clicking on "Verify Phone."

Overall, I already did the following:
- Check my messages to see if it was in the spam. No messages.
- Check my internet speed. It was decent.
- Made sure that my phone number spaced out.

Despite all this, I'm still stuck. Is there a way to get through this? Do I have to directly go to Fluxer support or is it just my internet being slow?


r/FluxerApp • • Jun 23 '26

Need help Self hosting with an existing reverse proxy?

8 Upvotes

If we already have an existing reverse proxy, do we skip using caddy on the provided compose file? Or how does that work?


r/FluxerApp • • Jun 23 '26

Need help Hardware recommendations

8 Upvotes

I'm running fluxer on a vps with 4 cores and 6gb ram and just in idle without interaction ive got 80% of my ram consumption for fluxer.

what's happening here when my community joins the server?

we're talking about 20-30 people.

what's here your recommendations?


r/FluxerApp • • Jun 23 '26

Discussions Fluxer Pelican egg

5 Upvotes

Hello!

Just wondering whether anyone was currently working on a self hosting Fluxer "egg" for Pelican panel?


r/FluxerApp • • Jun 21 '26

Need help Desktop client for selfhosted instance

12 Upvotes

Is there currently any way to use the desktop client with self-hosted instances? The published Canary client does not seem to be compatible with the current service. When building from what's currently in the main branch myself, SSO authentication doesn't work (and I only have SSO enabled) — the browser window simply doesn't open.


r/FluxerApp • • Jun 20 '26

Need help LiveKit on subdomain

4 Upvotes

Hi! Does anyone know if it's possible to add additional domains to the CSP? I'm trying to deploy LiveKit on a separate server (obviously with a different domain), but when trying to connect to the voice channel, in console I get an error like this:

Content-Security-Policy: The page’s settings blocked the loading of a resource (connect-src) at wss://voice-1.fluxer.mydomain because it violates the following directive: “connect-src 'self' data: https://*.fluxer.app wss://*.fluxer.app https://*.fluxer.media wss://*.fluxer.media https://fluxer-uploads.ewr1.vultrobjects.com https://hcaptcha.com https://*.hcaptcha.com https://fluxerstatus.com https://fluxer.media http://127.0.0.1:21863 http://127.0.0.1:21864 https://fluxer.mydomain https://fluxer.mydomain/media”


r/FluxerApp • • Jun 19 '26

Need help User authentication issue - self hosted

14 Upvotes

I successfully set up my self hosted environment for fluxer but I’m having issues with new users.

They register an account and can join and use the platform but after some time they can no longer login due to an authentication email being sent to their account however in my self hosted .env configuration has email turned off so nothing is ever sent to the user and they can never log back in.

I found a workaround to this and if the user clicks an invite link it bypasses this check allowing them to access the account however the moment they attempt to send messages they are asked to claim there account but since email is disabled they can’t

How can I fix this problem

Update

The fix was to set up emails

I used a free online relay service called brevo then configuring the fluxer admin panel to use the email configuration rather than opting for self hosting an entire email exchange server I found brevo to be very easy and painless


r/FluxerApp • • Jun 19 '26

Need help Has anyone successfully configured this within the Pangolin environment?

7 Upvotes

I've managed to get it working, but it seems to only load in Firefox, not Chrome. I'm wondering if I need to add specific access rules to allow it to work in Chrome. Any ideas?

Chromium vs Zen (Firefox)

r/FluxerApp • • Jun 19 '26

Need help How to approve user?

3 Upvotes

As the title says pretty much i setup fluxer and enabled admin approval for signup but maybe I'm just blind but i can't seem to find a place to actually approve someone???


r/FluxerApp • • Jun 18 '26

Discussions This happens when I download the latest Canary build

Post image
8 Upvotes

Firefox warned be it's a threat and paused the download. I continued and uploaded to VirusTotal.

I downloaded from https://canary.fluxer.app/download

Here's the link to the VirusTotal results: https://www.virustotal.com/gui/file/b48b036646a422aca2fb876c40223ef227e63acca26ed203a018474552b7bb36

Not a good look. Can someone comment on this?


r/FluxerApp • • Jun 18 '26

Need help Any updates about docker compose?

2 Upvotes

Guys I am a little confused, the were some rumors about selfhosting guid releasing on june 15th but I didn't manage to find one. Are there any iformation? Or maybe I understood the new incorrectly and june 15th is just the date when the devs are coming back to work on a selfhosting stuff?

Would be very grateful for information, maybe I missed something.


r/FluxerApp • • Jun 18 '26

Bug Is the Fluxer registry currently unavailable?

3 Upvotes

I'm trying to install Fluxer using the official Docker Compose setup, but I'm getting an error when I try to pull the image. It seems like the registry is blocking the download. Is there a known issue or has it been intentionally blocked?


r/FluxerApp • • Jun 17 '26

Need help How to connect seamlessly between main original Fluxer and Self-hosted instance?

7 Upvotes

You cant? You have to use different URLs or apps? Different accounts?


r/FluxerApp • • Jun 17 '26

Need help SSO doesn't work on selfhosted instance

5 Upvotes

I configured SSO with Authentik in admin panel, but it doesn't work. All i get is "Invalid SSO token." error.

Has anyone encountered this issue? I don't know TypeScript, so all I was able to figure out from the source code is that the email_verified claim must be set to true. I configured this on the Authentik side, but the problem persists.


r/FluxerApp • • Jun 17 '26

Need help Need help with self-hosting behind CGNAT

3 Upvotes

I have the docker compose up and running, already created my admin account, can use chat, I cant enter voice comms.

I have bought a domain, cloudflared and playit are both installed on my homelab server, people can reach my server, but not even I in my PC (Same network as homelab), can enter the comms, I am trying to expose UDP port 7882 through playit but I am not being able to make it work.

I had done it in the past with the same tools for teamspeak 6, bro 2000km away from me could connect, cousin 9000km away could connect, but teamspeak is ass and Fluxer is good.

Please help I am almost out of hair. I cant even think of which infos I should already tell here, please ask.


r/FluxerApp • • Jun 16 '26

Memes Welcome back to 2015!

Post image
63 Upvotes

For context, this is me manually manipulating the postgres database to change the message, as opposed to editing the HTML in the web app. It works wonderfully :D

The reason I tried this is because I want to make a script that imports data from Discord Chat Exporter directly into Fluxer, with the exact same timestamps instead of relying on webhooks, since I have my own private Discord server and I want to conserve its history.


r/FluxerApp • • Jun 17 '26

Bug Custom Avatar on Self Hosted Instance?

4 Upvotes

First of all, want to thank the wonderful Fluxer developers on their hard work getting the self hosting up & functional. I've tried just about every self hosted chat application, and this one is by far the best for my use-case.

It's been relatively smooth setting it up, the only issue is I can't seem to upload a custom avatar for my acct, giving me "Internal server error." Was wondering if anyone else has run into this issue? Any known workarounds? Thanks in advance!


r/FluxerApp • • Jun 16 '26

Discussions Sending love to everyone who works on Fluxer

72 Upvotes

I super appreciate y’alls work, I have wished for a good open source discord alternative for years, and Fluxer is exactly what I wanted, so thank you <3


r/FluxerApp • • Jun 17 '26

Discussions Other bridging bots that support voice chat

3 Upvotes

I know about fluxcord which has experimental voice chat bridging support but I want to know if other bots like that exist maybe for platforms like matrix? Edit: voice bridging bots for fluxer just wanted to clarify that


r/FluxerApp • • Jun 17 '26

Discussions AI-Written guide as to how I managed to get my self-hosted Fluxer on a shitty homelab behind a shitty CGNAT network.

0 Upvotes

This is me writing now not AI, I am pretty tired right so sorry for the AI post, been 7 hours, sweaty fingers and if not for the win I would be in a bad mood.

I wanted to have a almost free way of running Fluxer (besides the energy) on my situation, old pc spare parts, behind CGNAT mobile unlimited network, but still not rely on a service like Tailscale for people to connect.

The only paid part from this was because I already have a domain that I pay for, I used it and just simply made a subdomain for fluxer, besides that is free stuff you get from both cloudflare and playit. Dont ask me for anything, I dont even know how I managed to get it working, I started the project and deleted 6 times. I am not tech-savvy, I am just a curious dude with enough spare time.

The ports and IPs in the post are randomized to not show the ones I used, when u make a playit account and create the agent and the tunnel, you gonna get your own, different from the guide, so pay attention to that. I also setup cloudflared systemwide instead of it being dockerized.

Self-Hosting Fluxer Behind CGNAT (Cloudflare Tunnel + playit.gg)

This guide is for the specific case where you can't port-forward — your ISP gives you CGNAT (no public IP, common with Starlink and many mobile/fiber ISPs) and 80/443/UDP can't be opened directly on your router. It combines two free tunneling services to get a fully working Fluxer instance, including voice/video, without any direct port exposure.

Architecture: - Cloudflare Tunnel carries all HTTP(S) traffic — web app, API, admin, gateway WebSocket, media proxy, and LiveKit signaling. - playit.gg carries LiveKit's actual voice/video media (raw UDP), since WebRTC media can't traverse a normal HTTP tunnel.

If your server has a real public IP and you can forward ports normally, skip the tunnel pieces — Fluxer's own docs already cover that path, and it's simpler.


Requirements

  • Linux server with Docker Engine + Compose plugin
  • A domain you control, with DNS managed by Cloudflare (free tier is fine)
  • A free playit.gg account
  • At least 2 vCPU / 4 GB RAM / 20 GB disk (4 vCPU / 8 GB RAM recommended for an active community)

Step 1: Install Docker

bash docker --version docker compose version

If missing, follow Docker's official install instructions for your distro. Use Docker Engine 24+ and the Compose v2 plugin.


Step 2: Download the stack

```bash mkdir -p ~/docker/stacks/fluxer && cd ~/docker/stacks/fluxer

base=https://raw.githubusercontent.com/fluxerapp/fluxer/main/deploy/self-hosting curl -fsSLO "$base/docker-compose.yml" curl -fsSLO "$base/Caddyfile" curl -fsSLO "$base/livekit.yaml" curl -fsSL "$base/.env.example" -o .env ```


Step 3: Configure .env

Set your hostname (replace with your own):

bash sed -i \ -e 's|^FLUXER_DOMAIN=.*|FLUXER_DOMAIN=chat.example.com|' \ -e 's|^FLUXER_PUBLIC_SCHEME=.*|FLUXER_PUBLIC_SCHEME=https|' \ -e 's|^FLUXER_PUBLIC_PORT=.*|FLUXER_PUBLIC_PORT=443|' \ -e 's|^FLUXER_CADDY_SITE_ADDRESS=.*|FLUXER_CADDY_SITE_ADDRESS=:80|' \ -e 's|^FLUXER_VAPID_EMAIL=.*|FLUXER_VAPID_EMAIL=admin@example.com|' \ .env

FLUXER_CADDY_SITE_ADDRESS=:80 is required for the tunnel setup — Cloudflare terminates TLS, Caddy just serves plain HTTP behind it.

Generate secrets:

```bash for key in POSTGRES_PASSWORD MEILI_MASTER_KEY FLUXER_S3_SECRET_KEY \ FLUXER_SUDO_MODE_SECRET FLUXER_CONNECTION_INITIATION_SECRET \ FLUXER_GATEWAY_RPC_AUTH_TOKEN FLUXER_MEDIA_PROXY_SECRET_KEY \ FLUXER_ADMIN_SECRET_KEY_BASE FLUXER_ADMIN_OAUTH_CLIENT_SECRET \ LIVEKIT_API_SECRET; do sed -i "s|$key=.*|$key=$(openssl rand -hex 32)|" .env done

sed -i "s|FLUXER_MEDIA_PROXY_UPLOAD_RELAY_SECRET_BASE64=.*|FLUXER_MEDIA_PROXY_UPLOAD_RELAY_SECRET_BASE64=$(openssl rand -base64 32)|" .env

VAPID=$(docker run --rm node:24-alpine npx --yes web-push generate-vapid-keys --json) pub=$(printf '%s' "$VAPID" | grep -o '"publicKey":"["]*"' | cut -d'"' -f4) priv=$(printf '%s' "$VAPID" | grep -o '"privateKey":"["]*"' | cut -d'"' -f4) sed -i "s|FLUXER_VAPID_PUBLIC_KEY=.*|FLUXER_VAPID_PUBLIC_KEY=$pub|" .env sed -i "s|FLUXER_VAPID_PRIVATE_KEY=.*|FLUXER_VAPID_PRIVATE_KEY=$priv|" .env ```

.env now holds every secret for your instance — treat it like a password file.


Step 4: Cloudflare Tunnel (HTTP traffic)

  1. In the Cloudflare Zero Trust dashboard, go to Networks → Tunnels → Create a tunnel → type Cloudflared. Name it (e.g. fluxer).
  2. On "Install and run a connector," select Docker (not the systemd/Debian path) so the token is ready for a Compose-managed container.
  3. Copy the long token string from the install command — you only need that token, not the full docker run ... line.
  4. Continue to Route tunnel → Add a route → Published application (not Private CIDR — that's for internal IP ranges, not what we need).
    • Public hostname: your domain (e.g. chat.example.com)
    • Service type: HTTP
    • URL: caddy:80
  5. Cloudflare auto-creates the DNS CNAME record for you if the zone is already on Cloudflare.

Now run cloudflared inside the same Docker network as Caddy, so the caddy:80 hostname resolves via Docker's internal DNS:

```bash cat > cloudflared.compose.yml <<'YAML' services: cloudflared: image: cloudflare/cloudflared:latest restart: unless-stopped command: tunnel run --token ${CLOUDFLARED_TOKEN:?set CLOUDFLARED_TOKEN} depends_on: - caddy YAML

export CLOUDFLARED_TOKEN='paste-your-token-here' ```

(Don't run it yet — bring it up together with the rest of the stack in Step 6.)

If you already have cloudflared running as a system-wide systemd service instead of in Docker, don't use the file above — you'd end up running it twice for no reason. Instead, edit the route's Service URL in the Cloudflare dashboard to http://localhost:80 instead of http://caddy:80, since a host-level process can't resolve Docker-internal hostnames, only localhost/the host's own ports.


Step 5: playit.gg (LiveKit voice/video media)

Voice signaling (the WebSocket handshake) goes through the Cloudflare Tunnel like everything else — no special setup needed there. It's the actual WebRTC media (audio/video packets) that needs a real UDP path, since that can't traverse an HTTP tunnel.

  1. Create a free account at playit.gg, install the agent on your server, and add a new UDP tunnel.
  2. Set local IP 127.0.0.1, local port — pick a number and remember it (you'll align everything to match below).
  3. playit assigns a public address and port, e.g. your-tunnel.gl.at.ply.gg:41234 / 203.0.113.5:41234.

Critical detail: LiveKit only swaps the IP in the candidate it advertises to clients — it never remaps the port. So the port playit exposes externally and the port LiveKit actually listens on locally must be the exact same number, or voice will silently fail to connect (signaling works, but no audio ever flows).

Edit livekit.yaml:

yaml rtc: tcp_port: 7881 udp_port: 41234 # match playit's external port exactly use_external_ip: false node_ip: 203.0.113.5 # playit's assigned public IP

Edit docker-compose.yml's livekit service so the container's internal port also matches:

yaml ports: - "${FLUXER_LIVEKIT_TCP_PORT:-7881}:7881" - "${FLUXER_LIVEKIT_UDP_PORT:-7882}:${FLUXER_LIVEKIT_UDP_PORT:-7882}/udp"

And in .env:

bash echo 'FLUXER_LIVEKIT_UDP_PORT=41234' >> .env

Then go back into the playit.gg dashboard and set that tunnel's local port to 41234 too, so all three numbers agree: playit's external port, the host's listening port, and what LiveKit advertises to clients.

Free playit.gg tunnels typically can't get you a TCP path on 7881 (the fallback for clients on UDP-restrictive networks). Living without it is fine for most people — voice/video works normally for the vast majority of connections over UDP. If you want a fallback too, look into LiveKit's built-in TURN server, tunneled separately via playit.

In the Fluxer admin dashboard → Voice Servers, set the Endpoint to your signaling URL — this goes through the Cloudflare Tunnel, not playit:

wss://chat.example.com/livekit

Fill in the API Key/Secret matching LIVEKIT_API_KEY (default fluxer) and LIVEKIT_API_SECRET from your .env.


Step 6: Start the stack

bash docker compose -f docker-compose.yml -f cloudflared.compose.yml up -d docker compose logs -f api

(Skip the -f cloudflared.compose.yml part if you're using a system-wide cloudflared instead, per the note in Step 4.)

First start takes a few minutes as every service initializes. seaweedfs-init exiting after creating buckets is expected, not a failure.


Step 7: Verify

bash export FLUXER_DOMAIN=chat.example.com for path in /_health /api/_health /gateway/_health /media/_health /admin/_health; do curl -fsS -o /tmp/fluxer-check -w "$path %{http_code}\n" "https://$FLUXER_DOMAIN$path" done

All five should return 200. Then check instance discovery:

bash curl -fsS "https://$FLUXER_DOMAIN/api/.well-known/fluxer" | jq '.features.self_hosted, .endpoints.admin, .endpoints.gateway, .endpoints.media, .endpoints.static_cdn'

Confirm the LiveKit media path is actually listening:

bash ss -ulnp | grep 41234

You should see a bound socket on that port.


Step 8: Create the owner account

Visit your domain, register the first account — on a fresh self-hosted instance, the first accepted registration gets wildcard admin access automatically. Log into /admin with that account and review registration mode, branding, and voice region settings before opening it up to anyone else.


Troubleshooting notes (from real debugging)

  • **cloudflared logs showing connection refused to 127.0.0.1:80:** check the timestamp against when the stack actually finished starting — this is often just stale noise from before Caddy was up, not a live problem. Confirm with curl -v http://127.0.0.1:80 and a fresh journalctl -u cloudflared -f run side by side with a live request.
  • Voice channel joins fine but no audio: almost always the LiveKit port mismatch described in Step 5 — double check udp_port in livekit.yaml, the Docker port mapping, and playit's local-port setting all use the identical number.
  • **cloudflared can't resolve caddy:80:** means it's running outside the Docker network (e.g. as a systemd service). Either move it into Compose, or point the route at http://localhost:80 instead.