Skip to main content

Requirements

This section describes the resource requirements for deploying the entire infrastructure.

VPS Requirements

The VPS server is used to host the Pangolin server, which provides a VPN tunnel and reverse proxy for accessing services.

Minimum Requirements

  • CPU: 2 cores
  • RAM: 2 GB
  • Disk: 20 GB SSD
  • OS: Ubuntu 20.04/22.04 or Debian 11/12
  • Network: Static IP address, minimum 100 Mbps
  • Open Ports:
    • 22 (SSH)
    • 80 (HTTP) - for Let's Encrypt
    • 443 (HTTPS)
    • 51820/UDP (WireGuard)
  • CPU: 4 cores
  • RAM: 4 GB
  • Disk: 40 GB SSD
  • Network: Static IP, 1 Gbps

Additional Requirements

  • Domain: Recommended to have a domain for Let's Encrypt
  • DNS: Ability to configure DNS records (A, MX, TXT)

Local Server Requirements (Kubernetes)

The local server is used to host the Kubernetes cluster with all services.

Minimum Requirements for Master Node

  • CPU: 2 cores
  • RAM: 2 GB
  • Disk: 20 GB SSD
  • OS: Ubuntu 20.04/22.04 or similar
  • Network: Stable internet connection

Minimum Requirements for Worker Node

  • CPU: 4 cores
  • RAM: 4 GB
  • Disk: 50 GB SSD
  • OS: Ubuntu 20.04/22.04 or similar
  • Network: Stable internet connection
  • CPU: 4 cores
  • RAM: 4 GB
  • Disk: 50 GB SSD
  • HA: 3 master nodes for high availability
  • CPU: 8 cores
  • RAM: 16 GB
  • Disk: 100 GB SSD
  • Quantity: Minimum 3 worker nodes

Local Machine Requirements (Management)

The local machine is used to manage the entire infrastructure through Ansible, Terraform, kubectl, and other tools.

Operating System

  • macOS: 10.15+ (recommended)
  • Linux: Ubuntu 20.04+ or similar distribution
  • Windows: Windows 10/11 with WSL2 (Ubuntu)

Required Tools

All tools must be installed:

  • Ansible: 2.9+
  • Terraform: 1.0+
  • kubectl: 1.28+
  • Helm: 3.8+
  • Helmfile: 0.155+
  • Docker: 20.10+ (optional, for local development)
  • GPG: 2.2+
  • SOPS: 3.7+

Network Requirements

  • SSH access: Access to VPS and Kubernetes nodes
  • Internet: For downloading images and packages
  • Bandwidth: Minimum 10 Mbps for comfortable work

System Requirements

  • RAM: 8 GB (recommended)
  • Disk: 20 GB free space
  • CPU: 2+ cores

Total Requirements Summary

Minimum Configuration (for testing)

VPS:

  • 2 CPU, 2 GB RAM, 20 GB disk

Kubernetes (1 master + 1 worker):

  • Master: 2 CPU, 2 GB RAM, 20 GB disk
  • Worker: 4 CPU, 4 GB RAM, 50 GB disk
  • Total: 6 CPU, 6 GB RAM, 70 GB disk

Recommendation: Suitable only for testing, not for production.

VPS:

  • 4 CPU, 4 GB RAM, 40 GB disk

Kubernetes (3 masters + 3 workers):

  • Masters: 3 × (4 CPU, 4 GB RAM, 50 GB disk) = 12 CPU, 12 GB RAM, 150 GB disk
  • Workers: 3 × (8 CPU, 16 GB RAM, 100 GB disk) = 24 CPU, 48 GB RAM, 300 GB disk
  • Total: 36 CPU, 60 GB RAM, 450 GB disk

Recommendation: Optimal configuration for a fully functional production system.