190 lines
4.4 KiB
YAML
190 lines
4.4 KiB
YAML
|
image:
|
||
|
repository: tccr.io/truecharts/librephotos-backend
|
||
|
tag: v2022w6@sha256:4c24ce4ea5b340f83da0be0935eaea4ca525a15ed6da014f8ad8c709b377a837
|
||
|
pullPolicy: IfNotPresent
|
||
|
|
||
|
frontendImage:
|
||
|
repository: tccr.io/truecharts/librephotos-frontend
|
||
|
tag: v2022w6@sha256:9cb2cb4865197d460405fecd79bdd7808333443cb2089753825f7f97365a53a3
|
||
|
|
||
|
proxyImage:
|
||
|
repository: tccr.io/truecharts/librephotos-proxy
|
||
|
tag: v2022w6@sha256:c147eaa3e96348e44132958ca871114a2ce240f0fa3604f738801317af09a160
|
||
|
|
||
|
securityContext:
|
||
|
readOnlyRootFilesystem: false
|
||
|
runAsNonRoot: false
|
||
|
|
||
|
podSecurityContext:
|
||
|
runAsUser: 0
|
||
|
runAsGroup: 0
|
||
|
|
||
|
secretEnv:
|
||
|
ADMIN_EMAIL: "admin@mydomain.com"
|
||
|
ADMIN_USERNAME: "admin"
|
||
|
ADMIN_PASSWORD: "password"
|
||
|
MAPBOX_API_KEY: ""
|
||
|
|
||
|
configmap:
|
||
|
config:
|
||
|
enabled: true
|
||
|
data:
|
||
|
nginx-config: |-
|
||
|
user nginx;
|
||
|
worker_processes 1;
|
||
|
|
||
|
error_log /var/log/nginx/error.log debug;
|
||
|
|
||
|
events {
|
||
|
worker_connections 1024;
|
||
|
}
|
||
|
|
||
|
http {
|
||
|
server {
|
||
|
listen 80;
|
||
|
location / {
|
||
|
# React routes are entirely on the App side in the web broswer
|
||
|
# Always proxy to root with the same page request when nginx 404s
|
||
|
error_page 404 /;
|
||
|
proxy_intercept_errors on;
|
||
|
proxy_set_header Host $host;
|
||
|
proxy_pass http://localhost:3000/;
|
||
|
}
|
||
|
location ~ ^/(api|media)/ {
|
||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||
|
proxy_set_header X-Real-IP $remote_addr;
|
||
|
proxy_set_header Host localhost;
|
||
|
include uwsgi_params;
|
||
|
proxy_pass http://localhost:8001;
|
||
|
}
|
||
|
# Django media
|
||
|
location /protected_media {
|
||
|
internal;
|
||
|
alias /protected_media/;
|
||
|
}
|
||
|
|
||
|
location /static/drf-yasg {
|
||
|
proxy_pass http://localhost:8001;
|
||
|
}
|
||
|
|
||
|
location /data {
|
||
|
internal;
|
||
|
alias /data/;
|
||
|
}
|
||
|
|
||
|
# Original Photos
|
||
|
location /original {
|
||
|
internal;
|
||
|
alias /data/;
|
||
|
}
|
||
|
# Nextcloud Original Photos
|
||
|
location /nextcloud_original {
|
||
|
internal;
|
||
|
alias /data/nextcloud_media/;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
env:
|
||
|
BACKEND_HOST: "localhost"
|
||
|
DB_BACKEND: "postgresql"
|
||
|
DB_NAME: "{{ .Values.postgresql.postgresqlDatabase }}"
|
||
|
DB_USER: "{{ .Values.postgresql.postgresqlUsername }}"
|
||
|
DB_PORT: "5432"
|
||
|
REDIS_PORT: "6379"
|
||
|
WEB_CONCURRENCY: 2
|
||
|
SKIP_PATTERNS: ""
|
||
|
HEAVYWEIGHT_PROCESS: 1
|
||
|
DEBUG: false
|
||
|
DB_PASS:
|
||
|
secretKeyRef:
|
||
|
name: dbcreds
|
||
|
key: postgresql-password
|
||
|
DB_HOST:
|
||
|
secretKeyRef:
|
||
|
name: dbcreds
|
||
|
key: plainhost
|
||
|
REDIS_HOST:
|
||
|
secretKeyRef:
|
||
|
name: rediscreds
|
||
|
key: plainhost
|
||
|
REDIS_PASS:
|
||
|
secretKeyRef:
|
||
|
name: rediscreds
|
||
|
key: redis-password
|
||
|
SECRET_KEY:
|
||
|
secretKeyRef:
|
||
|
name: librephotos-secrets
|
||
|
key: SECRET_KEY
|
||
|
|
||
|
probes:
|
||
|
liveness:
|
||
|
path: "/login"
|
||
|
readiness:
|
||
|
path: "/login"
|
||
|
startup:
|
||
|
path: "/login"
|
||
|
|
||
|
redis:
|
||
|
enabled: true
|
||
|
existingSecret: "rediscreds"
|
||
|
redisUsername: default
|
||
|
|
||
|
postgresql:
|
||
|
enabled: true
|
||
|
existingSecret: "dbcreds"
|
||
|
postgresqlUsername: librephotos
|
||
|
postgresqlDatabase: librephotos
|
||
|
|
||
|
service:
|
||
|
main:
|
||
|
ports:
|
||
|
main:
|
||
|
port: 10161
|
||
|
targetPort: 80
|
||
|
|
||
|
additionalContainers:
|
||
|
proxy:
|
||
|
name: proxy
|
||
|
image: "{{ .Values.proxyImage.repository }}:{{ .Values.proxyImage.tag }}"
|
||
|
ports:
|
||
|
- containerPort: 80
|
||
|
name: main
|
||
|
volumeMounts:
|
||
|
- name: librephotos-config
|
||
|
mountPath: "/etc/nginx/nginx.conf"
|
||
|
subPath: nginx-config
|
||
|
readOnly: true
|
||
|
- name: media
|
||
|
mountPath: "/data"
|
||
|
- name: protected-media
|
||
|
mountPath: "/protected_media"
|
||
|
frontend:
|
||
|
name: frontend
|
||
|
image: "{{ .Values.frontendImage.repository }}:{{ .Values.frontendImage.tag }}"
|
||
|
|
||
|
persistence:
|
||
|
media:
|
||
|
enabled: true
|
||
|
mountPath: "/data"
|
||
|
protected-media:
|
||
|
enabled: true
|
||
|
mountPath: "/protected_media"
|
||
|
logs:
|
||
|
enabled: true
|
||
|
mountPath: "/logs"
|
||
|
cache:
|
||
|
enabled: true
|
||
|
mountPath: "/root/.cache"
|
||
|
librephotos-config:
|
||
|
enabled: "true"
|
||
|
mountPath: "/etc/nginx/nginx.conf"
|
||
|
subPath: "nginx-config"
|
||
|
type: "custom"
|
||
|
volumeSpec:
|
||
|
configMap:
|
||
|
name: '{{ printf "%v-config" (include "tc.common.names.fullname" .) }}'
|
||
|
|
||
|
portal:
|
||
|
enabled: true
|