copyparty.yaml 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  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. resources:
  43. requests:
  44. memory: "0"
  45. limits:
  46. memory: "1Gi"
  47. volumes:
  48. - name: copyparty
  49. persistentVolumeClaim:
  50. claimName: copyparty-pvc
  51. - name: config-default
  52. configMap:
  53. name: copyparty-config
  54. configMap:
  55. items:
  56. - key: default.conf
  57. path: default.conf
  58. - name: accounts
  59. secret:
  60. secretName: copyparty-secret-accounts
  61. ---
  62. apiVersion: v1
  63. kind: ConfigMap
  64. metadata:
  65. name: copyparty-config
  66. namespace: copyparty
  67. data:
  68. default.conf: |
  69. [global]
  70. p: 3923
  71. e2dsa # enable file indexing and filesystem scanning
  72. e2ts # and enable multimedia indexing
  73. name: copyparty.jibby.org
  74. qr
  75. qrs # HTTPS QR code
  76. qri: copyparty.jibby.org
  77. xff-src: lan
  78. rproxy: -1
  79. dav-auth
  80. usernames
  81. # create volumes:
  82. [/pub]
  83. /w/pub
  84. accs:
  85. r: *
  86. A: josh
  87. flags:
  88. og
  89. #og_ua: '(Discord|Twitter|Slack)bot' # doesn't work w/ signal
  90. [/priv]
  91. /w/priv
  92. accs:
  93. A: josh
  94. [/priv/Archive/Signal]
  95. /w/priv/Archive/Signal
  96. accs:
  97. A: josh
  98. flags:
  99. e2ds
  100. lifetime: 604800 # 1wk
  101. daw
  102. nohash: .*
  103. [/priv/Archive/SMS]
  104. /w/priv/Archive/SMS
  105. accs:
  106. A: josh
  107. flags:
  108. lifetime: 7257600 # 3mo
  109. daw
  110. [/writes]
  111. /w/writes
  112. accs:
  113. w: *
  114. A: josh
  115. flags:
  116. lifetime: 604800 # 1wk
  117. xz: 0
  118. ---
  119. apiVersion: v1
  120. kind: Service
  121. metadata:
  122. name: copyparty-service
  123. namespace: copyparty
  124. spec:
  125. selector:
  126. app: copyparty
  127. type: ClusterIP
  128. ports:
  129. - name: copyparty-web-port
  130. protocol: TCP
  131. port: 3923
  132. targetPort: http-web-svc
  133. ---
  134. apiVersion: networking.k8s.io/v1
  135. kind: Ingress
  136. metadata:
  137. name: copyparty
  138. namespace: copyparty
  139. annotations:
  140. traefik.ingress.kubernetes.io/router.entrypoints: websecure
  141. spec:
  142. rules:
  143. - host: copyparty.jibby.org
  144. http:
  145. paths:
  146. - path: /
  147. pathType: Prefix
  148. backend:
  149. service:
  150. name: copyparty-service
  151. port:
  152. number: 3923