Sign inSign up

jduckworp/donebook

By jduckworp

•Updated about 1 month ago

A task board that keeps the record — export what you actually did this month

Image
0

150

jduckworp/donebook repository overview

⁠Donebook

A task board that keeps the record.

Source, issues and full documentation: https://github.com/Jduckworp/donebook⁠

Schedule tasks onto days, drag them around, tick them off. The difference from every other todo app is what happens next: nothing you finish is ever thrown away. At the end of the month you export exactly what got done, grouped by workstream or as a chronology — the thing you actually need when someone asks what you have been working on.

Single user, single password, one SQLite file. No accounts, no cloud, no telemetry. About 1,600 lines of Python and vanilla JavaScript plus a stylesheet — no build step, no frontend framework, no npm.

⁠Quick start

docker run -d --name donebook \
  -p 8765:8765 \
  -v donebook-data:/data \
  -e DONEBOOK_INSECURE_COOKIE=1 \
  jduckworp/donebook:1

docker logs donebook | grep -A2 "first boot"

Open http://localhost:8765⁠ and sign in with the password from that log line. It is generated on first boot and also written to config.json on the volume.

⁠Tags

TagMeaning
1.0.0An exact build, never moves
1Latest 1.x — pin at least this
latestNewest release

Built for linux/amd64 and linux/arm64, so a Raspberry Pi and an Apple Silicon Mac work as well as an x86 server.

⁠Configuration

VariableDefault in the imageMeaning
DONEBOOK_DATA_DIR/dataWhere donebook.db lives
DONEBOOK_CONFIG/data/config.jsonSession key, salt, password hash
DONEBOOK_INSECURE_COOKIEunsetSet to 1 to allow the session cookie over plain HTTP

The database and the password hash both live on the /data volume, so recreating the container never loses the record and never regenerates the password. Back it up with docker cp donebook:/data/donebook.db ./donebook-backup.db.

⁠Before you deploy it

Donebook has one password and no user accounts. It is built for one person on a private network.

Put a reverse proxy in front to terminate TLS, then drop DONEBOOK_INSECURE_COOKIE — it is only in the quick start above so that a first run on a LAN address works at all. Without TLS the session cookie is Secure and the browser will not send it back, which looks like being signed out on every request.

Think twice before putting this on a public hostname at all. A private network or a VPN such as Tailscale is a better fit for what it is. Failed logins are rate limited: five wrong passwords close the door for a minute, doubling with each further attempt up to an hour.

MIT licensed.

Tag summary

Content type

Image

Digest

sha256:14635cbb0…

Size

46.2 MB

Last updated

about 1 month ago

docker pull jduckworp/donebook