copyparty.yaml 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. ---
  2. apiVersion: v1
  3. kind: Namespace
  4. metadata:
  5. name: copyparty
  6. ---
  7. apiVersion: apps/v1
  8. kind: Deployment
  9. metadata:
  10. name: copyparty
  11. namespace: copyparty
  12. spec:
  13. strategy:
  14. type: Recreate
  15. selector:
  16. matchLabels:
  17. app: copyparty
  18. replicas: 1
  19. template:
  20. metadata:
  21. labels:
  22. app: copyparty
  23. annotations:
  24. backup.velero.io/backup-volumes-excludes: copyparty
  25. spec:
  26. containers:
  27. - name: copyparty
  28. image: copyparty/ac:latest
  29. imagePullPolicy: Always
  30. ports:
  31. - containerPort: 3923
  32. name: http-web-svc
  33. volumeMounts:
  34. - mountPath: "/w"
  35. name: copyparty
  36. - name: accounts
  37. mountPath: /cfg/accounts.conf
  38. subPath: accounts.conf
  39. - name: config-default
  40. mountPath: /cfg/default.conf
  41. subPath: default.conf
  42. volumes:
  43. - name: copyparty
  44. persistentVolumeClaim:
  45. claimName: copyparty-pvc
  46. - name: config-default
  47. configMap:
  48. name: copyparty-config
  49. configMap:
  50. items:
  51. - key: default.conf
  52. path: default.conf
  53. - name: accounts
  54. secret:
  55. secretName: copyparty-secret-accounts
  56. ---
  57. apiVersion: v1
  58. kind: ConfigMap
  59. metadata:
  60. name: copyparty-config
  61. namespace: copyparty
  62. data:
  63. default.conf: |
  64. [global]
  65. p: 3923
  66. e2dsa # enable file indexing and filesystem scanning
  67. e2ts # and enable multimedia indexing
  68. name: copyparty.jibby.org
  69. qr
  70. qrs # HTTPS QR code
  71. qri: copyparty.jibby.org
  72. xff-src: lan
  73. xff-hdr: cf-connecting-ip
  74. dav-auth
  75. # create volumes:
  76. [/pub]
  77. /w/pub
  78. accs:
  79. r: *
  80. A: josh
  81. flags:
  82. og
  83. #og_ua: '(Discord|Twitter|Slack)bot' # doesn't work w/ signal
  84. [/priv]
  85. /w/priv
  86. accs:
  87. A: josh
  88. [/priv/Archive/Signal]
  89. /w/priv/Archive/Signal
  90. accs:
  91. A: josh
  92. flags:
  93. lifetime: 604800 # 1wk
  94. daw
  95. mte: +.up_at
  96. nohash: .*
  97. [/priv/Archive/SMS]
  98. /w/priv/Archive/SMS
  99. accs:
  100. A: josh
  101. flags:
  102. lifetime: 7257600 # 3mo
  103. daw
  104. [/writes]
  105. /w/writes
  106. accs:
  107. w: *
  108. A: josh
  109. flags:
  110. lifetime: 604800 # 1wk
  111. xz: 0
  112. ---
  113. apiVersion: v1
  114. kind: Service
  115. metadata:
  116. name: copyparty-service
  117. namespace: copyparty
  118. spec:
  119. selector:
  120. app: copyparty
  121. type: ClusterIP
  122. ports:
  123. - name: copyparty-web-port
  124. protocol: TCP
  125. port: 3923
  126. targetPort: http-web-svc
  127. ---
  128. apiVersion: networking.k8s.io/v1
  129. kind: Ingress
  130. metadata:
  131. name: copyparty
  132. namespace: copyparty
  133. annotations:
  134. traefik.ingress.kubernetes.io/router.entrypoints: websecure
  135. spec:
  136. rules:
  137. - host: copyparty.jibby.org
  138. http:
  139. paths:
  140. - path: /
  141. pathType: Prefix
  142. backend:
  143. service:
  144. name: copyparty-service
  145. port:
  146. number: 3923