Nametag

Nametag

Docker app from matto's Repository

Overview

Nametag is a personal CRM for the people in your life. Keep notes, birthdays and important dates, see how everyone is connected in an interactive network graph, organize people into groups, keep a journal, and get reminders to stay in touch. Two-way CardDAV sync works with Google Contacts, iCloud, Outlook and Nextcloud.

Before the first start:

  • Install a PostgreSQL container (for example the official postgres:16 image) and create a database and user for Nametag.
  • Generate the two secrets in the Unraid terminal with: openssl rand -base64 32
  • Run: mkdir -p /mnt/user/appdata/nametag/photos && chown -R 1001:1001 /mnt/user/appdata/nametag (the container runs as UID 1001).

Reminders and CardDAV sync need scheduled calls. The Read Me link has ready-to-paste User Scripts entries.

Unraid templates for Nametag

Community Applications templates for Nametag, an open-source personal CRM. The app itself lives at mattogodoy/nametag.

Installing Nametag on Unraid

The template installs the Nametag container only. It needs a PostgreSQL database alongside it.

  1. PostgreSQL. Install a PostgreSQL container from Community Applications (the official postgres image, version 14 or newer). Create a database and user for Nametag, and note the server's IP, port, user and password.

  2. Photo folder. The container runs as UID 1001. In the Unraid terminal, run:

    mkdir -p /mnt/user/appdata/nametag/photos
    chown -R 1001:1001 /mnt/user/appdata/nametag
    
  3. Install. In Apps, search for Nametag and click Install. Generate two secrets with openssl rand -base64 32 and paste them into Auth secret and Cron secret. Set App URL to the address you open Nametag at, fill in the database fields, and click Apply.

  4. Background jobs. Reminders, CardDAV sync, cleanup and geocoding run when something calls Nametag's cron endpoints. With the User Scripts plugin, create one script per job:

    #!/bin/bash
    NAMETAG_URL="http://192.168.1.10:3000"
    CRON_SECRET="your-cron-secret"
    curl -fsS -H "Authorization: Bearer $CRON_SECRET" "$NAMETAG_URL/api/cron/send-reminders"
    
    Job Endpoint Suggested schedule
    Reminders send-reminders 0 8 * * *
    Cleanup purge-deleted 0 3 * * *
    CardDAV sync carddav-sync 0 2,10,18 * * *
    Geocoding geocode */5 * * * *

Redis and SMTP settings are under Show more settings. Leave them empty if you don't use them. Email needs EMAIL_DOMAIN, SMTP_HOST, SMTP_PORT, SMTP_USER and SMTP_PASS; see the email docs. For anything else, click Add another Path, Port, Variable, Label or Device and use a name from the configuration docs.

Full self-hosting docs: https://docs.nametag.one/self-hosting/

Support

Open an issue at https://github.com/mattogodoy/nametag/issues.

Media gallery

1 / 4

Requirements

A PostgreSQL 14+ database (for example the official postgres container). Redis and SMTP are optional.

Related apps

Details

Repository
ghcr.io/mattogodoy/nametag:latest
Last Updated2026-10-15
First Seen2026-10-15

Runtime arguments

Web UI
http://[IP]:[PORT:3000]/
Network
bridge
Shell
sh
Privileged
false

Template configuration

WebUI PortPorttcp

Port for the web interface.

Target
3000
Default
3000
Value
3000
PhotosPathrw

Where profile photos are stored. Must be owned by UID 1001.

Target
/app/data/photos
Default
/mnt/user/appdata/nametag/photos
Value
/mnt/user/appdata/nametag/photos
App URLVariable

The address you open Nametag at, for example http://192.168.1.10:3000 or https://nametag.example.com. Used for sign-in and links in emails.

Target
NEXTAUTH_URL
Default
http://YOUR-SERVER-IP:3000
Value
http://YOUR-SERVER-IP:3000
Auth secretVariable

At least 32 characters. Generate with: openssl rand -base64 32

Target
NEXTAUTH_SECRET
Cron secretVariable

At least 16 characters. Protects the scheduled-job endpoints. Generate with: openssl rand -base64 32

Target
CRON_SECRET
Database hostVariable

IP address or container name of your PostgreSQL server.

Target
DB_HOST
Database portVariable

PostgreSQL port.

Target
DB_PORT
Default
5432
Value
5432
Database nameVariable

Name of the PostgreSQL database. It must already exist.

Target
DB_NAME
Default
nametag
Value
nametag
Database userVariable

PostgreSQL user.

Target
DB_USER
Default
nametag
Value
nametag
Database passwordVariable

PostgreSQL password.

Target
DB_PASSWORD
Disable registrationVariable

Set to true after creating your account to stop others from signing up.

Target
DISABLE_REGISTRATION
Default
false
Value
false
Redis URLVariable

Optional. For example redis://192.168.1.10:6379. Without it, rate limiting uses memory.

Target
REDIS_URL
Redis passwordVariable

Optional. Only if your Redis needs a password.

Target
REDIS_PASSWORD
Email domainVariable

Domain emails are sent from, for example example.com. Needed to send email.

Target
EMAIL_DOMAIN
SMTP hostVariable

Optional. SMTP server for reminder and password-reset emails.

Target
SMTP_HOST
SMTP portVariable

587 for STARTTLS or 465 for SSL.

Target
SMTP_PORT
SMTP secureVariable

true for port 465, false for 587. Default false.

Target
SMTP_SECURE
SMTP require TLSVariable

Require STARTTLS. Default true.

Target
SMTP_REQUIRE_TLS
SMTP userVariable

SMTP username, often your email address.

Target
SMTP_USER
SMTP passwordVariable

SMTP password or app password.

Target
SMTP_PASS
SMTP fromVariable

Optional. Override the from address if your server rejects custom ones.

Target
SMTP_FROM