Self-hosted platforms
Vision Call
Private chat and video calls for your own network.
End-to-end encrypted messages, group calls, screen sharing and meeting rooms in the browser or on Android.

Why I built it
I wanted chat and video calls that stay inside our own network, with nothing going through a third-party cloud.
Architecture
How it fits together
Clients
Browser
installable as an app
Android app
Vision Call, one Go program
Web app and API
WebSocket signalling
Group-call media server
pion/webrtc, nothing stored
SQLite
Calls
1:1 calls
direct between devices
Group calls
through the server
Screenshots
See it in use
Documentation
From the README
Private chat and video calling that runs on your own computer or server. Your messages, calls and files stay on your network, with no cloud service in the middle.
Install it once on a machine in your office or home. Everyone on the same network or VPN then uses it from a browser or the Android app.
Read the wiki for full setup guides, configuration and troubleshooting.
Features
- Chat: one-to-one and group conversations with read receipts, typing indicators, replies, reactions, edits, pins, saved messages, search and file sharing. End-to-end encrypted over HTTPS.
- Video calls: one-to-one calls straight between devices, group calls for up to 8 people by default, screen sharing, and host controls.
- Meeting rooms: named rooms with an optional passcode or approval step.
- Presence: online, away and Do Not Disturb.
- Admin tools: manage accounts, change settings in the browser, read the audit log, and optionally use single sign-on (OpenID Connect).
- Runs anywhere: Docker, Linux, Windows or macOS, on regular PCs and ARM boards like the Raspberry Pi. Uses a built-in database by default, or Postgres/MySQL if you prefer.
- Any device: modern browsers on computers and phones (installable as an app), plus a native Android app.
Install
Pick one. None of them need any configuration.
Docker
docker run -d --name visioncall --restart unless-stopped \
-p 8443:8443 -p 8080:8080 -p 7882:7882/udp \
-v visioncall-data:/data \
ghcr.io/anand34577/vision-call:latest
Or with Docker Compose:
curl -fsSL https://raw.githubusercontent.com/anand34577/vision-call/main/docker-compose.yml -o docker-compose.yml
docker compose up -d
Get the first admin password with docker logs visioncall 2>&1 | grep -i password. More in Install with Docker.
Linux
curl -fsSL https://raw.githubusercontent.com/anand34577/vision-call/main/scripts/get.sh | sudo sh
Installs a system service that starts on boot, takes a daily backup and prints the address and admin password. More in Install on Linux.
Windows
In PowerShell run as Administrator:
irm https://raw.githubusercontent.com/anand34577/vision-call/main/scripts/get.ps1 | iex
Installs a Windows service that starts with Windows and prints the address and admin password. More in Install on Windows.
macOS, Android and manual downloads
Every release has ready-to-run downloads for Linux, Windows and macOS (Apple Silicon), and a signed Android APK. See Install on macOS and Android App.
Open it
- On any device on your network, open
https://:8443. - The browser warns about the certificate, because the server made its own. Choose Advanced and continue, or install the certificate to remove the warning.
- Sign in as
adminwith the password from the install output, change it, then create accounts for your team under Admin > Users.
The Android app connects to http://:8080.
Firewall ports: 8443/tcp (HTTPS), 8080/tcp (HTTP and Android), 7882/udp (group-call media). The installers open them for you.
Documentation
|---|---| | Quick Start | Up and running in five minutes | | First Steps | Sign in, add people, first call | | HTTPS and Certificates | Remove the browser warning, use your own certificate or a reverse proxy | | Networking and Firewall | Ports, VPNs and the optional TURN relay | | Configuration | Every setting explained | | Backups and Upgrades | Keep your data safe and stay up to date | | Troubleshooting | Fixes for common problems | | Security | How accounts, messages and calls are protected | | Building from Source | Develop and build it yourself |
How it works
Vision Call is a single Go program with the web app built in. It serves the app, its API and a WebSocket connection for chat and call signaling. One-to-one calls go directly between the two devices with WebRTC. Group calls run through a built-in media server based on pion/webrtc, which forwards encrypted audio and video without storing it. Data is kept in SQLite by default.
Self-hosted platforms