- Spring Boot
- OpenJDK
- systemd
- NGINX
Spring Boot VPS HostingOne jar. One service. Your server.
Spring Boot ships as a single jar, so the server should be simple. We install OpenJDK, a service-ready layout and NGINX with free SSL on a hardened KVM VPS. You copy the jar and start it.
- KVM virtualisation
- NVMe storage
- Root SSH access
- Free one-time setup
- 99.9% uptime SLA
$systemctl list-units --type=service --state=active
- javaOpenJDK runtime
- myappyour Spring Boot jar (systemd)
- nginxHTTPS reverse proxy
- ufwfirewall: 22, 80, 443
- fail2banSSH brute-force guard
- unattended-upgradessecurity updates
Installed and secured before handover.
Why Run Spring Boot on a VPS
Java applications want memory and a long-running process. A VPS gives the JVM both, without the limits of shared hosting.
One jar, one service
Spring Boot's executable jar runs as a systemd service with a restart on failure.
Memory you can tune
Set the JVM heap to fit the plan instead of fighting a shared limit.
Any database
PostgreSQL, MySQL or MariaDB beside the app, or an external managed one.
Predictable cost
One flat server cost for the app and its database.
How a Spring Boot Server Is Set Up
NGINX in front, your jar behind it on a local port.
-
Reverse proxy
NGINX
HTTPS on your domain, passing requests to the application on localhost.
-
Application
Your Spring Boot jar
An executable jar run by a systemd service as an unprivileged user.
-
Runtime
OpenJDK
The Java version your Spring Boot release supports.
-
Database
PostgreSQL or MySQL (optional)
Installed next to the app when you want it.
Engineer's notes
- Spring Boot 4.1 requires at least Java 17, and is compatible with newer versions up to Java 26.
- Run the application as its own user, not as root, with a systemd unit like the one in the Spring Boot documentation.
- Keep the application on localhost and let NGINX handle the public port and HTTPS.
- Set the JVM heap (for example with -Xmx) so the app and the database fit in RAM.
- 443HTTPS, NGINX
- 80HTTP, redirects to HTTPS
- 22SSH, you only
- 8080Spring Boot default, localhost only
What You Can Run
A REST API
A Spring Boot service behind NGINX.
A web application
Server-rendered pages or a single-page app with a Java backend.
Microservices
Several small services on one server, or one per server.
Scheduled and batch jobs
Spring scheduling and batch work on a server that stays on.
Tomcat applications
A servlet container such as Tomcat, if you deploy a WAR file.
A staging environment
A second copy for testing releases.
Which Plan for Your Java Application
Plan for the JVM heap plus the database. Test your own application; heap needs vary a lot.
VPS-1
2 vCores and 4 GB RAM; keep the heap modest.
A starting point, not a limit: every plan upgrades in place, keeping your data, IP address and configuration.
Running Your Jar as a Service
A first deployment, as your own user. Replace the names with yours.
-
Check Java
Spring Boot 4.1 needs Java 17 or newer.
java -version -
Create a user and a folder
The service runs as its own unprivileged user.
sudo useradd --system --home /var/myapp --shell /usr/sbin/nologin myappsudo mkdir -p /var/myapp && sudo chown myapp:myapp /var/myapp -
Copy your jar
From your build machine.
scp target/myapp.jar admin@your-server:/tmp/myapp.jarsudo mv /tmp/myapp.jar /var/myapp/myapp.jar && sudo chown myapp:myapp /var/myapp/myapp.jar -
Create the systemd unit
Put this in /etc/systemd/system/myapp.service: [Service] User=myapp, Type=exec, ExecStart=/usr/bin/java -jar /var/myapp/myapp.jar, WorkingDirectory=/var/myapp, SuccessExitStatus=143, Restart=on-failure, and [Install] WantedBy=multi-user.target.
sudo systemctl daemon-reloadsudo systemctl enable --now myapp -
Watch it start
Follow the application log.
sudo journalctl -u myapp -f
Example commands: adjust names, paths and versions to your project. Deploying and maintaining your application is yours to do, or ask us for a quote.
Spring Boot commands you will use every week
Copy, paste, adjust the names. Each one is safe to run as your own user on the server.
Restart the service
sudo systemctl restart myapp
Follow the log
sudo journalctl -u myapp -f
Memory and Java processes
free -hps -o pid,rss,cmd -C java
Which Java is installed?
java -version
Is it listening?
ss -ltnp | grep 8080
Reload NGINX safely
sudo nginx -t && sudo systemctl reload nginx
Managed Java Platform or Spring Boot on a VPS?
A platform service hides the server. A VPS gives you the server and a flat cost.
Managed Java platform
- PricingPer instance or per resource use
- JVM optionsLimited by the platform
- DatabaseSeparate paid service
- DeploymentPlatform's workflow
- Server administrationHandled by the provider
Spring Boot VPS
- PricingFlat server cost
- JVM optionsYours: heap, garbage collector, flags
- DatabaseOn the same server, or elsewhere
- DeploymentCopy a jar and restart a service
- Server administrationYours, after our free setup
Your Java stack
Free one-time setup before you get access. Here is what happens, and what you receive.
Pick a plan and a location
Resources that fit your workload, in the datacentre closest to your users.
Tell us your Spring Boot setup
Versions, database and domain: at order or right after.
We install and secure it
Server hardened, the stack installed and tested, HTTPS on your domain.
You get root
SSH to a working server, ready for your code and data.
Installed for you
- OpenJDK, the LTS version your Spring Boot release supports
- NGINX reverse proxy with HTTPS on your domain
- A service user and folder for your application
- PostgreSQL or MySQL, on request
- Your jar and its configuration are deployed by you
Secured before handover
- Non-root sudo user created for daily work
- SSH key login, password login for root disabled
- Firewall (UFW) open only for the ports you use
- Fail2ban blocking repeated login attempts
- Automatic security updates enabled
- Free Let's Encrypt SSL on your domain
- Timezone, swap and hostname configured
Not included (we say so up front)
- Ongoing server administration
- Application maintenance and updates
- Debugging your code
- Migrating existing sites or data
Security and Performance for Spring Boot
Security
- Run the application as an unprivileged user, never as root.
- Keep the application port on localhost; only NGINX faces the internet.
- Keep secrets in environment variables or a protected file, not in the jar.
- Update the JDK and your dependencies; security fixes land often.
Performance
- Set -Xmx so the heap plus the database fit in RAM with headroom.
- Watch memory with `free -h` and the application's own metrics.
- Use a connection pool and size it to the database.
- Keep logs rotated so they do not fill the disk.
Built from the official documentation
VPS Plans for Spring Boot
The JVM is memory-hungry. VPS-1 runs one small service; VPS-2 is a comfortable start for a service with its own database.
VPS-1
Small websites, APIs, bots and development servers.
- 2 vCores
- 4 GB RAM
- 40 GB NVMe
- 500 Mbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-2
Production apps, WordPress and online stores.
- 4 vCores
- 8 GB RAM
- 75 GB NVMe
- 1 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-3
Busy stores, SaaS products and several projects.
- 6 vCores
- 12 GB RAM
- 100 GB NVMe
- 2 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-4
High-traffic apps, large databases and agencies.
- 8 vCores
- 24 GB RAM
- 200 GB NVMe
- 3 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
* Unlimited traffic in Europe and North America. In Mumbai, Singapore and Sydney a monthly allowance applies (VPS-1 500 GB, VPS-2/VPS-3 1 TB, VPS-4 3 TB), then speed is limited to 10 Mbps until the next month.
Prices exclude 18% GST, which is added to invoices for customers in India.
Platform specs and locations
The same KVM platform on every plan; only CPU, RAM, storage and port speed change.
- Virtualisation
- KVM with reserved vCores and RAM
- Storage
- NVMe SSD on every plan
- Network
- Dedicated IPv4 and IPv6, 500 Mbps to 3 Gbps per plan
- Operating systems
- Ubuntu 26.04, 24.04 and 22.04 LTS · Debian 13, 12 and 11 · AlmaLinux · Rocky Linux · Fedora · FreeBSD
- Access
- Full root over SSH, key-based login
- Backups
- Automatic daily backup of the previous 24 hours; snapshots and longer retention on request
- Protection
- Always-on anti-DDoS mitigation
- Availability
- 99.9% uptime SLA
Asia-Pacific
- Mumbai
- Singapore
- Sydney
Europe
- London
- Limburg
- Roubaix
- Gravelines
- Strasbourg
- Milan
- Warsaw
North America
- Beauharnois
Availability per location changes with demand; we confirm your location before setup. In Mumbai, Singapore and Sydney each plan includes a monthly traffic allowance (VPS-1 500 GB, VPS-2 and VPS-3 1 TB, VPS-4 3 TB); beyond it, speed is limited to 10 Mbps until the next month.
Questions before you deploy
Not covered here? Ask an engineer before you order.
Ready when you are
Run Your Spring Boot Application
Choose a plan and we hand over OpenJDK and NGINX on a hardened server, ready for your jar.