{"id":"21ad6c09-1bc6-4b69-b92c-dea114d19c9d","shortId":"xRAjdn","kind":"skill","title":"Create Spring Boot Kotlin Project","tagline":"Awesome Copilot skill by Github","description":"# Create Spring Boot Kotlin project prompt\n\n- Please make sure you have the following software installed on your system:\n\n  - Java 21\n  - Docker\n  - Docker Compose\n\n- If you need to custom the project name, please change the `artifactId` and the `packageName` in [download-spring-boot-project-template](./create-spring-boot-kotlin-project.prompt.md#download-spring-boot-project-template)\n\n- If you need to update the Spring Boot version, please change the `bootVersion` in [download-spring-boot-project-template](./create-spring-boot-kotlin-project.prompt.md#download-spring-boot-project-template)\n\n## Check Java version\n\n- Run following command in terminal and check the version of Java\n\n```shell\njava -version\n```\n\n## Download Spring Boot project template\n\n- Run following command in terminal to download a Spring Boot project template\n\n```shell\ncurl https://start.spring.io/starter.zip \\\n  -d artifactId=${input:projectName:demo-kotlin} \\\n  -d bootVersion=3.4.5 \\\n  -d dependencies=configuration-processor,webflux,data-r2dbc,postgresql,data-redis-reactive,data-mongodb-reactive,validation,cache,testcontainers \\\n  -d javaVersion=21 \\\n  -d language=kotlin \\\n  -d packageName=com.example \\\n  -d packaging=jar \\\n  -d type=gradle-project-kotlin \\\n  -o starter.zip\n```\n\n## Unzip the downloaded file\n\n- Run following command in terminal to unzip the downloaded file\n\n```shell\nunzip starter.zip -d ./${input:projectName:demo-kotlin}\n```\n\n## Remove the downloaded zip file\n\n- Run following command in terminal to delete the downloaded zip file\n\n```shell\nrm -f starter.zip\n```\n\n## Unzip the downloaded file\n\n- Run following command in terminal to unzip the downloaded file\n\n```shell\nunzip starter.zip -d ./${input:projectName:demo-kotlin}\n```\n\n## Add additional dependencies\n\n- Insert `springdoc-openapi-starter-webmvc-ui` and `archunit-junit5` dependency into `build.gradle.kts` file\n\n```gradle.kts\ndependencies {\n  implementation(\"org.springdoc:springdoc-openapi-starter-webflux-ui:2.8.6\")\n  testImplementation(\"com.tngtech.archunit:archunit-junit5:1.2.1\")\n}\n```\n\n- Insert SpringDoc configurations into `application.properties` file\n\n```properties\n# SpringDoc configurations\nspringdoc.swagger-ui.doc-expansion=none\nspringdoc.swagger-ui.operations-sorter=alpha\nspringdoc.swagger-ui.tags-sorter=alpha\n```\n\n- Insert Redis configurations into `application.properties` file\n\n```properties\n# Redis configurations\nspring.data.redis.host=localhost\nspring.data.redis.port=6379\nspring.data.redis.password=rootroot\n```\n\n- Insert R2DBC configurations into `application.properties` file\n\n```properties\n# R2DBC configurations\nspring.r2dbc.url=r2dbc:postgresql://localhost:5432/postgres\nspring.r2dbc.username=postgres\nspring.r2dbc.password=rootroot\n\nspring.sql.init.mode=always\nspring.sql.init.platform=postgres\nspring.sql.init.continue-on-error=true\n```\n\n- Insert MongoDB configurations into `application.properties` file\n\n```properties\n# MongoDB configurations\nspring.data.mongodb.host=localhost\nspring.data.mongodb.port=27017\nspring.data.mongodb.authentication-database=admin\nspring.data.mongodb.username=root\nspring.data.mongodb.password=rootroot\nspring.data.mongodb.database=test\n```\n\n- Create `docker-compose.yaml` at project root and add following services: `redis:6`, `postgresql:17` and `mongo:8`.\n\n  - redis service should have\n    - password `rootroot`\n    - mapping port 6379 to 6379\n    - mounting volume `./redis_data` to `/data`\n  - postgresql service should have\n    - password `rootroot`\n    - mapping port 5432 to 5432\n    - mounting volume `./postgres_data` to `/var/lib/postgresql/data`\n  - mongo service should have\n    - initdb root username `root`\n    - initdb root password `rootroot`\n    - mapping port 27017 to 27017\n    - mounting volume `./mongo_data` to `/data/db`\n\n- Insert `redis_data`, `postgres_data` and `mongo_data` directories in `.gitignore` file\n\n- Run gradle clean test command to check if the project is working\n\n```shell\n./gradlew clean test\n```\n\n- (Optional) `docker-compose up -d` to start the services, `./gradlew spring-boot:run` to run the Spring Boot project, `docker-compose rm -sf` to stop the services.\n\nLet's do this step by step.","tags":["create","spring","boot","kotlin","project","awesome","copilot","github"],"capabilities":["skill","source-github","category-awesome-copilot"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/create-spring-boot-kotlin-project","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under github/awesome-copilot","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T08:40:12.523Z","embedding":null,"createdAt":"2026-04-18T20:26:13.274Z","updatedAt":"2026-04-22T08:40:12.523Z","lastSeenAt":"2026-04-22T08:40:12.523Z","tsv":"'/create-spring-boot-kotlin-project.prompt.md':56,83 '/data':393 '/data/db':431 '/gradlew':457,470 '/mongo_data':429 '/postgres_data':407 '/redis_data':391 '/starter.zip':128 '/var/lib/postgresql/data':409 '1.2.1':280 '17':374 '2.8.6':274 '21':30,162 '27017':352,424,426 '3.4.5':138 '5432':402,404 '5432/postgres':326 '6':372 '6379':311,386,388 '8':377 'add':246,368 'addit':247 'admin':355 'alpha':295,298 'alway':332 'application.properties':285,303,318,344 'archunit':258,278 'archunit-junit5':257,277 'artifactid':45,130 'awesom':6 'boot':3,13,53,60,70,80,87,109,121,473,479 'bootvers':75,137 'build.gradle.kts':262 'cach':158 'category-awesome-copilot' 'chang':43,73 'check':90,99,450 'clean':446,458 'com.example':168 'com.tngtech.archunit':276 'command':95,114,186,210,229,448 'compos':33,463,483 'configur':142,283,289,301,307,316,322,342,348 'configuration-processor':141 'copilot':7 'creat':1,11,362 'curl':125 'custom':38 'd':129,136,139,160,163,166,169,172,197,240,465 'data':146,150,154,434,436,439 'data-mongodb-react':153 'data-r2dbc':145 'data-redis-react':149 'databas':354 'delet':214 'demo':134,201,244 'demo-kotlin':133,200,243 'depend':140,248,260,265 'directori':440 'docker':31,32,462,482 'docker-compos':461,481 'docker-compose.yaml':363 'download':51,58,78,85,107,118,182,192,205,216,225,235 'download-spring-boot-project-templ':50,57,77,84 'error':338 'expans':291 'f':221 'file':183,193,207,218,226,236,263,286,304,319,345,443 'follow':23,94,113,185,209,228,369 'github':10 'gitignor':442 'gradl':175,445 'gradle-project-kotlin':174 'gradle.kts':264 'implement':266 'initdb':414,418 'input':131,198,241 'insert':249,281,299,314,340,432 'instal':25 'jar':171 'java':29,91,103,105 'javavers':161 'junit5':259,279 'kotlin':4,14,135,165,177,202,245 'languag':164 'let':490 'localhost':309,325,350 'make':18 'map':384,400,422 'mongo':376,410,438 'mongodb':155,341,347 'mount':389,405,427 'name':41 'need':36,65 'none':292 'o':178 'on-error':336 'openapi':252,270 'option':460 'org.springdoc':267 'packag':170 'packagenam':48,167 'password':382,398,420 'pleas':17,42,72 'port':385,401,423 'postgr':328,334,435 'postgresql':148,373,394 'processor':143 'project':5,15,40,54,61,81,88,110,122,176,365,453,480 'projectnam':132,199,242 'prompt':16 'properti':287,305,320,346 'r2dbc':147,315,321,324 'reactiv':152,156 'redi':151,300,306,371,378,433 'remov':203 'rm':220,484 'root':357,366,415,417,419 'rootroot':313,330,359,383,399,421 'run':93,112,184,208,227,444,474,476 'servic':370,379,395,411,469,489 'sf':485 'shell':104,124,194,219,237,456 'skill':8 'softwar':24 'sorter':294,297 'source-github' 'spring':2,12,52,59,69,79,86,108,120,472,478 'spring-boot':471 'spring.data.mongodb.authentication':353 'spring.data.mongodb.database':360 'spring.data.mongodb.host':349 'spring.data.mongodb.password':358 'spring.data.mongodb.port':351 'spring.data.mongodb.username':356 'spring.data.redis.host':308 'spring.data.redis.password':312 'spring.data.redis.port':310 'spring.r2dbc.password':329 'spring.r2dbc.url':323 'spring.r2dbc.username':327 'spring.sql.init.continue':335 'spring.sql.init.mode':331 'spring.sql.init.platform':333 'springdoc':251,269,282,288 'springdoc-openapi-starter-webflux-ui':268 'springdoc-openapi-starter-webmvc-ui':250 'springdoc.swagger-ui.doc':290 'springdoc.swagger-ui.operations':293 'springdoc.swagger-ui.tags':296 'start':467 'start.spring.io':127 'start.spring.io/starter.zip':126 'starter':253,271 'starter.zip':179,196,222,239 'step':494,496 'stop':487 'sure':19 'system':28 'templat':55,62,82,89,111,123 'termin':97,116,188,212,231 'test':361,447,459 'testcontain':159 'testimplement':275 'true':339 'type':173 'ui':255,273 'unzip':180,190,195,223,233,238 'updat':67 'usernam':416 'valid':157 'version':71,92,101,106 'volum':390,406,428 'webflux':144,272 'webmvc':254 'work':455 'zip':206,217","prices":[{"id":"747508a2-0de6-4977-b0ad-cba6a6d05d95","listingId":"21ad6c09-1bc6-4b69-b92c-dea114d19c9d","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:26:13.274Z"}],"sources":[{"listingId":"21ad6c09-1bc6-4b69-b92c-dea114d19c9d","source":"github","sourceId":"github/awesome-copilot/create-spring-boot-kotlin-project","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/create-spring-boot-kotlin-project","isPrimary":false,"firstSeenAt":"2026-04-18T21:48:54.675Z","lastSeenAt":"2026-04-22T06:52:18.420Z"},{"listingId":"21ad6c09-1bc6-4b69-b92c-dea114d19c9d","source":"skills_sh","sourceId":"github/awesome-copilot/create-spring-boot-kotlin-project","sourceUrl":"https://skills.sh/github/awesome-copilot/create-spring-boot-kotlin-project","isPrimary":true,"firstSeenAt":"2026-04-18T20:26:13.274Z","lastSeenAt":"2026-04-22T08:40:12.523Z"}],"details":{"listingId":"21ad6c09-1bc6-4b69-b92c-dea114d19c9d","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"create-spring-boot-kotlin-project","source":"skills_sh","category":"awesome-copilot","skills_sh_url":"https://skills.sh/github/awesome-copilot/create-spring-boot-kotlin-project"},"updatedAt":"2026-04-22T08:40:12.523Z"}}