2026-10-12 07:51:29 +02:00
2023-08-18 12:22:23 +02:00

Rezervovator Logo

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:

  1. The server binary located in target/server/release
  2. The site directory and all files within located in target/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.

S
Description
No description provided
Readme MIT
5.6 MiB
Languages
Rust 87.5%
Shell 7.3%
CSS 2.5%
SCSS 1.2%
TypeScript 0.9%
Other 0.6%