84 lines
3.0 KiB
Markdown
84 lines
3.0 KiB
Markdown
# Welcome to Loco :train:
|
|
|
|
[Loco](https://loco.rs) is a web and API framework running on Rust.
|
|
|
|
This is the **SaaS starter** which includes a `User` model and authentication based on JWT.
|
|
It also include configuration sections that help you pick either a frontend or a server-side template set up for your fullstack server.
|
|
|
|
|
|
## Quick Start
|
|
|
|
```sh
|
|
cargo loco start
|
|
```
|
|
|
|
```sh
|
|
$ cargo loco start
|
|
Finished dev [unoptimized + debuginfo] target(s) in 21.63s
|
|
Running `target/debug/myapp start`
|
|
|
|
:
|
|
:
|
|
:
|
|
|
|
controller/app_routes.rs:203: [Middleware] Adding log trace id
|
|
|
|
▄ ▀
|
|
▀ ▄
|
|
▄ ▀ ▄ ▄ ▄▀
|
|
▄ ▀▄▄
|
|
▄ ▀ ▀ ▀▄▀█▄
|
|
▀█▄
|
|
▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▀▀█
|
|
██████ █████ ███ █████ ███ █████ ███ ▀█
|
|
██████ █████ ███ █████ ▀▀▀ █████ ███ ▄█▄
|
|
██████ █████ ███ █████ █████ ███ ████▄
|
|
██████ █████ ███ █████ ▄▄▄ █████ ███ █████
|
|
██████ █████ ███ ████ ███ █████ ███ ████▀
|
|
▀▀▀██▄ ▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀ ██▀
|
|
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
|
|
https://loco.rs
|
|
|
|
environment: development
|
|
database: automigrate
|
|
logger: debug
|
|
compilation: debug
|
|
modes: server
|
|
|
|
listening on http://localhost:5150
|
|
```
|
|
|
|
## Full Stack Serving
|
|
|
|
You can check your [configuration](config/development.yaml) to pick either frontend setup or server-side rendered template, and activate the relevant configuration sections.
|
|
|
|
## Production Docker Deploy
|
|
|
|
Create the production environment file:
|
|
|
|
```sh
|
|
cp .env.production.example .env.production
|
|
```
|
|
|
|
Edit `.env.production` and set real secrets for `POSTGRES_PASSWORD`, `JWT_SECRET`, `OAUTH_PRIVATE_KEY`, and the OAuth client values. Create the shared network once (the central Caddy joins it too):
|
|
|
|
```sh
|
|
docker network create kompress_eshop-net
|
|
```
|
|
|
|
Then start the production stack:
|
|
|
|
```sh
|
|
make up
|
|
```
|
|
|
|
The stack runs the Loco app + Postgres only — TLS/routing is handled by the
|
|
central Caddy (`docker-compose.caddy.yml`), which shares the external
|
|
`kompress_eshop-net` network and reaches the app as `kompress:5150` via the
|
|
imported `Caddyfile`. The app port `5150` is never published to the host.
|
|
|
|
|
|
## Getting help
|
|
|
|
Check out [a quick tour](https://loco.rs/docs/getting-started/tour/) or [the complete guide](https://loco.rs/docs/getting-started/guide/).
|