Skip to main content
You can self-host the entire Floe stack independently of floe.one. The setup uses Docker Compose so the full stack comes up with a single command.

What you are hosting

The signaling server brokers WebRTC connection setup (offer, answer, ICE candidates) and issues short-lived TURN credentials. File data never passes through it. Transfers go peer-to-peer over encrypted WebRTC data channels. TURN is optional and only relays (still encrypted) traffic when a direct connection is not possible.

Components

ComponentDescription
clientNext.js web app, served on port 3000
serverNode.js signaling server, on port 3001
coturnOptional TURN relay (profile-gated in Docker Compose)

Contents

Quick Start

Get the stack running with Docker Compose in minutes.

Configuration

Environment variable reference for all settings.

Production Deployment

HTTPS, reverse proxy, and domain setup.

TURN Relay

Add coturn to support peers behind strict NAT or CGNAT.