Skip to content

Deployment Overview

Deployment Overview

Manacore uses multiple deployment strategies depending on the application type.

Deployment Targets

Cloudflare Pages

Static sites: Landing pages, documentation

Mac Mini Server

Docker containers: Backends, databases

Hetzner Storage

S3-compatible object storage for files

Application Types

TypeDeployment TargetMethod
Landing Pages (Astro)Cloudflare PagesDirect Upload
Web Apps (SvelteKit)Cloudflare PagesAdapter
Backends (NestJS)Mac Mini / DockerDocker Compose
DatabasesMac Mini / DockerDocker Compose
Static AssetsHetzner S3Direct Upload

Infrastructure Overview

┌─────────────────────────────────────────────────────────────┐
│ Cloudflare │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ chat.mana │ │ docs.mana │ │ picture.mana│ ... │
│ │ core.app │ │ core.app │ │ core.app │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │ │ │
│ └────────────────┼────────────────┘ │
│ │ │
│ Cloudflare Tunnel │
└──────────────────────────┼──────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Mac Mini Server │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ mana-core- │ │ chat- │ │ zitare- │ ... │
│ │ auth:3001 │ │ backend:3002│ │ backend:3007│ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │ │ │
│ └────────────────┼────────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ PostgreSQL:5432 │ Redis:6379 │ MinIO:9000 │ │
│ └─────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

Deployment Commands

Landing Pages

Terminal window
# Deploy individual landing page
pnpm deploy:landing:chat
pnpm deploy:landing:picture
pnpm deploy:landing:zitare
# Deploy all landing pages
pnpm deploy:landing:all

Documentation

Terminal window
# Deploy documentation site
pnpm deploy:docs

Backends (via SSH)

Terminal window
# Connect to server
ssh mana-server
# Pull latest changes
cd ~/projects/manacore-monorepo
git pull
# Restart services
./scripts/mac-mini/deploy.sh

Environments

EnvironmentPurposeURL Pattern
DevelopmentLocal testinglocalhost:*
StagingPre-production testingstaging.*.manacore.app
ProductionLive users*.manacore.app

CI/CD

Planned Pipeline

  1. On PR: Run tests, type-check, lint
  2. On merge to main: Deploy to staging
  3. On release tag: Deploy to production

Rollback Procedures

Cloudflare Pages

Terminal window
# View deployments
npx wrangler pages deployment list --project-name=chat-landing
# Rollback to previous
npx wrangler pages deployment tail <deployment-id> --project-name=chat-landing

Docker Services

Terminal window
ssh mana-server
cd ~/projects/manacore-monorepo
# Revert to previous commit
git checkout HEAD~1
# Rebuild and restart
./scripts/mac-mini/deploy.sh

Next Steps