Compare commits

...

11 Commits

Author SHA1 Message Date
d6458cfe4f
feat: Cache-Control
All checks were successful
/ deploy (push) Successful in 4s
2025-05-03 04:24:30 +00:00
c9a3f8f0a6
test: no server-snippet 2025-05-03 04:24:30 +00:00
558541091f
fix: more_set_headers syntax 2025-05-03 04:24:30 +00:00
a46b8e3b64
fix: deploy scripts 2025-05-03 04:24:30 +00:00
221dcc7cfe
fix: ingress cache conditions 2025-05-03 04:24:30 +00:00
f9e4091c34
fix: ingress annotation error 2025-05-03 04:24:30 +00:00
51aa2c3366
fix: yaml type error 2025-05-03 04:24:30 +00:00
c2459acfba
feat: element headers 2025-05-03 04:24:29 +00:00
51182735da
fix: element port 2025-05-03 04:24:29 +00:00
013f077acd
bump: v1.11.99 2025-05-03 04:24:29 +00:00
9f5d8482f4 bump: 1.11.89 (#5)
All checks were successful
/ deploy (push) Successful in 4s
Reviewed-on: #5
2024-12-23 03:11:28 +00:00
6 changed files with 37 additions and 21 deletions

2
.env
View File

@ -1,2 +1,2 @@
PROD_URL=chat.gmoker.com PROD_URL=chat.gmoker.com
IMAGEAPP=docker.io/vectorim/element-web:v1.11.78 IMAGEAPP=docker.io/vectorim/element-web:v1.11.99

View File

@ -4,6 +4,8 @@ services:
image: "$IMAGEAPP" image: "$IMAGEAPP"
restart: unless-stopped restart: unless-stopped
ports: ports:
- "8080:80" - "8080:8080"
environment:
- ELEMENT_WEB_PORT=8080
volumes: volumes:
- ./config.json:/app/config.json:ro - ./config/config.json:/app/config.json:ro

View File

@ -3,32 +3,34 @@ set -o pipefail
function kapply() { function kapply() {
for f in "$@"; do for f in "$@"; do
kubectl apply -f \ kubectl apply --server-side \
<(envsubst "$(env | xargs printf '$%s ')" < "manifests/$f") -f<(envsubst "$(env | sed 's/^/$/')" < "manifests/$f")
done done
} }; export -f kapply
function kcreatesec() { function kcreatesec() {
kubectl create secret generic --save-config --dry-run=client -oyaml "$@" | kubectl apply -f- kubectl apply --server-side \
} -f<(kubectl create secret generic --dry-run=client -oyaml "$@")
}; export -f kcreatesec
function kcreatecm() { function kcreatecm() {
kubectl create configmap --dry-run=client -oyaml "$@" | kubectl apply -f- kubectl apply --server-side \
} -f<(kubectl create configmap --dry-run=client -oyaml "$@")
}; export -f kcreatecm
function kgseckey() { function kgseckey() {
local sec="$1"; shift local sec="$1"; shift
local key="$1"; shift local key="$1"; shift
kubectl get secret "$sec" -o jsonpath="{.data.$key}" | base64 -d kubectl get secret "$sec" -ojson | jq -re ".data.\"$key\"" | base64 -d
} }; export -f kgseckey
function kgcmkey() { function kgcmkey() {
local cm="$1"; shift local cm="$1"; shift
local key="$1"; shift local key="$1"; shift
kubectl get configmap "$cm" -o jsonpath="{.data.$key}" kubectl get configmap "$cm" -ojson | jq -re ".data.\"$key\""
} }; export -f kgcmkey
kcreatecm element --from-file=config/config.json kcreatecm element --from-file=config/config.json

View File

@ -1,4 +1,5 @@
#!/bin/bash -e #!/bin/bash -e
set -o pipefail
export NB_REPLICAS=1 export NB_REPLICAS=1

View File

@ -1,4 +1,5 @@
#!/bin/bash -e #!/bin/bash -e
set -o pipefail
export NB_REPLICAS=3 export NB_REPLICAS=3

View File

@ -5,11 +5,18 @@ metadata:
name: app name: app
annotations: annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod cert-manager.io/cluster-issuer: letsencrypt-prod
gethomepage.dev/enabled: "true" nginx.ingress.kubernetes.io/configuration-snippet: |
gethomepage.dev/instance: "$GITHUB_REF_NAME" more_set_headers "X-Frame-Options: SAMEORIGIN";
gethomepage.dev/name: Element more_set_headers "X-Content-Type-Options: nosniff";
gethomepage.dev/icon: element more_set_headers "X-XSS-Protection: 1; mode=block";
gethomepage.dev/description: Secure collaboration and messaging more_set_headers "Content-Security-Policy: frame-ancestors 'self'";
if ($request_uri = /) {
more_set_headers "Cache-Control: no-cache";
}
if ($request_uri ~* ^/(config\..*\.json|i18n|home|sites|index\.html)$) {
more_set_headers "Cache-Control: no-cache, no-store, must-revalidate";
}
spec: spec:
ingressClassName: nginx ingressClassName: nginx
tls: tls:
@ -63,7 +70,10 @@ spec:
image: "$IMAGEAPP" image: "$IMAGEAPP"
ports: ports:
- name: http - name: http
containerPort: 80 containerPort: 8080
env:
- name: ELEMENT_WEB_PORT
value: "8080"
volumeMounts: volumeMounts:
- name: config - name: config
mountPath: /app/config.json mountPath: /app/config.json