add onlyoffice, and ingress revision
Some checks failed
/ continuous-deploy (push) Failing after 15s
Some checks failed
/ continuous-deploy (push) Failing after 15s
This commit is contained in:
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"cSpell.words": [
|
"cSpell.words": [
|
||||||
"authentik"
|
"authentik",
|
||||||
|
"onlyoffice"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
11
README.md
11
README.md
@@ -13,6 +13,7 @@ Using [NextCloud](https://nextcloud.com/)
|
|||||||
- [repair tree](#repair-tree)
|
- [repair tree](#repair-tree)
|
||||||
- [Repair AppData Cache (Fix App Store 500 Error)](#repair-appdata-cache-fix-app-store-500-error)
|
- [Repair AppData Cache (Fix App Store 500 Error)](#repair-appdata-cache-fix-app-store-500-error)
|
||||||
- [force create indexes](#force-create-indexes)
|
- [force create indexes](#force-create-indexes)
|
||||||
|
- [documentserver repair](#documentserver-repair)
|
||||||
- [Mimetype migrations available](#mimetype-migrations-available)
|
- [Mimetype migrations available](#mimetype-migrations-available)
|
||||||
- [delete file locks](#delete-file-locks)
|
- [delete file locks](#delete-file-locks)
|
||||||
- [Setup and Deploy](#setup-and-deploy)
|
- [Setup and Deploy](#setup-and-deploy)
|
||||||
@@ -98,8 +99,18 @@ su -s /bin/bash www-data -c "php occ maintenance:repair"
|
|||||||
su -s /bin/bash www-data -c "php occ db:add-missing-indices"
|
su -s /bin/bash www-data -c "php occ db:add-missing-indices"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### documentserver repair
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Rebuild appdata and caches
|
||||||
|
su -s /bin/bash www-data -c "php occ onlyoffice:documentserver --clear"
|
||||||
|
su -s /bin/bash www-data -c "php occ maintenance:repair"
|
||||||
|
su -s /bin/bash www-data -c "php occ files:scan-app-data"
|
||||||
|
```
|
||||||
|
|
||||||
### Mimetype migrations available
|
### Mimetype migrations available
|
||||||
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
||||||
# Rebuild appdata and caches
|
# Rebuild appdata and caches
|
||||||
|
|||||||
@@ -157,7 +157,12 @@ nextcloud:
|
|||||||
'overwritehost' => 'cloud.limbosolutions.com',
|
'overwritehost' => 'cloud.limbosolutions.com',
|
||||||
'overwrite.cli.url' => 'https://cloud.limbosolutions.com',
|
'overwrite.cli.url' => 'https://cloud.limbosolutions.com',
|
||||||
'overwriteprotocol' => 'https',
|
'overwriteprotocol' => 'https',
|
||||||
'trusted_proxies' => array ( 0 => '127.0.0.1', 1 => '::1', 2 => '10.0.0.0'),
|
'trusted_proxies' =>
|
||||||
|
array (
|
||||||
|
0 => '127.0.0.1',
|
||||||
|
1 => '::1',
|
||||||
|
2 => '10.0.0.0/8',
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
# A value of 1 e.g. will only run these background jobs between 01:00am UTC and 05:00am UTC:
|
# A value of 1 e.g. will only run these background jobs between 01:00am UTC and 05:00am UTC:
|
||||||
@@ -167,6 +172,17 @@ nextcloud:
|
|||||||
$CONFIG = array (
|
$CONFIG = array (
|
||||||
'maintenance_window_start' => 1,
|
'maintenance_window_start' => 1,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
onlyoffice.config.php: |-
|
||||||
|
<?php
|
||||||
|
$CONFIG = array (
|
||||||
|
'onlyoffice' =>
|
||||||
|
array (
|
||||||
|
'verify_peer_off' => true,
|
||||||
|
'allow_local_remote_servers' => true,
|
||||||
|
'allow_external_storage' => true,
|
||||||
|
),
|
||||||
|
);
|
||||||
ingress:
|
ingress:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ resources:
|
|||||||
- ./storage-limbosolutions-com/pvc.yaml
|
- ./storage-limbosolutions-com/pvc.yaml
|
||||||
- ./mariadb-deploy.yaml
|
- ./mariadb-deploy.yaml
|
||||||
- ./backups/backup-pbs-cronjob.yaml
|
- ./backups/backup-pbs-cronjob.yaml
|
||||||
|
- ./onlyoffice
|
||||||
|
|
||||||
generatorOptions:
|
generatorOptions:
|
||||||
disableNameSuffixHash: true
|
disableNameSuffixHash: true
|
||||||
|
|||||||
2
deploy/app/onlyoffice/.env.d/.gitignore
vendored
Normal file
2
deploy/app/onlyoffice/.env.d/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
**
|
||||||
|
!.gitignore
|
||||||
28
deploy/app/onlyoffice/deployment.yaml
Normal file
28
deploy/app/onlyoffice/deployment.yaml
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: onlyoffice
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: onlyoffice
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: onlyoffice
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: onlyoffice
|
||||||
|
image: onlyoffice/documentserver:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
env:
|
||||||
|
- name: JWT_ENABLED
|
||||||
|
value: "true"
|
||||||
|
- name: JWT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: onlyoffice
|
||||||
|
key: secret
|
||||||
17
deploy/app/onlyoffice/kustomization.yaml
Normal file
17
deploy/app/onlyoffice/kustomization.yaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
secretGenerator:
|
||||||
|
- name: onlyoffice
|
||||||
|
envs:
|
||||||
|
- ./.env.d/onlyoffice.env
|
||||||
|
|
||||||
|
|
||||||
|
generatorOptions:
|
||||||
|
disableNameSuffixHash: true
|
||||||
|
namespace: cloud-limbosolutions-com
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- ./deployment.yaml
|
||||||
|
- ./service.yaml
|
||||||
|
- ./pvc.yaml
|
||||||
10
deploy/app/onlyoffice/service.yaml
Normal file
10
deploy/app/onlyoffice/service.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: onlyoffice
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
app: onlyoffice
|
||||||
@@ -5,11 +5,10 @@ metadata:
|
|||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
kubernetes.io/ingress.class: traefik
|
kubernetes.io/ingress.class: traefik
|
||||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure, public-https
|
|
||||||
spec:
|
spec:
|
||||||
entryPoints:
|
entryPoints:
|
||||||
- websecure
|
- websecure
|
||||||
|
- public-https
|
||||||
tls:
|
tls:
|
||||||
secretName: cloud-limbosolutions-com-tls
|
secretName: cloud-limbosolutions-com-tls
|
||||||
domains:
|
domains:
|
||||||
@@ -34,7 +33,7 @@ spec:
|
|||||||
port: 8080
|
port: 8080
|
||||||
middlewares:
|
middlewares:
|
||||||
- name: rate-limit
|
- name: rate-limit
|
||||||
- name: security-headers
|
- name: nextcloud-security-headers
|
||||||
|
|
||||||
# 2) WEBDAV / SYNC CLIENTS (NO SSO)
|
# 2) WEBDAV / SYNC CLIENTS (NO SSO)
|
||||||
- match: Host(`cloud.limbosolutions.com`) && (PathPrefix(`/remote.php/dav`) || PathPrefix(`/remote.php/webdav`) || PathPrefix(`/remote.php/caldav`) || PathPrefix(`/remote.php/carddav`))
|
- match: Host(`cloud.limbosolutions.com`) && (PathPrefix(`/remote.php/dav`) || PathPrefix(`/remote.php/webdav`) || PathPrefix(`/remote.php/caldav`) || PathPrefix(`/remote.php/carddav`))
|
||||||
@@ -56,7 +55,7 @@ spec:
|
|||||||
# middleware managed by icarus
|
# middleware managed by icarus
|
||||||
- name: authentik-forward-auth
|
- name: authentik-forward-auth
|
||||||
namespace: kube-system
|
namespace: kube-system
|
||||||
- name: security-headers
|
- name: nextcloud-security-headers
|
||||||
- name: rate-limit
|
- name: rate-limit
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -6,5 +6,7 @@ resources:
|
|||||||
- middlewares.yaml
|
- middlewares.yaml
|
||||||
- ingress.yaml
|
- ingress.yaml
|
||||||
- storage-limbosolutions-com/pv.yaml
|
- storage-limbosolutions-com/pv.yaml
|
||||||
|
- ./onlyoffice/ingress.yaml
|
||||||
|
- ./onlyoffice/middlewares.yaml
|
||||||
generatorOptions:
|
generatorOptions:
|
||||||
disableNameSuffixHash: true
|
disableNameSuffixHash: true
|
||||||
@@ -25,7 +25,7 @@ spec:
|
|||||||
apiVersion: traefik.io/v1alpha1
|
apiVersion: traefik.io/v1alpha1
|
||||||
kind: Middleware
|
kind: Middleware
|
||||||
metadata:
|
metadata:
|
||||||
name: security-headers
|
name: nextcloud-security-headers
|
||||||
spec:
|
spec:
|
||||||
headers:
|
headers:
|
||||||
stsSeconds: 31536000
|
stsSeconds: 31536000
|
||||||
@@ -38,4 +38,6 @@ spec:
|
|||||||
customResponseHeaders:
|
customResponseHeaders:
|
||||||
X-Content-Type-Options: "nosniff"
|
X-Content-Type-Options: "nosniff"
|
||||||
X-Frame-Options: "DENY"
|
X-Frame-Options: "DENY"
|
||||||
X-XSS-Protection: "1; mode=block"
|
X-XSS-Protection: "1; mode=block"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
24
deploy/infra/onlyoffice/ingress.yaml
Normal file
24
deploy/infra/onlyoffice/ingress.yaml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: office-limbosolutions-com
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
|
kubernetes.io/ingress.class: traefik
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
- public-https
|
||||||
|
routes:
|
||||||
|
- match: Host(`office.limbosolutions.com`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: onlyoffice
|
||||||
|
port: 80
|
||||||
|
middlewares:
|
||||||
|
- name: onlyoffice-headers
|
||||||
|
- name: onlyoffice-security-headers
|
||||||
|
- name: rate-limit
|
||||||
|
|
||||||
|
tls:
|
||||||
|
secretName: office-limbosolutions-com-tls
|
||||||
31
deploy/infra/onlyoffice/middlewares.yaml
Normal file
31
deploy/infra/onlyoffice/middlewares.yaml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: onlyoffice-security-headers
|
||||||
|
spec:
|
||||||
|
headers:
|
||||||
|
stsSeconds: 31536000
|
||||||
|
stsIncludeSubdomains: true
|
||||||
|
stsPreload: true
|
||||||
|
browserXssFilter: true
|
||||||
|
contentTypeNosniff: true
|
||||||
|
referrerPolicy: "no-referrer"
|
||||||
|
customResponseHeaders:
|
||||||
|
X-Content-Type-Options: "nosniff"
|
||||||
|
X-XSS-Protection: "1; mode=block"
|
||||||
|
X-Frame-Options: "ALLOW-FROM https://cloud.limbosolutions.com"
|
||||||
|
Content-Security-Policy: "frame-ancestors https://cloud.limbosolutions.com"
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
# required because of only office, iframes being generated with http
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: onlyoffice-headers
|
||||||
|
spec:
|
||||||
|
headers:
|
||||||
|
customRequestHeaders:
|
||||||
|
X-Forwarded-Proto: "https"
|
||||||
|
X-Forwarded-Ssl: "on"
|
||||||
|
X-Forwarded-Port: "443"
|
||||||
Reference in New Issue
Block a user