yt-dlp is another one
on a similar note, I'm running a 11ty website on a Surfer instance in Cloudron, and I'm curious about the other Cloudron users.
yt-dlp is another one
on a similar note, I'm running a 11ty website on a Surfer instance in Cloudron, and I'm curious about the other Cloudron users.
Thanks, in the meantime I cooked something like this that I put under some /app/data/scripts/cloudron folder in some LAMP server
check_storage.sh
---
#!/usr/bin/env bash
set -euo pipefail
CONFIG_FILE="/app/data/scripts/cloudron/cloudron_monitor.env"
[ -f "$CONFIG_FILE" ] || { echo "Missing config file: $CONFIG_FILE" >&2; exit 1; }
source "$CONFIG_FILE"
CLOUDRON_URL="https://my.cloudronsrv.tld"
NTFY_URL="https://ntfy.cloudronsrv.tld"
ALERT_THRESHOLD=75 # %
# get raw JSON from Cloudron
disk_json=$(curl -sS -H "Authorization: Bearer ${CLOUDRON_TOKEN}" \
-H "Content-Type: application/json" \
"$CLOUDRON_URL/api/v1/system/disk_usage")
# parse and alert if needed
alerted=0
echo "$disk_json" | jq -r '
.usage.filesystems
| to_entries[]
| {fs: .key, cap: (.value.capacity * 100 | floor)}
| select(.cap >= '"$ALERT_THRESHOLD"')
| "\(.fs): \(.cap)% used"
' | while read -r line; do
# Send alert via ntfy
curl -sS -u "$NTFY_USER:$NTFY_PASS" \
-H "Title: Disk usage alert" \
-H "Tags: warning,disk" \
-d "$line" \
"$NTFY_URL/disk-alert"
alerted=1
done
exit "$alerted"
---
cloudron_monitor.env.template
---
NTFY_PASS='xxxxxxxxx'
NTFY_USER='yyyyyyyyy'
CLOUDRON_TOKEN='xxxx'
which does the job
@timconsidine said in Which server automation tools do you run with Cloudron?:
@SansGuidon said in Which server automation tools do you run with Cloudron?:
monitoring of remaining disk space (still manual)
I use
ntfy
(here on Cloudron) and a small script run via cron.
Yes that looks like a good idea, I would need to spend some time to glue all this in a proper script.
other stuff I do
stuff I want to improve
I solved the problem, not sure what had the most impact:
Change permissions on my mount points/symlinks:
chown yellowtent:yellowtent /mnt/appsdata
chown yellowtent:yellowtent /mnt/appsdata/appsdata
Reboot: not mentioned in the guides but after changing permissions and rebooting, the problem was solved compared to several attempts before this, without reboot and with improper permissions changes.
The permissions and reboot parts are not mentioned in the guide for doing those operations if I'm right, so I'm not sure this was really needed, anyway I prefer to share
Thanks to @BrutalBirdie for all the feedback above and the proposed support (in DM), this community is awesome!
Thanks for the advise. Currently I'm in a weird situation, as I've followed the guide step by step and Cloudron starts but my apps do not show any data anymore.
Thank you, this clarifies things
Now the pros and cons of opting for either hetzner volumes vs using cloudron volumes is unclear to me, you mention the data directory can also be moved app-per-app via Cloudron UI. I've opted for moving the appsdata folder manually for all apps to a new location, following the guide at https://docs.cloudron.io/storage/#default-data-directory but this seems a different strategy than switching data directory from Cloudron Admin UI and mounting Cloudron volumes.
Thanks folks
I've read the guide at https://docs.cloudron.io/storage/#storage and I'm not sure how to proceed then. The guide mentions we can move the data directory but not to a Cloudron volume, so this should be an external volume, is it where Hetzner extra volumes comes into play? I guess then I might be a tutorial away from this first part of the solution.
But these are still dragons to me:
The guide advises to not use symlinks but the example commands in the same guide at https://docs.cloudron.io/storage/#default-data-directory
contain symlink afaik, right?
As far as I understand it, the guide seems to cover the case for a full migration of docker images or apps data but it is unclear to me how to tackle this only for specific apps, and if that's a supported scenario. I mean maybe the guide's purpose is to migrate all /app/data volume to an external volume, that could work but then this renders my VPS main partition quite useless, right?
I also read several times it was advised not to touch the Cloudron server configuration except via the UI, to ensure future Cloudron upgrades, backups, restore etc would work.
I guess this is a specific case that requires anyway to touch the terminal, but is it well supported by Cloudron (future upgrades etc)?
I've checked the disk usage to decide what to migrate in my case, I believe migrating the appsdata makes more sense in this case. But the docker images take as much space.
root@ubuntu-cloudron-16gb-nbg1-3:/home/yellowtent# du -hs appsdata/ boxdata/ platformdata/
28G appsdata/
49M boxdata/
4.1G platformdata/
root@ubuntu-cloudron-16gb-nbg1-3:/home/yellowtent# du -hs /var/lib/docker/
156G /var/lib/docker/
root@ubuntu-cloudron-16gb-nbg1-3:/home/yellowtent# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 36 36 27.24GB 2.511GB (9%)
Containers 42 42 0B 0B
Local Volumes 86 86 11.6GB 0B (0%)
Build Cache 0 0 0B 0B
Thanks in advance for the clarifications
Hey,
I face disk full more often than before those days, but there is little I seem I can do about it. 45-60GB out of 160GB is taken by Ubuntu (it depends), (30-40GB) taken by docker images/volumes size...
I run Cloudron on a Hetzner VPS with 160GB of disk space.
Until now here are some things I have done but I'm not sure it can be done for all apps:
Things I didn't try yet
I've asked Hetzner support if there is room for extending my main partition, they encourage to upgrade my package but yet give some other options, I'm not sure if anyone had attempted anything similar. I'm already familiar with mounting storage boxes and attach them to some Cloudron apps, but that's all.
Volumes can also be used to provide additional storage for your Cloud servers:
Unfortunately, we do not intend to connect volumes and internal NVMEs. Volumes come here as separate partitions. We have some customers who have solved this problem with the help of a so-called "LVM". Since we do not offer software support, we cannot help you with the setup of such systems.
To not leave you completely alone with your problem. Here are some keywords for your internet search: "Expand your local storage on a Hetzner Cloud server with Volumes".
An alternative to get more storage is a StorageBox. Please keep in mind that Storageboxes are only fileservers which can be mounted as a net drive to your Cloud server but you cannot use it as a partition on it. So it is good for mass datastorage (like pictures or documents) but you could not run for example databases/webservers on it.
Trying to troubleshoot disk full: the tips found in the forum are almost useless/obsolete as I couldn't reclaim any space, and I couldn't find an official Cloudron guide in the troubleshooting section.
The other day my disk was at 100% capacity, I just deleted 2 apps (it-tools and linkding) which allowed me to go back at 90% capacity usage, and 2 days later I seem to have reclaimed 40GB without doing much beyond deleting 2 apps and despite those apps appeared to only take 2-3GB each according to the system information. I feel a bit lost when I try to make sense of the real storage used by apps (their data, image, volume, backups, logs, all cumulated ...) and when I want to reclaim space, the disk usage part in system UI does not tell much about what is happening and what can be optimized, I believe we lack a good Cloudron guide for this.
The app with more data are Immich and Syncthing, I'm thinking of moving the Immich data on external volumes, but I'm not sure Immich allows to migrate existing data or specify which folder I want to use for storage.
Thanks in advance for your help and guidance!
I've my Last.fm account since 2010, but nowadays I'm also scrobbling to https://listenbrainz.org/ as a backup in case Last.fm dies.
I also aim to make my own scrobbler/stats independently from ListenBrainz and Last.fm, taking inspiration from https://coryd.dev/posts/2024/tracking-the-music-i-listen-to and https://sive.rs/ti
mp3val is quite useful indeed, as Soulseek can sometimes leaves corrupted files in the downloaded folder. The reason I play music on Navidrome / Jellyfin is because they integrate also with Last.FM and so I get stats for free
I'm also using Hetzner Storage Box for most volume-related needs on Cloudron.
yes it is a custom package, but I use slskd as part of the Dockerfile https://gitea.zoemp.be/sansguidon/soulseek-cloudron/src/branch/slskd/Dockerfile.cloudron
The way I use it is that any of my Soulseek downloaded files end up on a folder, where mp3val checks the content, and each non corrupted file is moved to another folder on my Dropbox which is also synced through Syncthing. This folder is accessible by my Jellyfin and Navidrome instances also hosted on Cloudron.
For any corrupted file detected by mp3val, I get an alert on Uptime Kuma and NTFY.
Next step will likely be to have another UI/tool which serve me as a wishlist, so I can avoid using Soulseek/slskd directly and instead add items to my wishlist.
I believe there is an API for slskd so it can be used to build automations : https://github.com/slskd/slskd/issues/931
Also Lidarr seems to integrate with slskd also : https://wiki.servarr.com/lidarr/plugins#allquiet-hublidarrpluginslskd
There are also other cool things people do with slskd/beats : https://github.com/slskd/slskd/issues/1278
Hey @jdaviescoates you might be interested in https://forum.cloudron.io/topic/13731/wip-a-soulseek-client-with-modern-web-ui-for-cloudron then, this is where I demo my slskd package for Cloudron.
This is a mix of shortcuts, official apps and custom apps (slskd aka soulseek, cinekids - a kids-friendly movie rating aggregator, tapas - a bookmark manager)
@nebulon said in Disk usage update problem:
Ah thanks for the clarification. Maybe we can think of some different UI which has an overview and some drilled down info if wanted.
This would be awesome
my 2 cents: the last time I hit that refresh button it took a few minutes to refresh the disk usage, so I had to be patient and "hit F5" a few times. it's confusing to free some disk space and yet read a different story in the system info, I'm not sure how often this data is refreshed, but it would be nice if the data was accurate without the need of manually refreshing
@joseph said in Prevent external users joining gitea instance:
Isn't it already false by default ? https://git.cloudron.io/packages/gitea-app/-/blob/master/app.ini.template?ref_type=heads#L78
I believe the flag should be set to True not False to block spam
@girish could you please have a look at the suggestions here above about disabling registration by default to prevent spam?
It seems available only on their development branch, installable using go https://plakar.io/posts/2025-06-27/it-doesnt-make-sense-to-wrap-modern-data-in-a-1979-format-introducing-.ptar/
$ go install github.com/PlakarKorp/plakar@v1.0.3-devel.c7a66f1
I believe the requirement is mainly Go version 1.23.3
(via https://www.plakar.io/docs/main/quickstart/)