[{"data":1,"prerenderedAt":103},["ShallowReactive",2],{"seo-verification":3,"marketplace-app-en-spring-boot-stack":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"slug":7,"slugs":8,"categorySlugs":9,"name":13,"description":14,"phase":15,"unavailableReason":16,"docsUrl":17,"logo":18,"github":18,"tagline":19,"longDescription":20,"features":21,"useCases":28,"steps":38,"faq":54,"specs":70,"compatibleOs":78,"relatedApps":79,"relatedPosts":98,"category":100},"spring-boot-stack",{"fr":7,"en":7,"ar":7},{"fr":10,"en":11,"ar":12},"developpement","development","التطوير","Spring Boot Stack","OpenJDK 21 LTS, Maven, Nginx and PostgreSQL 16 preconfigured. Deploy your Spring Boot application to production in minutes, no manual server setup.",2,"awaiting_qa","https:\u002F\u002Fservorbit.com\u002Fblog\u002Fdeploying-a-spring-boot-application-on-a-vps",null,"Production-ready Java environment — Spring Boot, OpenJDK 21 LTS, Maven, Nginx, PostgreSQL 16.","Spring Boot Stack provisions your VPS with everything a Spring Boot application needs in production: OpenJDK 21 LTS (the default JDK in Ubuntu 24.04 LTS), Maven as the build tool, Nginx as the reverse proxy, and PostgreSQL 16 as the database. No manual JVM configuration — build your JAR and deploy immediately.\n\nOpenJDK 21 LTS brings Virtual Threads (Project Loom), structured concurrency, and pattern matching for switch — production-grade improvements that reduce thread-pool boilerplate in Spring WebFlux and Spring MVC alike. Maven's dependency management handles your Spring Boot parent POM and plugin versions without manual version pinning. Nginx serves static resources, manages TLS termination, and routes requests to your embedded Tomcat. PostgreSQL 16 provides JSONB columns, full-text search, and the query planner improvements that make Spring Data JPA queries fast at scale.\n\nThe stack targets real projects: multiple Spring Boot services can run side by side on different ports, systemd keeps them alive after reboot, and the embedded Tomcat makes deployment a single `java -jar` command.",[22,23,24,25,26,27],"OpenJDK 21 LTS — long-term support JDK, default in Ubuntu 24.04, with Virtual Threads (Project Loom) and pattern matching for switch.","Maven build tool — dependency management, Spring Boot parent POM, plugin lifecycle, and reproducible builds via the Maven wrapper.","Nginx reverse proxy — static resource serving, gzip compression, TLS termination, and security headers with no container overhead.","PostgreSQL 16 — JSONB, full-text search, advanced query planner; recommended for Spring Data JPA and R2DBC.","Embedded Tomcat — Spring Boot starts with `java -jar`, no external application server required.","Systemd-ready — register your Spring Boot app as a systemd unit for automatic restart and journald logging.",[29,32,35],{"title":30,"body":31},"Spring Boot web application","Deploy an existing Spring Boot project: build the fat JAR with `mvn clean package -DskipTests`, copy it to \u002Fvar\u002Fwww\u002Fyour-app, configure a systemd service, and start it. Nginx proxies ports 80\u002F443 to your embedded Tomcat — SSL via Let's Encrypt is a single certbot command.",{"title":33,"body":34},"REST API with Spring MVC or WebFlux","Host a Spring Boot REST API for a mobile app or SPA frontend. Nginx handles CORS headers and rate limiting. Use Virtual Threads (OpenJDK 21 Loom) with Spring WebMVC to serve hundreds of concurrent requests without a reactive programming model.",{"title":36,"body":37},"Microservices on a single VPS","Run multiple Spring Boot services on different ports on the same VPS. Nginx routes to each service by path prefix or subdomain. Systemd manages each service independently — they start, stop, and restart without affecting each other.",[39,42,45,48,51],{"title":40,"body":41},"Order a ServOrbit VPS","A 2 GB RAM VPS on Ubuntu 24.04 is the minimum for a Spring Boot application with PostgreSQL. Choose 4 GB if you plan to run multiple services or a loaded connection pool. The Spring Boot Stack template is available in the marketplace order form.",{"title":43,"body":44},"Deploy from the marketplace","Go to Marketplace → Development → Spring Boot Stack and click Deploy. The provisioning script installs OpenJDK 21 LTS, Maven, Nginx, and PostgreSQL 16 — no manual SSH session required for the base setup.",{"title":46,"body":47},"Build and upload your JAR","Run `mvn clean package -DskipTests` locally, then upload the fat JAR to `\u002Fvar\u002Fwww\u002Fyour-app\u002Fapp.jar` via scp or rsync. Create an `application.properties` with `spring.datasource.url`, credentials, and `server.port=8080`.",{"title":49,"body":50},"Create a systemd service","Create `\u002Fetc\u002Fsystemd\u002Fsystem\u002Fyour-app.service` with `ExecStart=\u002Fusr\u002Fbin\u002Fjava -jar \u002Fvar\u002Fwww\u002Fyour-app\u002Fapp.jar`, `Restart=always`, and `User=www-data`. Run `systemctl daemon-reload && systemctl enable --now your-app`.",{"title":52,"body":53},"Configure Nginx and enable HTTPS","Add an Nginx server block that `proxy_pass`es to `http:\u002F\u002F127.0.0.1:8080`. Run `certbot --nginx -d your-domain.com` for a free Let's Encrypt certificate. Nginx handles HTTPS; Spring Boot listens on the internal port only.",[55,58,61,64,67],{"q":56,"a":57},"Does Spring Boot Stack require a domain name?","No. Spring Boot does not need a domain to run. Access your application via SSH tunnel: `ssh -L 8080:127.0.0.1:8080 root@\u003Cyour-vps-ip>` then open `http:\u002F\u002Flocalhost:8080`. To get HTTPS from any browser, attach a domain from your ServOrbit dashboard or use the free `{app}.{dns_slug}.servorbit-dns.com` subdomain included with every VPS.",{"q":59,"a":60},"Which Java version is installed?","OpenJDK 21 LTS, the default JDK in Ubuntu 24.04 LTS (package `openjdk-21-jdk`). OpenJDK 21 is a long-term support release with Virtual Threads (Project Loom), structured concurrency, and pattern matching for switch. You can install other JDK versions alongside it if needed.",{"q":62,"a":63},"Can I use Gradle instead of Maven?","Yes. Maven is installed by the template, but Gradle works on the same JDK. Install it with `apt install gradle` or use the Gradle Wrapper bundled in your project (`.\u002Fgradlew build`). Your Spring Boot JAR is the same regardless of the build tool.",{"q":65,"a":66},"Can I deploy multiple Spring Boot services on the same VPS?","Yes. Run each service on a distinct port (8080, 8081, …), create one systemd unit per service, and add one Nginx server block per service routed by path prefix or subdomain. Services run independently — stopping one does not affect the others.",{"q":68,"a":69},"What is the minimum recommended RAM?","2 GB for a single Spring Boot application with PostgreSQL. The JVM typically uses 300–500 MB at idle for a standard Spring Boot app; add more if you run multiple services. Spring Boot's `-Xmx` flag lets you cap heap usage per service.",{"ram":71,"cpu":72,"stack":73},"2 GB","1 vCPU",[74,75,76,77],"OpenJDK 21 LTS","Maven","Nginx","PostgreSQL 16",[],[80,87,92],{"name":81,"slug":82,"categorySlug":11,"categoryName":83,"categoryColor":84,"logo":18,"tagline":85,"description":86},"Django Stack","django","Development","text-warning bg-warning\u002F10","Production-ready Python environment — Django, Gunicorn, Nginx, PostgreSQL 16.","Python 3.12, Gunicorn, Nginx and PostgreSQL 16 preconfigured. Deploy your Django application to production in minutes, no manual server setup.",{"name":88,"slug":89,"categorySlug":11,"categoryName":83,"categoryColor":84,"logo":18,"tagline":90,"description":91},"FastAPI Stack","fastapi","Production-ready Python environment — FastAPI, Uvicorn, Gunicorn, Nginx, PostgreSQL 16.","Python 3.12, Uvicorn, Gunicorn, Nginx and PostgreSQL 16 preconfigured. Deploy your FastAPI API to production in minutes.",{"name":93,"slug":94,"categorySlug":11,"categoryName":83,"categoryColor":84,"logo":95,"tagline":96,"description":97},"Node.js Stack","nodejs-stack","https:\u002F\u002Fcdn.simpleicons.org\u002Fnodedotjs","Node.js, PM2, Nginx and a database — a production environment for your JavaScript APIs and apps.","Node.js with PM2, an Nginx reverse proxy and a database. Your JavaScript APIs and applications ready to take traffic.",[99],"deployer-spring-boot-vps",{"key":10,"slug":11,"name":83,"objective":101,"icon":102,"color":84},"Kick off a software project quickly.","dev",1787869238965]