Authentication / Authorization server example with Rust, Warp, Postgres
Authentication / Authorization server example with Rust, Warp, Postgres
and also:
Three options: On your local machine with Docker, from the Docker image, or using kubernetes
Run make
This will start docker containers for: the API, the postgres database,
Run
docker run -p 0.0.0.0:8080:8080 -e DATABASE_URL=postgres://user:pass@postgres/db docker.pkg.github.com/nmrshll/auth-rs-warp/api:latest
In this configuration you need to provide your own postgres server, and run the migrations onto it manually.
A Kubernetes deployment file is included. It needs to be applied with CUE. Examples commands to do that are included in the makefile
For instance for a complete deployment on the current kubernetes context:
make k.all
Configuration is applied, from highest to lowest priority, through:
./.config/api_config(.ext)?
(relative to the binary). The config format (and extension (.ext)?
) can be json
,yaml
,toml
,hcl
, ini
or none (autodetected).These options are:
Option | ENV_VAR name | Config name | Default |
---|---|---|---|
Postgres DSN | DATABASE_URL |
database_url |
|
Postgres user | POSTGRES_USER |
postgres_user |
|
Postgres password | POSTGRES_PASSWORD |
postgres_password |
|
Postgres database | POSTGRES_DB |
postgres_db |
|
Postgres host | POSTGRES_HOST |
postgres_db |
|
HTTP port | HTTP_PORT |
http_port |
8080 |
Log level | RUST_LOG |
postgres_db |
auth-rs-warp=debug |
Enable backtraces | RUST_BACKTRACE |
rust_backtrace |
1 |
Note: At least one of database_url
/ postgres_host/user/pw/db
must be defined. If both defined they must be compatible
Local testing is available by running
make test
Test requests are included in the makefile (using curl
)
make users/register
make users/check
make users/login
make protected
Don’t hesitate to file a bug, request a feature, or simply comment using issues.
If you want to help here’s a few useful tasks I have in mind for this project: