A self-hosted to-do, habit & project tracker you own end to end.
Tasks, projects, habits, a calendar and focus mode — in one installable web app, backed by a single PocketBase binary. Deploy a whole container on Proxmox with one command, or run it on any Debian box.
- ✅ Tasks — priorities, due dates & times, projects, attachments, comments
- 🎙️ Voice & natural-language add — type or speak "Buy milk tomorrow 5pm" and it becomes a dated task (voice where the browser supports it)
- 📁 Projects — progress tracking, statuses, per-project task views
- 🔁 Habits — daily check-ins, streaks, and "starts soon" reminder emails
- 📅 Calendar & 🎯 Focus mode to plan and get heads-down
- 📆 Calendar feed — subscribe your tasks & reminders in Google, Apple or Outlook Calendar (one-way, read-only ICS)
- 📧 Weekly email report — a Sunday summary of what you got done
- 🔐 Two-factor authentication — authenticator-app (TOTP) codes: iPhone Passwords, Microsoft Authenticator, Duo, Google Authenticator, Authy…
- 📱 Installable PWA — add it to your phone or desktop home screen
- 🌗 Dark mode & themes
- 🏠 Truly self-hosted — one PocketBase process serves the app and its API; no Docker, no reverse proxy, no external services required
| Dashboard | Tasks | Focus | Calendar |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Run this in your Proxmox host shell. It creates a dedicated LXC container (with the storage wizard and its own IP) and installs everything:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/SLjuste-IT/just-do-it-now/main/proxmox/install-lxc.sh)"At the end it prints the URL and a first-login you'll be prompted to change:
Open the app: http://<container-ip>:8080/
First login: admin@localhost.com
Password: <shown here>
Run inside a fresh Debian 12/13 container or VM:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/SLjuste-IT/just-do-it-now/main/proxmox/quick-install.sh)"Either way, re-run the same command any time to update.
Requires ~1 vCPU / 512 MB RAM / 3 GB disk. Everything lives in
/opt/just-do-it-now/pb_data— that folder is the only thing to back up.
- Open the app and sign in with the
admin@localhost.comcredentials the installer printed. - You'll immediately be asked to set your own email and password — done.
- (Optional) turn on two-factor under Settings → Account → Two-Factor Authentication — scan the QR with your phone and save the backup codes.
No email server is needed to sign in — accounts work offline out of the box.
The weekly report, habit reminders, and email-based verification need an SMTP server. To enable it, reveal the admin dashboard once inside the container:
systemctl set-environment SHOW_ADMIN=1 && systemctl restart just-do-it-nowThen open http://<ip>:8080/_/, create a superuser, and set your SMTP under
Settings → Mail. Hide the dashboard again afterward:
systemctl unset-environment SHOW_ADMIN && systemctl restart just-do-it-nowSee proxmox/README.md for details and for enabling
email-code 2FA.
- End-users only ever reach the app (
/); the PocketBase dashboard (/_/) is hidden by default on self-hosted installs. - Every user can read and write only their own data (owner-scoped rules).
- Two-factor secrets and backup codes are stored hidden and never leave the server; login is rate-limited against brute force.
- Found a vulnerability? Please report it privately — see SECURITY.md.
- Frontend: a single
index.html— vanilla JS + Tailwind, PWA (service worker) - Backend: PocketBase (one Go binary: SQLite, auth,
REST API, file storage), extended with JS hooks in
pb_hooks/ - Schema: auto-applied migrations in
pb_migrations/ - Deploy: native LXC install scripts in
proxmox/(targeting Proxmox VE Helper-Scripts)
Issues and pull requests are welcome. This project is heading toward a listing
on community-scripts.org; the scripts under
proxmox/ follow their conventions.
Released under the MIT License — free to use, self-host, and modify.



