Operations Overview
Deployment strategy, infrastructure requirements, and production setup for BISO Sites.
Operations Overview
BISO Sites is a Next.js monorepo with three main applications (web, admin, docs) that can be deployed independently or together.
Who owns operations?
Typically the IT Manager (or equivalent) is the primary owner, but always name a backup. Both people should have access to Appwrite, hosting, Vipps, and any secret vaults.
Operations playbook
Prepare changes
Run bun run lint, bun run check-types, and bun run build for the app you are touching. Capture screenshots for UI changes (required for PRs).
Update infrastructure
- Vercel: push to
mainor trigger a deploy. - Docker/self-hosted: rebuild images (
docker compose build) and restart the stack. - Appwrite: deploy new collections or indexes before shipping code that depends on them.
Verify critical flows
Open web (/events, /shop, /membership) and admin (/admin, /admin/orders) routes. Place a Vipps test order when touching payments.
Monitor + rollback
Tail application logs (bun run start output or docker logs). For regressions, revert the commit or redeploy the previous image tag noted in your deploy log.
Applications
- Web App (port 3000) - Public-facing website
- Admin App (port 3001) - Content management system
- Docs App (port 3002) - Documentation site
Infrastructure Requirements
- Node.js: >= 18.x
- Bun: >= 1.3.x (recommended)
- Database: Appwrite (self-hosted or cloud)
- Storage: Appwrite Storage for images/files
- Payment: Vipps account for Norwegian payments
Deployment Architecture
Build Commands
# Install dependencies
bun install
# Build all apps
bun run build
# Build specific app
bun run build --filter=web
bun run build --filter=admin
bun run build --filter=docsDeployment Options
Option 1: Vercel (Recommended)
- Connect GitHub repository
- Configure build settings per app
- Set environment variables
- Deploy
Option 2: Docker
See Docker Guide for containerized deployment.
Option 3: Self-Hosted
# Build production
bun run build --filter=web
# Start production server
cd apps/web
bun run startEnvironment Variables
Each app requires specific environment variables. See Environment Variables Guide.
Incident response basics
- Payments down? Disable checkout CTA in the admin shop and post a banner in the web app. Check Vipps status and Appwrite logs.
- Appwrite unavailable? Switch web/admin apps to maintenance mode (show static page) and notify the student union leadership.
- Deployment failed? Roll back to the previous Vercel deployment or Docker image tag, then investigate in a separate branch.
Weekly checklist
- ✅ Review Appwrite health and usage metrics.
- ✅ Rotate any expiring secrets (Vipps subscription key, API keys).
- ✅ Skim error logs (Vercel, Docker, or Bun output) for recurring issues.
- ✅ Update this documentation if you changed infrastructure steps.
