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.

1
Verify Server Specifications

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.

2
Initial System Update

Run as root

Log in to your server as root and bring the system up to date.

# Update the package list
apt update
# Upgrade all installed packages
apt upgrade -y
# Set your server's hostname (replace with your chosen name)
hostnamectl set-hostname your-server-name
# Set your timezone
timedatectl set-timezone Asia/Jakarta
3
Create the Deployment User

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.

# Create the user (no password — SSH key login only)
adduser --disabled-password --gecos "" deploy
# Allow deploy to run any command with sudo without a password prompt
echo "deploy ALL=(ALL) NOPASSWD: ALL" | tee /etc/sudoers.d/deploy
# Lock down the sudoers file permissions
chmod 440 /etc/sudoers.d/deploy
# Switch to the deploy user for all remaining steps
su - deploy

After running su - deploy your prompt will change. The remaining steps run as the deploy user.

4
Install Supporting Tools

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.

5
Configure Firewall

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
Your server is ready

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 Installation

Quick Checklist

  • Ubuntu 24.04 LTS installed, minimum 8 GB RAM, 100 GB SSD
  • System updated (apt update then apt upgrade)
  • deploy user created (or you're comfortable running as root)
  • git and curl installed — Docker installs itself during deployment
  • Firewall enabled — port 22 always, plus 80/443 if this server is reachable from outside itself

Talk to Our Team

Tell us about your operation — we'll respond within 1 business day.