Docs / Programming & Development / How to Set Up a Java Application on a VPS with Spring Boot

How to Set Up a Java Application on a VPS with Spring Boot

By Admin · Feb 25, 2026 · Updated Apr 23, 2026 · 69 views · 1 min read

Install Java

sudo apt install -y openjdk-21-jdk
java --version

Deploy a Spring Boot Application

# Build locally
./mvnw clean package -DskipTests

# Upload the JAR
scp target/myapp-0.0.1.jar root@your-server:/opt/myapp/

Create a Systemd Service

[Unit]
Description=Spring Boot Application
After=network.target

[Service]
User=www-data
ExecStart=/usr/bin/java -jar /opt/myapp/myapp-0.0.1.jar --server.port=8080
SuccessExitStatus=143
Restart=on-failure
RestartSec=10
Environment=SPRING_PROFILES_ACTIVE=production
Environment=JAVA_OPTS=-Xms256m -Xmx512m

[Install]
WantedBy=multi-user.target
sudo systemctl enable --now myapp

Nginx Reverse Proxy

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

JVM Memory Tuning

Server RAMRecommended JVM Heap
1 GB-Xms128m -Xmx256m
2 GB-Xms256m -Xmx512m
4 GB-Xms512m -Xmx1536m

SSL and Deployment

sudo certbot --nginx -d example.com

For automated deployment, consider using GitHub Actions to build the JAR and SCP it to the server, then restart the service.

Was this article helpful?