rust rust baby
Find a file
2024-10-01 20:48:10 -04:00
app rm cards and format 2024-10-01 20:48:10 -04:00
end2end islands 2024-01-25 02:40:50 -05:00
frontend cleanup 2024-01-31 22:49:08 -05:00
public site name 2024-07-19 22:17:37 -04:00
server reduce spam 2024-07-16 03:57:10 -04:00
style ui stuff 2024-01-28 23:39:50 -05:00
.gitignore islands 2024-01-25 02:40:50 -05:00
Cargo.lock update deps 2024-10-01 20:46:49 -04:00
Cargo.toml update deps 2024-10-01 20:46:49 -04:00
LICENSE islands 2024-01-25 02:40:50 -05:00
README.md islands 2024-01-25 02:40:50 -05:00
rust-toolchain.toml islands 2024-01-25 02:40:50 -05:00
tailwind.config.js islands 2024-01-25 02:40:50 -05:00

doordesk-rs

site-generator-eventually-cms in Rust using Leptos

right now it reads markdown and generates some old blog articles

Leptos stuff

cargo install cargo-leptos
cargo leptos watch

Installing Additional Tools

By default, cargo-leptos uses nightly Rust, cargo-generate, and sass. If you run into any trouble, you may need to install one or more of these tools.

  1. rustup toolchain install nightly --allow-downgrade - make sure you have Rust nightly
  2. rustup default nightly - setup nightly as default, or you can use rust-toolchain file later on
  3. rustup target add wasm32-unknown-unknown - add the ability to compile Rust to WebAssembly
  4. cargo install cargo-generate - install cargo-generate binary (should be installed automatically in future)
  5. npm install -g sass - install dart-sass (should be optional in future

Compiling for Release

cargo leptos build --release

Will generate your server binary in target/server/release and your site package in target/site

Testing Your Project

cargo leptos end-to-end
cargo leptos end-to-end --release

Cargo-leptos uses Playwright as the end-to-end test tool.
Tests are located in end2end/tests directory.

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:

doordesk
site/

Set the following enviornment variables (updating for your project as needed):

LEPTOS_OUTPUT_NAME="doordesk"
LEPTOS_SITE_ROOT="site"
LEPTOS_SITE_PKG_DIR="pkg"
LEPTOS_SITE_ADDR="0.0.0.0:3000"
LEPTOS_RELOAD_PORT="3001"

Finally, run the server binary.