2.5 KiB
2.5 KiB
devops + designer — Synology deploy script, .env, and RITM→SNOW link
Date: 2026-08-27
Synology deploy (devops) — ported from the Husky template (per user request)
Two scripts, matching Husky's proven pattern (superseded my first single-script cut):
scripts/push-to-nas.sh(local,npm run deploy): preflight (SSH key pinned via-i $NAS_KEY -o IdentitiesOnly=yes— fixes the WebStorm multi-identity MaxAuthTries failure) → test gate → rsync tree to NAS (openrsync→tar-over-ssh fallback for macOS) → rundeploy.shover SSH forwarding--pull/--fresh. Excludes node_modules/dist/.env/.deploy.env/storage-dump.json/.idea/claude_artifacts.scripts/deploy.sh(on the NAS): Synology PATH hardening +DOCKER_SUDOautodetect → optionalgit pull→compose build→up -d --remove-orphans→ poll app container for Dockerhealthy(≤120s).--fresh=down --remove-orphansnever-v→ theforge-dbvolume is preserved. Adapted from Husky: removed theai.envcheck, fixed the.envrequired-vars message,HOST_PORT_FALLBACK=3089, corrected all "external Postgres / no volumes" comments (FORGE bundles the db +forge-dbvolume).- Config baked in (defaults = the real NAS:
192.168.50.2/d.tkachenko/2323//volume1/docker/forge/~/.ssh/id_ed25519), overridable via env or an optional.deploy.env(.deploy.env.example, gitignored). Both scriptsbash -nclean + executable. .env.examplerewritten: local vs prod split; compose overrides DATABASE_URL/PORT/NODE_ENV; prod requiresSESSION_SECRET,AUTH_USER,AUTH_PASS,POSTGRES_PASSWORD. StaleADMIN_KEYremoved (tokens are admin-role gated now); port note corrected to the published lane.package.jsondeployscript added.docs/SETUP.md§6 documents the flow.- Secrets never leave the NAS:
.envis created once on the NAS and is never synced. - NOT run — deploy needs explicit sign-off + a reachable NAS; script is created only.
RITM → SNOW link (designer)
- The ticket number is now a link to ServiceNow in the table Number column and on
board cards — inline external-link glyph, opens a new tab,
stopPropagationso it doesn't also open the detail modal. Removed the now-redundant separate external icons. client/src/components/TicketTable/index.tsx+.module.scss(.numLink),components/Board/BoardCard/index.tsx+.module.scss. tsc + build clean.