Add gitea at git.rubenhensen.nl

Single-pod sqlite install (simplest path for a home git host). HTTPS-only,
no SSH listener for now. Wired into the Hetzner tunnel like the other
rubenhensen.nl services.

First visitor to git.rubenhensen.nl can register; Gitea auto-promotes the
first user to admin.
This commit is contained in:
Ruben Hensen
2026-05-19 23:19:21 +02:00
parent ffe8830b5e
commit 20128bcd73
7 changed files with 133 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: gitea
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
repoURL: https://github.com/rubenhensen/k8scd.git
targetRevision: HEAD
path: gitea
destination:
server: https://kubernetes.default.svc
namespace: gitea
syncPolicy:
syncOptions:
- CreateNamespace=true
automated:
selfHeal: true
+4
View File
@@ -55,6 +55,10 @@ records:
expire: 300
type: A
content: "46.224.26.65"
- name: "git"
expire: 300
type: A
content: "46.224.26.65"
- name: "@"
expire: 300
type: MX
@@ -0,0 +1,10 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: gitea-data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
+60
View File
@@ -0,0 +1,60 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: gitea
labels:
app: gitea
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: gitea
template:
metadata:
labels:
app: gitea
spec:
securityContext:
fsGroup: 1000
containers:
- name: gitea
image: gitea/gitea:1
env:
- name: USER_UID
value: "1000"
- name: USER_GID
value: "1000"
- name: TZ
value: Europe/Amsterdam
- name: GITEA__server__ROOT_URL
value: https://git.rubenhensen.nl/
- name: GITEA__server__DOMAIN
value: git.rubenhensen.nl
- name: GITEA__server__PROTOCOL
value: http
- name: GITEA__server__HTTP_PORT
value: "3000"
- name: GITEA__server__DISABLE_SSH
value: "true"
- name: GITEA__database__DB_TYPE
value: sqlite3
- name: GITEA__database__PATH
value: /data/gitea/gitea.db
- name: GITEA__security__INSTALL_LOCK
value: "true"
- name: GITEA__log__MODE
value: console
ports:
- containerPort: 3000
name: http
protocol: TCP
volumeMounts:
- mountPath: /data
name: data
restartPolicy: Always
volumes:
- name: data
persistentVolumeClaim:
claimName: gitea-data
+13
View File
@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: gitea
labels:
app: gitea
spec:
selector:
app: gitea
ports:
- name: http
port: 3000
targetPort: 3000
+24
View File
@@ -0,0 +1,24 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: gitea-ingress
annotations:
cert-manager.io/cluster-issuer: prod-cluster-issuer
nginx.ingress.kubernetes.io/proxy-body-size: "1g"
spec:
ingressClassName: nginx
rules:
- host: git.rubenhensen.nl
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: gitea
port:
number: 3000
tls:
- secretName: letsencrypt-prod
hosts:
- git.rubenhensen.nl
+1
View File
@@ -19,6 +19,7 @@ let
"lingo.rubenhensen.nl"
"blog.rubenhensen.nl"
"serpbear.rubenhensen.nl"
"git.rubenhensen.nl"
];
sniMapEntries =