feat(cloudreve) Migrate from unmaintained to upstream images. (#17489)

**Description**
Replaces the 2-year-outdated cloudreve image with upstream v.3.8.3,
which includes aria2 support and English translations.
<!--
Please include a summary of the change and which issue is fixed. Please
also include relevant motivation and context. List any dependencies that
are required for this change.
-->
⚒️ Fixes  #16912 <!--(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?**
Tested for page load, login, Aria2 setup locally with k8s + Docker
Desktop. Have not tested any downloads or real use.
<!--
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:**

- Have not tested beyond initial "it runs and I can log in". Should I be
copying this app into dev or incubator?
- Upstream docker image does not appear to support passing RPC_SECRET,
which leads to a mess chasing down the auto-generated secret and
manually entering it on the webpage. Should this be a questions.yaml
entry instead?
- Since cloudreve requires configuration to setup and use aria2 anyway,
should the aria2 image be removed and documentation added to refer to
the aria2-app (https://truecharts.org/charts/stable/aria2/)?

<!-- 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

** 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: Christopher <bigbero@gmail.com>
Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
This commit is contained in:
Christopher 2024-02-04 00:50:14 -06:00 committed by GitHub
parent 30d9bf6728
commit 82de89779c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 79 additions and 19 deletions

View File

@ -35,4 +35,4 @@ sources:
- https://github.com/truecharts/charts/tree/master/charts/stable/cloudreve - https://github.com/truecharts/charts/tree/master/charts/stable/cloudreve
- https://hub.docker.com/r/xavierniu/cloudreve - https://hub.docker.com/r/xavierniu/cloudreve
type: application type: application
version: 4.1.12 version: 5.0.0

View File

@ -0,0 +1,49 @@
---
title: Important Notes
---
## Credentials
On first run, cloudreve will generate an admin user and print the email and password to the app logs. It will look something like this:
```
___ _ _
/ __\ | ___ _ _ __| |_ __ _____ _____
/ / | |/ _ \| | | |/ _ | '__/ _ \ \ / / _ \
/ /___| | (_) | |_| | (_| | | | __/\ V / __/
\____/|_|\___/ \__,_|\__,_|_| \___| \_/ \___|
V3.8.3 Commit #88409cc Pro=false
================================================
[Info] 2024-01-22 03:27:02 Initializing database connection...
[Info] 2024-01-22 03:27:02 Start initializing database schema...
[Info] 2024-01-22 03:27:03 Admin user name: admin@cloudreve.org
[Info] 2024-01-22 03:27:03 Admin password: 8vLCPvDl
[Info] 2024-01-22 03:27:06 Start executing database script "UpgradeTo3.4.0".
[Info] 2024-01-22 03:27:06 Finish initializing database schema.
[Info] 2024-01-22 03:27:06 Initialize task queue with WorkerNum = 10
[Info] 2024-01-22 03:27:06 Initialize crontab jobs...
[Info] 2024-01-22 03:27:06 Current running mode: Master.
[Info] 2024-01-22 03:27:06 Listening to ":5212"
```
To retrieve the password in TrueNAS SCALE, wait for the app to finish deploying and then navigate to the `Workload` card and click the `View Logs` icon.
## Aria2
To use cloudreve with aria2, install the [TrueCharts aria2 app](https://truecharts.org/charts/stable/aria2/). The installation dialog will ask for a RPC Secret, which should be a securely generated string that will be copied to cloudreve later. See below for an example.
Once aria2 is installed, open cloudreve's webpage and navigate to the Dashboard (Click on profile icon in top right corner -> Dashboard). In the dashboard, select `Nodes` and then click the edit icon beside `Master (Local Machine)`. In the edit dialog, click `Enable` and then fill out the settings:
* RPC Server: find with `heavyscript dns`, and read about internal DNS [here](https://truecharts.org/manual/SCALE/guides/linking-apps/).
* RPC Secret: Set the shared secret here. Must also be set in the Aria2 app.
* Absolute Path: Set this to a custom persistent mount that you've created for this cloudreve app, and have also mounted to Aria2.
### Example RPC Secrete Generation
Below is an example of one way to generate the RPC Secret value. If you do not have a computer with openssl installed, you can use the shell (`System Settings` -> `Shell`) in TrueNAS SCALE. Copy the resulting value by highlighting it and pressing `Ctrl+Insert`.
```
$ openssl rand -hex 32
```

View File

@ -47,14 +47,6 @@ questions:
additional_attrs: true additional_attrs: true
type: dict type: dict
attrs: attrs:
# Include{persistenceBasic}
- variable: databasepath
label: "databasepath Storage"
description: "Container Path cloudrevedb"
schema:
additional_attrs: true
type: dict
attrs:
# Include{persistenceBasic} # Include{persistenceBasic}
- variable: avatarpath - variable: avatarpath
label: "avatarpath Storage" label: "avatarpath Storage"

View File

@ -1,32 +1,51 @@
image: image:
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
repository: xavierniu/cloudreve repository: cloudreve/cloudreve
tag: latest@sha256:cdd00367bbdf3247e15feebfbde354237586a308c6fac730856670dd31b44b47 tag: 3.8.3@sha256:a9e2373b7ca59bc43b9a4ceb50e7f6b80539c1732a9439b96dfe1aec6354a6c5
persistence: persistence:
avatarpath: avatarpath:
enabled: true enabled: true
mountPath: /cloudreve/avatar mountPath: /cloudreve/avatar
config: config:
enabled: true enabled: true
mountPath: /cloudreve/config targetSelector:
databasepath: main:
enabled: true main:
mountPath: /cloudreve/db mountPath: /cloudreve
init:
mountPath: /conf-init
uploadpath: uploadpath:
enabled: true enabled: true
mountPath: /cloudreve/uploads mountPath: /cloudreve/uploads
portal:
open:
enabled: true
securityContext: securityContext:
container: container:
readOnlyRootFilesystem: false readOnlyRootFilesystem: false
runAsGroup: 0 runAsGroup: 0
runAsUser: 0 runAsUser: 0
workload:
main:
podSpec:
initContainers:
init:
enabled: true
type: init
imageSelector: image
command:
- "/bin/sh"
- "-c"
- |
set -x
ls -lasth /cloudreve
cp -a /cloudreve/cloudreve /conf-init/cloudreve
ls -lasht /conf-init
containers:
main: {}
service: service:
main: main:
ports: ports:
main: main:
port: 5212 port: 5212
protocol: tcp
targetPort: 5212 targetPort: 5212
portal:
open:
enabled: true