Skip to content

feat(appstore): add Nametag 0.64.0 - #1086

Open
mattogodoy wants to merge 5 commits into
IceWhaleTech:mainfrom
mattogodoy:add-nametag
Open

mattogodoy wants to merge 5 commits into
IceWhaleTech:mainfrom
mattogodoy:add-nametag

Conversation

@mattogodoy

@mattogodoy mattogodoy commented Oct 15, 2026 •

Copy link
Copy Markdown

New app: Nametag, an open-source (AGPL) personal CRM. It keeps notes, birthdays and important dates for the people in your life, shows how they are connected in a network graph, sends reminders to stay in touch, and syncs both ways with CardDAV servers (Google Contacts, iCloud, Outlook, Nextcloud). I am the developer.

What the package installs

  • nametag: the web app (ghcr.io/mattogodoy/nametag:0.64.0, amd64 and arm64), on port 10300.
  • nametag-db: PostgreSQL 16 with a healthcheck. It has no published port and is only reachable on the stack's private network. It reads its password from a file (POSTGRES_PASSWORD_FILE).
  • nametag-init: a one-shot container that generates the secrets on first start and fixes folder ownership, because the app runs as UID 1001, Postgres as UID 70, and Docker creates bind-mounted folders as root.
  • nametag-cron: a small Alpine container that calls the app's scheduled endpoints (reminders, cleanup, CardDAV sync, geocoding).

No secret is published in this file. DB_PASSWORD, NEXTAUTH_SECRET and CRON_SECRET are generated on first start and saved in /DATA/AppData/$AppID/data/secrets.env (the database password is also written to a file only Postgres can read), so every install gets its own secrets, and they survive restarts and updates.

Data lives under /DATA/AppData/$AppID. Metadata is in English and Spanish, with install tips covering NEXTAUTH_URL, closing registration and optional SMTP.

How this was verified

  • validate_compose.py: success, 0 errors, 0 warnings.
  • ./scripts/build_dist.sh: completed with no errors (180 apps), OK one.nametag.nametag. dist/apps/one.nametag.nametag/ holds docker-compose.yml, the amd64 and arm64 variants, meta.json, meta.es_ES.json and the assets.
  • The image manifest resolves for linux/amd64 and linux/arm64.
  • I ran the generated docker-compose.arm64.yml with Docker Compose. All services came up, the database became healthy, /login returned 200, the secrets file was created, and the cron container's authenticated call to /api/cron/purge-deleted succeeded. After down and up the secrets file was unchanged and the app still connected to the database.
  • I have not installed it through the ZimaOS UI on a ZimaOS device.

The image tag and version are pinned. I will open a small update PR for each Nametag release.

Docs for this listing: https://docs.nametag.one/self-hosting/

Comment thread Apps/Nametag/docker-compose.yml Fixed
Comment thread Apps/Nametag/docker-compose.yml Fixed
mattogodoy added a commit to mattogodoy/nametag that referenced this pull request Oct 15, 2026
CasaOS has been succeeded by ZimaOS. The IceWhaleTech/CasaOS-AppStore
repo keeps its old name, but its README now calls it the ZimaOS App
Store, and it serves both ZimaOS and CasaOS installs.

The listing from #478 needs no format changes. I copied it into a fresh
clone of the store and ran both checks (store commit from 2026-10-10):
- `validate_compose.py` (the PR validator): 0 errors, 0 warnings
- `./scripts/build_dist.sh` (v2 build): `OK one.nametag.nametag`, with
meta.json, an es_ES locale, amd64/arm64 composes and assets generated

The v2 format still uses `x-casaos` keys, so those stay as they are.

Changes (names only):
- `deploy/casaos/` renamed to `deploy/zimaos/`
- docs page `self-hosting/unraid-casaos` renamed to
`self-hosting/unraid-zimaos` and titled "Unraid, ZimaOS and CasaOS". The
Unraid template `<ReadMe>` link is updated to match. The old URL was
never in a release.
- release note now says "ZimaOS App Store"
- `deploy/README.md` explains the store's name

The docs build passes.

Later commits on this branch:
- The ZimaOS compose file now generates the database password on first
start, as submitted in IceWhaleTech/CasaOS-AppStore#1086 (the store's
SonarCloud check rejects hard-coded passwords).
- `deploy/unraid/` is removed. The template moved to
[mattogodoy/unraid-templates](https://github.com/mattogodoy/unraid-templates),
because Community Applications needs `ca_profile.xml` at the repository
root.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@mattogodoy mattogodoy changed the title feat(appstore): add Nametag 0.63.0 feat(appstore): add Nametag 0.64.0 Oct 15, 2026
@mattogodoy

Copy link
Copy Markdown
Author

Hello, @Ns2Kracy ! I would really appreciate it if you could take a look at this PR. Is for adding my open source relationship manager (Nametag) to the ZimaOS AppStore.

Thanks a lot!

mattogodoy added a commit to mattogodoy/nametag that referenced this pull request Oct 16, 2026
Follow-up to the 0.64.0 release.

- `deploy/zimaos/Nametag/docker-compose.yml`: image and `version` bumped
to 0.64.0, `update_at` to 2026-10-15. The same change is pushed to
IceWhaleTech/CasaOS-AppStore#1086, which is still open, so the store
will list 0.64.0 straight away.
- `self-hosting/unraid-zimaos.md`: the "Optional settings" note no
longer says Redis and SMTP are missing from the Unraid template. 0.64.0
treats blank variables as unset (#479), so mattogodoy/unraid-templates
now includes those fields under the advanced settings.

Verified:
- With 0.64.0, a container built from the Unraid template with every
optional field blank started, and `/login` returned 200. The same blank
values on 0.63.0 fail with `REDIS_URL: Invalid URL`.
- The ZimaOS listing passes the store's validator (0 errors, 0 warnings)
and build (`OK one.nametag.nametag`, version 0.64.0). Three clean
installs from the built compose came up in about 15 seconds, and the
cron container's authenticated call succeeded. An earlier run timed out,
and I couldn't reproduce it.
- The docs build passes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
@sonarqubecloud

Copy link
Copy Markdown

This branch has not been deployed

No deployments
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.

2 participants