fix(seafile): BREAKING CHANGE version 12 update (#32005)

**Description**
A fix for the update to seafile 12
⚒️ Fixes  # <!--(issue)-->

**⚙️ Type of change**

- [ ] ⚙️ Feature/App addition
- [X] 🪛 Bugfix
- [ ] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] 🔃 Refactor of current code

**🧪 How Has This Been Tested?**
Basic sync of a library is working
<!--
Please describe the tests that you ran to verify your changes. Provide
instructions so we can reproduce. Please also list any relevant details
for your test configuration
-->

**📃 Notes:**
<!-- Please enter any other relevant information here -->

**✔️ Checklist:**

- [X] ⚖️ My code follows the style guidelines of this project
- [X] 👀 I have performed a self-review of my own code
- [ ] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [ ] 📄 I have made corresponding changes to the documentation
- [X] ⚠️ My changes generate no new warnings
- [ ] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [x] ⬆️ I increased versions for any altered app according to semantic
versioning
- [x] I made sure the title starts with `feat(chart-name):`,
`fix(chart-name):` or `chore(chart-name):`

**➕ App addition**

If this PR is an app addition please make sure you have done the
following.

- [ ] 🖼️ I have added an icon in the Chart's root directory called
`icon.png`

---

_Please don't blindly check all the boxes. Read them and only check
those that apply.
Those checkboxes are there for the reviewer to see what is this all
about and
the status of this PR with a quick glance._

---------

Signed-off-by: Alfred Göppel <43101280+alfi0812@users.noreply.github.com>
Co-authored-by: Alfred Göppel <43101280+alfi0812@users.noreply.github.com>
This commit is contained in:
Alexandre Acebedo
2025-02-16 09:56:05 +01:00
committed by GitHub
co-authored by Alfred Göppel
parent 071bd1bef3
commit 7c9090f298
7 changed files with 49 additions and 48 deletions
+9 -2
View File
@@ -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
Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

@@ -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.
+40 -3
View File
@@ -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