name: bump-tipi-version
description: Use when modifying ANY file inside an app directory (apps//). Triggers on edits to docker-compose.json, config.json, metadata files, or data files of any app. Must increment tipi_version in config.json for every app change, no exceptions.
Bump tipi_version
Overview
Every modification to an app's files MUST be accompanied by a tipi_version increment in that app's config.json. This is how Runtipi detects that an app definition has changed and needs redeployment.
The Rule
If you touch any file in apps/<app-id>/, you MUST increment tipi_version by 1 in apps/<app-id>/config.json and update updated_at to the current timestamp.
tipi_version: N → tipi_version: N + 1
updated_at: old → updated_at: Date.now()
When to Bump
ANY change inside apps/<app-id>/:
docker-compose.json- image version, environment variables, volumes, services, health checksconfig.json- description, form fields, categories, port, any field excepttipi_versionandupdated_atthemselvesmetadata/description.md- description text changesmetadata/logo.jpg- logo replacementdata/*- init scripts, config files
When NOT to Bump
- Changes outside app directories (workflows, scripts, renovate.json, package.json, CLAUDE.md)
- Renovate automated PRs (the
update-tipi-version.ymlworkflow handles this) - Reading files without modifying them
How to Bump
After making changes to an app, edit its config.json:
- Find current
tipi_versionvalue - Increment by exactly 1
- Update
updated_atto current epoch milliseconds
{
"tipi_version": 5,
"updated_at": 1739401200000
}
becomes:
{
"tipi_version": 6,
"updated_at": 1739487600000
}
Multiple changes to the same app in one session = one bump. Only increment once per app per commit, not once per file edit.
Multiple apps changed = bump each separately. If you modify both n8n and wger, bump both tipi_version values independently.
Red Flags - STOP and Bump
- You edited
docker-compose.jsonand are about to commit - You updated an image version manually
- You added/removed/changed environment variables
- You modified a health check or volume mount
- You changed form fields in
config.json - You are about to run
make testafter app changes
If any of these apply, check: did you bump tipi_version?
Common Mistakes
| Mistake | Fix |
|---|---|
| Forgot to bump after editing docker-compose.json | Always bump immediately after the edit, before testing |
| Bumped by 2 instead of 1 | tipi_version is strictly sequential: +1 per release |
| Updated version but not updated_at | Always update both fields together |
| Bumped tipi_version but used a hardcoded timestamp | Use current epoch ms: in JS Date.now(), in shell date +%s000 |