Back to Resources

Deployment Templates

Production-ready deployment configurations for Docker, Kubernetes, Railway, Vercel, and more. Get G8KEPR running in under 5 minutes.

1. Docker Compose (Recommended)

Single-command deployment with all services preconfigured. Perfect for development and small production deployments.

# docker-compose.yml
version: '3.8'

services:
  postgres:
    image: postgres:15
    environment:
      POSTGRES_DB: gatekeeper
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: your_secure_password
    volumes:
      - postgres_data:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    command: redis-server --requirepass your_redis_password

  backend:
    image: g8kepr/backend:latest
    environment:
      DATABASE_URL: postgresql://admin:your_secure_password@postgres:5432/gatekeeper
      REDIS_URL: redis://:your_redis_password@redis:6379
      JWT_SECRET: your_jwt_secret_min_32_chars
      STRIPE_SECRET_KEY: sk_live_...
    ports:
      - "8000:8000"
    depends_on:
      - postgres
      - redis

  frontend:
    image: g8kepr/frontend:latest
    environment:
      NEXT_PUBLIC_API_URL: http://backend:8000
    ports:
      - "3000:3000"
    depends_on:
      - backend

volumes:
  postgres_data:

# Deploy: docker-compose up -d
# View logs: docker-compose logs -f
# Stop: docker-compose down

2. Kubernetes Deployment

Scalable production deployment with auto-scaling, health checks, and rolling updates.

# k8s/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: g8kepr-backend
spec:
  replicas: 3
  selector:
    matchLabels:
      app: g8kepr-backend
  template:
    metadata:
      labels:
        app: g8kepr-backend
    spec:
      containers:
      - name: backend
        image: g8kepr/backend:latest
        ports:
        - containerPort: 8000
        env:
        - name: DATABASE_URL
          valueFrom:
            secretKeyRef:
              name: g8kepr-secrets
              key: database-url
        - name: REDIS_URL
          valueFrom:
            secretKeyRef:
              name: g8kepr-secrets
              key: redis-url
        resources:
          requests:
            memory: "512Mi"
            cpu: "250m"
          limits:
            memory: "1Gi"
            cpu: "500m"
        livenessProbe:
          httpGet:
            path: /health
            port: 8000
          initialDelaySeconds: 30
          periodSeconds: 10
        readinessProbe:
          httpGet:
            path: /health
            port: 8000
          initialDelaySeconds: 5
          periodSeconds: 5

---
apiVersion: v1
kind: Service
metadata:
  name: g8kepr-backend
spec:
  selector:
    app: g8kepr-backend
  ports:
  - port: 8000
    targetPort: 8000
  type: LoadBalancer

# Deploy: kubectl apply -f k8s/
# Scale: kubectl scale deployment g8kepr-backend --replicas=5

3. Railway (One-Click Deploy)

Deploy to Railway with automatic PostgreSQL, Redis, and SSL certificates. Zero DevOps required.

1.Click "Deploy on Railway" button
2.Add your Stripe API keys in environment variables
3.Railway automatically provisions database and Redis
4.Get your production URL in ~5 minutes
Deploy on Railway →

4. Digital Ocean App Platform

Deploy to Digital Ocean with managed database and load balancing. Starts at $5/month.

# .do/app.yaml
name: g8kepr
services:
- name: backend
  github:
    repo: yourusername/g8kepr
    branch: main
    deploy_on_push: true
  build_command: cd backend && pip install -r requirements.txt
  run_command: cd backend && uvicorn main:app --host 0.0.0.0 --port 8000
  envs:
  - key: DATABASE_URL
    scope: RUN_TIME
    type: SECRET
  - key: REDIS_URL
    scope: RUN_TIME
    type: SECRET
  - key: JWT_SECRET
    scope: RUN_TIME
    type: SECRET
  http_port: 8000
  instance_count: 2
  instance_size_slug: basic-xs

- name: frontend
  github:
    repo: yourusername/g8kepr
    branch: main
  build_command: cd frontend && npm install && npm run build
  run_command: cd frontend && npm start
  envs:
  - key: NEXT_PUBLIC_API_URL
    value: ${backend.PUBLIC_URL}
  http_port: 3000
  instance_count: 1
  instance_size_slug: basic-xs

databases:
- name: postgres
  engine: PG
  version: "15"

- name: redis
  engine: REDIS
  version: "7"

5. Required Environment Variables

Backend (.env)
DATABASE_URL=postgresql://user:pass@host:5432/db
REDIS_URL=redis://user:pass@host:6379
JWT_SECRET=your_random_32char_secret_key
JWT_ALGORITHM=HS256
STRIPE_SECRET_KEY=sk_live_...
STRIPE_PUBLISHABLE_KEY=pk_live_...
FRONTEND_URL=https://yourdomain.com
CORS_ORIGINS=https://yourdomain.com
Frontend (.env.local)
NEXT_PUBLIC_API_URL=https://api.yourdomain.com
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_live_...

Download All Templates

Get the complete deployment template package with all configurations

No email required • Instant download

Need Deployment Help?

Our team can help you deploy G8KEPR to your infrastructure with custom configurations.

API Security Resources & Blog | G8KEPR