Skip to content

feat: add OpenTodo template - #1265

Open
pixari wants to merge 2 commits into
Dokploy:canaryfrom
pixari:add-opentodo
Open

pixari wants to merge 2 commits into
Dokploy:canaryfrom
pixari:add-opentodo

Conversation

@pixari

@pixari pixari commented Oct 24, 2026 •

Copy link
Copy Markdown

Update 2026-10-25: OpenTodo 0.12.0 was released today, so this PR now uses 0.12.0. Only the version and image tag changed (and, for Umbrel, the index digest). The runtime tests described below were run on 0.11.0; the container, port, data path and settings are unchanged.

What is this PR about?

New PR of OpenTodo

OpenTodo is an open-source (AGPL-3.0), self-hosted, local-first task manager: one Go binary with SQLite and an embedded web app that works offline and syncs every device. The template adds blueprints/opentodo/:

  • docker-compose.yml: one opentodo service from ghcr.io/pixari/opentodo:0.11.0 (public, multi-arch amd64/arm64, pinned; meta.json version matches), expose: 8080, one named volume on /data, and the image's own health check (/opentodo healthcheck; the image has no shell). No ports, container_name or networks.
  • template.toml: the generated domain on port 8080, and a generated setup token (${password:32}) that OpenTodo asks for when the first account (the owner) is created, so a freshly deployed instance cannot be claimed by a stranger. Sign-up is closed after that. OPENTODO_BASE_URL starts empty because the generated domain is plain http (OpenTodo then takes the address from the request); the comment says to set it once the domain has HTTPS.
  • meta.json and opentodo.svg.

No database or other service is needed.

Checklist

Before submitting this PR, please make sure that:

How it was tested: node build-scripts/generate-meta.js --check, validate-docker-compose.ts and validate-template.ts pass. Then on a Dokploy v0.30.10 instance (installed inside a Docker-in-Docker host with the official install script, minus its check that refuses to run in a container), the template was created through the template flow with these exact files served as the templates base URL, and deployed:

  • the container turns healthy and answers through Traefik on the generated domain;
  • the owner setup refuses a wrong setup token, accepts the generated one, and sign-up is closed afterwards;
  • after creating the owner and adding a task in the web app, Stop and Start in Dokploy, and a redeploy, keep the account and the task (named volume).

Then the same again from this PR's preview (https://pixari-add-opentodo.templates-70k.pages.dev as the templates base URL): created, deployed, opened on the generated *.sslip.io domain through Traefik, owner created with the generated token, a task added, Stop and Start, and the task was still there.

Issues related (if applicable)

None.

Screenshots or Videos

OpenTodo deployed from this PR's preview, after Stop and Start in Dokploy, signed in again in a fresh browser, with the task created before the restart:

OpenTodo from the PR preview after Stop and Start in Dokploy

@github-actions

github-actions Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
templates ✅ Ready (View Log) Visit Preview 2af5b53

pixari added a commit to pixari/OpenTodo that referenced this pull request Oct 24, 2026
The deploy/ templates now match what was submitted to the seven stores:

- Dokploy (Dokploy/templates#1265): image policy `release` (pinned 0.11.0,
  meta.json version = tag, no pull_policy), as their AGENTS.md requires;
  checker and tests updated, docs explain updating by tag.
- TrueNAS (truenas/apps#6240): default port 30536, new lib_version_hash and
  date_added, basic-values on 30080, hostnet-values.yaml added and checked;
  templates/library/ is gitignored there, submission steps fixed.
- Umbrel (getumbrel/umbrel-apps#6251): submission URL set, the 0000
  placeholder now refused; iOS CalDAV discovery note.
- Easypanel (#1702): changeLog date 2026-10-24.
- Status lines and the submitted PR titles and bodies for all seven stores,
  and the per-store update pull requests in "On a release".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bkw4TZLFDGeMdZR3vWZF13

This branch was successfully deployed

1 active deployment
Preview — 2af5b535 Deployed Oct 24, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant