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

    258 3k
    258 Topics
    3k Posts
    J
    As @avatar1024 said, the current OIDC/SSO installed instances will not get updates anymore. It will continue working for foreseeable future. Thnk of the current package visible in the app store as a totally different app. If you want to use the old app, put `stirlingpdf.frooodle.cloudronapp in the url bar after clicking on stirling.
  • Get help for your Cloudron

    3k 24k
    3k Topics
    24k Posts
    F
    https://forum.cloudron.io/topic/14767/error-accessing-dashboard-after-update-from-8.x-to-9.x-read-this
  • Feedback, suggestions, anything else Cloudron related

    1k 10k
    1k Topics
    10k Posts
    E
    Are you using Firefox? Did you know you can self-host the sync server on Cloudron? (you know ... because you can). I have just tested this, and it works between Firefox on Ubuntu and Android. Here is a tutorial for anyone interested: Replication Guide: Adapting Syncstorage-RS for Cloudron This guide explains how to take the original mozilla-services/syncstorage-rs repository and adapt it for a single-container deployment on Cloudron with PostgreSQL. 1. Create the Manifest (CloudronManifest.json) Cloudron requires a manifest file to understand the application requirements. Create this file in the root of the repository. CloudronManifest.json: { "manifestVersion": 2, "title": "Syncstorage-RS", "author": "Mozilla Services", "description": "Firefox Sync storage server built with Rust", "version": "0.21.1", "httpPort": 8000, "addons": { "postgresql": { "version": "14.9" } }, "healthCheckPath": "/__heartbeat__" } 2. Create the Start Script (cloudron-entrypoint.sh) Cloudron provides database credentials through environment variables (CLOUDRON_POSTGRESQL_*). We need a script to bridge these variables into the format expected by Syncstorage-RS. cloudron-entrypoint.sh: #!/bin/bash set -eu # Default values SYNC_HOST="${SYNC_HOST:-0.0.0.0}" SYNC_PORT="${SYNC_PORT:-8000}" SYNC_MASTER_SECRET="${SYNC_MASTER_SECRET:-}" # 1. Detect Cloudron PostgreSQL addon if [ -z "${CLOUDRON_POSTGRESQL_HOST:-}" ]; then echo "Error: PostgreSQL addon not found. Please ensure it is installed." >&2 exit 1 fi # 2. Convert Cloudron vars to Syncstorage connection strings # We use the same DB for both storage and token management POSTGRES_USER="${CLOUDRON_POSTGRESQL_USERNAME}" POSTGRES_PASSWORD="${CLOUDRON_POSTGRESQL_PASSWORD}" POSTGRES_HOST="${CLOUDRON_POSTGRESQL_HOST}" POSTGRES_PORT="${CLOUDRON_POSTGRESQL_PORT}" POSTGRES_DATABASE="${CLOUDRON_POSTGRESQL_DATABASE}" export SYNC_SYNCSTORAGE__DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE}" export SYNC_TOKENSERVER__DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE}" export SYNC_TOKENSERVER__RUN_MIGRATIONS="true" # 3. Validate required config if [ -z "$SYNC_MASTER_SECRET" ]; then echo "Error: SYNC_MASTER_SECRET must be set in the Cloudron Environment tab." >&2 exit 1 fi # 4. Start the application exec /app/bin/syncserver "$@" 3. Adapt the Dockerfile (Dockerfile.cloudron) The original Dockerfile often uses modern features like Docker BuildKit (e.g., --mount=type=cache or --chmod in COPY) which might not be supported in all environments. We created a "clean" version that works with standard Docker. Key Changes Made: Set Defaults: Set SYNCSTORAGE_DATABASE_BACKEND and TOKENSERVER_DATABASE_BACKEND to postgres at the top of the file. Remove BuildKit mounts: Removed all instances of --mount=type=cache... from RUN commands to allow building without BuildKit enabled. Remove inline chmod: Changed COPY --chmod=0755 to standard COPY followed by a RUN chmod +x command. Inject Start Script: Added the cloudron-entrypoint.sh and set it as the ENTRYPOINT. Fragment of changes in the final stage: # ... after all builds ... COPY --from=builder /app/bin /app/bin COPY cloudron-entrypoint.sh /app/cloudron-entrypoint.sh # BuildKit-compatible chmod replacement RUN chmod +x /app/cloudron-entrypoint.sh USER app:app ENTRYPOINT ["/app/cloudron-entrypoint.sh"] 4. Building and Pushing To build the image using the new Dockerfile and push it to Cloudron: # 1. Build locally docker build -f Dockerfile.cloudron -t syncstorage-rs:cloudron . # 2. Push to Cloudron Registry docker tag syncstorage-rs:cloudron CLOUDRON_IP:5000/syncstorage-rs:cloudron docker push CLOUDRON_IP:5000/syncstorage-rs:cloudron 5. Summary of logic Single Container: We package the Rust binary and its Python dependencies into one image. PostgreSQL Integration: Instead of separate containers for Sync and Token databases, we point both services to the single PostgreSQL database provided by Cloudron. Auto-Migrations: We set SYNC_TOKENSERVER__RUN_MIGRATIONS="true" so the database schema is created automatically on the first start. Security: The SYNC_MASTER_SECRET is the only manual configuration required, ensuring data is encrypted at rest.
  • New ideas, Feature Requests

    833 6k
    833 Topics
    6k Posts
    I
    I’d like to suggest adding a small piece of information to the Server menu: the current server time and timezone. When I move to a new hosting provider, I often forget whether I have already adjusted the server time settings or not. If Cloudron showed the current server time and timezone directly in the Server section, I could immediately see whether the server is still using the hosting provider’s default timezone or if it has already been changed to my own country’s timezone. Even a simple read‑only display like: Current server time: 2025-12-19 14:32 Timezone: Europe/Berlin (UTC+1) would help a lot. This could: Reduce confusion when checking logs, backups, and scheduled tasks (cron, app restarts, etc.) Help ensure that all time‑based operations are aligned with the admin’s local time Make it easier to verify the configuration quickly after migrating to a new server I believe this little detail could be very helpful for many users. Thank you for considering this suggestion and for all the work you put into improving Cloudron.
  • Apps

    Questions about apps in the App Store

    5k 51k
    5k Topics
    51k Posts
    MiroTalkM
    Port allocation behavior By default, when SFU_SERVER is set to false, the application uses a range of 100 ports. when SFU_SERVER=true it allocate ports starting from 40000 default + CPU core eg if your server has 4CPU so become 40000 - 40003 (only 3 ports needed) More about: https://mediasoup.discourse.group/t/mediasoups-webrtcserver-concerning-firewall-settings-and-port-binding/5965/5 Cloudron integration To support this behavior on Cloudron, SFU_SERVER should be exposed as a toggle (switch button) in the MiroTalk SFU app settings (Location). When the switch is enabled, the port allocation logic in start.sh can be updated something as follows: # Enable / disable SFU server (default: false) readonly SFU_SERVER="${SFU_SERVER:-false}" # Number of CPU cores (used only when SFU is enabled) readonly CPU_CORES="$(nproc)" # Base TCP port (default: 25000) readonly SFU_TCP_BASE="${SFU_TCP:-25000}" if [[ "$SFU_SERVER" == "true" ]]; then # SFU enabled: # allocate one port per CPU core readonly SFU_MAX_PORT=$(( SFU_TCP_BASE + CPU_CORES - 1 )) else # Default behavior: # allocate 100 ports starting from the base port readonly SFU_MAX_PORT=$(( SFU_TCP_BASE + 100 )) fi Benefits of this approach Fewer ports allocated Only the ports that are actually needed are opened, especially in SFU mode. Reduced port conflicts Smaller port ranges significantly lower the chance of clashes with other services on the same host. Better Cloudron compatibility Minimal port exposure aligns well with Cloudron’s strict networking and security model. Scales with hardware Port allocation automatically adapts to the number of CPU cores available. User control Exposing SFU_SERVER as a switch allows users to explicitly choose whether to run in SFU mode or keep the default behavior.
  • Propose and vote for apps to be packaged

    2k 15k
    2k Topics
    15k Posts
    andreasduerenA
    Update to 0.25.7. Image at andreasdueren/affine-cloudron --tag 0.25.7-1
  • App package development & help

    285 3k
    285 Topics
    3k Posts
    andreasduerenA
    Updated Ente Package to use latest upstream images: andreasdueren/ente-cloudron:0.5.9 Still haven't been able to get Ente Locker working but the documentation is basically non-existant.
  • Anything else not related to Cloudron

    343 2k
    343 Topics
    2k Posts
    fbartelsF
    Did not yet have any contact with it so out of interest started doing some basic research. I came along this and found it interesting that it does support odoo community, but not the enterprise version. https://www.initos.com/en/tse-module/