# Dockerfile
FROM python:3.11-slim WORKDIR /app
COPY requirements.txt .
RUN -weight: 500;">pip -weight: 500;">install -r requirements.txt COPY . . CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
# Dockerfile
FROM python:3.11-slim WORKDIR /app
COPY requirements.txt .
RUN -weight: 500;">pip -weight: 500;">install -r requirements.txt COPY . . CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
# Dockerfile
FROM python:3.11-slim WORKDIR /app
COPY requirements.txt .
RUN -weight: 500;">pip -weight: 500;">install -r requirements.txt COPY . . CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
# -weight: 500;">docker-compose.yml
version: "3.9"
services: api: build: . ports: - "8000:8000" environment: - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} prometheus: image: prom/prometheus volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml ports: - "9090:9090"
# -weight: 500;">docker-compose.yml
version: "3.9"
services: api: build: . ports: - "8000:8000" environment: - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} prometheus: image: prom/prometheus volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml ports: - "9090:9090"
# -weight: 500;">docker-compose.yml
version: "3.9"
services: api: build: . ports: - "8000:8000" environment: - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} prometheus: image: prom/prometheus volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml ports: - "9090:9090"
-weight: 500;">git clone https://github.com/yashsonawane25/postmortem-ai
cd postmortem-ai
-weight: 500;">docker compose up -d
-weight: 500;">git clone https://github.com/yashsonawane25/postmortem-ai
cd postmortem-ai
-weight: 500;">docker compose up -d
-weight: 500;">git clone https://github.com/yashsonawane25/postmortem-ai
cd postmortem-ai
-weight: 500;">docker compose up -d
# macOS
-weight: 500;">brew -weight: 500;">install doctl # Linux
snap -weight: 500;">install doctl # Authenticate
doctl auth init
# macOS
-weight: 500;">brew -weight: 500;">install doctl # Linux
snap -weight: 500;">install doctl # Authenticate
doctl auth init
# macOS
-weight: 500;">brew -weight: 500;">install doctl # Linux
snap -weight: 500;">install doctl # Authenticate
doctl auth init
doctl compute droplet create my-devops-droplet \ --size s-1vcpu-1gb \ --image ubuntu-22-04-x64 \ --region blr1 \ --ssh-keys <your-key-id>
doctl compute droplet create my-devops-droplet \ --size s-1vcpu-1gb \ --image ubuntu-22-04-x64 \ --region blr1 \ --ssh-keys <your-key-id>
doctl compute droplet create my-devops-droplet \ --size s-1vcpu-1gb \ --image ubuntu-22-04-x64 \ --region blr1 \ --ssh-keys <your-key-id>
ssh root@<your-droplet-ip> # Install Docker
-weight: 500;">curl -fsSL https://get.-weight: 500;">docker.com | sh # Install Docker Compose
-weight: 500;">apt -weight: 500;">install -weight: 500;">docker-compose-plugin -y
ssh root@<your-droplet-ip> # Install Docker
-weight: 500;">curl -fsSL https://get.-weight: 500;">docker.com | sh # Install Docker Compose
-weight: 500;">apt -weight: 500;">install -weight: 500;">docker-compose-plugin -y
ssh root@<your-droplet-ip> # Install Docker
-weight: 500;">curl -fsSL https://get.-weight: 500;">docker.com | sh # Install Docker Compose
-weight: 500;">apt -weight: 500;">install -weight: 500;">docker-compose-plugin -y - Kubernetes — Deploying apps, writing manifests, rolling updates
- Docker — Building and running containerized services
- CI/CD — GitHub Actions pipelines that actually push to a real server
- Monitoring — Prometheus and Grafana scraping real metrics - FastAPI for the backend API
- Docker Compose for local and server orchestration
- Prometheus + Alertmanager for monitoring hooks
- GitHub Actions for CI/CD - Run a 2-node Kubernetes cluster (DOKS) for practice
- Deploy 3–4 Droplets simultaneously
- Set up a managed database
- Run a full CI/CD pipeline end-to-end - 👉 Deploying a FastAPI app on DigitalOcean with Docker
- 👉 Setting up a Kubernetes cluster (DOKS) from scratch
- 👉 GitHub Actions CI/CD pipeline that deploys to a Droplet
- 👉 Prometheus + Grafana monitoring on a $6 Droplet