No description
  • Rust 84.3%
  • CSS 7.2%
  • Shell 5.1%
  • TypeScript 3.4%
Find a file
Robert Perce f500dd3907
All checks were successful
/ test-and-build (push) Successful in 4m24s
/ trigger-deploy (push) Successful in 11s
feat: use SameSite:Lax for login cookie for android PWA
2026-08-21 19:10:44 -05:00
.forgejo/workflows chore: forgejo action artifacts are run-id now (forgejo#9023) 2026-08-17 23:43:42 -05:00
e2e feat: add ldap authentication as an option 2026-08-17 18:33:52 -05:00
migrations feat: persist sessions across server restarts 2026-08-19 19:21:06 -05:00
src feat: use SameSite:Lax for login cookie for android PWA 2026-08-21 19:10:44 -05:00
static fix: add start_url to manifest so it's a pwa 2026-08-19 19:21:06 -05:00
.gitignore Initial commit; adaptation from mascarpone 2026-05-30 12:15:04 -05:00
build.rs chore: update deps, clippy 2026-07-24 15:58:18 -05:00
Cargo.lock feat: add ldap authentication as an option 2026-08-17 18:33:52 -05:00
Cargo.toml feat: add ldap authentication as an option 2026-08-17 18:33:52 -05:00
CHANGELOG.md chore: update deps, clippy 2026-07-24 15:58:18 -05:00
config.toml refactor: tidy up config & unused routes 2026-08-19 19:21:01 -05:00
mise.toml refactor: tidy up config & unused routes 2026-08-19 19:21:01 -05:00
README.md feat: ability to hide underdue tasks 2026-05-31 22:02:32 -05:00
Taskfile feat: add ldap authentication as an option 2026-08-17 18:33:52 -05:00

Entretien

It means "maintenance" in French.

I can't actually pronounce it correctly.


A task list for a relatively stable set of fundamentally-repeating task list, e.g., house cleaning and maintenance.

Live at https://entretien.dukeceph.xyz/. Log in with demo as both the username and password to check it out!

Contact me if you want an account there.

Features:

  • Supports daily, weekly, fortnightly, monthly, seasonal, semiannual, and yearly target cadences.
  • Sorts in-section by least-recently-done first.
  • Allows for bulk completion-entry.

Eventual planned features:

  • Review functionality wherein tasks' target cadences can be compared to their actual cadences.
  • Beeminder-consumable completion-stats view.

Development / self-hosting

  1. Clone the repo.
  2. Build for your system with ./Taskfile _cargo build --release.
  3. Deploy the binary from ./target/release/entretien to wherever you want that's in PATH (or use it from here if you want)
  4. In the working directory that you want the server to save its databases in,
    1. Create a user for yourself with entretien set-password YOUR_USERNAME. This will create a users.db file.
    2. Run mkdir dbs.
    3. Copy the hashed_static directory from the code repository.
  5. Run entretien serve [port] from that working directory. The default port is 3000.

Feel free to contact me if you need help.

Example systemd service file

[Unit]
Description=Entretien
After=network.target

[Service]
Type=simple
WorkingDirectory=/var/local/entretien/
ExecStart=/usr/bin/entretien serve --port 6234
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target