Installing the Speakeasy Server
Self-host on a Linux box, a Windows PC, or in Docker. The guided path uses an embedded database and automatic TLS certificates — no external services to set up.
Server packages and source access are distributed through Patreon. The desktop client is free for everyone.
Requirements
- A Linux server/PC (systemd-based distribution) or a Windows 10/11 PC
- A domain name pointing at your public IP — a dynamic-DNS hostname works, and the guided installer can manage DDNS updates for you
- Control over your firewall/router to open the required ports
- Disk space for the database (messages and attachments are stored in it) and logs
Guided vs advanced
Guided is the recommended path: it prompts for your domain and contact email, uses an embedded SQLite database, obtains and renews TLS certificates automatically via Let's Encrypt, and sets everything up as a system service. Advanced mode takes a configuration file and is for operators who want PostgreSQL, custom TLS certificates, static DNS, a reverse proxy, or externally managed services.
Linux (guided installer)
- Download and extract the self-host bundle, then run the installer:
sudo ./install.sh --install guided - Answer the prompts: domain, contact email for certificates, and (optionally) a DDNS token.
- The installer sets up a systemd service (
speakeasy-self-host), obtains a TLS certificate, starts the server, and waits until its health check passes. - Check status any time with:
systemctl status speakeasy-self-host journalctl -u speakeasy-self-host -f
The guided Linux defaults are application code under /opt/speakeasy-self-host/app, database state under /var/lib/speakeasy-self-host, configuration under /opt/speakeasy-self-host/config, and certificate/control state under /opt/speakeasy-self-host/control. Use the effective roots recorded by your installer and include all three state roots in your backup. Certificate renewal is scheduled twice daily via a systemd timer.
A Docker install script and a snap package are also included in the self-host bundle for operators who prefer those; the Debian package follows the same layout as the guided installer.
Windows
- Run the Speakeasy self-host installer (a standard Windows setup wizard).
- Provide your domain and contact email when prompted. TLS certificates are obtained and renewed automatically (via the bundled win-acme client).
- Packaged server state defaults to
%ProgramData%\SpeakeasySelfHost— subfolders includedata(the SQLite database),config,certs, andlogs. Use the installer-reported effective roots and bootstrap credential location; see backups and upgrades.
Ports
| Purpose | Port | Protocol | Notes |
|---|---|---|---|
| HTTPS / WebSocket (app + admin) | 443 | TCP | Main application port; configurable |
| Certificate issuance/renewal | 80 | TCP | Let's Encrypt HTTP-01 challenge |
| Voice/video/screen-share media | 44444 (default) | UDP + TCP | Use the installer-reported effective media port; installers pick another port when 44444 is busy, and each additional media worker uses the next consecutive port |
If hosting from home, forward these ports on your router to the server machine. Advanced deployments that configure their own media transport ranges should also open UDP 50000–59999. If your ISP uses CGNAT (you cannot get inbound connections), you will need a VPS, tunnel, or an ISP-provided public IP.
Database
Guided installs use an embedded SQLite database — zero setup, everything (accounts, rooms, messages, and file attachments) in one file. Advanced installs can point at PostgreSQL with a connection string instead. Schema migrations run automatically every time the server starts, so upgrades never require manual database steps. Do not open the SQLite file with your operating system's sqlite3 tool; see backups.
First admin account
- The first admin's email is set during install; if no password was provided, a secure one is generated. Follow the installer output for the bootstrap credential location.
- You must change this password on first login.
- New signups are active immediately by default. If you want to approve each new account manually, enable manual approval in the admin panel's settings. Email verification is also available if you configure SMTP settings.
After install
- Connect your client and sign in as the admin.
- Invite a second user and test voice together.
- Set up backups — it takes two minutes.
Troubleshooting install
Most first-install failures are DNS (domain not resolving to your IP yet), port 80 blocked (certificate issuance fails), or router port-forwarding. See troubleshooting for the diagnosis order and where server logs live.