--- apiVersion: apps/v1 kind: Deployment metadata: name: linkwarden namespace: sync spec: replicas: 1 selector: matchLabels: app: linkwarden template: metadata: labels: app: linkwarden spec: containers: - name: linkwarden image: ghcr.io/linkwarden/linkwarden:latest ports: - containerPort: 8080 env: - name: ADMIN_PASSWORD valueFrom: secretKeyRef: name: linkwarden-secret key: admin-password # Add other environment variables here as needed volumeMounts: - name: linkwarden-data mountPath: /data volumes: - name: linkwarden-data emptyDir: {} # Change to persistentVolumeClaim for production --- apiVersion: v1 kind: Secret metadata: name: linkwarden-secret namespace: sync type: Opaque stringData: admin-password: "YourStrongAdminPasswordHere" --- apiVersion: v1 kind: Service metadata: name: linkwarden namespace: sync annotations: external-dns.alpha.kubernetes.io/hostname: lw.hxme.net spec: selector: app: linkwarden ports: - protocol: TCP port: 80 targetPort: 8080 type: ClusterIP