Server Preparation Checklist
Complete these steps, then move straight on to On-Premise Installation — deployment is a single script, you don't need to wait for a scheduled session. Reach out to your account manager any time if you'd like help.
Click the copy button next to each command, then paste and run it in your terminal — one line at a time.
Provision a server meeting the following requirements. A cloud VPS (DigitalOcean, Hetzner, AWS, or similar) or a physical machine on your network both work — including a machine with no internet-facing access at all, kept entirely on your internal network.
| Operating System | Ubuntu 24.04 LTS (64-bit) |
| CPU | Minimum 4 cores · Recommended 8 cores |
| RAM | Minimum 8 GB · Recommended 16 GB |
| Disk | Minimum 100 GB SSD · Recommended 200 GB |
| Network | Static IP address (internal or public) or a registered domain name |
| Open Ports | 22 (SSH) · 80 and 443 if reachable from outside the server itself |
Not exposed to the internet? Lokawatch supports internal-network-only deployments — the installer generates a self-signed certificate so you still get HTTPS at your internal IP or hostname. No public DNS or open inbound ports required.
Run as root
Log in to your server as root and bring the system up to date.
apt update apt upgrade -y hostnamectl set-hostname your-server-name timedatectl set-timezone Asia/Jakarta Run as root
Create a dedicated deploy user to own the application. Recommended practice — the installer also works fine run directly as root if you prefer, but a dedicated user keeps things tidier and is safer if this account is ever shared.
adduser --disabled-password --gecos "" deploy echo "deploy ALL=(ALL) NOPASSWD: ALL" | tee /etc/sudoers.d/deploy chmod 440 /etc/sudoers.d/deploy su - deploy After running su - deploy your prompt will change. The remaining steps run as the deploy user.
Run as deploy
Just git and curl are actually required (to clone the repository and run the installer) — the rest are handy to have.
sudo apt install -y git curl wget vim htop ufw No need to install Docker yourself. The deployment script installs it automatically the first time you run it.
Run as deploy
Open only the ports required for your setup. Run these commands in order.
Do not run sudo ufw enable before allowing SSH port 22, or you will lock yourself out of the server.
Internal-network-only deployment? If this server is never reached from outside your own network, you can skip opening 80/443 to the internet entirely — just make sure it's reachable from wherever your Safety Officers will access the dashboard. Same applies if you're using a Cloudflare Tunnel: only SSH needs to be open.
VPS provider firewall: Many providers (DigitalOcean, Hetzner, Vultr, Linode) have their own firewall panel that blocks traffic before it reaches your server. UFW rules won't help if the provider's firewall is blocking the port. Always check both UFW and your provider's firewall settings.
Set default policies
sudo ufw default deny incoming sudo ufw default allow outgoing Allow required ports
sudo ufw allow 22/tcp← SSH — keep this open always sudo ufw allow 80/tcp← HTTP — skip if internal-only sudo ufw allow 443/tcp← HTTPS — skip if internal-only Enable and verify
sudo ufw enable sudo ufw status verbose Head straight to On-Premise Installation — clone the repository and run the installer. It's a single script; you don't need to schedule anything with us. Reach out to your account manager any time if you'd like a hand.
Continue to InstallationQuick Checklist
- Ubuntu 24.04 LTS installed, minimum 8 GB RAM, 100 GB SSD
- System updated (
apt updatethenapt upgrade) deployuser created (or you're comfortable running asroot)gitandcurlinstalled — Docker installs itself during deployment- Firewall enabled — port 22 always, plus 80/443 if this server is reachable from outside itself