Skip to content

Deployment Guide

Prerequisites

  • DigitalOcean account with API token
  • kubectl and doctl CLI installed
  • Cloudflare account managing akze.net

Steps

  1. Provision DOKS cluster

    doctl kubernetes cluster create homelab \
      --region nyc1 \
      --node-pool "name=default;size=s-4vcpu-8gb;count=3" \
      --version 1.35.1-do.0
    

  2. Install ArgoCD

    kubectl create namespace argocd
    kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
    

  3. Apply the root App of Apps

    kubectl apply -f argocd/homelab.yaml
    
    This deploys all 24 applications automatically.

  4. Create required secrets (or apply sealed secrets)

  5. Cloudflare API token (cert-manager, external-dns)
  6. DO Spaces access keys (CSI-S3)
  7. Authentik secret key
  8. Database credentials

Warning

Never commit plaintext secrets. Use kubeseal to encrypt them as SealedSecrets before pushing to Git.