Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Announcements regarding Cloudron

    268 3k
    268 Topics
    3k Posts
    girishG
    We released the initial package for Docmost. Docmost is an open-source collaborative wiki and documentation software. It is an open-source alternative to Confluence and Notion. Forum category is at https://forum.cloudron.io/category/223/docmost The docs will be at https://docs.cloudron.io/packages/docmost/ Package repo is at https://git.cloudron.io/packages/docmost-app Thanks to @andreasdueren for the initial package!
  • Get help for your Cloudron

    4k 25k
    4k Topics
    25k Posts
    J
    Hi, I just moved to a new machine. As usual, the restoration process went fairly smoothly. There is one issue remaining though, impacting two apps. Both were configured to use an external media mount (the kind that is included in backup), which was a secondary disk. That disk is unavailable on the new machine. For these two apps, the restoration failed, because it this disk could not be found. I tried to set the apps storage to use the default storage, but I couldn't because they are in error state. What do I need to do to fix this issue and get the apps up-and-running again with their data? Output of cloudron-support --troubleshoot Vendor: QEMU Product: Standard PC (Q35 + ICH9, 2009) Linux: 6.8.0-107-generic Ubuntu: noble 24.04 Execution environment: kvm Processor: Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz BIOS pc-q35-10.2 CPU @ 2.0GHz x 4 RAM: 12177808KB Disk: /dev/sda2 45G [OK] node version is correct [OK] IPv6 is enabled and public IPv6 address is working [OK] docker is running [OK] docker version is correct [OK] MySQL is running [OK] netplan is good [OK] DNS is resolving via systemd-resolved [OK] unbound is running [OK] nginx is running [OK] dashboard cert is valid [OK] dashboard is reachable via loopback [OK] No pending database migrations [OK] Service 'mysql' is running and healthy [OK] Service 'postgresql' is running and healthy [OK] Service 'mongodb' is running and healthy [OK] Service 'mail' is running and healthy [OK] Service 'graphite' is running and healthy [OK] Service 'sftp' is running and healthy [OK] box v9.1.5 is running [OK] Dashboard is reachable via domain name [WARN] Domain <redacted> expiry check skipped because whois does not have this information Excerpt from the app log: 2026-04-02T22:00:31.732Z tasks: updating task 20419 with: {"percent":65,"message":"Downloading 15488M@6MBps"} 2026-04-02T22:00:38.028Z tasks: updating task 20419 with: {"percent":65,"message":"Still downloading backup (3721s, 15488M)"} 2026-04-02T22:00:41.737Z tasks: updating task 20419 with: {"percent":65,"message":"Downloading 15552M@6MBps"} 2026-04-02T22:00:50.832Z backupformat/tgz: tarExtract: extracted 217597 entries 2026-04-02T22:00:50.833Z backupformat/tgz: tarExtract: pipeline finished: {"startTime":1775163517410,"duration":3733423,"transferred":16364142900} 2026-04-02T22:00:50.833Z backuptask: downloadApp: time: 3751.965 2026-04-02T22:00:50.833Z tasks: updating task 20419 with: {"percent":70,"message":"Restoring addons"} 2026-04-02T22:00:51.395Z services: restoreAddons: restoring ["postgresql","ldap","sendmail","oidc","redis","localstorage","scheduler","turn"] 2026-04-02T22:00:51.396Z services: Restore postgresql 2026-04-02T22:02:41.597Z services: Setting up LDAP 2026-04-02T22:02:41.726Z services: Setting up SendMail 2026-04-02T22:02:41.727Z services: Setting sendmail addon config to [{"name":"CLOUDRON_MAIL_SMTP_SERVER","value":"mail"},{"name":"CLOUDRON_MAIL_SMTP_PORT","value":"2525"},{"name":"CLOUDRON_MAIL_SMTPS_PORT","value":"2465"},{"name":"CLOUDRON_MAIL_STARTTLS_PORT","value":"2587"},{"name":"CLOUDRON_MAIL_SMTP_USERNAME","value":"nextcloud.app@<redacted>"},{"name":"CLOUDRON_MAIL_SMTP_PASSWORD","value":"<redacted>"},{"name":"CLOUDRON_MAIL_FROM","value":"nextcloud.app@<redacted>"},{"name":"CLOUDRON_MAIL_DOMAIN","value":"<redacted>"}] 2026-04-02T22:02:41.761Z services: Setting up OIDC 2026-04-02T22:02:41.787Z services: Restoring redis 2026-04-02T22:02:41Z [POST] /restore 2026-04-02T22:02:41Z restoring 2026-04-02T22:02:42Z 13:M 02 Apr 2026 22:02:42.062 * BGSAVE done, 0 keys saved, 0 keys skipped, 88 bytes written. 2026-04-02T22:02:42Z 13:M 02 Apr 2026 22:02:42.062 * Saving the final RDB snapshot before exiting. 2026-04-02T22:02:42Z 13:M 02 Apr 2026 22:02:42.062 * User requested shutdown... 2026-04-02T22:02:42Z 13:M 02 Apr 2026 22:02:42.208 # Redis is now ready to exit, bye bye... 2026-04-02T22:02:42Z 13:M 02 Apr 2026 22:02:42.208 * DB saved on disk 2026-04-02T22:02:42Z 13:M 02 Apr 2026 22:02:42.208 * Removing the pid file. 2026-04-02T22:02:42Z 13:signal-handler (1775167362) Received SIGTERM scheduling shutdown... 2026-04-02T22:02:42Z 2026-04-02 22:02:42,019 INFO waiting for redis to stop 2026-04-02T22:02:42Z 2026-04-02 22:02:42,210 INFO stopped: redis (exit status 0) 2026-04-02T22:02:42Z 2026-04-02 22:02:42,997 INFO spawned: 'redis' with pid 46 2026-04-02T22:02:43Z 46:C 02 Apr 2026 22:02:43.017 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 2026-04-02T22:02:43Z 46:C 02 Apr 2026 22:02:43.017 * Configuration loaded 2026-04-02T22:02:43Z 46:C 02 Apr 2026 22:02:43.017 * Redis version=8.4.0, bits=64, commit=00000000, modified=1, pid=46, just started 2026-04-02T22:02:43Z 46:C 02 Apr 2026 22:02:43.017 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 2026-04-02T22:02:43Z 46:M 02 Apr 2026 22:02:43.018 # Failed to write PID file: Permission denied 2026-04-02T22:02:43Z 46:M 02 Apr 2026 22:02:43.018 * Increased maximum number of open files to 10032 (it was originally set to 1024). 2026-04-02T22:02:43Z 46:M 02 Apr 2026 22:02:43.018 * Running mode=standalone, port=6379. 2026-04-02T22:02:43Z 46:M 02 Apr 2026 22:02:43.018 * monotonic clock: POSIX clock_gettime 2026-04-02T22:02:43Z 46:M 02 Apr 2026 22:02:43.019 * Loading RDB produced by version 8.4.0 2026-04-02T22:02:43Z 46:M 02 Apr 2026 22:02:43.019 * RDB age 14982 seconds 2026-04-02T22:02:43Z 46:M 02 Apr 2026 22:02:43.019 * RDB memory usage when created 37.47 Mb 2026-04-02T22:02:43Z 46:M 02 Apr 2026 22:02:43.019 * Server initialized 2026-04-02T22:02:43Z 46:M 02 Apr 2026 22:02:43.171 * DB loaded from disk: 0.153 seconds 2026-04-02T22:02:43Z 46:M 02 Apr 2026 22:02:43.171 * Done loading RDB, keys loaded: 29201, keys expired: 53. 2026-04-02T22:02:43Z 46:M 02 Apr 2026 22:02:43.171 * Ready to accept connections tcp 2026-04-02T22:02:44.212Z tasks: updating task 20419 with: {"percent":80,"message":"Creating container"} 2026-04-02T22:02:44.241Z apptask: createContainer: creating container 2026-04-02T22:02:44.246Z shell: mounts: mountpoint -q -- /mnt/volumes/d8d52065be8d499f85c1e566498693bb 2026-04-02T22:02:44.260Z shell: mounts: mountpoint -q -- /mnt/volumes/d8d52065be8d499f85c1e566498693bb errored BoxError: mountpoint exited with code 32 signal null 2026-04-02T22:02:44.261Z shell: mounts: systemd-escape -p --suffix=mount /mnt/volumes/d8d52065be8d499f85c1e566498693bb 2026-04-02T22:02:44.273Z shell: mounts: journalctl -u mnt-volumes-d8d52065be8d499f85c1e566498693bb.mount\n -n 10 --no-pager -o json 2026-04-02T22:02:44.286Z apptask: run: app error for state pending_restore: BoxError: Storage volume "External Data" is not active. Could not determine mount failure reason. 2026-04-02T22:02:44.325Z tasks: setCompleted - 20419: {"result":null,"error":{"message":"Storage volume \"External Data\" is not active. Could not determine mount failure reason. ","reason":"Bad State"},"percent":100} 2026-04-02T22:02:44.325Z tasks: updating task 20419 with: {"completed":true,"result":null,"error":{"message":"Storage volume \"External Data\" is not active. Could not determine mount failure reason. ","reason":"Bad State"},"percent":100} 2026-04-02T22:02:44.342Z Exiting with code 0 2026-04-02T22:02:44.342Z taskworker: Task took 4088.725 seconds 2026-04-02T22:02:44Z 2026-04-02 22:02:44,173 INFO success: redis entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2026-04-04T10:05:01Z [GET] /healthcheck BoxError: Storage volume "External Data" is not active. Could not determine mount failure reason. pipeFileToRequest: piped /home/yellowtent/appsdata/b62559e1-63a2-443c-8afc-cf91c3f4faab/dump.rdb, waiting for response pipeFileToRequest: piped /home/yellowtent/appsdata/b62559e1-63a2-443c-8afc-cf91c3f4faab/postgresqldump, waiting for response pipeFileToRequest: piping /home/yellowtent/appsdata/b62559e1-63a2-443c-8afc-cf91c3f4faab/dump.rdb pipeFileToRequest: piping /home/yellowtent/appsdata/b62559e1-63a2-443c-8afc-cf91c3f4faab/postgresqldump pipeFileToRequest: response status code 200 pipeFileToRequest: response status code 200 pipeFileToRequest: success pipeFileToRequest: success } }
  • Feedback, suggestions, anything else Cloudron related

    1k 11k
    1k Topics
    11k Posts
    P
    @robi Amazing!!! Something like a “bridge” that every day take from the source and update Cloudron block list...
  • New ideas, Feature Requests

    874 6k
    874 Topics
    6k Posts
    humptyH
    Hi all, I just cleared a long list of notifications and luckily I spotted the reboot required message before it cleared. I'd like to suggest it stands out by adding one or more of these implementations. Addition: display the message in a top banner Enhancement: make text color red Enhancement: move notification to the top of the list always Enhancement: make message persistent until server is restarted even if user clicks "mark all as read" Thanks!
  • Apps

    Questions about apps in the App Store

    6k 54k
    6k Topics
    54k Posts
    A
    Hi, I noticed an issue when restarting my PeerTube app. After triggering an app restart, Cloudron runs stopUnusedServices and stops several services: services: stopUnusedServices: stopping mysql (no apps use it) services: stopUnusedServices: stopping mongodb (no apps use it) services: stopUnusedServices: stopping turn (no apps use it) This happens consistently right after restarting PeerTube. While MySQL and MongoDB might not be used, TURN is required for PeerTube WebRTC P2P functionality. When TURN is stopped, P2P connections fail (especially for users behind strict NAT), and PeerTube falls back to HTTP streaming. Expected behavior: TURN should remain running if PeerTube requires it. Actual behavior: TURN is stopped automatically after app restart and must be restarted manually. It seems Cloudron does not detect TURN as a dependency of PeerTube. Is this expected behavior, or is there a misconfiguration or bug in addon detection? Thanks.
  • Find Cloudron apps from the community

    10 103
    10 Topics
    103 Posts
    eyecreateE
    I've got a first version of LocalAI for cloudron. I've only tested some basics and you'll need to allow the app to access any GPUS. https://git.cloudron.io/eyecreate/localai https://git.cloudron.io/eyecreate/localai/-/raw/master/CloudronVersions.json?ref_type=heads
  • Propose and vote for apps to be packaged

    2k 16k
    2k Topics
    16k Posts
    necrevistonnezrN
    Main Page: https://stirling-image.github.io/stirling-image/ Git: https://github.com/stirling-image/stirling-image Licence: AGPL-3.0 (dual-licensed; commercial licence available separately) Dockerfile: Yes - one docker file image on Docker Hub: stirlingimage/stirling-image, see https://stirling-image.github.io/stirling-image/guide/getting-started.html Demo: No public demo available Summary: Stirling-PDF, but for images – same concept, different file type 30+ tools: resize, crop, compress, convert (JPEG/PNG/WebP/AVIF/TIFF), watermark, colour adjust Local AI: background removal, upscaling, object erasure, face blurring, OCR – all on-device, no outbound calls Batch processing up to 200 files; chainable pipelines for reusable workflows Single container, no external dependencies (no Redis, no Postgres) Full REST API with interactive docs at /api/docs Multi-arch: AMD64 and ARM64 (Intel, Apple Silicon, Raspberry Pi) Actively developed – v1.2.1 released 3 April 2026 Notes: Natural companion to Stirling-PDF, which already has a Cloudron package Clean deployment story – env-var configuration, named volume for persistence Fully offline AI makes it suitable where images can't leave the machine Docker image is ~9.9 GB due to bundled AI models – worth considering on smaller instances AGPL licence is standard for this type of tool, no complications for packaging Alternative to / Libhunt link: Not yet listed on LibHunt (project is very recent). Functional alternative to remove.bg, Squoosh, Cloudinary image transformations, and ILoveIMG. Screenshots: [image: dashboard.png]
  • App package development & help

    303 3k
    303 Topics
    3k Posts
    girishG
    @da5nsy sent you an invite
  • Anything else not related to Cloudron

    361 3k
    361 Topics
    3k Posts
    robiR
    @p44 How I read it is that they designed it for CF, but each CF specific part has an alternative supported set of options, like DBs, from SQLite to Postgres, etc. One implementation idea might be to also package a self-hosted container for Workers, so that all plugins you use across all EmDash sites might live there.