No description
Find a file
Arlind 819f8fa91c feat(deploy): nginx reverse-proxy deploy setup for bifrost-portal.fenja.ai
Run the Astro Node standalone server as a hardened systemd service on
127.0.0.1:4322, behind the existing nginx which terminates TLS and proxies
the bifrost-portal.fenja.ai hostname. Coexists with the other Fenja site;
its config is untouched.

- deploy/bifrost-portal.service: systemd unit (bifrost user, EnvironmentFile,
  ProtectSystem, ReadWritePaths to the data dir only)
- deploy/nginx/bifrost-portal.fenja.ai.conf: HTTP->HTTPS + proxy site block
- .env.production.example: prod env vars (secret, db path, uploads, host/port)
- scripts/deploy.sh: server-side pull -> install (rebuild native dep) ->
  build -> migrate -> restart; persistent data untouched
- scripts/backup.sh: nightly online .backup, 30-day retention
- DEPLOY.md: full runbook (port check, DNS, provision, TLS, backups, rollback)

Persistent data (db, uploads, backups) lives in /var/lib/bifrost-portal,
outside the /opt/bifrost-portal build dir, so redeploys never wipe it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 12:54:35 +02:00
.claude chore: update local Claude Code permission allowlist 2026-06-10 17:19:23 +02:00
content feat: database schema, migrations, and seed data 2026-04-18 22:43:16 +02:00
deploy feat(deploy): nginx reverse-proxy deploy setup for bifrost-portal.fenja.ai 2026-06-17 12:54:35 +02:00
design chore: add Innofounder logo to public, wire to home page 2026-04-19 20:36:54 +02:00
migrations feat(roadmap): add planned status 2026-06-10 11:30:06 +02:00
public chore: add Innofounder logo to public, wire to home page 2026-04-19 20:36:54 +02:00
scripts feat(deploy): nginx reverse-proxy deploy setup for bifrost-portal.fenja.ai 2026-06-17 12:54:35 +02:00
src feat(ui): mobile responsive pass, larger type, pulse vote background, header 2026-06-10 17:18:48 +02:00
tests feat(events): event photo upload + photo-as-background hero card 2026-06-10 17:18:23 +02:00
.env.example feat: database schema, migrations, and seed data 2026-04-18 22:43:16 +02:00
.env.production.example feat(deploy): nginx reverse-proxy deploy setup for bifrost-portal.fenja.ai 2026-06-17 12:54:35 +02:00
.gitignore feat(deploy): nginx reverse-proxy deploy setup for bifrost-portal.fenja.ai 2026-06-17 12:54:35 +02:00
astro.config.mjs feat: database schema, migrations, and seed data 2026-04-18 22:43:16 +02:00
CLAUDE.md wip: scaffold and index before style-guide 2026-04-18 16:09:49 +02:00
DECISIONS.md docs: document decisions D-15 through D-18 2026-04-19 20:32:09 +02:00
DEPLOY.md feat(deploy): nginx reverse-proxy deploy setup for bifrost-portal.fenja.ai 2026-06-17 12:54:35 +02:00
HANDOVER.md docs: HANDOVER.md — build summary and next steps 2026-04-18 22:54:48 +02:00
KNOWN_ISSUES.md feat(db): add migration 0003 for council portal schema 2026-05-11 14:39:07 +02:00
package.json feat(db): production seed script with the real pilot data 2026-06-17 11:16:40 +02:00
pnpm-lock.yaml feat: database schema, migrations, and seed data 2026-04-18 22:43:16 +02:00
SPEC.md feat(events): event photo upload + photo-as-background hero card 2026-06-10 17:18:23 +02:00
todo.md docs: capture deferred home-page features in todo.md 2026-05-11 17:04:40 +02:00
tsconfig.json wip: scaffold and index before style-guide 2026-04-18 16:09:49 +02:00
vitest.config.ts test: vitest suite — pulse status, vote uniqueness, home route 2026-05-11 14:45:55 +02:00