apiVersion: v1 kind: ConfigMap metadata: name: cal data: NEXTAUTH_URL: https://cal.gzr.im/web/ NEXT_PUBLIC_APP_URL: https://cal.gzr.im/web/ NEXT_PUBLIC_SITE_URL: https://cal.gzr.im/web/ NEXT_PUBLIC_ENABLE_SAAS_FEATURES: false --- apiVersion: v1 kind: Pod metadata: name: cal labels: traefik.enable: true # radicale traefik.http.routers.radicale.tls: true traefik.http.routers.radicale.tls.certresolver: le traefik.http.routers.radicale.entrypoints: http,https traefik.http.routers.radicale.rule: Host(`cal.gzr.im`) && PathPrefix(`/dav`) traefik.http.middlewares.radicale-headers.headers.customrequestheaders.X-Script-Name: /dav traefik.http.middlewares.radicale-stripprefix.stripprefix.prefixes: /dav traefik.http.routers.radicale.middlewares: radicale-stripprefix@docker traefik.http.routers.radicale.service: radicale traefik.http.services.radicale.loadbalancer.server.port: 5232 # fluidcal traefik.http.routers.fluidcal.tls: true traefik.http.routers.fluidcal.tls.certresolver: le traefik.http.routers.fluidcal.entrypoints: http,https traefik.http.routers.fluidcal.rule: Host(`cal.gzr.im`) && PathPrefix(`/`) traefik.http.routers.fluidcal.service: fluidcal traefik.http.services.fluidcal.loadbalancer.server.port: 3000 # well-known traefik.http.middlewares.wellknowncarddav-redirect.redirectregex.regex: ^https://cal.gzr.im/.well-known/carddav traefik.http.middlewares.wellknowncarddav-redirect.redirectregex.replacement: https://cal.gzr.im/dav/ traefik.http.middlewares.wellknowncaldav-redirect.redirectregex.regex: ^https://cal.gzr.im/.well-known/caldav traefik.http.middlewares.wellknowncaldav-redirect.redirectregex.replacement: https://cal.gzr.im/dav/ traefik.http.routers.fluidcal.middlewares: wellknowncarddav-redirect,wellknowncaldav-redirect spec: restartPolicy: Never dnsPolicy: Default containers: - name: radicale image: index.docker.io/grepular/radicale:3.5 volumeMounts: - name: radicale-config mountPath: /etc/radicale readOnly: true - name: radicale-data mountPath: /var/lib/radicale ports: - containerPort: 5232 protocol: TCP # livenessProbe: # httpGet: # path: / # port: 5232 resources: requests: cpu: 10m memory: 25Mi limits: cpu: 100m memory: 128Mi # - name: fluidcal # image: index.docker.io/eibrahim/fluid-calendar:1.4 # ports: # - containerPort: 3000 # protocol: TCP # envFrom: # - configMapRef: # name: cal # - secretRef: # name: cal # livenessProbe: # httpGet: # path: / # port: 3000 # # resources: # # limits: # # cpu: 100m # # memory: 128Mi # # - name: postgres # image: docker.io/library/postgres:15-alpine # volumeMounts: # - name: pg-data # mountPath: /var/lib/postgresql/data # envFrom: # - secretRef: # name: cal # livenessProbe: # exec: # command: ["pg_isready", "-U", "cal"] # initialDelaySeconds: 5 # # resources: # # limits: # # cpu: 100m # # memory: 128Mi volumes: - name: radicale-config hostPath: path: /etc/radicale type: DirectoryOrCreate - name: radicale-data hostPath: path: /var/lib/radicale type: DirectoryOrCreate - name: pg-data hostPath: path: /var/lib/fluidcal type: DirectoryOrCreate