Skip to content

Deployment Guide

Mason Batchelor edited this page Mar 6, 2026 · 1 revision

Deployment Guide

Local Development

# Backend
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
./gradlew bootRun

# Frontend
cd frontend && nvm use 16 && npm run dev

Backend runs on port 8080, frontend on port 3000.

Docker

# Build backend image
docker build -t realworld-backend .

# Build frontend image
cd frontend && docker build -t realworld-frontend .

# Run
docker run -p 8080:8080 realworld-backend
docker run -p 3000:3000 realworld-frontend

Kubernetes

Manifests in k8s/ directory:

  • backend-deployment.yaml — Backend pods and service
  • frontend-deployment.yaml — Frontend pods and service
  • ingress.yaml — Ingress routing
kubectl apply -f k8s/

CI/CD Pipeline

The Jenkins pipeline (Jenkinsfile) runs:

  1. Backend build → lint → test → coverage
  2. Frontend build
  3. Docker multi-arch build and push (master only)
  4. Deploy to staging
  5. Selenium E2E tests
  6. Manual approval gate
  7. Deploy to production

Environment Variables

Variable Default Description
spring.profiles.active (none) Active Spring profile
jwt.secret nRvgM4iJ... JWT signing secret
jwt.sessionTime 86400 JWT expiry in seconds
spring.datasource.url jdbc:sqlite:dev.db Database URL

Clone this wiki locally