The vision for the project is encapsulated in our tagline:
A starter kit for quickly building secure & performant modern applications. Ease of use, performance, flexibility, choose three.
Launchpad is a template for building modern software applications.
There's no magic. No hidden configurations. You have full control over your code from the moment you take the hot seat in Mission Control.
The launchpad template is designed to be production ready from Day One and provide a foundation for common tasks in setting up software applications.
The components are modular, empowering you to swap out solutions that don't make sense for your application as it grows.
Expand for details...
- Rust
- Postgres
- Docker
- NodeJS
- Yarn
This project depends on a few Rust packages
cargo-chef
which builds Rust projects in Docker with automatic caching.just
is amake
-style task runner that doesn't require tabs.watchexec
is a filewatcher for easy development.mdbook
is a command to create an online book from markdown files.mdbook-linkcheck
is a linter for verifying the mdbook links are valid.
Run cargo install cargo-chef just watchexec mdkook mdbook-linkcheck
to install the dependencies.
The front-end is a simple Create React App using Tailwind UI.
It's easily swappable for Vue, Svelte, Elm or your custom front-end application.
It's built for production and served statically via a Docker container.
The backend consists of a series of services, each of which is responsible for a single concern.
The primary service is simply named "API" and is a Rocket service with pre-configured hooks into the authentication service.
Authentication is handled by ORY Kratos, a backend service for managing identities.
Postgres is the primary database. Two different databases are run inside a single Postgres instance, kratos
for user identity management and api
for use by the API service.
TLS encryption of public internet traffic is terminated at a reverse-proxy. All other services communicate via an internal network and do not expose ports to the internet.
ORY Oathkeeper, provides access control and routing for traffic recieved from the reverse proxy. Oathkeeper will ensure that requests are routed to the appropriate service and confirm access against the identity server ORY Kratos.
By default, unauthenticated users ("guests") will be redirected to the /auth/login
route if attempting to access any other route.
All contributions are welcome! This code is meant for you so feel free to suggest improvements or features!
Not all features will be accepted, but the maintainer(s) will strive to handle requests transparently.
Please open a GitHub issue if you have questions or need to get in touch with the maintainers.
- Need to sign up for security alerts for all major frameworks components. Route them to
security-alerts@launchpad.rs
and perfom maintenence/upgrades as needed. - Need to sign up for upgrade alerts for all major frameworks components. Route them to
dependencies@launchpad.rs
and perfom maintenence/upgrades as needed.
Launchpad is licensed under either of the following, at your option:
Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)