initial commit, empty rocket server
This commit is contained in:
commit
27d02a0d5c
11 changed files with 2980 additions and 0 deletions
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# rust
|
||||||
|
/target
|
||||||
|
|
||||||
|
# ide
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# os
|
||||||
|
.DS_Store
|
||||||
17
.woodpecker/rust.yml
Normal file
17
.woodpecker/rust.yml
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
variables:
|
||||||
|
- &rust_image 'rust:1.67'
|
||||||
|
|
||||||
|
pipeline:
|
||||||
|
build:
|
||||||
|
image: *rust_image
|
||||||
|
commands:
|
||||||
|
# setup
|
||||||
|
- rm rust-toolchain.toml # use default installed toolchain
|
||||||
|
- rustup show
|
||||||
|
|
||||||
|
# test
|
||||||
|
- cargo test
|
||||||
|
|
||||||
|
# clippy
|
||||||
|
- rustup component add clippy
|
||||||
|
- cargo clippy
|
||||||
2860
Cargo.lock
generated
Normal file
2860
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
5
Cargo.toml
Normal file
5
Cargo.toml
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
[workspace]
|
||||||
|
|
||||||
|
members = [
|
||||||
|
"crates/*"
|
||||||
|
]
|
||||||
10
crates/ezidam/Cargo.toml
Normal file
10
crates/ezidam/Cargo.toml
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
[package]
|
||||||
|
name = "ezidam"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
rocket = "0.5.0-rc.2"
|
||||||
|
rocket_db_pools = { version = "0.1.0-rc.2", features = ["sqlx_sqlite"] }
|
||||||
|
rocket_dyn_templates = { version = "0.1.0-rc.2", features = ["tera"] }
|
||||||
|
infer = { version = "0.12.0", default-features = false }
|
||||||
15
crates/ezidam/justfile
Executable file
15
crates/ezidam/justfile
Executable file
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/usr/bin/env just --justfile
|
||||||
|
|
||||||
|
cargo := "cargo"
|
||||||
|
|
||||||
|
# list recipes
|
||||||
|
default:
|
||||||
|
just --list
|
||||||
|
|
||||||
|
# start web server
|
||||||
|
start:
|
||||||
|
{{cargo}} run
|
||||||
|
|
||||||
|
# dev server
|
||||||
|
dev:
|
||||||
|
{{cargo}} watch -x "run"
|
||||||
21
crates/ezidam/readme.md
Normal file
21
crates/ezidam/readme.md
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
# ezidam
|
||||||
|
|
||||||
|
web server for ezidam
|
||||||
|
|
||||||
|
## initial setup
|
||||||
|
|
||||||
|
- install https://github.com/casey/just (it's like `make` but simpler)
|
||||||
|
- install https://github.com/watchexec/watchexec (to restart server when updating files)
|
||||||
|
|
||||||
|
## tools
|
||||||
|
|
||||||
|
- `just start` to start the web server in debug mode
|
||||||
|
- `just dev` to restart the web server when files are edited
|
||||||
|
|
||||||
|
## documentation
|
||||||
|
|
||||||
|
head over to [rocket.rs](https://rocket.rs) to read rocket's documentation
|
||||||
|
|
||||||
|
## configuration
|
||||||
|
|
||||||
|
to configure the web server, see `Rocket.toml` and the [reference](https://rocket.rs/v0.5-rc/guide/configuration/#rockettoml)
|
||||||
19
crates/ezidam/src/main.rs
Normal file
19
crates/ezidam/src/main.rs
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
mod shutdown;
|
||||||
|
|
||||||
|
// see for using rocket with main function https://github.com/intellij-rust/intellij-rust/issues/5975#issuecomment-920620289
|
||||||
|
#[rocket::main]
|
||||||
|
async fn main() -> std::result::Result<(), rocket::Error> {
|
||||||
|
// Build server
|
||||||
|
let rocket_builder = rocket::build();
|
||||||
|
|
||||||
|
// Shutdown
|
||||||
|
let rocket_builder = shutdown::shutdown(rocket_builder);
|
||||||
|
|
||||||
|
// Launch server
|
||||||
|
let _ = rocket_builder
|
||||||
|
.launch()
|
||||||
|
.await
|
||||||
|
.expect("Failed to launch server");
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
10
crates/ezidam/src/shutdown.rs
Normal file
10
crates/ezidam/src/shutdown.rs
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
use rocket::fairing::AdHoc;
|
||||||
|
use rocket::{Build, Rocket};
|
||||||
|
|
||||||
|
pub fn shutdown(rocket_builder: Rocket<Build>) -> Rocket<Build> {
|
||||||
|
rocket_builder.attach(AdHoc::on_shutdown("Shutdown", |_| {
|
||||||
|
Box::pin(async move {
|
||||||
|
println!("Shutdown has been requested");
|
||||||
|
})
|
||||||
|
}))
|
||||||
|
}
|
||||||
13
readme.md
Normal file
13
readme.md
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# ezidam
|
||||||
|
|
||||||
|
pronounced as "ez" + "idam"
|
||||||
|
|
||||||
|
- ez: easy
|
||||||
|
- idam: identity and access management [wikipedia](https://en.wikipedia.org/wiki/Identity_management)
|
||||||
|
|
||||||
|
## setup
|
||||||
|
|
||||||
|
1. install rust via [rustup](https://rustup.rs)
|
||||||
|
2. install the `nightly` toolchain with `rustup toolchain install nightly`
|
||||||
|
|
||||||
|
use the nightly toolchain during development, it can provide better errors
|
||||||
2
rust-toolchain.toml
Normal file
2
rust-toolchain.toml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
[toolchain]
|
||||||
|
channel = "nightly"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue