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


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps - Status | Demo | Docs | Install
nottheendN

nottheend

@nottheend
About
Posts
96
Topics
24
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Is local Ollama installation updatable by Cloudron?
    nottheendN nottheend

    Thank you for the detailed response.

    I appreciate that you follow the principles which makes a longer life of the cloudron product more probable 🫢

    When I read the docs, I understand it is not advised to change any firewall configuration on the server itself. However: How can I access from then Open WebUI App the Ollama instance, running on the host on the relevant port?

    I already configured it to bind to 0.0.0.0 for that port, but it seems to be a restriction from the Open WebUI App Container itself.

    As you said, it might not be advised for a Prod-Instance. But what would be the least not advised configuration?

    Ollama gpu localai support

  • Is local Ollama installation updatable by Cloudron?
    nottheendN nottheend

    Hi, as discussed here and here: using local GPU (if available) with Ollama is critical for getting performance.

    Therefore: Is it possible to install Ollama locally on the server (outside of Cloudron for direct GPU Support) and then install the Ollama Cloudron package to continuously update Ollama? Or is there any other way to automatically keep Ollama up to date?

    I love the professional level Cloudron reached! πŸ™‚

    Ollama gpu localai support

  • Using OpenVPN on Cloudron as a client for other VPN services?
    nottheendN nottheend

    Is there a complexity or a legal issue to not continuing the implementation?

    VPN

  • What happens before a backup is "created"?
    nottheendN nottheend

    Thank you @james!

    And I just realised, that "Last run:" refers to the end of the creation of the backup. Now things match again

    Discuss backup retention tasks system timezone

  • What happens before a backup is "created"?
    nottheendN nottheend

    I love the improved backup functionalities and more detailed information regarding backups in recent releases, thanks!

    What happens between the scheduled start of a backup and the time a backup is created?
    In my case: What happened between 23:00 and 3:38 AM?

    Let me add the context:

    • Backup schedule is set to 23:00 daily. When is that? If I believe "System" --> "Setting" it would be my GMT timezone, because there it says: "UI timestamps always follow the browser’s time zone."

    • When I check the system logs, I can see exactly at 23:00 a task, is that the beginning of the backup process?

    2026-04-24T23:00:00.009Z locks: write: current locks: {"full_backup_task_8663c238-b4f3-482b-8c4c-a6809dcdeed9":null}
    2026-04-24T23:00:00.009Z locks: acquire: full_backup_task_8663c238-b4f3-482b-8c4c-a6809dcdeed9
    2026-04-24T23:00:00.018Z tasks: startTask - starting task 7538 with options {"timeout":86400000,"nice":15,"memoryLimit":1024,"oomScoreAdjust":-999}. logs at /home/yellowtent/platformdata/logs/tasks/7538.log
    2026-04-24T23:00:00.018Z tasks: updating task 7538 with: {"pending":false}
    2026-04-24T23:00:00.018Z shell: tasks: /usr/bin/sudo --non-interactive -E /home/yellowtent/box/src/scripts/starttask.sh 7538 /home/yellowtent/platformdata/logs/tasks/7538.log 15 1024 -999
    
    • However looking at the creation time of the backup in "Backup" --> "Sites" (in Backup "Info") it says: "created at 03:38 AM".
    • On the properties of the same backup, I can see "Backup duration: 2h 38m 4s"

    That my backup takes almost 3 hours is fine with me. But I would like to understand what is happening before the backup is actually "created".

    I checked the system logs but I didn't find much revealing. The Update Schedule is set to 5 AM, and it may interfere with the Backup? Is there a recommendation for doing either the Backup or the update first? I also read that before updates an Backup is taken automatically and I am not sure if that would be skipped if there is a recent backup.

    Any hint would be appreciated! And sorry for squeezing in many questions in that post, but it may reveal some context.

    Discuss backup retention tasks system timezone

  • OpenWebUI has an option for a SearXNG API key
    nottheendN nottheend

    If you're as lazy as I am, here is the summary of the brilliant insights from this thread:

    1. Enable 'json' in SearXNG (will not make the search interface public):
    • Open settings.yml for editing, e.g. via File Manager
    • Add json in search under formats
      Example:
    formats:
      - html
      - json <-- add this
    
    • Note the Port in of SearXNG
    1. Configure OpenWebUI App to use SearXNG as web search:
    • In OpenWebUI, go to Admin Settings β†’ Web Search
    • Enter URL: Paste the Searxng URL but replace <searx app id> and <searx port> (App id to be found from cloudron dashboard; port as noted above, default port is probably 8888. )
    http://<searx app id>:<searx port>/search?q=<query>&language=auto&time_range=&safesearch=0&categories=social+media,map,it,general,science,news&format=json
    

    This bypasses OAuth internally so that OpenWebUI directly accesses SearXNG

    SearXNG searxng openwebui ollama search api key

  • Suggestion: Official "Packaged by Cloudron" Badge
    nottheendN nottheend

    An automatically created badge from Cloudron's perspective:

    1. App Verification and Registry

      • After the app is reviewed and approved, Cloudron adds it to its verified apps registry, which includes metadata like app ID, name, version, and verified status.
    2. Badge Graphic Creation

      • Cloudron prepares a badge image (SVG or PNG) showing "Packaged by Cloudron" or a similar verified label. This badge image is hosted on Cloudron's servers or CDN.
    3. Generate Standardized Markdown Snippet

      • Cloudron creates a standardized Markdown snippet that developers can embed into their README or website. The snippet typically looks like this:
      [![Packaged by Cloudron](https://cloudron.example.com/badges/appid.svg)](https://cloudron.example.com/apps/appid)
      
      • Here, the image URL links to the dynamically generated badge image, and the anchor URL links to the app's Cloudron info page. Probably this can be done here, taking comentario as an random example: https://www.cloudron.io/store/app.comentario.cloudronapp.html
    4. Badge Hosting and Dynamic Updates

      • The badge image URL is managed by Cloudron, allowing automatic updates if badge styles, wording, or verification states change. All instances where the badge is embedded will reflect updates immediately.
    5. Developer/User Integration

      • Cloudron provides the app developer or user with this snippet along with clear instructions to paste it into their GitHub README or other documentation.
    6. Automatic Badge Rendering

      • When README files or web pages load, the badge image is fetched from Cloudron's servers and displayed in place, confirming official packaging and build trust visually.

    This automated generation and hosting process allows Cloudron to centrally manage trust badges and makes it very easy for app maintainers to add a professional verification mark to their repos without manual image management or styling.

    Discuss tags publish badge quality

  • Suggestion: Official "Packaged by Cloudron" Badge
    nottheendN nottheend

    Cloudron has proven to be stable over years.

    Therefore, an app selected by cloudron is a kind of "quality seal".

    If a (Github) Project had a "packaged by Cloudron" this may have a promotional effect for Cloudron: users may become curious and may end up as customers of Cloudron.

    It could start with an low effort "verification" page on a cloudron domain, which shows that the app is actually packed. Even more low effort, the appstore link could be used.
    Additionally, it would be good to have a hint in the app packaging doc: "you can create a badge like that:..."

    Be integrated into the Cloudron packaging pipeline to automate badge assignment on successful builds and tests. A reliable, persistent badge would act like a "verified publisher" or quality seal widely trusted for years, reassuring users about app stability and Cloudron support.

    Happy for any other comments, since I am not that deeply into the publisher game on Github and other platforms.

    Discuss tags publish badge quality

  • Backup Provider Change: Alert for Archived App Backups
    nottheendN nottheend

    @girish nice, happy to hear!

    Feature Requests backup config storage provider

  • Backup Provider Change: Alert for Archived App Backups
    nottheendN nottheend

    Use Case:
    When changing the backup provider in Cloudron, there may be existing archived apps. These are stored in the old backup location.

    Current Issue:
    The existing process requires users to manually move all existing backup files, including those of archived apps, to the new backup storage. There is a major risk that the archived app backups get forgotten or lost because this is not prominently shown. Especially since these backups are "silently" referenced by config files.

    Feature Suggestion:
    I propose adding an automatic migration feature or, at minimum, a warning/notification system during the backup provider change if archived app backups exist.

    Reasoning:
    Such a feature would help prevent accidental loss of archived backups, improve usability, and reduce manual work during critical backup provider changes.

    This feature could also tie in with the recently discussed Backup integrity - store size and checksum of backups.

    Thank you

    Feature Requests backup config storage provider

  • Has anyone got the Element X App working with Cloudron Matrix?
    nottheendN nottheend

    Element X calls seem to require additional well-known configuration for Matrix RTC for calls.

    When I tried to make a call with Element X, I got this error:

    Error Code: MISSING_MATRIX_RTC_FOCUS
    

    The issue is discussed here with some workarounds: https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4224

    From what I can gather, it seems you need to configure /.well-known/matrix/client or /.well-known/element/element.json with RTC settings, but I'm not sure of the exact setup for Cloudron.

    Anyone figured this out?

    This discussion might be closely related:
    https://forum.cloudron.io/topic/13140/

    Matrix (Synapse/Element)

  • Openkoda on Cloudron - Open Source Business Application Platform
    nottheendN nottheend

    @timconsidine You are correct. It is positioned as an insurtech platform - claims management, policy lifecycle, embedded insurance products. The GitHub repo shows more general capabilities, but their commercial focus is insurance-specific applications.

    I added a hint to metabase to help "categorising roughly, but probably it was misleading.

    App Wishlist openloda business intelligence

  • Openkoda on Cloudron - Open Source Business Application Platform
    nottheendN nottheend

    Maybe metabase is a close but more general alternative

    App Wishlist openloda business intelligence

  • Openkoda on Cloudron - Open Source Business Application Platform
    nottheendN nottheend

    Title: Openkoda on Cloudron - Open Source Business Application Platform for Fast Enterprise Development

    Main Page: https://openkoda.com/

    Git: https://github.com/openkoda/openkoda

    License: MIT

    Docker: Yes

    Demo: Available application templates at https://github.com/openkoda/openkoda/tree/main/examples

    Summary:
    Openkoda is a powerful open-source business application platform built with Java and Spring Boot that dramatically accelerates enterprise application development. Designed for full customization and free from vendor lock-in, it provides a comprehensive foundation for building SaaS applications, internal tools, and enterprise systems up to 60% faster than traditional development approaches.

    The platform comes with pre-built functionality including authentication, role-based security, advanced user management, multitenancy support, REST API generation, file management, audit trails, and automated backup systems. It offers industry-specific application templates for insurance, property management, time tracking, and claim management, giving developers a solid foundation to build upon.

    Key features include a visual dashboard builder with drag-and-drop functionality, SQL reporting capabilities, email automation, in-app notifications, and seamless integrations with popular tools like Slack, Discord, GitHub, and Jira. The platform supports multiple deployment options including Docker containers and can be easily installed using a simple one-liner Docker Compose command.

    Alternative to / LibHunt link: https://selfhosted.libhunt.com/ - Business application platforms and low-code alternatives

    Screenshots:

    • Admin Dashboard showing system overview and management tools
    • Organization Settings interface for multi-tenant configuration
    • Dynamic Dashboard Builder with drag-and-drop widgets
    • SQL Reporting interface for custom data queries
    • User Management and Role-Based Security configuration screens
    • Application Templates showcase (Insurance, Time Tracking, Property Management)

    Installation Note:
    While Openkoda supports Docker deployment, it would need to be specifically packaged for Cloudron following their app packaging guidelines. The existing Docker Compose setup provides a good foundation, but a dedicated Cloudron manifest would be required for proper integration with Cloudron's user management and backup systems.

    App Wishlist openloda business intelligence

  • tarExtract pipeline error: Invalid tar header
    nottheendN nottheend

    @james I had opened a ticket at that time with Hetzner. Sending you the ticket number as pm

    Support restore nextcloud header tar

  • Traccar Maps Tab: JSON Error After Recent Update?
    nottheendN nottheend

    I changed the accuracy and it got better.

    There is still a major delay of couple of minutes from "location data is received by traccar server" to "showing it on the traccar map"

    Traccar traccar json maps error

  • Traccar Maps Tab: JSON Error After Recent Update?
    nottheendN nottheend

    Thanks.

    Couple of things I figured out:

    1. I used the most recent client traccar app in FDroid store - but this is way outdated!! (v7 vs v9)
    2. I was able to to get the data into traccar.
    3. Your suggestions seems to hold true: vanadium (or at least my config) is not able to receive the data correctly, showing the red toast error message. With the traccar manager app the issue doesn't appear.

    Remaining issue: devices are not updating on the map in traccar manager app. They are showing as online with the most recent update, but the location showing on the app doesn't match.

    Could it be wrong timezone detection? The position on the map seems to be 2 hours delayed. Cloudron server is set to UTC

    Sanitised logs are below, I can see recent updates but not an updated location.

    This is the server:

    Jun 22 16:02:07 2025-06-22 14:02:07 INFO: [Tcbb90350: osmand < 192.168.1.100] POST / HTTP/1.1\r\nHost: osmand.example.com\r\nX-Real-IP: 203.0.113.45\r\nX-Forwarded-For: 203.0.113.45\r\nX-Forwarded-Host: osmand.example.com\r\nX-Forwarded-Port: 443\r\nX-Forwarded-Proto: https\r\nX-Forwarded-Ssl: on\r\nConnection: close\r\nContent-Length: 433\r\ncontent-type: application/json; charset=utf-8\r\naccept-encoding: gzip\r\nuser-agent: okhttp/3.14.9\r\n\r\n{"location":{"timestamp":"2025-06-22T13:49:31.843Z","coords":{"latitude":40.7128,"longitude":-74.0060,"accuracy":48,"speed":0,"heading":-1,"altitude":170},"is_moving":false,"odometer":2389,"battery":{"level":0.52,"is_charging":false},"activity":{"type":"still"},"extras":{},"_":"&id=12345678&lat=40.7128&lon=-74.0060&timestamp=2025-06-22T13:49:31.843Z&","heartbeat":true},"device_id":"12345678"}
    Jun 22 16:02:07 2025-06-22 14:02:07 INFO: [Tcbb90350: osmand > 192.168.1.100] HTTP/1.1 200 OK\r\ncontent-length: 0\r\n\r\n
    Jun 22 16:02:07 2025-06-22 14:02:07 INFO: [Tcbb90350] connected
    Jun 22 16:02:07 2025-06-22 14:02:07 INFO: [Tcbb90350] disconnected
    Jun 22 16:02:07 2025-06-22 14:02:07 INFO: [Tcbb90350] id: 12345678, time: 2025-06-22 13:49:31, lat: 40.71280, lon: -74.00600, course: 0.0, accuracy: 48.0
    Jun 22 16:04:08 2025-06-22 14:04:08 INFO: [T792e8758: osmand < 192.168.1.100] POST / HTTP/1.1\r\nHost: osmand.example.com\r\nX-Real-IP: 203.0.113.45\r\nX-Forwarded-For: 203.0.113.45\r\nX-Forwarded-Host: osmand.example.com\r\nX-Forwarded-Port: 443\r\nX-Forwarded-Proto: https\r\nX-Forwarded-Ssl: on\r\nConnection: close\r\nContent-Length: 433\r\ncontent-type: application/json; charset=utf-8\r\naccept-encoding: gzip\r\nuser-agent: okhttp/3.14.9\r\n\r\n{"location":{"timestamp":"2025-06-22T13:49:31.843Z","coords":{"latitude":40.7128,"longitude":-74.0060,"accuracy":48,"speed":0,"heading":-1,"altitude":170},"is_moving":false,"odometer":2389,"battery":{"level":0.51,"is_charging":false},"activity":{"type":"still"},"extras":{},"_":"&id=12345678&lat=40.7128&lon=-74.0060&timestamp=2025-06-22T13:49:31.843Z&","heartbeat":true},"device_id":"12345678"}
    Jun 22 16:04:08 2025-06-22 14:04:08 INFO: [T792e8758: osmand > 192.168.1.100] HTTP/1.1 200 OK\r\ncontent-length: 0\r\n\r\n
    

    This is from the client traccar:

    ╔═════════════════════════════════════════════
    β•‘ TSLocationManager3.6.8 (443)
    ╠═════════════════════════════════════════════
    β•Ÿβ”€ Google Pixel 8 Pro @ 15 (flutter)
    {
      "activityRecognitionInterval": 10000,
      "allowIdenticalLocations": false,
      "authorization": {},
      "autoSync": false,
      "autoSyncThreshold": 0,
      "backgroundPermissionRationale": {
        "title": "Allow {applicationName} to access this device's location in the background",
        "message": "For reliable tracking, please enable {backgroundPermissionOptionLabel} location access.",
        "positiveAction": "Change to {backgroundPermissionOptionLabel}",
        "negativeAction": "Cancel"
      },
      "batchSync": false,
      "configUrl": "",
      "crashDetector": {
        "enabled": false,
        "accelerometerThresholdHigh": 20,
        "accelerometerThresholdLow": 4.5,
        "gyroscopeThresholdHigh": 20,
        "gyroscopeThresholdLow": 4.5
      },
      "debug": false,
      "deferTime": 0,
      "desiredAccuracy": 10,
      "desiredOdometerAccuracy": 100,
      "disableAutoSyncOnCellular": false,
      "disableElasticity": true,
      "disableLocationAuthorizationAlert": false,
      "disableMotionActivityUpdates": false,
      "disableProviderChangeRecord": false,
      "disableStopDetection": false,
      "distanceFilter": 15,
      "elasticityMultiplier": 1,
      "enableHeadless": true,
      "enableTimestampMeta": false,
      "extras": {},
      "fastestLocationUpdateInterval": 10000,
      "foregroundService": true,
      "geofenceInitialTriggerEntry": true,
      "geofenceModeHighAccuracy": false,
      "geofenceProximityRadius": 1000,
      "geofenceTemplate": "",
      "headers": {},
      "headlessJobService": "com.transistorsoft.flutter.backgroundgeolocation.HeadlessTask",
      "heartbeatInterval": 120,
      "httpRootProperty": "location",
      "httpTimeout": 60000,
      "isMoving": false,
      "locationAuthorizationRequest": "Always",
      "locationTemplate": "{\"timestamp\": \"<%= timestamp %>\",\"coords\": {\"latitude\": <%= latitude %>,\"longitude\": <%= longitude %>,\"accuracy\": <%= accuracy %>,\"speed\": <%= speed %>,\"heading\": <%= heading %>,\"altitude\": <%= altitude %>},\"is_moving\": <%= is_moving %>,\"odometer\": <%= odometer %>,\"event\": \"<%= event %>\",\"battery\": {\"level\": <%= battery.level %>,\"is_charging\": <%= battery.is_charging %>},\"activity\": {\"type\": \"<%= activity.type %>\"},\"extras\": {},\"_\": \"&id=[DEVICE_ID]&lat=<%= latitude %>&lon=<%= longitude %>&timestamp=<%= timestamp %>&\"}",
      "locationTimeout": 60,
      "locationUpdateInterval": 300000,
      "locationsOrderDirection": "ASC",
      "logLevel": 5,
      "logMaxDays": 1,
      "maxBatchSize": -1,
      "maxDaysToPersist": 1,
      "maxMonitoredGeofences": 97,
      "maxRecordsToPersist": -1,
      "method": "POST",
      "minimumActivityRecognitionConfidence": 75,
      "motionTriggerDelay": 0,
      "notification": {
        "layout": "",
        "title": "",
        "text": "Location Service activated",
        "color": "",
        "channelName": "TSLocationManager",
        "channelId": "",
        "smallIcon": "",
        "largeIcon": "",
        "priority": -1,
        "sticky": false,
        "strings": {},
        "actions": []
      },
      "params": {
        "device_id": "[DEVICE_ID]"
      },
      "persist": true,
      "persistMode": 2,
      "schedule": [],
      "scheduleUseAlarmManager": false,
      "speedJumpFilter": 300,
      "startOnBoot": true,
      "stationaryRadius": 25,
      "stopAfterElapsedMinutes": 0,
      "stopOnStationary": false,
      "stopOnTerminate": false,
      "stopTimeout": 5,
      "triggerActivities": "in_vehicle, on_bicycle, on_foot, running, walking",
      "url": "[REDACTED_URL]",
      "useSignificantChangesOnly": false,
      "enabled": true,
      "schedulerEnabled": false,
      "trackingMode": 1,
      "odometer": 2963.11865234375,
      "isFirstBoot": false,
      "didLaunchInBackground": false,
      "didDeviceReboot": false
    }
    ╔═════════════════════════════════════════════
    β•‘ DEVICE SENSORS
    ╠═════════════════════════════════════════════
    β•Ÿβ”€ βœ…  ACCELEROMETER: {Sensor name="ICM45631 Accelerometer", vendor="Invensense", version=1, type=1, maxRange=156.9064, resolution=5.985504E-4, power=0.001, minDelay=5000}
    β•Ÿβ”€ βœ…  GYROSCOPE: {Sensor name="ICM45631 Gyroscope", vendor="Invensense", version=1, type=4, maxRange=34.906586, resolution=1.3323124E-4, power=0.001, minDelay=5000}
    β•Ÿβ”€ βœ…  MAGNETOMETER: {Sensor name="Fusion Mag", vendor="Google", version=1, type=2, maxRange=3198.1567, resolution=0.0976, power=0.001, minDelay=10000}
    β•Ÿβ”€ βœ…  SIGNIFICANT_MOTION: {Sensor name="Significant Motion (wake-up)", vendor="Google", version=1, type=17, maxRange=1.0, resolution=1.0, power=0.001, minDelay=-1}
    β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
    
    Traccar traccar json maps error

  • Traccar Maps Tab: JSON Error After Recent Update?
    nottheendN nottheend

    Thanks for the hint. I actually did that, but still not working: I still see all devices as offline.

    And your assumption was correct regarding the browser: For a chromium browser, I got the Doctype error also for a completely fresh installation without any devices. In e.g. Edge I didn't face this issue

    Traccar traccar json maps error

  • Traccar Maps Tab: JSON Error After Recent Update?
    nottheendN nottheend

    Thank you for the response and test.
    I changed the identifier in the client and added it on the server. Also removed the device with the old identifier. The error is gone. Really surprising for me.

    Still having the issue that no device is showing. Tried few things, like changing the port, domain, and checked the firewall.

    For the sake of this threat, can be closed I guess, since it seems to be a conffig error.

    Traccar traccar json maps error

  • SendGrid is over, what to use instead?
    nottheendN nottheend

    It depends a bit who you are and what you are trying to achieve with it. For businesses, Mailjet might be an option. A validation of a business is required, but for very small sizes they offer a free plan.

    Discuss
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search