Leptos Logo # Leptos Starter Template This is a template for use with the [Leptos](https://github.com/leptos-rs/leptos) web framework and the [cargo-leptos](https://github.com/akesson/cargo-leptos) tool. ## Creating your template repo If you don't have `cargo-leptos` installed you can install it with `cargo install cargo-leptos` Then run `cargo leptos new --git leptos-rs/start` to generate a new project template. `cd {projectname}` to go to your newly created project. Of course you should explore around the project structure, but the best place to start with your application code is in `src/app.rs`. ## Running your project `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 target add wasm32-unknown-unknown` - add the ability to compile Rust to WebAssembly 3. `cargo install cargo-generate` - install `cargo-generate` binary (should be installed automatically in future) 4. `npm install -g sass` - install `dart-sass` (should be optional in future) ## 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 como_web site/ ``` Set the following enviornment variables (updating for your project as needed): ```text LEPTOS_OUTPUT_NAME="como_web" LEPTOS_SITE_ROOT="site" LEPTOS_SITE_PKG_DIR="pkg" LEPTOS_SITE_ADDR="127.0.0.1:3000" 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`.