A minimal self-hosted web application for managing todos and groceries, built with Rust and server-side templates.
Build the project using Cargo:
cargo build --release
Then run the application:
cargo run
The server will start using the configuration defined in /Rocket.toml. Make sure the process has permission to access templates and static assets in the project directory.
Configuration is handled via Rocket.toml. Customizables are:
- Server port
- Sqlite database locations
- Encrypted cookies secret key
- Personal task and grocery tracking
- Lightweight household management
- Self-hosted alternative to simple productivity apps
- Todo Management: Create and manage personal tasks
- Grocery Lists: Track shopping items efficiently
- Server-Side Rendering: HTML generated using Tera templates
- Authentication: Basic login functionality
- Modular Structure: Clean separation of concerns in Rust modules
- Rust: Fast, safe systems programming language
- Rocket: Web framework for routing and request handling
- Tera: Template engine for server-side HTML rendering
- SQLite: Lightweight storage with zero configuration and minimal overhead
Why server-side rendering?
Server-side rendering keeps the application simple, avoids heavy frontend frameworks, and works well for low-complexity tools.
Is Rusty-Cart production ready?
For large scale production use, the authentication framework is insufficient. In its current state it does not have a notion of session management. Users stay logged in until the server secret is rotated or the cookie times out.
Can the Port and Database Location be Configured?
Yes, both of these can be modified via environment keys in the /Rocket.toml file which needs to be present in the working directory of the running server binary.