mirror of
https://gitlab.kube.huskypup.net/Scooby/Homelabv4.git
synced 2026-08-21 05:26:49 +00:00
The DNS-flip watcher (scripts/vps-dns-failover/) was designed but never actually installed on the VPS despite being tracked as done - real gap, found when asked whether the standby services are actually reachable. New design: instead of dynamically flipping *.kube.huskypup.net between home and VPS IPs, give the VPS site its own permanent, always-resolving subdomain - vault/gitea/auth/n8n/nextcloud.vps.huskypup.net, each with real Ingress+TLS on the VPS's own Traefik+cert-manager (both already installed by Phase 0 bootstrap, just never wired up). No token-scoping decision needed since there's no dynamic flipping - reuses the same cert-manager token pattern as home. Also scales Authentik/n8n/Nextcloud from 0 to 1 replica on the VPS so the replicated data is actually browsable at all times, not just present-but-unreachable. Their CNPG clusters are still read-only replicas (spec.replica.enabled: true) - writes will error until a deliberate manual promotion, but reads/browsing work now. Vault and Gitea were already running continuously.
96 lines
2.4 KiB
YAML
96 lines
2.4 KiB
YAML
# Nextcloud warm standby on the VPS - Phase 2. Same discipline as the
|
|
# other vps-standby apps: CNPG replica cluster (manifests/cnpg-cluster.yaml)
|
|
# keeps the DB warm, manifests/pvc-restore-cronjob.yaml keeps file content
|
|
# warm, and the app runs continuously too (replicaCount: 1, reachable at
|
|
# nextcloud.vps.huskypup.net - see manifests/ingress.yaml) so replicated
|
|
# files/users are browsable at all times - uploads/changes will error
|
|
# against the read-only DB until a deliberate manual promotion.
|
|
#
|
|
# No Redis here - the home instance uses the redis-operator
|
|
# (infrastructure/vps-standby has no redis-operator deployed, out of
|
|
# scope for a standby that isn't actually serving writable traffic).
|
|
# Nextcloud runs fine without Redis (falls back to DB-based locking,
|
|
# just slower) - add a real Redis at promotion time if desired.
|
|
replicaCount: 1
|
|
|
|
nextcloud:
|
|
host: nextcloud.vps.huskypup.net
|
|
username: ""
|
|
password: ""
|
|
|
|
phpConfigs:
|
|
upload.ini: |
|
|
upload_tmp_dir = /var/www/tmp
|
|
sys_temp_dir = /var/www/tmp
|
|
|
|
extraEnv:
|
|
- name: TMPDIR
|
|
value: /var/www/tmp
|
|
- name: PHP_MEMORY_LIMIT
|
|
value: "2G"
|
|
- name: PHP_UPLOAD_LIMIT
|
|
value: "10G"
|
|
|
|
configs:
|
|
proxy.config.php: |-
|
|
<?php
|
|
$CONFIG = array (
|
|
'trusted_proxies' => array(
|
|
0 => '10.0.0.0/8',
|
|
1 => '172.16.0.0/12',
|
|
),
|
|
'overwriteprotocol' => 'https',
|
|
'overwrite.cli.url' => 'https://nextcloud.vps.huskypup.net',
|
|
'allow_local_remote_servers' => true,
|
|
);
|
|
temp.config.php: |-
|
|
<?php
|
|
$CONFIG = array (
|
|
'tempdirectory' => '/var/www/tmp',
|
|
);
|
|
|
|
existingSecret:
|
|
enabled: true
|
|
secretName: nextcloud-admin-secret
|
|
usernameKey: username
|
|
passwordKey: password
|
|
|
|
ingress:
|
|
enabled: false
|
|
|
|
externalDatabase:
|
|
enabled: true
|
|
type: postgresql
|
|
host: pg-nextcloud-rw
|
|
port: 5432
|
|
user: nextcloud
|
|
database: nextcloud
|
|
existingSecret:
|
|
enabled: true
|
|
secretName: pg-nextcloud-app
|
|
passwordKey: password
|
|
usernameKey: username
|
|
|
|
persistence:
|
|
enabled: true
|
|
storageClass: local-path
|
|
accessMode: ReadWriteOnce
|
|
size: 30Gi
|
|
|
|
resources:
|
|
requests:
|
|
cpu: 50m
|
|
memory: 256Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 1Gi
|
|
|
|
redis:
|
|
enabled: false
|
|
|
|
externalRedis:
|
|
enabled: false
|
|
|
|
metrics:
|
|
enabled: false
|