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.

Data directory

Files created while the application runs (the uploaded banner and the styles generated for it) are stored in the data directory and served under /data. By default it is data in the working directory; change it with data_dir in the [storage] section of the config. Keep this directory when you upgrade the application and include it in backups. Never put the config file into it.

When upgrading from a version that kept these files in target/site/data, move the banner image to the data directory. The style for it is generated again on start.

Running in Docker

Mount the config file to /app/config/config.toml and a persistent volume for the data directory to /app/data:

docker run -p 3000:3000 -v /path/to/config-dir:/app/config -v rezervator-data:/app/data 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.9 MiB
Languages
Rust 87.6%
Shell 6.4%
CSS 3.8%
SCSS 1%
TypeScript 0.7%
Other 0.5%