Skip to content

Server Setup

This guide covers setting up a new server for the DineTogether infrastructure.

Server Requirements

Minimum Specifications

  • CPU: 2 vCPUs
  • RAM: 4GB
  • Storage: 40GB SSD
  • OS: Ubuntu 22.04 LTS
  • Network: Public IPv4 address
  • CPU: 4 vCPUs
  • RAM: 8GB
  • Storage: 100GB SSD
  • Provider: Hetzner, DigitalOcean, or AWS

Initial Server Setup

1. Connect to Server

ssh root@YOUR_SERVER_IP

2. Update System

apt update && apt upgrade -y
apt install -y curl wget git

3. Install K3s

curl -sfL https://get.k3s.io | sh -

4. Verify Installation

kubectl get nodes

Configure Ingress

K3s comes with Traefik pre-installed. Verify:

kubectl get pods -n kube-system | grep traefik

Install cert-manager

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.13.3/cert-manager.yaml

Create Namespaces

kubectl create namespace test-staging
kubectl create namespace dine-together-production

Next Steps

  • Configure DNS pointing to your server
  • Add server to GitHub Secrets
  • Deploy your first application