Set it up from the Mac or Windows app. No terminal or domain needed.
Three A records: the domain, app. and a subdomain for calls. Then a wizard in the terminal.
$curl -fsSL https://cdn.jsdelivr.net/npm/@atriumchat/install/install.sh | sh
Install
Ubuntu or Debian, 1–2 GB RAM, root access. The IP and password come from the hosting provider.
Enter the IP and root password. For the address, take a free one on dedyn.io or use your own domain.
About five minutes. Then the server setup: name, icon, admin, invite link.
Included
Docker and Atrium. The app, calls, website.
Address and HTTPS. Certificates with automatic renewal.
Calls through the server. For weak direct connections.
Firewall. SSH login by key only.
Backup. Once a day, kept for 14 days.
Keys and passwords. Generated on the server.
SSH goes straight from your computer to the server, with nothing in between. The password is kept only in the setup window’s memory and is sent nowhere but the server. The app adds its own key, and password login is turned off after setup. The setup code is open.
Update. Settings and messages are kept.
$curl -fsSL https://cdn.jsdelivr.net/npm/@atriumchat/install/install.sh | sh -s update
Uninstall. Atrium is removed completely and password login is restored.
$curl -fsSL https://cdn.jsdelivr.net/npm/@atriumchat/install/install.sh | sh -s uninstall
Restore from the nightly backup.
$curl -fsSL https://cdn.jsdelivr.net/npm/@atriumchat/install/install.sh | sh -s restore
Check the spam folder. After 15 minutes the app offers another email address or your own domain.
All three A records must point to the server’s IP, set to the grey cloud in Cloudflare: calls can’t go through its proxy. Ports 80 and 443 on the server must be free. The connection check in the browser wizard shows which route works.
The curl command on this page fetches the installer from npm through jsDelivr, and the installer downloads the release archive from there too if GitHub does not respond.
The wizard logs everything to /var/log/atrium-install.log. Running it again picks up where it stopped; settings and data stay untouched.
Set the domain and the confirmation in advance: put DOMAIN=chat.example.com ATRIUM_YES=1 before sh in the command.