infra/old/cluster/aprs/README.md

57 lines
No EOL
1.9 KiB
Markdown

# APRS.me Deployment
APRS.me amateur radio tracking application deployed on k3s cluster at 204.110.191.2.
## Architecture
- **Application**: 2-replica StatefulSet with Erlang clustering
- **Database**: PostgreSQL 17 with PostGIS extension (100GB Longhorn storage)
- **Cache**: Redis for job queuing and caching
- **Ingress**: Traefik with cert-manager for SSL (Let's Encrypt)
- **Access**: https://aprs.me (DNS points to 204.110.191.3)
## Prerequisites
1. GitHub container registry access for `ghcr.io/aprsme/aprs.me:latest`
- Create a GitHub personal access token with `read:packages` scope
- Run: `./create-image-pull-secret.sh <username> <token>`
## Deployment
```bash
# Deploy everything
./deploy.sh
# Check status
kubectl get pods -n aprs
kubectl get certificate -n aprs
kubectl get ingressroute -n aprs
```
## Files
- `namespace.yaml` - APRS namespace
- `postgres-secret-secure.yaml` - PostgreSQL credentials (secured)
- `postgres-deployment.yaml` - PostgreSQL 17 with PostGIS StatefulSet
- `redis.yaml` - Redis cache deployment
- `aprs-secret-secure.yaml` - Application secrets (secured)
- `aprs-configmap.yaml` - APRS configuration (callsign, server, etc.)
- `aprs-rbac.yaml` - Service account and permissions for clustering
- `aprs-statefulset-with-pullsecret.yaml` - APRS application StatefulSet
- `aprs-ingressroute.yaml` - Traefik ingress with SSL certificate
- `create-image-pull-secret.sh` - Helper to create GitHub image pull secret
- `deploy.sh` - Deployment script
## Configuration
- **APRS Callsign**: W5ISP-2
- **APRS Server**: dallas.aprs2.net:10152
- **Filter**: r/33/-96/1000000000000
- **Passcode**: 15748
- **LoadBalancer IP**: 10.0.101.32 (internal)
- **Public Access**: https://aprs.me via Traefik at 204.110.191.3
## Secrets
All passwords have been generated securely and stored in `*-secure.yaml` files.
Do not commit these files to version control.