Setup builder
Fills in the blanks of the self-host .env. Everything runs in your browser; nothing you type leaves this page. Secrets are pre-generated for you, and each lives on exactly one line: the stack derives the database connection strings, so changing the password later is a one-line edit.
https:// (pasting one strips it).Joining your tailnet:Easiest. No key to mint: on first start, the box asks Tailscale to authorize it and the caddy logs print a one-time link (docker compose logs caddy). Open it, sign in, approve.
Either way, the bundled proxy joins your tailnet as its own node and serves the address above; the box needs no Tailscale install. MagicDNS + HTTPS certificates must be enabled on the tailnet. See Install.
/admin console: instance settings, and the invites that let people in once signup is closed.Postgres password and JWT secret are generated too (see the preview); those are replaceable. The encryption key is not: lose it and stored integration credentials are gone.Password login works; invites become copy-the-link. Magic-link sign-in needs a sender.
Open databases cover groceries, books, and music. The barcode network covers the rest: electronics, tools, hardware, craft supplies. You get everyone else's corrections, and yours go back in.
No key yet? Leave it blank. The lines go into your .env commented out, so you can join later without regenerating anything.
# Cobblr self-host, generated by the setup builder.
# ── 1. REQUIRED ─────────────────────────────
COBBLR_SITE_ADDRESS=
SUPERADMIN_EMAILS=
POSTGRES_PASSWORD=GQPYyKsgaXZgFtnc3aGbHyXu
JWT_SECRET=3651f65a30d9957d7200b5a602d43eb9c2c82326ad29850addf6d17474b15312
# back the next line up somewhere safe. Unrecoverable:
TENANT_CREDS_ENCRYPTION_KEY=a116a0889b3b9a1f231a75f325d305ef
# set false after your account exists, especially if exposing your instance to the public:
PUBLIC_SIGNUP_ENABLED=true
# ── 2. HTTPS ────────────────────────────────
# the proxy joins your tailnet as its own node; no tailscale on the box
COMPOSE_PROFILES=caddy
COBBLR_TLS_MODE=tsnet
# TS_AUTHKEY left empty: on first start, open the approval link
# printed in the caddy logs (docker compose logs caddy) and sign in.
# ── 3. EMAIL ────────────────────────────────
# none configured. Password login works;
# invites are copy-the-link.
# ── 4. BARCODE NETWORK ──────────────────────
# Coverage beyond groceries, books, and music, and your corrections
# help everyone else. Get a per-install key at account.cobblr.xyz,
# paste it below, and uncomment both lines. Both, or neither: a URL
# with no key is refused on every scan. Nothing else changes.
# COBBLR_BIDB_URL=https://barcodes.cobblr.xyz
# COBBLR_BIDB_KEY=
# ── 5. PRIVACY ──────────────────────────────
# COBBLR_AI_ENABLED=false
# COBBLR_SCAN_EXTERNAL_LOOKUPS=false
# ── 6. ADVANCED ─────────────────────────────
# COBBLR_VERSION=latest # or nightly, or a pinned release
# COBBLR_DATA_ROOT=./data # move all data (db, files, modules, certs) onto a NAS or data disk
# DB connection strings derive from POSTGRES_PASSWORD in the stack;
# set DATABASE_URL / SUPERUSER_DATABASE_URL only for an external Postgres.
# loading docker-compose.yml…Drop both files in a folder together, thendocker compose up -d. See Install for the full walkthrough.