apiVersion: v1 kind: Service metadata: name: mastodon spec: ports: - protocol: TCP name: web port: 3000 - protocol: TCP name: api port: 4000 - protocol: TCP name: db port: 5432 - protocol: TCP name: redis port: 6379 selector: app: mastodon --- apiVersion: apps/v1 kind: Deployment metadata: name: mastodon labels: app: mastodon spec: replicas: 1 selector: matchLabels: app: mastodon template: metadata: labels: app: mastodon spec: containers: - name: web image: bv11-cr01.bessems.eu/proxy/tootsuite/mastodon args: - bash - -c - 'rm -f /mastodon/tmp/pids/server.pid; bundle exec rails db:migrate; bundle exec rails s -p 3000' envFrom: - configMapRef: name: configmap-mastodon ports: - name: web containerPort: 3000 volumeMounts: - mountPath: /mastodon/public/system name: flexvolsmb-mastodon-system - name: api image: bv11-cr01.bessems.eu/proxy/tootsuite/mastodon args: - node - ./streaming envFrom: - configMapRef: name: configmap-mastodon ports: - name: api containerPort: 4000 - name: backend image: bv11-cr01.bessems.eu/proxy/tootsuite/mastodon args: - bundle - exec - sidekiq envFrom: - configMapRef: name: configmap-mastodon volumeMounts: - mountPath: /mastodon/public/system name: flexvolsmb-mastodon-system - name: postgres image: bv11-cr01.bessems.eu/proxy/library/postgres:14-alpine env: - name: POSTGRES_USER value: mastodon - name: POSTGRES_PASSWORD value: mastodon - name: POSTGRES_DB value: mastodon ports: - name: db containerPort: 5432 volumeMounts: - mountPath: /var/lib/postgresql/data name: flexvolsmb-mastodon-db - name: redis image: bv11-cr01.bessems.eu/proxy/library/redis:alpine # args: # - redis-server # - --requirepass mastodon # - --appendonly yes ports: - name: redis containerPort: 6379 volumeMounts: - name: flexvolsmb-mastodon-redis mountPath: /data volumes: - name: flexvolsmb-mastodon-system persistentVolumeClaim: claimName: flexvolsmb-mastodon-system - name: flexvolsmb-mastodon-db persistentVolumeClaim: claimName: flexvolsmb-mastodon-db - name: flexvolsmb-mastodon-redis persistentVolumeClaim: claimName: flexvolsmb-mastodon-redis --- apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: mastodon spec: entryPoints: - websecure routes: - match: Host(`st.itch.fyi`) kind: Rule services: - name: mastodon port: 3000 middlewares: - name: security-headers@file - name: compression@file --- apiVersion: v1 kind: PersistentVolume metadata: name: flexvolsmb-mastodon-db spec: capacity: storage: 1Gi accessModes: - ReadWriteMany storageClassName: flexvolsmb-mastodon-db flexVolume: driver: mount/smb secretRef: name: smb-secret options: opts: domain=bessems.eu,file_mode=0600,dir_mode=0700,uid=70,gid=70,iocharset=utf8,nobrl server: 192.168.11.225 share: /K3s.Volumes/mastodon/db --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: flexvolsmb-mastodon-db spec: accessModes: - ReadWriteMany storageClassName: flexvolsmb-mastodon-db resources: requests: storage: 1Gi --- apiVersion: v1 kind: PersistentVolume metadata: name: flexvolsmb-mastodon-redis spec: capacity: storage: 1Gi accessModes: - ReadWriteMany storageClassName: flexvolsmb-mastodon-redis flexVolume: driver: mount/smb secretRef: name: smb-secret options: opts: domain=bessems.eu,file_mode=0700,dir_mode=0700,uid=999,gid=1000,iocharset=utf8,nobrl server: 192.168.11.225 share: /K3s.Volumes/mastodon/redis --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: flexvolsmb-mastodon-redis namespace: default spec: accessModes: - ReadWriteMany storageClassName: flexvolsmb-mastodon-redis resources: requests: storage: 1Gi --- apiVersion: v1 kind: PersistentVolume metadata: name: flexvolsmb-mastodon-system spec: capacity: storage: 1Gi accessModes: - ReadWriteMany storageClassName: flexvolsmb-mastodon-system flexVolume: driver: mount/smb secretRef: name: smb-secret options: opts: domain=bessems.eu,file_mode=0755,dir_mode=0755,uid=991,gid=991,iocharset=utf8 server: 192.168.11.225 share: /K3s.Volumes/mastodon/system --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: flexvolsmb-mastodon-system namespace: default spec: accessModes: - ReadWriteMany storageClassName: flexvolsmb-mastodon-system resources: requests: storage: 1Gi