Skip to content

Pear

Pear is a private task list for keeping track of personal tasks. Add a task, tag it if useful, then close it as Done or Not planned. Only tasks marked Done increase the completed-ticket count. Visitors see only that count and a link to me.silenlocatelli.ch; task details are visible only to their owner.

Configuration

See Environment Variables for the full list of application settings.

  • INVITE_SECRET enables invite creation. Visit /auth/invites and enter this secret to generate a one-time invite link. Anyone with an unused invite link can create an account; signup itself does not accept the invite secret.
  • SESSION_SECRET signs and encrypts the Actix session cookie. Set this to a stable random value of at least 64 bytes so existing logins remain valid across restarts. For example: openssl rand -hex 64.
  • DB_PATH selects the SQLite database file (defaults to pear.db). User identities and session state are stored in this database; no Redis service is used.

Docker

The image builds Pear as a release binary and runs it as an unprivileged user. The /data volume stores the database and its SQLite WAL files. Create a stable session key, build the image, and start a container:

printf 'SESSION_SECRET=%s\n' "$(openssl rand -hex 64)" > .env
docker build -t pear .
docker run -d --name pear --restart unless-stopped \
  -p 8080:80 \
  -v pear-data:/data \
  --env-file .env \
  pear

The container listens on port 80; -p 8080:80 publishes it at http://localhost:8080. To allow account invitations, add an INVITE_SECRET value to .env; visit /auth/invites and enter it to create an invite link. Keep .env private and back up the pear-data volume.