Files
mirccloud/kubernetes/postgres.yaml
T
Jason Preston c59ac7ad0f feat: initial mIRCcloud.com scaffold
- Express + TypeScript backend with IRC connection manager
- React + Vite frontend with mIRC-inspired theme
- Drizzle ORM + PostgreSQL schema (users, connections, channels, messages)
- Redis pub/sub for real-time WebSocket delivery across replicas
- IRC color code parser (16 + 99 extended palette)
- Kubernetes manifests for homecloud deployment
- Multi-stage Dockerfile with non-root user
- docker-compose for local development
2026-08-08 23:50:08 -06:00

114 lines
2.9 KiB
YAML

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mirccloud-postgres
namespace: mirccloud
labels:
app.kubernetes.io/name: mirccloud
app.kubernetes.io/component: postgres
app.kubernetes.io/part-of: mirccloud
spec:
serviceName: mirccloud-postgres
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: mirccloud
app.kubernetes.io/component: postgres
template:
metadata:
labels:
app.kubernetes.io/name: mirccloud
app.kubernetes.io/component: postgres
app.kubernetes.io/part-of: mirccloud
spec:
securityContext:
runAsNonRoot: true
runAsUser: 1001
runAsGroup: 1001
fsGroup: 1001
containers:
- name: postgres
image: bitnami/postgresql:16
ports:
- name: tcp-postgres
containerPort: 5432
protocol: TCP
env:
- name: POSTGRESQL_USERNAME
value: mirccloud
- name: POSTGRESQL_DATABASE
value: mirccloud
- name: POSTGRESQL_PASSWORD
valueFrom:
secretKeyRef:
name: mirccloud-secrets
key: POSTGRES_PASSWORD
resources:
requests:
cpu: 250m
memory: 256Mi
limits:
cpu: 1000m
memory: 1Gi
volumeMounts:
- name: postgres-data
mountPath: /bitnami/postgresql
livenessProbe:
exec:
command:
- /bin/sh
- -c
- pg_isready -U mirccloud -d mirccloud
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 6
readinessProbe:
exec:
command:
- /bin/sh
- -c
- pg_isready -U mirccloud -d mirccloud
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 6
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
volumeClaimTemplates:
- metadata:
name: postgres-data
labels:
app.kubernetes.io/name: mirccloud
app.kubernetes.io/component: postgres
spec:
accessModes:
- ReadWriteOnce
storageClassName: nfs-synology
resources:
requests:
storage: 20Gi
---
apiVersion: v1
kind: Service
metadata:
name: mirccloud-postgres
namespace: mirccloud
labels:
app.kubernetes.io/name: mirccloud
app.kubernetes.io/component: postgres
app.kubernetes.io/part-of: mirccloud
spec:
type: ClusterIP
selector:
app.kubernetes.io/name: mirccloud
app.kubernetes.io/component: postgres
ports:
- name: tcp-postgres
port: 5432
targetPort: 5432
protocol: TCP