A simple, self-hostable task manager built with Rust, PostgreSQL, and Svelte. Manage your tasks from any device on your network.
Clone the repository
git clone https://github.com/ozx1/todoit
cd todoit
Copy the example env file and fill in your values
cp .env.example .env
Edit .env:
POSTGRES_USER=postgres
POSTGRES_PASSWORD=your_strong_password
POSTGRES_DB=tasks_db
BACKEND_PORT=8090
FRONTEND_PORT=80
Run
docker-compose up -d
Open your browser and go to http://localhost
Find your server's local IP address:
ipconfig → look for IPv4 Addresshostname -IOpen http://YOUR_IP on any device connected to the same network
(Optional) Set a static IP in your router's DHCP reservation settings so the address never changes
docker-compose down
To stop and delete all data:
docker-compose down -v
Create a Postgres database called tasks_db and run init.sql to create the tasks table
Create backend/.env:
DATABASE_URL=postgres://postgres:yourpassword@localhost:5432/tasks_db
Run:
cd backend
cargo run
Create frontend/.env:
VITE_API_URL=http://localhost:8090
Run:
cd frontend
npm install
npm run dev
./local_dev.sh
| Layer | Technology |
|---|---|
| Backend | Rust, Axum, SQLx |
| Database | PostgreSQL |
| Frontend | Svelte, Tailwind CSS |
| Reverse Proxy | Nginx |
| Containerization | Docker, Docker Compose |
This project is licensed under the MIT License — see the LICENSE file for details.