Skip to content

siru-ink/rusty-cart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rusty-Cart

Rust Edition License Self-hosted

A minimal self-hosted web application for managing todos and groceries, built with Rust and server-side templates.

Installation

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

Configuration is handled via Rocket.toml. Customizables are:

  • Server port
  • Sqlite database locations
  • Encrypted cookies secret key

Use Cases

  • Personal task and grocery tracking
  • Lightweight household management
  • Self-hosted alternative to simple productivity apps

Features

  • 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

Technology Stack

  • 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

FAQ

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.