A simple, self-hostable task manager built with Rust, PostgreSQL, and Svelte. Manage your tasks from any device on your network.
This is a hobby Project Not production-ready, but useable
- Create, edit, and delete tasks
- Mark tasks as complete
- Filter by completed or pending tasks
- Search tasks by title or description
- Accessible from any device on your network
- Self-hostable with Docker
-
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:
- Windows: run
ipconfig→ look forIPv4 Address - Linux/Mac: run
hostname -I
- Windows: run
-
Open
http://YOUR_IPon 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 downTo stop and delete all data:
docker compose down -v- Rust
- Node.js (v20+)
- PostgreSQL
-
Create a Postgres database called
tasks_dband runinit.sqlto 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 |
MIT - LICENSE