Initial commit: thbd-portal, duplicated from elmi-portal

Rebranded for Thunderbird Portal (THBD): numbering prefix EL->TH, all
"ELMI"/"ЭЛМИ" UI strings genericized, ELMI's real contract templates and
company legal/bank details removed (not applicable to this company), fresh
VAPID keypair and encryption key, fresh single-migration schema history.
Same architecture as elmi-portal: Web Push notifications, unread-chat app
badge, cookie-session auth.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gh2UXUQUVBWroWEnn1FLFG
This commit is contained in:
ogrechkoandClaude Sonnet 5 committed 2026-08-31 16:33:30 +00:00
commit 579528edf7
197 files changed
+25022

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
# Copy to .env and fill in — never commit the real .env.
# Initial admin account, created on first start if it doesn't exist yet.
ADMIN_BOOTSTRAP_EMAIL=admin@thbd-portal.local
ADMIN_BOOTSTRAP_PASSWORD=
ADMIN_BOOTSTRAP_NAME=Admin
# AES-256-GCM key that encrypts the mailbox password at rest. Generate with:
# npm run generate-key
CREDENTIALS_ENCRYPTION_KEY=
# Used for email->inquiry extraction (Settings → Почта). Get one at
# https://console.anthropic.com/settings/keys
ANTHROPIC_API_KEY=
# Address autocomplete on the inquiry form (место погрузки/выгрузки/таможни).
# Without it the fields still work as plain text inputs, just no suggestions.
# Get a free key at https://dadata.ru/api/suggest/
DADATA_API_KEY=
# Web Push (browser/OS notifications, works even with the tab closed).
# Generate once with: npx web-push generate-vapid-keys
# Without these three set, push is silently disabled — the app still works,
# just without background notifications.
VAPID_PUBLIC_KEY=
VAPID_PRIVATE_KEY=
VAPID_SUBJECT=mailto:admin@top-sysops.ru