stack.basicstack.de/apps/opencloud/README.md

79 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

# OpenCloud Deployment
**Status:** In Progress - Configuration Initialization Needed
## Overview
Deployment of OpenCloud v7.2.0, a modern Go-based file sharing platform, configured with Pocket ID OIDC authentication.
## Configuration Approach
OpenCloud uses a cloud-native configuration system (12-Factor App principles):
1. Base configuration in `/etc/opencloud/opencloud.yaml` (from ConfigMap)
2. Secrets injected via environment variables (highest precedence)
3. All sensitive credentials stored as SealedSecrets
Reference: https://docs.opencloud.eu/docs/next/dev/server/configuration/config-system/
## Deployed Components
- ✓ Namespace: `opencloud`
- ✓ PVC: 100Gi encrypted hcloud volume
- ✓ ConfigMap: Base opencloud.yaml configuration
- ✓ SealedSecrets: OIDC, SMTP, JWT, and config secrets
- ✓ Ingress: opencloud.basicstack.de with TLS
- ✓ Service and Deployment manifests
## Pocket ID Integration
- Client ID: `2f3c0cea-697f-4dbc-9573-6f6e8adfd4b0`
- Group: `opencloud_admins`
- User: andreas.leinen@basicstack.de
- OIDC Issuer: https://auth.basicstack.de
## Files
- `opencloud-deployment.yaml` - Main Kubernetes deployment
- `opencloud-configmap.yaml` - Base configuration file
- `opencloud-config-sealed.yaml` - **⚠️ NEEDS SEALING** - Core secrets (machine auth, transfer secret, etc.)
- `opencloud-oidc-sealed.yaml` - OIDC credentials (sealed)
- `opencloud-smtp-sealed.yaml` - SMTP credentials (sealed)
- `opencloud-jwt-sealed.yaml` - JWT token secret (sealed)
- `seal-config-secrets.sh` - Helper script to seal config secrets
## Next Steps
1. **Seal the config secrets:**
```bash
cd apps/opencloud
bash seal-config-secrets.sh
```
2. **Apply all manifests:**
```bash
kubectl apply -f opencloud-configmap.yaml
kubectl apply -f opencloud-config-sealed.yaml # After sealing!
kubectl apply -f opencloud-oidc-sealed.yaml
kubectl apply -f opencloud-smtp-sealed.yaml
kubectl apply -f opencloud-jwt-sealed.yaml
kubectl apply -f opencloud-deployment.yaml
```
3. **Verify deployment:**
```bash
kubectl get pods -n opencloud
kubectl logs -n opencloud deployment/opencloud
```
4. **Test login:**
- Navigate to https://opencloud.basicstack.de
- Login with andreas.leinen@basicstack.de via Pocket ID
## TODO
- [ ] Seal opencloud-config-secrets
- [ ] Configure daily backup to Hetzner bucket
- [ ] Test OIDC authentication
- [ ] Test file upload/download
- [ ] Test SMTP notifications