No description
| docs | ||
| gradle/wrapper | ||
| src | ||
| .gitignore | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| README.md | ||
| settings.gradle.kts | ||
MoeMailer
This project was created using the Ktor Project Generator.
Here are some useful links to get you started:
- Ktor Documentation
- Ktor GitHub page
- The Ktor Slack chat. You'll need to request an invite to join.
Features
Here's a list of features included in this project:
| Name | Description |
|---|---|
| CORS | Enables Cross-Origin Resource Sharing (CORS) |
| Default Headers | Adds a default set of headers to HTTP responses |
| HttpsRedirect | Redirects insecure HTTP requests to the respective HTTPS endpoint |
| Routing | Provides a structured routing DSL |
| OpenAPI | Serves OpenAPI documentation |
| Simple Cache | Provides API for cache management |
| Swagger | Serves Swagger UI for your project |
| Authentication | Provides extension point for handling the Authorization header |
| Authentication OAuth | Handles OAuth Bearer authentication scheme |
| Authentication JWT | Handles JSON Web Token (JWT) bearer authentication scheme |
| Content Negotiation | Provides automatic content conversion according to Content-Type and Accept headers |
| kotlinx.serialization | Handles JSON serialization using kotlinx.serialization library |
| Sessions | Adds support for persistent sessions through cookies or headers |
| Status Pages | Provides exception handling for routes |
| GSON | Handles JSON serialization using GSON library |
| HTML DSL | Generates HTML from Kotlin DSL |
| Exposed | Adds Exposed database to your application |
| WebSockets | Adds WebSocket protocol support for bidirectional client connections |
Building & Running
To build or run the project, use one of the following tasks:
| Task | Description |
|---|---|
./gradlew test |
Run the tests |
./gradlew build |
Build everything |
./gradlew buildFatJar |
Build an executable JAR of the server with all dependencies included |
./gradlew buildImage |
Build the docker image to use with the fat JAR |
./gradlew publishImageToLocalRegistry |
Publish the docker image locally |
./gradlew run |
Run the server |
./gradlew runDocker |
Run using the local docker image |
If the server starts successfully, you'll see the following output:
2024-12-04 14:32:45.584 [main] INFO Application - Application started in 0.303 seconds.
2024-12-04 14:32:45.682 [main] INFO Application - Responding at http://0.0.0.0:8080