Backend

How to deploy a Kotlin Spring Boot app on Rock8Cloud

Deploy your Kotlin Spring Boot app to Rock8Cloud - a Gradle bootJar in its own container. Connect your GitHub repo, hit deploy, live in about two minutes, provisioned PostgreSQL one click away.

Updated June 5, 2026 · Port 8080
How to deploy Kotlin on Rock8Cloud

A Kotlin Spring Boot app builds into a single runnable bootJar and ships in its own container. Connect your GitHub repo, hit deploy, and you get a live URL in about two minutes - with a provisioned PostgreSQL one click away.

Deploy your app#

One step: select GitHub repository deployment, connect your repo, and hit Deploy. Rock8Cloud builds the container image and serves your app at a live URL, with build and runtime logs in your browser.

No Dockerfile in the repo? Copy the example below.

Pro tip: Set EXPOSE in your Dockerfile and Rock8Cloud infers the container port automatically - nothing else to configure.

Example Dockerfile
# Build
FROM gradle:8-jdk21 AS build
WORKDIR /app
COPY . .
RUN gradle bootJar --no-daemon

# Run
FROM eclipse-temurin:21-jre-alpine
COPY --from=build /app/build/libs/*.jar /app.jar
EXPOSE 8080
CMD ["java", "-jar", "/app.jar"]

EXPOSE 8080 is what Rock8Cloud reads to route traffic to your container - Spring Boot’s default port, no manual setting needed.

Don’t have an app?#

One-click start from our open-source template - a Spring Boot REST API in Kotlin, built with Gradle on JDK 21, with PostgreSQL wired in. It’s cloned to your GitHub, connected to a provisioned Postgres, and put live on our domain. Or just browse it on GitHub and borrow what you need.

Pro tip: You can assign your own domain to the app later.

Kotlin + Postgres example
rock8-cloud/template-kotlin

Add a database

Rock8Cloud provisions databases inside your project - no external vendor, no separate bill. Secure credentials and networking are handled for you. Two engines are available:

  • PostgreSQL - relational database (versions 14–17), 1–100 GB storage, optional high-availability replica.
  • Dragonfly - a Redis-compatible in-memory store for caching, sessions, and queues. Drop-in for any Redis client.

Create it, then set environment variables

  1. In your project, choose Add Service → Database, then pick the engine, version, and storage. Rock8Cloud provisions it with secure, auto-generated credentials.
  2. Open your Kotlin app and switch to the Env vars tab - home to all of your app's environment variables. Set any custom keys you need. Linked database values live right alongside them.
  3. Add the database's connection variables under the names your framework expects (for example DATABASE_URL). Save, and your Kotlin app automatically redeploys with the connection wired in.
Link environment variables in one click

The connection values are accessible to your app as plain environment variables - read them the standard way for your stack. Databases are network-isolated to your project: reachable only by your own services, never exposed publicly. Available databases & storage: PostgreSQL · Dragonfly (Redis) · S3 object storage.

What you get#

  • A live URL on our domain - share it the moment the first build lands.
  • Deploy on push - every push to your configured default branch rebuilds and ships automatically.
  • A preview URL per pull request - review real builds, not screenshots.
  • Instant rollback - one click back to any known-good build.

Add a frontend?#

Serving a SPA in front of your API? Deploy it as its own service - see the Vue guide - and point it at your API’s URL with a build-time variable. Need caching or file storage too? Dragonfly and S3 are one click each.

Frequently asked questions

Do I need a Dockerfile to deploy Kotlin?
Yes - copy the example from this guide. If it sets EXPOSE, Rock8Cloud infers the container port automatically, so there is nothing else to configure.
Is there a faster way to try it?
Yes - the open-source Kotlin template (Spring Boot REST API, Gradle, JDK 21) clones to your GitHub and goes live wired to a provisioned PostgreSQL in one click. You can assign your own domain later.
Does this work with Ktor too?
Yes. Build a runnable jar, expose its port in the Dockerfile, and deploy the same way - the flow is identical for any Kotlin server framework.
Gradle or Maven?
This guide and the template use Gradle. For Maven, see the Java guide - the same build approach applies to Maven-based Kotlin projects.
How do I connect a database to my Kotlin app?
Provision a PostgreSQL in your project and link it to the service. Map it to DATABASE_URL or spring.datasource.* variables - they become accessible on the next deploy.

More guides

Ship today

Ship your Kotlin app.Today.

Connect the repo, hit deploy, share the URL. Everything after that is just git push.

60 days free. No credit card required to start.