2.6 KiB
Leptos Starter Template
This is a template for use with the Leptos web framework and the 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 (you will be prompted to enter a project name).
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
By default, you can access your local project at http://localhost:3000
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.
rustup toolchain install nightly --allow-downgrade- make sure you have Rust nightlyrustup target add wasm32-unknown-unknown- add the ability to compile Rust to WebAssemblycargo install cargo-generate- installcargo-generatebinary (should be installed automatically in future)npm install -g sass- installdart-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:
- The server binary located in
target/server/release - The
sitedirectory and all files within located intarget/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 CSR 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.