-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Step by step, deploy your own server.
It is very simple really:
git bash docker-composeThis can be installed on any linux server.
You can also achieve this with rootless-docker or
podmanequivalents.
Recommended: install ufw and disable your VPS provider built-in firewall. Reason being that a lot of cheap VPS providers do not support HTTP/3-Quic protocol.
Setting up the firewall locally:
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp # SSH adjust if you moved sshd off 22
ufw allow 443 # caddy: https (tcp) + http/3 (udp)
ufw allow 80/tcp # caddy ACME http-01 + http->https redirect
ufw enable && ufw statusThe catch is to not expose the CAESAR_PORT: "4991" as this is our reverse proxy through caddy.
You can test this by curl -v this port directly, it should hang at Trying...
Note:
dockerpublishes ports through its owniptableschain that bypassesufw. So ufw protects against accidental host listeners, not against the ports compose publishes. The real surface isdocker-compose.yamlports:blocks.
git clone --depth 1 https://github.com/h8d13/caesar
cd caesarDocker uses ranges for mediasoup workers. On a cheap 4vCPUs server:
ports:
- "40000-40003:40000-40003/tcp"
- "40000-40003:40000-40003/udp"
environment:
CAESAR_PORT: "4991"
CAESAR_WEBRTC_WORKERS: "4"Adapt these ports according to number of CPUs (your hardware becomes the limit) if you modified docker-compose.yaml
See also net-buffers helper. This increases memory for media-soup in case you plan to run multiple screen-share/webcams at the same time.
Caddy: caddy/Caddyfile
For further config refer to Caddy documentation: https://caddyserver.com/docs/
If you have a domain + a VPS, you can point to it by adding a A record:
www IN A XX.XX.XX.XXX
@ IN A XX.XX.XX.XXX
Or edit it
.envwith editor of your choice.
echo 'CAESAR_SITE=sub.example.com' >> .envThis is sourced automatically by docker-compose and ignored in
.gitignore.
It can be domains, IPs directly, Tailscale nodes, whatever.
Full env var reference: Configuration.
Once this is done you can simply run: ./up.sh this runs the prod variant on port 443. Access at: https://yourdomain.ext or with www depending on how you set it up.
Then docker logs caesar on first run will give you a unique one-time use UUID.
Login through the main entry page: First user is always allowed without an invite.
Go to DevTools > Console: useToken("UUID") this sets you as the server owner.
Simply: ./updown.sh && ./up.sh
Made with 🖤 CHANGELOG