about summary refs log tree commit diff
path: root/bundles/copyparty/files
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2026-04-22 14:32:23 +0900
committerRobert Günzler <r@gnzler.io>2026-04-22 14:38:23 +0900
commitada70ea42c39b579b8aad248068b95c956a79a1c (patch)
treec0ec92bd447fba698fbcbf027d9ef8dbb642a509 /bundles/copyparty/files
parent82bf37339cd01640a9c66702a4275de6180851cb (diff)
deploy copyparty
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to 'bundles/copyparty/files')
-rw-r--r--bundles/copyparty/files/copyparty.conf67
-rw-r--r--bundles/copyparty/files/custom.css7
-rw-r--r--bundles/copyparty/files/kube.yaml64
3 files changed, 138 insertions, 0 deletions
diff --git a/bundles/copyparty/files/copyparty.conf b/bundles/copyparty/files/copyparty.conf
new file mode 100644
index 0000000..a087c38
--- /dev/null
+++ b/bundles/copyparty/files/copyparty.conf
@@ -0,0 +1,67 @@
+# vim: ft=ini et sw=2:
+
+[global]
+  # enable colors in log messages (both in logfiles and stdout)
+  # ansi
+  # disable logging for more performance
+  q
+
+  # trust traefik
+  rproxy: 1
+  xff-src: 10.89.0.0/16
+
+  # use user/group from authelia middleware
+  idp-h-usr: remote-user
+  idp-h-grp: remote-groups
+  idp-login: https://login.gzr.im/?rd=https://cp.gzr.im{dst}
+
+
+  # df: 16           # stop accepting uploads if less than 16 GB free disk space
+  # ver              # show copyparty version in the controlpanel
+  # grid             # show thumbnails/grid-view by default
+  # theme: 2         # monokai
+  # name: datasaver  # change the server-name that's displayed in the browser
+
+  # enable the prometheus endpoint, but disable the dupes counter (too slow)
+  stats, nos-dup
+
+  # make it harder for search engines to read your server
+  no-robots, force-js
+
+  # panic and shutdown instead of just showing the warning
+  vc-exit
+
+  html-head: <link rel="stylesheet" href="/custom.css">
+
+[/]
+  /w
+  accs:
+    # read-write-move-delete-admin
+    rwmda: @admins
+  flags:
+    e2ds       # enable file indexing & filesystem-scanning
+    e2ts       # enable metadata indexing
+
+[/public]
+  /w/public
+  accs:
+    r: *
+    rw: nobody
+    # read-write-move-delete-admin
+    rwmda: @admins
+
+[/u]
+  /w/u
+  accs:
+    rwmda: @admins
+
+[/u/${u}]
+  /w/u/${u}
+  accs:
+    r: *
+    rwmda: ${u}, @admins
+
+[/www]
+  /var/www
+  accs:
+    rwmda: @admins
diff --git a/bundles/copyparty/files/custom.css b/bundles/copyparty/files/custom.css
new file mode 100644
index 0000000..686b6b2
--- /dev/null
+++ b/bundles/copyparty/files/custom.css
@@ -0,0 +1,7 @@
+:root {
+	--font-main: sans-serif;
+	--font-serif: serif;
+	--font-mono: monospace;
+}
+
+.EasyMDEContainer .CodeMirror { font-family: var(--font-mono) }
diff --git a/bundles/copyparty/files/kube.yaml b/bundles/copyparty/files/kube.yaml
new file mode 100644
index 0000000..1ea4adf
--- /dev/null
+++ b/bundles/copyparty/files/kube.yaml
@@ -0,0 +1,64 @@
+apiVersion: v1
+kind: Pod
+metadata:
+  name: copyparty
+  labels:
+    traefik.enable: true
+    traefik.http.routers.copyparty.tls: true
+    traefik.http.routers.copyparty.tls.certresolver: le
+    traefik.http.routers.copyparty.entrypoints: http,https
+    traefik.http.routers.copyparty.rule: Host(`cp.gzr.im`)
+    traefik.http.routers.copyparty.service: copyparty
+    traefik.http.routers.copyparty.middlewares: tls-redirect@file,authelia@file
+    traefik.http.services.copyparty.loadbalancer.server.port: 3923
+spec:
+  dnsPolicy: Default
+  containers:
+    - name: copyparty
+      image: ghcr.io/9001/copyparty-${edition}:${version}
+      env:
+        - name: LD_PRELOAD
+          value: /usr/lib/libmimalloc-secure.so.2
+        - name: PYTHONUNBUFFERED
+          value: 1
+        - name: PRTY_NO_CFSSL
+          value: 1
+        - name: PRTY_NO_PARAMIKO
+          value: 1
+        - name: PRTY_NO_PARTFTPY
+          value: 1
+        - name: PRTY_NO_PYFTPD
+          value: 1
+      volumeMounts:
+        - name: config
+          mountPath: /cfg
+        - name: webroot
+          mountPath: /w
+        # mount host paths we want to expose
+        - name: var-www
+          mountPath: /var/www
+      ports:
+        - containerPort: 3923
+          protocol: TCP
+      # livenessProbe:
+      #   exec:
+      #     command: ["wget", "--spider", "-q", "127.0.0.1:3923/?reset=/._"]
+      #     initialDelaySeconds: 15s
+      resources:
+        limits:
+          cpu: 100m
+          memory: 128Mi
+  volumes:
+    - name: config
+      hostPath:
+        path: /var/lib/copyparty/cfg
+        type: DirectoryOrCreate
+    - name: webroot
+      hostPath:
+        path: /var/www/copyparty
+        type: DirectoryOrCreate
+    # other host paths
+    - name: var-www
+      hostPath:
+        path: /var/www
+        type: Directory