2.4 KiB
Rezervovator
Simple application for booking sport or service facilities.
Building project
You will need cargo-leptos tool:
cargo install cargo-leptos
The wasm-bindgen command line tool must be exactly the same version as the wasm-bindgen dependency pinned in Cargo.toml:
cargo install -f wasm-bindgen-cli --version 0.2.129
Running project
cargo leptos watch
Configuration
The server reads config.toml from the working directory, or from the path given with -c. Use config_sample.toml as a template.
The file contains the database and SMTP passwords and the session key. Keep it outside the site directory (target/site): everything in there is served as static files. The server refuses to start when the config file is inside it.
Running in Docker
Mount the config file to /app/config/config.toml:
docker run -p 3000:3000 -v /path/to/config-dir:/app/config rezervator
Set bind_ip = '0.0.0.0' in the config so the server is reachable from outside the container.
Older versions of the image expected the config in /app/target/site/data/config.toml, where it could be downloaded from /data/config.toml. If you ran such a container, move the file and change the database password, the SMTP password and the session key.
Running tests
cargo test --features ssr
Executing a Server on a Remote Machine Without the Toolchain
After running a cargo leptos build --release the minimum files needed are:
- The server binary located in
target/server/release - The
sitedirectory and all files within located intarget/site
Copy these files to your remote server. The directory structure should be:
leptos_start
site/
Set the following environment variables (updating for your project as needed):
export LEPTOS_OUTPUT_NAME="leptos_start"
export LEPTOS_SITE_ROOT="site"
export LEPTOS_SITE_PKG_DIR="pkg"
export LEPTOS_SITE_ADDR="127.0.0.1:3000"
export LEPTOS_RELOAD_PORT="3001"
Finally, run the server binary.
Notes about SSG and Trunk:
Although it is not recommended, you can also run your project without server integration using the feature csr and trunk serve:
trunk serve --open --features csr
This may be useful for integrating external tools which require a static site, e.g. tauri.