Create Spring Boot Kotlin Project
GitHubOfficialFirst committed by wuwen5Distributed by GitHub
- Skill
- Workflow
- Software development
- MIT
- Low risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured workflow to initialize a new Spring Boot project using Kotlin. It automates the download of a project template from the Spring Initializr, configures essential dependencies like WebFlux, R2DBC, and MongoDB, and sets up a Docker Compose environment for local development. The process includes configuring application properties for Redis, PostgreSQL, and MongoDB, as well as adding documentation and testing tools to ensure the project is ready for immediate development.
What it does
- Downloads a base Spring Boot Kotlin project template from Spring Initializr.
- Configures project dependencies including WebFlux, R2DBC, and reactive data stores.
- Adds SpringDoc OpenAPI and ArchUnit for documentation and architectural testing.
- Generates a docker-compose.yaml file for local database and cache services.
- Updates application properties for integrated database and cache connectivity.
- Verifies the project setup by running a clean test command.
When to use it
- When starting a new backend project using Spring Boot and Kotlin.
- When you need a standardized project structure with pre-configured reactive data stacks.
- When you want to quickly spin up a local development environment with PostgreSQL, MongoDB, and Redis.
- When you need to integrate OpenAPI documentation and architectural testing from the start.
Advantages
- Reduces manual setup time for common Spring Boot project configurations.
- Ensures consistent project structure and dependency versions.
- Provides a ready-to-use Docker environment for local infrastructure.
- Includes essential testing and documentation tools out of the box.
Usage examples
- “Create a new Spring Boot Kotlin project named my-api.”
- The agent will execute the sequence to download the template, configure the specified dependencies, create the docker-compose file, and verify the project with a test run.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/github/create-spring-boot-kotlin-project/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip create-spring-boot-kotlin-project.zip -d .agents/skills
Documentation by wuwen5
Create Spring Boot Kotlin project prompt
Please make sure you have the following software installed on your system:
Java 21
Docker
Docker Compose
If you need to custom the project name, please change the
artifactIdand thepackageNamein download-spring-boot-project-templateIf you need to update the Spring Boot version, please change the
bootVersionin download-spring-boot-project-template
Check Java version
Run following command in terminal and check the version of Java
java -versionDownload Spring Boot project template
Run following command in terminal to download a Spring Boot project template
curl https://start.spring.io/starter.zip \
-d artifactId=${input:projectName:demo-kotlin} \
-d bootVersion=3.4.5 \
-d dependencies=configuration-processor,webflux,data-r2dbc,postgresql,data-redis-reactive,data-mongodb-reactive,validation,cache,testcontainers \
-d javaVersion=21 \
-d language=kotlin \
-d packageName=com.example \
-d packaging=jar \
-d type=gradle-project-kotlin \
-o starter.zipUnzip the downloaded file
Run following command in terminal to unzip the downloaded file
unzip starter.zip -d ./${input:projectName:demo-kotlin}Remove the downloaded zip file
Run following command in terminal to delete the downloaded zip file
rm -f starter.zipUnzip the downloaded file
Run following command in terminal to unzip the downloaded file
unzip starter.zip -d ./${input:projectName:demo-kotlin}Add additional dependencies
Insert
springdoc-openapi-starter-webmvc-uiandarchunit-junit5dependency intobuild.gradle.ktsfile
dependencies {
implementation("org.springdoc:springdoc-openapi-starter-webflux-ui:2.8.6")
testImplementation("com.tngtech.archunit:archunit-junit5:1.2.1")
}Insert SpringDoc configurations into
application.propertiesfile
# SpringDoc configurations
springdoc.swagger-ui.doc-expansion=none
springdoc.swagger-ui.operations-sorter=alpha
springdoc.swagger-ui.tags-sorter=alphaInsert Redis configurations into
application.propertiesfile
# Redis configurations
spring.data.redis.host=localhost
spring.data.redis.port=6379
spring.data.redis.password=rootrootInsert R2DBC configurations into
application.propertiesfile
# R2DBC configurations
spring.r2dbc.url=r2dbc:postgresql://localhost:5432/postgres
spring.r2dbc.username=postgres
spring.r2dbc.password=rootroot
spring.sql.init.mode=always
spring.sql.init.platform=postgres
spring.sql.init.continue-on-error=trueInsert MongoDB configurations into
application.propertiesfile
# MongoDB configurations
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=root
spring.data.mongodb.password=rootroot
spring.data.mongodb.database=testCreate
docker-compose.yamlat project root and add following services:redis:6,postgresql:17andmongo:8.redis service should have
password
rootrootmapping port 6379 to 6379
mounting volume
./redis_datato/data
postgresql service should have
password
rootrootmapping port 5432 to 5432
mounting volume
./postgres_datato/var/lib/postgresql/data
mongo service should have
initdb root username
rootinitdb root password
rootrootmapping port 27017 to 27017
mounting volume
./mongo_datato/data/db
Insert
redis_data,postgres_dataandmongo_datadirectories in.gitignorefileRun gradle clean test command to check if the project is working
./gradlew clean test(Optional)
docker-compose up -dto start the services,./gradlew spring-boot:runto run the Spring Boot project,docker-compose rm -sfto stop the services.
Let's do this step by step.
Files
- ATTRIBUTION.mdAdded by AutoGineer895 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md4.1 KiB
Requirements and compatibility
Written for: GitHub Copilot
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs network access
Security
What our scanner noticed· Low risk
- Instructions that use the network
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- First committed by
wuwen5
- Publisher
- GitHub (Official)
- Distributed by
- GitHub
- Source
- github/awesome-copilot · skills/create-spring-boot-kotlin-project · commit 797337f
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
- Contributors
- wuwen5
AutoGineer is not affiliated with or endorsed by wuwen5 or GitHub.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download create-spring-boot-kotlin-project.zip