Launcher is a template for Web technology based Applications. Based on Spring Boot it offers a specialised opinionated view on how to modularise, implement and deploy such applications.
It is to be used and applied on an 'as is' basis with no guarantee of functionality.
If you'd like to contribute please read the Contribution Guidelines This code is licensed under the UNLICENSE
Even tough each project is different is different in a business sense, there are still a lot of functionalities which overlap even between very heterogeneous projects. Launcher aims to identify those overlaps and provide dvelopers with a quickstart template.
This application template represents a strong opinionated view on the layout of Kotlin applications. The layout is aimed at building a a modularised monolith , which can easily be separated into micro services at any point in time.
- runtime for local execution including
- application configuration
- logging configuration
- build and distribution configurations
- bitbucket pipelines (bitbucket-pipelines.yml)
- travis ci (github) .travis.yml
- assembly of distributable as zip
- via ftp (see ./pom.xml)
- cli runtime for windows and linux
- google app engine runtime
- integration testing of the REST api
- documentation generation with SpringRestDocs through the integratoin tests
- Template for a customer readme.html
- Integration Tests
- Project Setup
- CI
- code analysis
- CD
- Runtime
- Externalised Configuration
- Modules
- Docker
- Security
- Rest API
- Documentation for Frontend Developers
- Automatic client generation with Swagger
- Automatic Database Migration
- User Module
- Registration & Confirmation
- Authentication Provider
- Password Reset
- GDPR / DSGVO Compliance
- Authentication Providers via Facebook, Google, Twitter, …
- Web Frontend
Application configuration is done via standard spring-boot config providers
- application.properties is used for technical configuration
- application.yml can be used for business configuration
Logging is done via the Logback framework. Logging configuration currently is only availible at compile time.
For distribution of the assembled zip file via ftp call:
mvn clean package wagon:upload-single
Ftp login credentials need to be configured in you maven settings xml. Usually be found at ~/.m2/settings.xml
A custom settings file can also be generated by a shell command. See bitbucket-pipelines.yml for an example
<settings>
<servers>
<server>
<id>launcher-ftp-distribution-server</id>
<username>myuseraccount</username>
<password>s3cret</password>
</server>
</servers>
</settings>