GreptimeDB Dev Docker Image
GreptimeTeam/greptimedb
Packages a locally built GreptimeDB debug binary into a development-only Docker image for local-cluster testing, with an optional push to a dev registry.
A skill your agent uses when working on Trilium's published Docker images on Docker Hub or GHCR rather than on the Dockerfiles — "how many pulls does the image get?", "why is the Docker Hub…
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add TriliumNext/Trilium --skill maintaining-docker-hub -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TriliumNext/Trilium maintaining-docker-hub --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/maintaining-docker-hub .claude/skills/maintaining-docker-hub && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "maintaining-docker-hub" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/maintaining-docker-hub into .claude/skills/maintaining-docker-hub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maintaining-docker-hub", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/maintaining-docker-hubType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add TriliumNext/Trilium --skill maintaining-docker-hub -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TriliumNext/Trilium maintaining-docker-hub --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/maintaining-docker-hub .agents/skills/maintaining-docker-hub && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "maintaining-docker-hub" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/maintaining-docker-hub into .agents/skills/maintaining-docker-hub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maintaining-docker-hub", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TriliumNext/Trilium --skill maintaining-docker-hub -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TriliumNext/Trilium maintaining-docker-hub --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/maintaining-docker-hub .cursor/skills/maintaining-docker-hub && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "maintaining-docker-hub" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/maintaining-docker-hub into .cursor/skills/maintaining-docker-hub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maintaining-docker-hub", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/TriliumNext/Trilium.git --path .claude/skills/maintaining-docker-hub--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add TriliumNext/Trilium --skill maintaining-docker-hub -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TriliumNext/Trilium maintaining-docker-hub --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/maintaining-docker-hub .gemini/skills/maintaining-docker-hub && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "maintaining-docker-hub" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/maintaining-docker-hub into .gemini/skills/maintaining-docker-hub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maintaining-docker-hub", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install TriliumNext/Trilium maintaining-docker-hubInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add TriliumNext/Trilium --skill maintaining-docker-hub -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/maintaining-docker-hub .github/skills/maintaining-docker-hub && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "maintaining-docker-hub" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/maintaining-docker-hub into .github/skills/maintaining-docker-hub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maintaining-docker-hub", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TriliumNext/Trilium --skill maintaining-docker-hub -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TriliumNext/Trilium maintaining-docker-hub --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/maintaining-docker-hub .opencode/skills/maintaining-docker-hub && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "maintaining-docker-hub" agent skill from https://github.com/TriliumNext/Trilium/tree/main/.claude/skills/maintaining-docker-hub into .opencode/skills/maintaining-docker-hub/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "maintaining-docker-hub", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
maintaining-docker-hubA skill your agent uses when working on Trilium's published Docker images on Docker Hub or GHCR rather than on the Dockerfiles — "how many pulls does the image get?", "why is the Docker Hub…
Maintaining Docker Hub is an agent skill from TriliumNext/Trilium. Use when working on Trilium's published Docker images on Docker Hub or GHCR rather than on the Dockerfiles — "how many pulls does the image get?", "why is the Docker Hub repository so big?", "clean up old tags", "delete untagged images", "which tags do we publish?", the legacy repositories (triliumnext/notes, zadam/trilium) and their mirroring, the main-docker.yml copy-to-Docker-Hub step, mirror-legacy-docker.yml, Docker Hub categories, stars or the overview. Includes hub.mjs (stats, tag listing/deletion, the…
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.
It sits in DevOps & Cloud, covering Containers. It works with Docker. The repository describes itself as: Build your personal knowledge base with Trilium Notes. The licence is AGPL-3.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 80be026. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodedockerFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use docker, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
DOCKERHUB_TOKENGITHUB_TOKENZADAM_DOCKERHUB_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Maintaining Docker Hub loads about 2.3k tokens when it runs. Until then it costs about 191 tokens; SKILL.md has 1,133 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
redentials come from `docker login` (`~/.docker/config.json` or its `credsStore` helper), or fromAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from TriliumNext/Trilium at commit 80be026, republished under its AGPL-3.0 licence (© TriliumNext). 1,133 words, ~2,345 tokens.
.claude/skills/maintaining-docker-hub/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Everything below is done through one script, hub.mjs. Don't write throwaway Python or curl loops against the Hub API — the pagination caps, token expiry, rate limits and the storage model below each broke a hand-rolled attempt once.
H=.claude/skills/maintaining-docker-hub/hub.mjs
node $H stats triliumnext/trilium triliumnext/notes zadam/trilium # pulls, stars, storage, weekly series
node $H tags triliumnext/trilium --prefix sha- # list; add --delete to delete
node $H inventory triliumnext/trilium # every manifest, untagged included
node $H purge triliumnext/trilium --older-than 7 # dry run; add --delete to deleteCredentials come from docker login (~/.docker/config.json or its credsStore helper), or from
DOCKERHUB_USERNAME + DOCKERHUB_TOKEN. stats and listing work for anyone signed in; deleting needs
an owner of the namespace. Every delete is the user's call — run the dry run, report its numbers,
and wait for an explicit go-ahead before --delete. A delete is not reversible.
| Repository | Role | Pulls / week (Sep 2026) | Credentials in CI |
|---|---|---|---|
triliumnext/trilium | the image | ~140K | DOCKERHUB_USERNAME / DOCKERHUB_TOKEN |
ghcr.io/triliumnext/trilium | build target; every tag, sha-* included | — | GITHUB_TOKEN |
triliumnext/notes | pre-rename image, last own build v0.95.0 | ~29.6K | same as the image |
zadam/trilium | the original Trilium image, last own build 0.63.7 | ~24K (from totals) | zadam + ZADAM_DOCKERHUB_TOKEN |
stats prints the weekly series Docker Hub embeds in the repository page (repoPullsData); it is
published for organization repositories only, so zadam/trilium has none and its rate has to be
derived from pull_count snapshots (the Wayback Machine has archived copies of
hub.docker.com/v2/repositories/<repo>). Pulls count manifest requests, so auto-updaters
(Watchtower, Diun) polling an unchanged tag inflate them — read them as "installations still
tracking this", not downloads.
.github/workflows/main-docker.yml builds on GHCR and copies to Docker Hub in its merge job:
sha-<commit> — GHCR only. Until 2026-10 they were copied to Docker Hub too, which left
1,672 sha-* tags and ~10K untagged images there (974 GB in triliumnext/trilium, 658 GB in
triliumnext/notes). The copy loop skips them now; do not undo that.main, v<version>, stable, latest — both registries. stable/latest only for a
version tag without a hyphen.<branch-name> — both, from a manual run of the workflow on a branch (/ becomes -, e.g.
feature-deployment_fixes). Delete it on Docker Hub once the branch is merged..github/workflows/mirror-legacy-docker.yml copies ghcr.io/triliumnext/trilium:stable to
triliumnext/notes:stable+latest and zadam/trilium:latest after each stable release (the
mirror_legacy job). The old version tags and zadam/trilium:0.63-latest are left alone, so pinned
installs keep their version. A manual run with an empty tags input writes the release tags. The
container contract (port 8080, /home/node/trilium-data, USER_UID/USER_GID) has not changed
since 0.63, and a migration writes a before-migration backup; desktop clients of the old version
stop syncing until replaced (SYNC_VERSION 32/36 → 39). The zadam account's token is a personal
access token, which Docker Hub cannot restrict to one repository — it must carry an expiry date.
These four facts decide every cleanup — verified against the live repositories in 2026-10:
storage_size. Tag cleanup is cosmetic; storage only drops when the untagged image is deleted.DELETE of the index all of them answer 404. So a purge
deletes indexes only — never walk the children (that would be 13K wasted requests).403. That holds through
an index: a sha-* build of a release commit has the same digest as v<version>, and its
children are the release's children. purge also subtracts a keep list (every live tag's index
and children), so the 403 is a second line, not the only one.GET /v2/namespaces/<ns>/repositories/<name>/manifests
(last_evaluated_key pagination), which is what inventory and purge read. It is not in
Docker's public API reference; the older /images endpoints return 404. It reports the
per-platform images of a tagged index as untagged single manifests — they are not orphans.storage_size tracks deletions within minutes. Its "before" values were real: the
triliumnext/trilium purge took it from 974 GB to 18 GB, triliumnext/notes from 658 GB to 19 GB.
Clean a repository (after a burst of unwanted tags, or periodically):
node $H tags <repo> --prefix <p> → report the count → with consent, --delete. The listing
returns at most 1,000 tags and its count lags several minutes; re-run until it reports 0.node $H purge <repo> [--older-than N] → report the dry run → with consent, --delete.
purge refuses to run while the repository has 1,000+ tags, because the keep list would be
incomplete — finish step 1 first.docker manifest inspect <repo>:<tag> for latest, stable, main and a couple of
versions, and node $H stats <repo> for the storage figure.About 60–250 deletes a minute at the default --concurrency 4; the rate varies by time of day.
Open issue — main keeps leaving untagged images. Each push to main moves the main tag and
leaves the previous index untagged on Docker Hub: ~12 a day in early 2026-10, ~640 MB each. Either
keep main on GHCR only (as with sha-*; then document ghcr.io/triliumnext/trilium:main for
anyone tracking it) or run purge --older-than 7 periodically. Until one lands, expect the
inventory to show recent untagged indexes.
docker pull of releases. Indexes only, or use purge.hub.docker.com) wants a JWT from
POST /v2/auth/token; the registry (registry-1.docker.io) wants one from auth.docker.io with
scope repository:<repo>:pull,push,delete. Both expire after minutes; hub.mjs renews on 401.
A long run that does not renew dies at ~650 requests with a wall of 401s.pkill -f "hub.mjs purge" also matches the shell that issued it if
the pattern appears in that command line. Use the PID, or ps -eo pid,args | grep "[n]ode .*hub.mjs".crane copy (all of
triliumnext/trilium, and triliumnext/notes from v0.95.0). Older triliumnext/notes images
were built per registry. The inventory makes GHCR unnecessary as a digest source anyway.stats prints them): the knowledge-base peers use Content management system
(Wiki.js, BookStack, MediaWiki, XWiki, Outline, Docmost); triliumnext/trilium adds Machine
learning & AI. Most note apps set none.docker pull never shows the page —
links from the README badge, the User Guide's Docker page and the legacy repositories' overviews
are what bring visitors. Never ask for stars in the app or in issue replies.triliumnext/trilium and that users should switch image names.docs/Developer Guide/Developer Guide/Building/Docker Hub maintenance.md — the human-facing
version of this page; keep the two in step.stable/latest and triggers the legacy mirror.© TriliumNext, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .claude/skills/maintaining-docker-hub of TriliumNext/Trilium.
Open the folder on GitHubat commit 80be026
Maintaining Docker Hub next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Maintaining Docker Hub this skillTriliumNext/Trilium | 38k | — | ~2.3k | Automated safety check: Warn | AGPL-3.0 | |
| GreptimeDB Dev Docker ImageGreptimeTeam/greptimedb | 6.7k | — | ~4k | Automated safety check: Notes | Apache-2.0 | |
| Senior DevOps Toolkitmaslennikov-ig/claude-code-orchestrator-kit | 260 | 6 repos | ~1.1k | Automated safety check: Notes | Custom licence | |
| LangBot Deployment Guidelangbot-app/LangBot | 18k | — | ~1.2k | Automated safety check: Notes | Apache-2.0 | |
| Build Openshell Mxc WindowsNVIDIA/OpenShell | 16k | — | ~4.9k | Automated safety check: Pass | Apache-2.0 | |
| Ssh Skillbadseal/ssh-skill | 538 | — | ~2.4k | Automated safety check: Notes | None |
GreptimeTeam/greptimedb
Packages a locally built GreptimeDB debug binary into a development-only Docker image for local-cluster testing, with an optional push to a dev registry.
maslennikov-ig/claude-code-orchestrator-kit
Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…
langbot-app/LangBot
Deploys and configures a LangBot instance with Docker Compose or Kubernetes, covering config.yaml, the Box sandbox runtime, the plugin runtime and the global API key.
NVIDIA/OpenShell
Maintain and validate OpenShell's build-only Windows MSVC lane for x64 and ARM64.
badseal/ssh-skill
A skill your agent uses when a task requires SSH or SCP/SFTP behavior, a remote server, server alias/IP/hostname/user@host, bastion or jump-host access, remote command execution, upload/download…
WordPress/agent-skills
A skill your agent uses when setting up, configuring, or troubleshooting local WordPress development environments with @wordpress/env (wp-env).
TriliumNext/Trilium
A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.
TriliumNext/Trilium
A skill your agent uses when working on the Trilium Electron desktop app (apps/desktop) — adding or changing an electronApi method / IPC channel, touching preload.ts, main.ts, services/window.ts or…
TriliumNext/Trilium
A skill your agent uses when adding a DB migration or a new column/field to a Becca entity in Trilium ("add a migration", "new column on notes/attributes", "ALTER TABLE", "add a field to…
TriliumNext/Trilium
A skill your agent uses when adding, moving, or wiring an internal REST endpoint in Trilium (a new /api/ route) — choosing between a core-shared handler (packages/trilium-core/src/routes/index.ts…
TriliumNext/Trilium
A skill your agent uses when adding, changing, or reviewing an LLM/MCP tool in Trilium (the defineTools definitions under packages/trilium-core/src/services/llm/tools/ —…
TriliumNext/Trilium
Write, extend, and review CKEditor 5 plugins in the Trilium (TriliumNext Notes) monorepo — the rich-text-note editor under packages/ckeditor5, whose plugins live in src/plugins/.
Works with
Categories
A skill your agent uses when working on Trilium's published Docker images on Docker Hub or GHCR rather than on the Dockerfiles — "how many pulls does the image get?", "why is the Docker Hub…. Maintaining Docker Hub is an agent skill from TriliumNext/Trilium.yml, Docker Hub categories, stars or the overview.
Maintaining Docker Hub fits situations like: working on Triliums published Docker images on Docker Hub; GHCR rather than on the Dockerfiles — how many pulls does the image get?; why is the Docker Hub repository so big?; clean up old tags.
Run `npx skills add TriliumNext/Trilium --skill maintaining-docker-hub -a claude-code`. Or copy the skill folder (.claude/skills/maintaining-docker-hub in TriliumNext/Trilium) into .claude/skills/maintaining-docker-hub in your project. Claude Code loads it when a task matches its description.
Run `npx skills add TriliumNext/Trilium --skill maintaining-docker-hub -a codex`. Or copy the skill folder (.claude/skills/maintaining-docker-hub in TriliumNext/Trilium) into .agents/skills/maintaining-docker-hub in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TriliumNext/Trilium --skill maintaining-docker-hub -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/maintaining-docker-hub, .gemini/skills/maintaining-docker-hub, .github/skills/maintaining-docker-hub and .opencode/skills/maintaining-docker-hub in your project.
Going by SKILL.md and its folder, Maintaining Docker Hub needs JavaScript for the scripts in its folder, the command-line tools its instructions call (node and docker) and credentials named DOCKERHUB_TOKEN, GITHUB_TOKEN and ZADAM_DOCKERHUB_TOKEN. Our summary lists: Python 3; Node.js; Docker; A credential in DOCKERHUB_TOKEN; A credential in GITHUB_TOKEN.
SKILL.md contains no URLs. Its commands use docker, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way.
Maintaining Docker Hub is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Maintaining Docker Hub: GreptimeDB Dev Docker Image (GreptimeTeam/greptimedb, 6.7k stars), Senior DevOps Toolkit (maslennikov-ig/claude-code-orchestrator-kit, 260 stars), LangBot Deployment Guide (langbot-app/LangBot, 18k stars) and Build Openshell Mxc Windows (NVIDIA/OpenShell, 16k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
TriliumNext (a GitHub organization) maintains it in TriliumNext/Trilium, which has 38,265 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 10, 2026.
Source: TriliumNext/Trilium on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.