# doordesk-rs site-generator-eventually-cms in Rust using Leptos right now it reads markdown and generates some old blog articles ## Leptos stuff ```bash cargo install cargo-leptos ``` ```bash 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 ```bash cargo leptos build --release ``` Will generate your server binary in target/server/release and your site package in target/site ## Testing Your Project ```bash cargo leptos end-to-end ``` ```bash 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: ```text doordesk site/ ``` Set the following enviornment variables (updating for your project as needed): ```text 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.