**Recipes** is a multi-user website to manage and publish cooking recipes. # Technical ## Backend ### Launch Axum In directory /backend type: ```$> cargo run``` Then browse http://127.0.0.1:8082 (You need to compile the wasm file first, see section *Frontend*) At first launch the configuration file '/backend/conf.ron' is created. It contains the port the server will listen to and information about the SMTP server which will be used to send email when a user sign up or change its password. ### Autoreload First install cargo watch: ```$> cargo install cargo-watch``` In directory /backend type: ```$> cargo watch -x run``` ## Frontend ### Tools needed trunk: https://trunkrs.dev ### Compilation In directory /frontend type: ```$> trunk build``` It will create the wasm file in '/backend/static'. You can now refresh your browser to reload the wasm file. # How-to ## How to install service on a Linux server (with *systemd*) As root: 1. Copy '/doc/recipes.service' to '/lib/systemd/system/' 2. Change the values of `User`, `WorkingDirectory` and `ExecStart`. 2. Enabled it: `#> systemctl enable recipes` 3. Launch it: `#> systemctl start recipes` ## Cross compile for Raspberry PI on Windows * https://gnutoolchains.com/raspberry/ * https://gnutoolchains.com/raspberry64/ # Useful URLs * Rust patterns: https://github.com/rust-unofficial/patterns * Rust cheat Sheet: https://cheats.rs/ * HTML Validation Service: https://validator.w3.org/ * Site analysis: https://pagespeed.web.dev/ * Open-Source UI: https://uiverse.io/ # Useful tools * nushell (.nu scripts): https://www.nushell.sh/ * HTTP benchmarking and stress tool: https://crates.io/crates/oha * HTTP API tool: https://www.usebruno.com/ * GUI Database client: https://dbeaver.io/