Adds wild-directory server.

This commit is contained in:
2026-07-10 03:35:56 +00:00
parent c80d8dc411
commit 387838819b
8 changed files with 151 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
name: wild-directory-server
is: wild-directory-server
description: Public web UI and API for a Wild Cloud app directory. Browse, search, and explore available apps. Host your own directory or point to a community-maintained one.
category: services
icon: https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gitea.svg
latest: "1"

View File

@@ -0,0 +1,66 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: wild-directory-server
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: wild-directory-server
template:
metadata:
labels:
app: wild-directory-server
spec:
securityContext:
runAsNonRoot: false
seccompProfile:
type: RuntimeDefault
containers:
- name: server
image: git.civilsociety.dev/wild-cloud/wild-directory-server:latest
ports:
- containerPort: 5066
env:
- name: WILD_DIRECTORY_PATH
value: /data/apps
- name: WILD_DIRECTORY_GIT_URL
value: {{ .gitUrl }}
- name: WILD_DIRECTORY_GIT_BRANCH
value: {{ .gitBranch }}
- name: WILD_DIRECTORY_GIT_SYNC_INTERVAL
value: {{ .gitSyncInterval }}
- name: WILD_DIRECTORY_PORT
value: "5066"
- name: WILD_STATIC_DIR
value: /static
volumeMounts:
- name: data
mountPath: /data/apps
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
add:
- CHOWN
- SETUID
- SETGID
readinessProbe:
httpGet:
path: /health
port: 5066
initialDelaySeconds: 10
periodSeconds: 10
livenessProbe:
httpGet:
path: /health
port: 5066
initialDelaySeconds: 30
periodSeconds: 30
volumes:
- name: data
persistentVolumeClaim:
claimName: wild-directory-server-data

View File

@@ -0,0 +1,23 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: wild-directory-server
annotations:
external-dns.alpha.kubernetes.io/target: '{{ .externalDnsDomain }}'
spec:
ingressClassName: traefik
tls:
- hosts:
- '{{ .domain }}'
secretName: '{{ .tlsSecretName }}'
rules:
- host: '{{ .domain }}'
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: wild-directory-server
port:
number: 5066

View File

@@ -0,0 +1,15 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: {{ .namespace }}
labels:
- includeSelectors: true
pairs:
app: wild-directory-server
managedBy: kustomize
partOf: wild-cloud
resources:
- namespace.yaml
- pvc.yaml
- deployment.yaml
- service.yaml
- ingress.yaml

View File

@@ -0,0 +1,17 @@
version: 0.2.0-1
requires:
- name: postgres
defaultConfig:
namespace: wild-directory-server
domain: wild-directory.{{ .cloud.domain }}
externalDnsDomain: '{{ .cloud.domain }}'
tlsSecretName: wildcard-wild-cloud-tls
gitUrl: https://git.civilsociety.dev/wild-cloud/wild-directory.git
gitBranch: main
gitSyncInterval: 5m
storage: 1Gi
defaultSecrets:
- key: jwtSecret
- key: dbPassword
requiredSecrets:
- postgres.password

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: {{ .namespace }}

View File

@@ -0,0 +1,10 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: wild-directory-server-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .storage }}

View File

@@ -0,0 +1,10 @@
apiVersion: v1
kind: Service
metadata:
name: wild-directory-server
spec:
selector:
app: wild-directory-server
ports:
- port: 5066
targetPort: 5066