Memory and Java
- Heap is set explicitly.
-Xmsand-Xmxare equal and leave room for everything else. Calculator. - Metaspace is capped with
-XX:MaxMetaspaceSize. - A small swap file exists as a safety net. How.
- You run a supported LTS Java (17, 21 or 25). Versions.
- Heap dump on OOM is enabled and writes to a folder with space:
-XX:+HeapDumpOnOutOfMemoryError.
Network and security
- HTTPS works with a valid certificate that renews itself (certbot timer).
- Firewall allows only 22, 80 and 443. Port 8080 and the database port are closed to the internet.
- The application listens on 127.0.0.1 if a proxy is in front.
- SSH uses keys, password login is off, root login is off. Harden the VPS.
- Tomcat Manager is not public. Use a tunnel.
- Automatic security updates are on (unattended-upgrades).
- The app runs as its own user, not root.
Reliability
- The service starts at boot (
systemctl enable) and restarts on failure (Restart=on-failure). - You tested a reboot. After
sudo rebooteverything comes back without your help, including the database. - Logs rotate. A full disk is one of the most common reasons a server dies.
- The proxy passes the right headers for HTTPS and client IP. Details.
Recovery and visibility
- Backups go off the server and include the database. restic guide.
- You tested a restore at least once on another machine.
- Monitoring and an alert exist for CPU, memory, disk and "site is down". Monitor a Java VPS.
- DNS TTL was lowered a day before the move, so you can switch back fast.
- You wrote down where everything is: paths, service names, passwords in a password manager, the provider contact.
Want it done for you?
The managed plans cover most of this list, and the setup script behind our Java VPS plans is open source: java-vps-setup on GitHub.
Questions about go-live checklist
Do I need all 20 points for a small site?
Memory, HTTPS, firewall, auto restart and tested backups are the minimum. The rest reduces risk as the site grows.
Last updated October 29, 2026.