add nextcloud and collabora config

This commit is contained in:
2025-10-15 21:07:40 +05:30
parent 1c80a9a829
commit fee0a2dead
5 changed files with 194 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: collabora
namespace: tools
spec:
strategy:
type: Recreate
selector:
matchLabels:
app: collabora
template:
metadata:
labels:
app: collabora
spec:
containers:
- name: collabora
image: collabora/code:25.04.6.1.1
ports:
- containerPort: 9980
env:
- name: aliasgroup1
valueFrom:
secretKeyRef:
key: nextcloud-url
name: nextcloud-secrets
securityContext:
capabilities:
add:
- MKNOD

View File

@@ -0,0 +1,49 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nextcloud-db
namespace: tools
spec:
selector:
matchLabels:
app: nextcloud-db
template:
metadata:
labels:
app: nextcloud-db
spec:
containers:
- name: nextcloud-db
image: mariadb:11.8.3
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: nextcloud-secrets
key: root-password
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: nextcloud-secrets
key: user-password
- name: MYSQL_DATABASE
value: "nextcloud"
- name: MYSQL_USER
value: "nextcloud"
volumeMounts:
- name: nextcloud-db-storage
mountPath: /var/lib/mysql
- name: nextcloud-db-backup
mountPath: /backup
volumes:
- name: nextcloud-db-storage
nfs:
server: 10.0.0.10
path: /home/akshun/nextcloud/db
- name: nextcloud-db-backup
nfs:
server: 10.0.0.10
path: /home/akshun/nextcloud/backup

View File

@@ -0,0 +1,16 @@
---
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
name: nextcloud-secrets
namespace: tools
spec:
encryptedData:
nextcloud-url: AgAFK2JVff1NQ1XnUFX46Gc3WApyDTthYxl4ZPqlA7kVfTe/SjVZbJ6vKid9JjkzAxCvr9JlAZJrA+rLTXvLfxdDhmNRBS1J+OvWFHVdTDmMzk6CUShlNPAEKMZJwiM2fC1MZ0trcwKZJuvm0DT80JqiS65UawfuTQTECVDUkvfVuCL8yxF61AipMDmX0cZt/1f1+CQhRIo4tZhs7MfeWuTNjuFxurySn6GdkZHb91d/zyphSNU/AYi4QnSBIyG8529PrIO9CoNvOVc/YWFuSEpeBZNqiZMOxV+pek1rvvRksCACUMA6xHKXTE7VUyCrjc/v8wZp1tt3R5cM8RJy2t12hzAFkChqNkWRNn1tCoXXHI+YoahV3OGO4qqI1Qn5YGSRgAidQC/JUUa4Jnwp3+ZIrxc4Z3jCAGEOWV5HdhhgeEbVsdUqfuWCkKYf55xQDQt8e8L1XXSo43mNQByQ+OSfwdzx2Y2n8dnumiYaEnwHnim9sJCALrCy3SOUAq4bPs3IwUj9v72IG/9B54dPPoV5l9aGlmJ6Cso2V+Yx5LTyWc4Df5QMHyJTwNBqtwQSXMnzT4NbQ6ven5JW/aDHCYCfgWfcX6wMnkWdgWzo2/9SzHtiIdkGeRuIDdDSKtJEnJk47Kxa2MlDjnRe1kjf4xwWQY2lMYMdZzzcfHwoo0m+5LZCPgHwxJHWPT1HohbxIdsOqeH0ej2hcLjnT7cE9gPoZ76fkLIaTqOREX0kKl91
root-password: AgCJojDaWQXGAA6Ff6CqH3xRbfiwcrh9EjtdjGP36MfeteOm93dY1GYZkhzjXbgf939oS7p4btcwCfukyQHH6KRvh6JSW7y75CIy2NM0XB5NOPbbexosuD1otbZOmxAlyGuu54wCOWRUzKYIEkWzFlwgtrKp7U3Oc4OAafnttDZNDX4LiY3xKUm1bX9WQaPEk/nNFTwzPY1s9T/UUyZDYbriAKXoHB1/5qE5Cz9pE7y955J6HbPD+9v1fyqib/mKRjVOzRbc5fhxoCL9J84pQ7CcJ7nGvhoC9DdE5xp6OXHjNy14SYzrZYcipLvPbTgjqKIO/F0r/cDEF3HSzAtc975o4LrwLJ+wdGzkzSenxSuPcyTd9aETlJ9s+klOG9rffKLexRRC9JSPoqQFzlKnDGh1uJ7REnLSMwYoCHQvxWvG/Hbk0UNNXQkTyEF+10RtcsO7ZV19CsnhLHaFkL7KYP0Za1YBlqmOaD4Hw6tNNy7EwsCYgg7taT0yXSoaUg801smWrIjBlC7/OiwW6Y6yBF551hZCxitwqusY+k4F+sYS7sL0UXBDkSrgJX8eYe2SuwQYEoIFvfH/PuhGmZ/871RLuR82B1qU1NVO9bL12lctl+OyyGBT7NGoX9kGLunoR0F3tQ8vLa5bLYNoxUAMKwonGRYCfe9FCRstViQjfXIO7wlmuDa5gBF20cMEvI62NVJFanJapAdwPAwE7A==
user-password: AgB25Gn/ANrlFXR3PAXnponCSQDyFnrsyUeJt3PfSSJ4ChOJnWnzrp/5eesozJBl9LtAV17enFnmGgdHIavdyZlrrKUt0tD0lU+g8x+vRatawvc0wghl/0YypqtUmxsCr0tqNS+YH2366/V5WWCnjV3D8cl6aNY68Ya1P8X8aaF1Ya/+XqQnnDYIRAxWSizwLhyGQRU5LYeRMcRfd0pV4ooqohtyrwCJhkL+gM3AL/4d41mYA5C19n6cGN/hHEgD/EhN+oUucUmXxE5M2BXkv7yFXVwZOkkHRK5zdx/weZld/p9lvPFkjVh/jZ6aE7qde77dtPXa/E+fkmx2NztfeKx5tHEbgDy4PPDGcutytBZIgvH1r+0GQZnfEb/vyxBUCDNPDSADkPpm7dFEi8B65uCaFjFvXmDhg4QjKYkYRPUVUK7AzIxV0Iz0YonN1sYT44/wuPxQauHE9rtQD4vM9F51yp15+bu41ktBtPZsTI5n68eXFgZc9N4pQxiQeR4Yk/Mqm2k1nicL1sT0KVQgW5FQdxwyVyXqeyoJhicSWdskHav6JkVyI6j+CQc07kZWmuxKe85ud01oijgLYtF2E0/lJUdwaG7fQIwGK58exsoUmzAJ/mh3SmoZzW/3Jm7AEI19L9TLMt1OeCxRWdF98hsQnZEaBoT1f5H++Zc+JcOirEyZcHnufTQ5SijbI+Gnb05+ZftFtA/mCNl7hg==
template:
metadata:
name: nextcloud-secrets
namespace: tools
type: Opaque

View File

@@ -0,0 +1,43 @@
---
apiVersion: v1
kind: Service
metadata:
name: nextcloud-service
namespace: tools
spec:
type: LoadBalancer
selector:
app: nextcloud
ports:
- protocol: TCP
port: 9200
targetPort: 443
---
apiVersion: v1
kind: Service
metadata:
name: collabora-service
namespace: tools
spec:
type: LoadBalancer
selector:
app: collabora
ports:
- protocol: TCP
port: 9980
targetPort: 9980
---
apiVersion: v1
kind: Service
metadata:
name: nextcloud-db-service
namespace: tools
spec:
selector:
app: nextcloud-db
ports:
- protocol: TCP
port: 3306
targetPort: 3306

View File

@@ -0,0 +1,54 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nextcloud
namespace: default
spec:
strategy:
type: Recreate
selector:
matchLabels:
app: nextcloud
template:
metadata:
labels:
app: nextcloud
spec:
initContainers:
- name: wait-for-db
image: busybox
command:
- sh
- -c
- |
until nc -z -v -w30 nextcloud-db-service 3306; do
echo "Waiting for database to be ready..."
sleep 2
done
containers:
- name: nextcloud
image: lscr.io/linuxserver/nextcloud:32.0.0
ports:
- containerPort: 443
env:
- name: PGID
value: "1000"
- name: PUID
value: "1000"
- name: TZ
value: "Asia/Kolkata"
volumeMounts:
- name: nextcloud-data
mountPath: /data
- name: nextcloud-config
mountPath: /config
volumes:
- name: nextcloud-data
nfs:
path: /home/akshun/nextcloud/data
server: 10.0.0.10
- name: nextcloud-config
nfs:
path: /home/akshun/nextcloud/config
server: 10.0.0.10