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


Skip to content
  • 1 Votes
    6 Posts
    20 Views
    D
    @timconsidine Yes similar idea just DB addon
  • Is Evcc functional?

    Unsolved evcc
    4
    0 Votes
    4 Posts
    16 Views
    robiR
    Then I would take a look at their docs instead (as we don't seem to have any): https://docs.evcc.io/en/docs/installation/configuration May have to create your .yaml config file manually.
  • Bluesky Personal Data Server

    App Wishlist
    32
    13 Votes
    32 Posts
    9k Views
    E
    Okay, find below information about how the app runs. What I haven't tested: Setting up notification e-mails (should be simple using SMTP) Actually transferring the data (a test account could be set up) Handling the integrated update mechanism: so far, all updates would need to be done manually. The Core Concept Standard deployment (Bluesky PDS original): Docker Compose file with 3 separate containers: pds - The main application caddy - Reverse proxy and TLS termination watchtower - Automatic container updates Cloudron deployment: Only 1 container - The main application (pds) Cloudron provides everything else: Reverse proxy (TLS, HTTPS) Health monitoring Storage management Update mechanism Remove from the application: Caddy service - Cloudron's reverse proxy handles HTTPS/TLS Watchtower service - Cloudron's update system handles updates Docker Compose file - Cloudron doesn't use compose; it builds from Dockerfile Keep from the application: The main app (Node.js + PDS in this case) The Dockerfile (but modify it to use a startup script) All application code and logic Files You Need to Create Three new files are required: 1. startup.sh - Environment validation and initialization 2. CloudronManifest.json - Cloudron deployment configuration 3. Modifications to Dockerfile - Add startup script and health check #!/bin/bash set -e # Startup script for Bluesky PDS on Cloudron # This script validates required environment variables and initializes the application # Required environment variables REQUIRED_VARS=( "PDS_HOSTNAME" "PDS_JWT_SECRET" "PDS_ADMIN_PASSWORD" "PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX" ) # Check required variables echo "Validating environment variables..." for var in "${REQUIRED_VARS[@]}"; do if [[ -z "${!var:-}" ]]; then echo "ERROR: Required environment variable $var is not set" exit 1 fi done # Set default data directory if not specified PDS_DATA_DIRECTORY="${PDS_DATA_DIRECTORY:-/app/data}" PDS_BLOBSTORE_DISK_LOCATION="${PDS_BLOBSTORE_DISK_LOCATION:-$PDS_DATA_DIRECTORY/blocks}" PDS_BLOB_UPLOAD_LIMIT="${PDS_BLOB_UPLOAD_LIMIT:-104857600}" # Set default service URLs (point to public AT Protocol network) PDS_DID_PLC_URL="${PDS_DID_PLC_URL:-https://plc.directory}" PDS_BSKY_APP_VIEW_URL="${PDS_BSKY_APP_VIEW_URL:-https://api.bsky.app}" PDS_BSKY_APP_VIEW_DID="${PDS_BSKY_APP_VIEW_DID:-did:web:api.bsky.app}" PDS_REPORT_SERVICE_URL="${PDS_REPORT_SERVICE_URL:-https://mod.bsky.app}" PDS_REPORT_SERVICE_DID="${PDS_REPORT_SERVICE_DID:-did:plc:ar7c4by46qjdydhdevvrndac}" PDS_CRAWLERS="${PDS_CRAWLERS:-https://bsky.network}" # Set defaults for optional variables LOG_ENABLED="${LOG_ENABLED:-true}" PDS_PORT="${PDS_PORT:-3000}" NODE_ENV="${NODE_ENV:-production}" # Create required directories echo "Initializing data directories..." mkdir -p "$PDS_DATA_DIRECTORY" mkdir -p "$PDS_BLOBSTORE_DISK_LOCATION" # Export all PDS variables for the application export PDS_HOSTNAME export PDS_JWT_SECRET export PDS_ADMIN_PASSWORD export PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX export PDS_DATA_DIRECTORY export PDS_BLOBSTORE_DISK_LOCATION export PDS_BLOB_UPLOAD_LIMIT export PDS_DID_PLC_URL export PDS_BSKY_APP_VIEW_URL export PDS_BSKY_APP_VIEW_DID export PDS_REPORT_SERVICE_URL export PDS_REPORT_SERVICE_DID export PDS_CRAWLERS export LOG_ENABLED export PDS_PORT export NODE_ENV # Optional environment variables (only export if set) if [[ -n "${PDS_EMAIL_SMTP_URL:-}" ]]; then export PDS_EMAIL_SMTP_URL fi if [[ -n "${PDS_EMAIL_FROM_ADDRESS:-}" ]]; then export PDS_EMAIL_FROM_ADDRESS fi if [[ -n "${PDS_PRIVACY_POLICY_URL:-}" ]]; then export PDS_PRIVACY_POLICY_URL fi if [[ -n "${LOG_DESTINATION:-}" ]]; then export LOG_DESTINATION fi if [[ -n "${LOG_LEVEL:-}" ]]; then export LOG_LEVEL fi echo "Starting Bluesky PDS on Cloudron" echo " Hostname: $PDS_HOSTNAME" echo " Data directory: $PDS_DATA_DIRECTORY" echo " Blob storage: $PDS_BLOBSTORE_DISK_LOCATION" echo " Port: $PDS_PORT" # Start the application exec node --enable-source-maps index.js FROM node:20.19-alpine3.22 as build RUN corepack enable # Build goat binary ENV CGO_ENABLED=0 ENV GODEBUG="netdns=go" WORKDIR /tmp RUN apk add --no-cache git go RUN git clone https://github.com/bluesky-social/goat.git && cd goat && git checkout v0.1.2 && go build -o /tmp/goat-build . # Move files into the image and install WORKDIR /app COPY ./service ./ RUN corepack prepare --activate RUN pnpm install --production --frozen-lockfile > /dev/null # Uses assets from build stage to reduce build size FROM node:20.19-alpine3.22 RUN apk add --update dumb-init bash # Avoid zombie processes, handle signal forwarding ENTRYPOINT ["dumb-init", "--"] WORKDIR /app COPY --from=build /app /app COPY --from=build /tmp/goat-build /usr/local/bin/goat COPY startup.sh /app/startup.sh RUN chmod +x /app/startup.sh EXPOSE 3000 ENV PDS_PORT=3000 ENV NODE_ENV=production # potential perf issues w/ io_uring on this version of node ENV UV_USE_IO_URING=0 # Health check to verify PDS is running and responsive HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ CMD node -e "require('http').get('http://localhost:3000/xrpc/_health', (r) => {if (r.statusCode !== 200) throw new Error(r.statusCode)})" || exit 1 CMD ["/app/startup.sh"] LABEL org.opencontainers.image.source=https://github.com/bluesky-social/pds LABEL org.opencontainers.image.description="AT Protocol PDS" LABEL org.opencontainers.image.licenses=MIT { "id": "io.cloudron.bluesky-pds", "version": "1.0.0", "manifestVersion": 2, "title": "Bluesky PDS", "description": "A Personal Data Server for AT Protocol and Bluesky", "tagline": "Self-hosted Bluesky server", "author": "Bluesky Social", "website": "https://github.com/bluesky-social/pds", "documentationUrl": "https://github.com/bluesky-social/pds", "tags": ["chat", "sync"], "httpPort": 3000, "healthCheckPath": "/xrpc/_health", "addons": { "localstorage": { "volumePath": "/app/data" }, "sendmail": {} } } Make sure to change all hardcoded references for the data directory /pds to /app/data! Then make sure to set all the required env variables. The admin password is for the server app, not your bluesky account. As I said, this gets the app to run and report positively to the healthcheck, now does someone want to test this? P.S.: I have now created and deleted a user via curl, and verified that it persists a server restart.
  • 1 Votes
    2 Posts
    22 Views
    andreasduerenA
    It's really a matter of taste. I have also SOGo installed, mainly because it enables active-sync.
  • 1 Votes
    8 Posts
    129 Views
    O
    Hi @james, here is a redacted screenshot that should match my description at the beginning of this thread: [image: 1766853996763-742d9edb-e7fc-4770-91d5-bd880cab3fe7-image-resized.png]
  • OpenID Connect Error on iOS

    Solved Traccar oidc
    24
    0 Votes
    24 Posts
    3k Views
    H
    I can confirm that this issue was fixed with the changes made in the Cloudron app as well as upstream by the Traccar developers several months ago.
  • How to install plugins ?

    Solved Etherpad Lite
    7
    1
    0 Votes
    7 Posts
    69 Views
    M
    Add plugin info The plugin info is {"name":"ep_author_neat2","version":"2.0.11"} and has to be added to app/data/data/installed_plugins.json I think that the above step is the only one needed to install plugins. Simply add the wanted plugins into /data/data/installed_plugins.json and a restart will install them. Tested with the demo server: I installed Etherpad and modified the following files: /data/data/installed_plugins.json {"plugins":[ {"name":"ep_button_link","version":"1.0.11"}, {"name":"ep_delete_empty_pads","version":"0.0.11"}, {"name":"ep_author_hover","version":"1.0.12"}, {"name":"ep_spellcheck","version":"0.0.65"}, {"name":"ep_disable_reset_authorship_colours","version":"0.0.27"}, {"name":"ep_image_upload","version":"1.0.105"}, {"name":"ep_disable_delete_button","version":"0.0.1"}, {"name":"ep_prompt_for_name","version":"1.0.25"}, {"name":"ep_table_of_contents","version":"0.3.89"}, {"name":"ep_prefer_color_scheme","version":"0.0.10"}, {"name":"ep_countable","version":"0.0.15"}, {"name":"ep_default_colors_off","version":"0.0.1"}, {"name":"ep_align","version":"10.0.2"}, {"name":"ep_comments_page","version":"10.0.4"}, {"name":"ep_embedded_hyperlinks2","version":"1.2.4"}, {"name":"ep_font_color","version":"0.0.89"}, {"name":"ep_headings2","version":"0.2.68"}, {"name":"ep_markdown","version":"10.0.1"}, {"name":"ep_openid_connect","version":"3.0.13"}, {"name":"ep_user_displayname","version":"1.0.7"}, {"name":"ep_stable_authorid","version":"1.0.5"}, {"name":"ep_guest","version":"1.0.37"}, {"name":"ep_etherpad-lite","version":"2.5.3"} ] } data/settings.json { "requireAuthentication": false, "ep_spellcheck": { "disabledByDefault" : false }, "ep_toc": { "disable_by_default": false, "show_button": true }, "ep_button_link": { "link": "https://www.cloudron.io/", "text": "Cloudron", "after": "[data-key='home']" }, "ep_author_hover": { "disabledByDefault": false } } Logs Dec 27 10:17:58 [2025-12-27T09:17:58.576] [INFO] server - Starting Etherpad... Dec 27 10:17:58 [2025-12-27T09:17:58.605] [INFO] plugins - pnpm --version: 10.20.0 Dec 27 10:17:58 [2025-12-27T09:17:58.619] [INFO] plugins - check installed plugins for migration Dec 27 10:17:59 [2025-12-27T09:17:59.059] [INFO] plugins - Loading plugin ep_button_link... Dec 27 10:17:59 [2025-12-27T09:17:59.059] [INFO] plugins - Loading plugin ep_delete_empty_pads... Dec 27 10:17:59 [2025-12-27T09:17:59.059] [INFO] plugins - Loading plugin ep_author_hover... Dec 27 10:17:59 [2025-12-27T09:17:59.060] [INFO] plugins - Loading plugin ep_spellcheck... Dec 27 10:17:59 [2025-12-27T09:17:59.060] [INFO] plugins - Loading plugin ep_disable_reset_authorship_colours... Dec 27 10:17:59 [2025-12-27T09:17:59.060] [INFO] plugins - Loading plugin ep_image_upload... Dec 27 10:17:59 [2025-12-27T09:17:59.060] [INFO] plugins - Loading plugin ep_disable_delete_button... Dec 27 10:17:59 [2025-12-27T09:17:59.060] [INFO] plugins - Loading plugin ep_prompt_for_name... Dec 27 10:17:59 [2025-12-27T09:17:59.060] [INFO] plugins - Loading plugin ep_table_of_contents... Dec 27 10:17:59 [2025-12-27T09:17:59.060] [INFO] plugins - Loading plugin ep_prefer_color_scheme... Dec 27 10:17:59 [2025-12-27T09:17:59.060] [INFO] plugins - Loading plugin ep_countable... Dec 27 10:17:59 [2025-12-27T09:17:59.060] [INFO] plugins - Loading plugin ep_default_colors_off... Dec 27 10:17:59 [2025-12-27T09:17:59.060] [INFO] plugins - Loading plugin ep_align... Dec 27 10:17:59 [2025-12-27T09:17:59.061] [INFO] plugins - Loading plugin ep_comments_page... Dec 27 10:17:59 [2025-12-27T09:17:59.061] [INFO] plugins - Loading plugin ep_embedded_hyperlinks2... Dec 27 10:17:59 [2025-12-27T09:17:59.061] [INFO] plugins - Loading plugin ep_font_color... Dec 27 10:17:59 [2025-12-27T09:17:59.061] [INFO] plugins - Loading plugin ep_headings2... Dec 27 10:17:59 [2025-12-27T09:17:59.061] [INFO] plugins - Loading plugin ep_markdown... Dec 27 10:17:59 [2025-12-27T09:17:59.061] [INFO] plugins - Loading plugin ep_openid_connect... Dec 27 10:17:59 [2025-12-27T09:17:59.061] [INFO] plugins - Loading plugin ep_user_displayname... Dec 27 10:17:59 [2025-12-27T09:17:59.061] [INFO] plugins - Loading plugin ep_stable_authorid... Dec 27 10:17:59 [2025-12-27T09:17:59.061] [INFO] plugins - Loading plugin ep_guest... Dec 27 10:17:59 [2025-12-27T09:17:59.061] [INFO] plugins - Loading plugin ep_etherpad-lite... Dec 27 10:17:59 [2025-12-27T09:17:59.068] [INFO] plugins - Loaded 23 plugins https://pad.demo.cloudron.io
  • Jellyfin - Package Updates

    Pinned Jellyfin
    60
    1 Votes
    60 Posts
    16k Views
    Package UpdatesP
    [1.13.0] Migrate from LDAP to OpenID
  • Metabase - Package Updates

    Pinned Metabase
    484
    1 Votes
    484 Posts
    315k Views
    Package UpdatesP
    [2.29.7] Update metabase to 0.57.7.10 Full Changelog
  • TriliumNext - Package Updates

    Pinned TriliumNext
    103
    0 Votes
    103 Posts
    52k Views
    Package UpdatesP
    [1.27.1] Update Trilium to 0.101.1 Full Changelog A new layout was introduced which heavily changes both existing UI elements, as well as adds some new ones (by @eliandoran and @adoriandoran, with special thanks for @rom1dep for the valuable suggestions). Near the tab bar now there are built-in buttons to go the previous or the next note in history (only if the back/forward buttons are not already placed in the launch bar). Scripting overhaul: Custom widgets and Render note can now be written in Preact using JSX instead of the legacy format (jQuery + custom component framework). For more information, see documentation on Preact in Trilium. Right pane toggle missing on macOS vertical layout Launchpad Note Launcher hoisting no longer working Toggle right pane keyboard button not working on new layout Tabs do not appear when using vertical layout and legacy theme by @adoriandoran Text in headings do not respond to being bolded by @adoriandoran Table of contents in new layout: not displaying correctly on first render. The text editor keeps crashing in non-HTTPS
  • Cal.com - Package Updates

    Pinned Cal.com
    308
    1 Votes
    308 Posts
    90k Views
    Package UpdatesP
    [2.10.4] Update cal.com to 6.0.6 Full Changelog refactor: Add dedicated setup-db job to eliminate cache race condition by @keithwillcode in #26171 refactor: Remove buildjet cache from cache-build action by @keithwillcode in #26181 fix: flaky E2E tests on filter segment by @anikdhabal in #26182 fix: add 'use client' directive to embed-react build for Next.js App Router compatibility by @hariombalhara in #26184 fix: prevent WelcomeToCalcomModal footer overflow by @yashhhguptaaa in #26186 feat(companion): implement comprehensive booking actions system by @dhairyashiil in #26185 fix: improve mobile responsiveness for workflows page by @KartikLabhshetwar in #24257 fix: add hover transparency and rounded top to ApiKeyListItem actions by @KartikLabhshetwar in #26150 fix: GH based cronjobs in EU by @emrysal in #25992 feat(companion): linkedin plugin by @dhairyashiil in #26193
  • MiroTalk - Package Updates

    Pinned MiroTalk
    540
    2 Votes
    540 Posts
    295k Views
    Package UpdatesP
    [2.5.33] Update mirotalksfu to 2.0.83
  • Dawarich - Package Updates

    Pinned Dawarich
    11
    0 Votes
    11 Posts
    382 Views
    Package UpdatesP
    [1.2.1] Update dawarich to 0.36.4 Full Changelog Fixed a bug preventing the app to start if a composite index on stats table already exists. #2034 #2051 #2046 New compiled assets will override old ones on app start to prevent serving stale assets. Number of points in stats should no longer go negative when points are deleted. #2054 Disable Family::Invitations::CleanupJob no invitations are in the database. #2043 User can now enable family layer in Maps v2 and center on family members by clicking their emails. #2036
  • Funkwhale - A modern, convivial and free music server

    App Wishlist
    36
    24 Votes
    36 Posts
    11k Views
    necrevistonnezrN
    What happened to this app?
  • Connect to the MySQL database of Cloudron

    Unsolved Support mysql
    4
    0 Votes
    4 Posts
    27 Views
    jamesJ
    Hello @potemkin_ai You could also check the Cloudron event log to see if and when the password was changed. Have you checked that?
  • MCP Server for Cloudron - AI-Powered Instance Management

    Discuss
    6
    5 Votes
    6 Posts
    64 Views
    E
    This is impressive. I think an MCP server should be part of the core Cloudron software some time soon! I am not familiar with the Cloudron API, can I use this to get the logs of an individual app, or only its status?
  • Cubby - Package Updates

    Pinned Cubby
    98
    0 Votes
    98 Posts
    38k Views
    Package UpdatesP
    [2.5.13] Update cubby to 2.5.0 Add basic archive extraction Update dependencies
  • Sim.ai

    App Wishlist
    4
    3 Votes
    4 Posts
    102 Views
    E
    This should actually be doable: All of the main app is in one container The database container can be replaced with the postgres addon Migrations need to be handled in the Dockerfile manually
  • Access monitoring (login events, suspicious activity detection)

    Moved Discuss
    2
    5 Votes
    2 Posts
    54 Views
    O
    Any ideas?
  • Appsmith

    App Wishlist
    37
    32 Votes
    37 Posts
    12k Views
    D
    @Sam_uk said in Appsmith: Appsmith is a JavaScript-based visual development platform to build and launch internal tools quickly. Use pre-built UI widgets, connect them to your APIs and databases to build dynamic apps and complex workflows. https://docs.appsmith.com/v/v1.2.1/ https://github.com/appsmithorg/appsmith I recently packaged appsmith https://github.com/appsmithorg/appsmith -- if anyone intrested here is the docker hub registery link Docker Link. i dont know if i sharing at right location or not