MariaDB - MySQL Database Engine
MariaDB - MySQL Database Engine
MariaDB - MySQL Server is one of the most popular open source relational databases. It’s made by the original developers of MySQL and guaranteed to stay open source. It is part of most cloud offerings and the default in most Linux distributions.
This stack also includes PHPMyAdmin which is a free software tool written in PHP, intended to handle the administration of MySQL over the Web.
I have disabled the internal auth and put this behind Authentik.
Kubernetes Manifest
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: syncthing
app.kubernetes.io/instance: syncthing
app.kubernetes.io/name: syncthing
name: syncthing
namespace: syncthing
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: syncthing
template:
metadata:
labels:
app: syncthing
app.kubernetes.io/name: syncthing
spec:
nodeSelector:
nas: "true"
containers:
- image: linuxserver/syncthing
name: syncthing
ports:
- containerPort: 22000
hostPort: 22000
protocol: TCP
- containerPort: 22000
hostPort: 22000
protocol: UDP
- containerPort: 21027
hostPort: 21027
protocol: UDP
- containerPort: 8384
hostPort: 8384
protocol: TCP
env:
- name: TZ
value: Europe/London
volumeMounts:
- mountPath: "/backup"
readOnly: false
name: smb
- mountPath: "/config"
readOnly: false
name: data
volumes:
- name: smb
persistentVolumeClaim:
claimName: pvc-syncthing-smb
- name: data
persistentVolumeClaim:
claimName: syncthing
---
apiVersion: v1
kind: Service
metadata:
labels:
app: syncthing
name: syncthing
namespace: syncthing
spec:
ports:
- name: web-tcp
port: 8384
protocol: TCP
targetPort: 8384
- name: tcp
port: 22000
protocol: TCP
targetPort: 22000
- name: udp
port: 22000
protocol: UDP
targetPort: 22000
- name: udp2
port: 21027
protocol: UDP
targetPort: 21027
type: LoadBalancer
loadBalancerIP: 10.0.10.203
selector:
app: syncthing
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: syncthing
namespace: syncthing
annotations:
kubernetes.io/ingress.class: traefik-external
spec:
entryPoints:
- websecure
routes:
- match: Host(`syncthing.f9.casa`)
kind: Rule
services:
- name: syncthing
port: 8384
middlewares:
- name: default-headers
namespace: default
- name: authentik
namespace: authentik
tls:
secretName: f9-casa-tls
Docker Compose
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
version: '3.9'
services:
syncthing:
image: syncthing/syncthing
hostname: syncthing
networks:
- traefik-public
environment:
- TZ=Europe/London
- PUID=1000
- PGID=1000
volumes:
- /srv/cephfs/docker/appdata/syncthing:/var/syncthing
- /srv/cephfs/docker:/userdata
- /srv/backup/Syncthing:/backup
ports:
- 22000:22000/tcp # TCP file transfers
- 22000:22000/udp # QUIC file transfers
- 21027:21027/udp # Receive local discovery broadcasts
deploy:
labels:
- "traefik.enable=true"
- "traefik.http.routers.syncthing.rule=Host(`syncthing.f9.casa`)"
- "traefik.http.services.syncthing.loadbalancer.server.port=8384"
- "traefik.http.routers.syncthing.entrypoints=websecure"
- "traefik.http.routers.syncthing.tls=true"
- "traefik.http.routers.syncthing.tls.certresolver=letsencrypt"
- "traefik.http.routers.syncthing.middlewares=authentik@docker"
mode: replicated
networks:
traefik-public:
external: true
This post is licensed under CC BY 4.0 by the author.