diff --git a/charts/stable/seafile/Chart.yaml b/charts/stable/seafile/Chart.yaml index 2bdf8adb48c..d2d0634b8ba 100644 --- a/charts/stable/seafile/Chart.yaml +++ b/charts/stable/seafile/Chart.yaml @@ -6,7 +6,7 @@ annotations: truecharts.org/min_helm_version: "3.11" truecharts.org/train: stable apiVersion: v2 -appVersion: 11.0.13 +appVersion: 12.0.9 dependencies: - name: common version: 25.4.10 @@ -22,6 +22,13 @@ dependencies: alias: "" tags: [] import-values: [] + - name: memcached + version: 14.5.4 + repository: oci://tccr.io/truecharts + condition: memcached.enabled + alias: "" + tags: [] + import-values: [] deprecated: false description: Reliable and Performant File Sync and Share Solution home: https://truecharts.org/charts/stable/seafile @@ -42,4 +49,4 @@ sources: - https://hub.docker.com/r/seafileltd/seafile-mc - https://seafile.com type: application -version: 7.12.3 +version: 8.0.0 diff --git a/charts/stable/seafile/docs/img/SeafilePod.png b/charts/stable/seafile/docs/img/SeafilePod.png deleted file mode 100644 index 32013ed7035..00000000000 Binary files a/charts/stable/seafile/docs/img/SeafilePod.png and /dev/null differ diff --git a/charts/stable/seafile/docs/img/SeafileSeafdavConf.png b/charts/stable/seafile/docs/img/SeafileSeafdavConf.png deleted file mode 100644 index 7ef30aff5c6..00000000000 Binary files a/charts/stable/seafile/docs/img/SeafileSeafdavConf.png and /dev/null differ diff --git a/charts/stable/seafile/docs/img/SeafileShell.png b/charts/stable/seafile/docs/img/SeafileShell.png deleted file mode 100644 index 5fbf717254f..00000000000 Binary files a/charts/stable/seafile/docs/img/SeafileShell.png and /dev/null differ diff --git a/charts/stable/seafile/docs/img/memcached_added.png b/charts/stable/seafile/docs/img/memcached_added.png deleted file mode 100644 index 23377ca5984..00000000000 Binary files a/charts/stable/seafile/docs/img/memcached_added.png and /dev/null differ diff --git a/charts/stable/seafile/docs/install-notes.md b/charts/stable/seafile/docs/install-notes.md index f3a5f3a0e8a..1b2c2775e1c 100644 --- a/charts/stable/seafile/docs/install-notes.md +++ b/charts/stable/seafile/docs/install-notes.md @@ -2,10 +2,6 @@ title: Installation notes and guidelines --- -## Ingress - -Our install requires a FQDN or domain name entered when installing the chart. This doesn't mean you need Traefik however we support only installs using FQDN with valid certificates + Traefik installed - ## CSRF Error Starting with Seafile 11, the defaults fail CSRF verification, and you may see the error message when logging in. @@ -24,54 +20,15 @@ Add an entry for: `CSRF_TRUSTED_ORIGINS = ["https://seafile.YOURDOMAINHERE.com"] Seafile uses Block storage so files/folders uploaded to Seafile aren't visible by default when mounting the persisted storage. For more information see the this [post](https://forum.seafile.com/t/maintain-file-name-after-upload/11190/3) on the Seafile Forums. As well, Seafile uses init scripts which need to be run as `root` so if `hostpath` is used (such as using HDDs) then make sure your storage is owned by `root`. -## Memcached Log Spam and fixes - -Unfortunately there's no easy solution at the moment to add `memcached` automatically without user intervention (redis support is also coming soon to Seafile) so if users wish to use `memcached` (isn't required) then the following steps must be followed - -- Add `dependency` train to TrueCharts catalog and add/install `memcached` chart - -- Edit `CACHES` -> `default` inside `seahub_settings.py` to add `memcached.ix-memcached.svc.cluster.local` instead of `memcached` and you can delete the locmem. - -![memcached_added](./img/memcached_added.png) - -Or - -- Simply delete the `CACHES` section, while not optimal for large installs is truly used with 50+ users according to Seafile docs. - -Either of these steps will prevents the logs filling up with: - -```shell -2023-11-15 03:54:55,368 [ERROR] django.pylibmc:167 set_many MemcachedError: error 47 from memcached_set_multi: SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY -Traceback (most recent call last): - File "/usr/local/lib/python3.10/dist-packages/django_pylibmc/memcached.py", line 165, in set_many - return super(PyLibMCCache, self).set_many(*args, **kwargs) - File "/opt/seafile/seafile-server-11.0.1/seahub/thirdpart/django/core/cache/backends/memcached.py", line 127, in set_many - failed_keys = self._cache.set_multi( -pylibmc.ServerDown: error 47 from memcached_set_multi: SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY -``` - ## WebDAV By default WebDAV is disabled by default, as per [upstream docs](https://manual.seafile.com/extension/webdav/). Here's some simple instructions to modify your `seafdav.conf` to enable WebDAV if you wish to use it with Traefik. - Enter Seafile Pod Shell - -![SeafilePod](./img/SeafilePod.png) - - Use the CLI to enter the Seafile WebDAV (`seafdav.conf`) config file - -![SeafileShell](./img/SeafileShell.png) - - Use vi commands to edit the `Enabled` to `true` and change the share name as desired (default is `/seafdav`). - > Use `i` to insert text and and `:wq`, and `ESC key` to exit insert mode -![SeafileWebDAVConf](./img/SeafileSeafdavConf.png) - - Restart Seafile and your WebDAV share will be accessible using your domain.com/seafdav ![SeafileWebDAV](./img/SeafileWebDAV.png) - -## FUSE Extension - -The FUSE extension isn't supported by default due to privileges required by the extension and non-standard mounts, so no support tickets will be accepted for using/enabling it. diff --git a/charts/stable/seafile/values.yaml b/charts/stable/seafile/values.yaml index 868a0a468b0..7ab7d0fb0fc 100644 --- a/charts/stable/seafile/values.yaml +++ b/charts/stable/seafile/values.yaml @@ -1,6 +1,6 @@ image: repository: docker.io/seafileltd/seafile-mc - tag: 11.0.13@sha256:1239b087aa4bdf1b60a3802e80855f230736ac5d5fa3325a40b15d4c598f422c + tag: 12.0.9@sha256:b3c6d890c0be01af2ec2615cdab495eaa1dec7405f5320aecfad9f6714e77bf6 pullPolicy: IfNotPresent service: main: @@ -29,13 +29,48 @@ workload: DB_ROOT_PASSWD: "{{ .Values.mariadb.rootPassword }}" SEAFILE_SERVER_LETSENCRYPT: false SEAFILE_SERVER_HOSTNAME: "" - SEAFILE_ADMIN_EMAIL: me@example.com - SEAFILE_ADMIN_PASSWORD: a_very_secret_password + INIT_SEAFILE_ADMIN_EMAIL: me@example.com + INIT_SEAFILE_ADMIN_PASSWORD: a_very_secret_password FORCE_HTTPS_IN_CONF: false + JWT_PRIVATE_KEY: a_very_very_very_very_secret_key + CLUSTER_SERVER: "true" + CLUSTER_INIT_MODE: "true" + CLUSTER_INIT_MEMCACHED_HOST: '{{ printf "%v-%v" .Release.Name "memcached" }}' +configmap: + env: + enabled: true + data: + env: | + TIME_ZONE={{ .Values.TZ }} + JWT_PRIVATE_KEY={{ .Values.workload.main.podSpec.containers.main.env.JWT_PRIVATE_KEY }} + SEAFILE_SERVER_PROTOCOL=http + SEAFILE_SERVER_HOSTNAME={{ .Values.workload.main.podSpec.containers.main.env.SEAFILE_SERVER_HOSTNAME }} + SEAFILE_MYSQL_DB_HOST={{ printf "%v-%v" .Release.Name "mariadb" }} + SEAFILE_MYSQL_DB_PORT=3306 + SEAFILE_MYSQL_DB_USER={{ .Values.mariadb.mariadbUsername }} + SEAFILE_MYSQL_DB_PASSWORD={{ .Values.mariadb.password }} + SEAFILE_MYSQL_DB_CCNET_DB_NAME=ccnet + SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=seafile + SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=seahub persistence: storage: enabled: true mountPath: "/shared/seafile" + env: + enabled: true + type: configmap + objectName: env + expandObjectName: true + optional: false + defaultMode: "0777" + items: + - key: env + path: env + targetSelector: + main: + main: + mountPath: /shared/seafile/conf/.env + subPath: env mariadb: enabled: true includeCommon: true @@ -44,3 +79,5 @@ mariadb: portal: open: enabled: true +memcached: + enabled: true