stack.basicstack.de/apps/forgejo/forgejo-deployment.yaml
CTO Agent 08030791c1 Add Forgejo deployment manifests for Argo CD GitOps
Migrate all Forgejo deployment resources from cluster to Git repository:
- Forgejo Deployment with PostgreSQL backend
- Forgejo Service and Ingress with TLS
- Forgejo PersistentVolumeClaim (5Gi)
- PostgreSQL StatefulSet and Service
- Backup CronJob (daily at 03:00 UTC, 14-day retention)

All existing PVCs (forgejo-data, postgres-data-forgejo-postgres-0) and
Pocket-ID SSO configuration are preserved. No data loss expected.

The Argo CD Application (app-forgejo.yaml) is already configured to
sync from apps/forgejo/ path in this repository.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-07-12 13:55:47 +00:00

82 lines
2.2 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: forgejo
namespace: forgejo
spec:
replicas: 1
selector:
matchLabels:
app: forgejo
template:
metadata:
labels:
app: forgejo
spec:
initContainers:
- name: init-permissions
image: busybox:latest
command:
- sh
- -c
- chown -R 1000:1000 /var/lib/gitea && chmod -R 755 /var/lib/gitea
volumeMounts:
- name: data
mountPath: /var/lib/gitea
containers:
- name: forgejo
image: codeberg.org/forgejo/forgejo:10-rootless
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 3000
protocol: TCP
- name: ssh
containerPort: 22
protocol: TCP
env:
- name: USER_UID
value: "1000"
- name: USER_GID
value: "1000"
- name: FORGEJO__database__DB_TYPE
value: postgres
- name: FORGEJO__database__HOST
value: forgejo-postgres:5432
- name: FORGEJO__database__NAME
valueFrom:
secretKeyRef:
name: forgejo-postgres-secret
key: POSTGRES_DB
- name: FORGEJO__database__USER
valueFrom:
secretKeyRef:
name: forgejo-postgres-secret
key: POSTGRES_USER
- name: FORGEJO__database__PASSWD
valueFrom:
secretKeyRef:
name: forgejo-postgres-secret
key: POSTGRES_PASSWORD
- name: FORGEJO__server__DOMAIN
value: forgejo.basicstack.de
- name: FORGEJO__server__ROOT_URL
value: https://forgejo.basicstack.de
- name: FORGEJO__server__SSH_DOMAIN
value: forgejo.basicstack.de
- name: FORGEJO__service__DISABLE_REGISTRATION
value: "true"
resources:
requests:
cpu: 250m
memory: 512Mi
limits:
cpu: "1"
memory: 2Gi
volumeMounts:
- name: data
mountPath: /var/lib/gitea
volumes:
- name: data
persistentVolumeClaim:
claimName: forgejo-data