From 138ff30dd5636c59b9e83bc5a6b8f14271fb95a9 Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Wed, 18 Feb 2026 00:22:20 +0000 Subject: [PATCH] save to main --- postiz/postiz.yaml | 304 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 postiz/postiz.yaml diff --git a/postiz/postiz.yaml b/postiz/postiz.yaml new file mode 100644 index 0000000..64960a9 --- /dev/null +++ b/postiz/postiz.yaml @@ -0,0 +1,304 @@ +# ====================================================== +# POSTIZ FULL STACK (KUBERNETES - SINGLE FILE) +# ====================================================== + +# ------------------------- +# POSTGRES (APP DB) +# ------------------------- +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: postiz-db-pvc +spec: + accessModes: + - ReadWriteOnce + storageClassName: microk8s-hostpath + resources: + requests: + storage: 2Gi + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: postiz-postgres +spec: + replicas: 1 + selector: + matchLabels: + app: postiz-postgres + template: + metadata: + labels: + app: postiz-postgres + spec: + containers: + - name: postgres + image: postgres:17-alpine + env: + - name: POSTGRES_USER + value: postiz-user + - name: POSTGRES_PASSWORD + value: postiz-password + - name: POSTGRES_DB + value: postiz-db-local + volumeMounts: + - mountPath: /var/lib/postgresql/data + name: postgres-storage + volumes: + - name: postgres-storage + persistentVolumeClaim: + claimName: postiz-db-pvc + +--- +apiVersion: v1 +kind: Service +metadata: + name: postiz-postgres +spec: + selector: + app: postiz-postgres + ports: + - port: 5432 + +# ------------------------- +# REDIS +# ------------------------- +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: postiz-redis +spec: + replicas: 1 + selector: + matchLabels: + app: postiz-redis + template: + metadata: + labels: + app: postiz-redis + spec: + containers: + - name: redis + image: redis:7.2 + ports: + - containerPort: 6379 + +--- +apiVersion: v1 +kind: Service +metadata: + name: postiz-redis +spec: + selector: + app: postiz-redis + ports: + - port: 6379 + +# ------------------------- +# TEMPORAL POSTGRES +# ------------------------- +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: temporal-postgres +spec: + replicas: 1 + selector: + matchLabels: + app: temporal-postgres + template: + metadata: + labels: + app: temporal-postgres + spec: + containers: + - name: postgres + image: postgres:16 + env: + - name: POSTGRES_USER + value: temporal + - name: POSTGRES_PASSWORD + value: temporal + +--- +apiVersion: v1 +kind: Service +metadata: + name: temporal-postgres +spec: + selector: + app: temporal-postgres + ports: + - port: 5432 + +# ------------------------- +# ELASTICSEARCH +# ------------------------- +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: temporal-elasticsearch +spec: + replicas: 1 + selector: + matchLabels: + app: temporal-elasticsearch + template: + metadata: + labels: + app: temporal-elasticsearch + spec: + containers: + - name: elasticsearch + image: elasticsearch:7.17.27 + env: + - name: discovery.type + value: single-node + - name: ES_JAVA_OPTS + value: "-Xms256m -Xmx256m" + ports: + - containerPort: 9200 + +--- +apiVersion: v1 +kind: Service +metadata: + name: temporal-elasticsearch +spec: + selector: + app: temporal-elasticsearch + ports: + - port: 9200 + +# ------------------------- +# TEMPORAL +# ------------------------- +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: temporal +spec: + replicas: 1 + selector: + matchLabels: + app: temporal + template: + metadata: + labels: + app: temporal + spec: + containers: + - name: temporal + image: temporalio/auto-setup:1.28.1 + env: + - name: DB + value: postgres12 + - name: POSTGRES_USER + value: temporal + - name: POSTGRES_PWD + value: temporal + - name: POSTGRES_SEEDS + value: temporal-postgres + - name: ENABLE_ES + value: "true" + - name: ES_SEEDS + value: temporal-elasticsearch + ports: + - containerPort: 7233 + +--- +apiVersion: v1 +kind: Service +metadata: + name: temporal +spec: + selector: + app: temporal + ports: + - port: 7233 + +# ------------------------- +# POSTIZ APP +# ------------------------- +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: postiz +spec: + replicas: 1 + selector: + matchLabels: + app: postiz + template: + metadata: + labels: + app: postiz + spec: + containers: + - name: postiz + image: ghcr.io/gitroomhq/postiz-app:latest + env: + - name: MAIN_URL + value: https://postiz.juntekim.com + - name: FRONTEND_URL + value: https://postiz.juntekim.com + - name: NEXT_PUBLIC_BACKEND_URL + value: https://postiz.juntekim.com/api + - name: JWT_SECRET + value: change-me + - name: DATABASE_URL + value: postgresql://postiz-user:postiz-password@postiz-postgres:5432/postiz-db-local + - name: REDIS_URL + value: redis://postiz-redis:6379 + - name: TEMPORAL_ADDRESS + value: temporal:7233 + - name: STORAGE_PROVIDER + value: local + - name: UPLOAD_DIRECTORY + value: /uploads + - name: NEXT_PUBLIC_UPLOAD_DIRECTORY + value: /uploads + ports: + - containerPort: 5000 + +--- +apiVersion: v1 +kind: Service +metadata: + name: postiz +spec: + selector: + app: postiz + ports: + - port: 5000 + targetPort: 5000 + +# ------------------------- +# TRAEFIK INGRESS +# ------------------------- +--- +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: postiz-ingress +spec: + entryPoints: + - websecure + routes: + - match: Host(`postiz.juntekim.com`) + kind: Rule + services: + - name: postiz + port: 5000 + tls: + certResolver: myresolver + domains: + - main: postiz.juntekim.com +