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

Offical apps | Community apps | Demo | Docs | Install
M

mononym

@mononym
Unfollow Follow
About
Posts
208
Topics
66
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Linkwarden 1.21.1: full-text search on archived content is silently unavailable
    M mononym

    Just discovered that all my bookmarks are queued for indexing to have full text search. I guess this feature is not yet available or needs some setup?

    Linkwarden

  • Retention Configuration
    M mononym

    Thank you @andreasdueren for the solution and all the extra explanation!

    Do you know how synapse handles on which server a room is stored? Are the rooms solely on the server which initiated the conversation or are they mirrored across servers? Would that not mean that a room history is potentially always available if one of the servers does not enable the retention setting?

    Matrix (Synapse/Element)

  • Retention Configuration
    M mononym

    Continuing the discussion from What happens in the matrix channels where there are no more users ? Where goes the messages ? #8

    I want to set up a maximum retention in order to keep the memory footprint low. To do so I added the following lines to my homeserver.yaml and am now waiting to see what it will actually do [1] :

    retention:
      enabled: true # enables the retention, is enough to enforce it once per day
      default_policy:
        min_lifetime: 1d
        max_lifetime: 4w
    media_retention:
      local_media_lifetime: 4w
      remote_media_lifetime: 4w
    

    My first observation is that nothing appears in the room state. I started a new conversation with a matrix.org user and no default m.room.retention appears in the room state after its creation. 🤔

    • Does the other server (matrix.org) need to enable the setting as well ?
    • Is this only for purging empty rooms, not about auto-deleting old messages ?

    Thanks for any info on the topic.

    [1] Source: https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#retention (link could be updated in the docs)

    Matrix (Synapse/Element)

  • ControlR - remote control and remote access
    M mononym

    Hello @bitbound
    Is there any chance that ControlR could be added to the new https://ca.cloudron.io/ registry ?

    App Wishlist

  • Piruetas - A minimalist journal
    M mononym
    • Main Page: https://piruet.app/
    • Git: https://github.com/patillacode/piruetas
    • Licence: AGPL-3.0
    • Dockerfile: Yes
    • Demo: A live demo is available at piruet.app. Log in with demo / piruetas, content resets every 30 minutes.

    • Summary: A minimalistic, self-hosted diary and journaling web app. Piruetas gives each day its own page with a clean writing experience, multi-user support, and full control over your data.

    • Notes: I like the logo

    • Alternative to: Everlog

    ecbf45fc-4054-460f-ba76-35e708c19c59-image.jpeg

    App Wishlist

  • OIDC mobile client login
    M mononym

    Hello.

    I got a fresh Synapse install, with users managed by Cloudron (OIDC). How to make it possible to login from a mobile client (Element X and FluffyChat tried out) ?

    Would it be possible to simply set password_config to the right setting ?

    Thanks 🙂

    EDIT: I finally managed with FluffyChat, I think you can delete this topic (;

    Matrix (Synapse/Element)

  • Discourse AI (translation)
    M mononym

    @james I would suggest adding a section in the Ollama or Discourse documentation explaining how to reach the Ollama service, internally and externally. For now, I only test whatever comes to my mind but unfortunately, I can't figure it out. Feels like magic 🙂

    Discourse

  • Discourse AI (translation)
    M mononym

    First trial and error.

    Added a new LLM entry in /admin/plugins/discourse-ai/ai-llms/new?llmTemplate=none.

    • Named it "Ollama" and selected OpenAI as provider and qwen3.5:2b (pulled) as model.
    • Set the URL to the Ollama instance and put the API key from it's cat /app/data/.api_key.
    • Chose QwenTokenizer and 262000 context.
    • Saved settings with the Submit button.

    The "Run test" fails with

    Non-streaming request failed: <html> <head><title>405 Not Allowed</title></head> <body> <center><h1>405 Not Allowed</h1></center> <hr><center>nginx/1.24.0 (Ubuntu)</center> </body> </html> 
    
    • Changed URL to Ollama's ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}', like http://172.18.16.111:11434

    The "Run test" fails with "Internal Server Error"

    Jul 06 20:35:43 172.18.0.1 - - [06/Jul/2026:18:35:43 +0000] "POST /admin/plugins/discourse-ai/ai-llms/test.json HTTP/1.1" 500 46 "https://eupalinos.eu/admin/plugins/discourse-ai/ai-llms/1/edit" "Mozilla/5.0 (X11; Linux x86_64; rv:152.0) Gecko/20100101 Firefox/152.0"
    Jul 06 20:35:43 Started POST "/admin/plugins/discourse-ai/ai-llms/test.json" for 185.244.213.58 at 2026-07-06 18:35:43 +0000
    Jul 06 20:35:43 Processing by DiscourseAi::Admin::AiLlmsController#test as JSON
    Jul 06 20:35:43   Parameters: {"ai_llm" => {"max_prompt_tokens" => "262000", "max_output_tokens" => "", "ai_secret_id" => "2", "tokenizer" => "DiscourseAi::Tokenizer::QwenTokenizer", "url" => "http://172.18.16.111:11434", "display_name" => "Ollama", "name" => "qwen3.5:2b", "provider" => "open_ai", "vision_enabled" => "false", "input_cost" => "", "output_cost" => "", "cached_input_cost" => "", "cache_write_cost" => "0", "provider_params" => {"organization" => "", "disable_native_tools" => "", "reasoning_effort" => "default", "disable_streaming" => "false", "service_tier" => "default"}}}
    Jul 06 20:35:43 Completed 500 Internal Server Error in 22ms (ActiveRecord: 0.0ms (0 queries, 0 cached) | GC: 0.0ms)
    Jul 06 20:35:44 172.18.0.1 - - [06/Jul/2026:18:35:44 +0000] "POST /message-bus/99cb84f5c8754d6caf75a4140828e566/poll HTTP/1.1" 200 2 "https://eupalinos.eu/admin/plugins/discourse-ai/ai-llms/1/edit" "Mozilla/5.0 (X11; Linux x86_64; rv:152.0) Gecko/20100101 Firefox/152.0"
    

    More reading:
    https://forum.cloudron.io/topic/14645/how-to-configure-ollama-in-openwebui
    https://forum.cloudron.io/topic/13066/auto-tagging-ollama-setup

    Discourse

  • Discourse AI (translation)
    M mononym

    Came across the topic Self-Hosting an OpenSource LLM for DiscourseAI and will maybe give it a try with an Ollama instance if possible.

    Discourse

  • Discourse AI (translation)
    M mononym

    Hello.

    Some time ago, I came across a blog post from Discourse where they present a translation feature using the AI plugin. It basically enables that each user can converse seamlessly in a chosen language: https://blog.discourse.org/2026/03/building-for-every-language/

    The Discourse AI plugin is now bundled and can be enabled manually for available features.

    As I take care of a multilingual forum, I was wondering if it is doable to have the AI translation run with a Cloudron Ollama instance:

    • Did someone manage connect a local Ollama instance to the Discourse AI Plugin ?
    • What would be a recommended requirement in RAM and model (SotA ?) to make this work gracefully ?
    • Otherwise, which third-party provider would you recommend using for a low traffic Discourse site ?

    Thanks.

    Discourse

  • Login Security Warning
    M mononym

    @girish

    Hello. The updates did solve it and the banner disappeared. Thx.

    Grav CMS

  • Login Security Warning
    M mononym

    Hello. I get the following warning on my GRAV CMS Dashboard:

    Login security: no trusted host is configured, so password reset and activation email links are built from the request host and can be spoofed. Set a Site Host in the Login plugin settings, or a Custom Base URL in System settings.

    d468d2cd-63a7-40ae-8f36-9081ce118b46-image.jpeg

    None of "Site Host" and "Custom Base URL" fields has a value for now. The app is installed under a different domain name than the Cloudron Dashboard. Any advice what to do ?

    Thanks !

    Grav CMS

  • Cheezy Pizza
    M mononym

    There's a fork with additional features in the news : https://itsfoss.com/cheezy-pizza/
    Git : https://github.com/hariharjeevan/cheezypizza

    FilePizza

  • LinkStack (was Littlelink-Custom)
    M mononym

    @jdaviescoates Thanks. I can only confirm. Should have read the right posts.
    I get the feeling that LAMP-doable apps need their show window as well.

    App Wishlist

  • CloudronHealth check not a crawler
    M mononym

    It's perfect. Thank you, @james !

    Discourse

  • LinkStack (was Littlelink-Custom)
    M mononym

    @girish I absolutely agree with you. Though it is a little bit more complicated if I wanna host a linktree page to be used by someone else who has only little technical know-how. Therefore, wants to get and manage something as simple as a linktree page by themself. 🙂

    App Wishlist

  • CloudronHealth check not a crawler
    M mononym

    Hello. May it be possible that the CloudronHealth check uses the /srv/status endpoint ? It looks like that it shows up as a crawler in the site pageview statistics otherwise. Thanks.

    Discourse

  • POP3 settings
    M mononym

    Just to let you know, I still get the error " Connection to the POP3 server is failing with an authentication error. Please check your POP3 settings." in the admin dashboard. Though everything looks to work perfectly fine.

    Discourse mail pop3

  • WebSocket Connection Error
    M mononym

    @james said:

    Is there something 'unique' about your Cloudron set up? Also no Cloudflare.

    Not that I'm aware of. The check looks good.

    Vendor: QEMU Product: Standard PC (i440FX + PIIX, 1996)
    Linux: 6.8.0-111-generic
    Ubuntu: noble 24.04
    Cloudron: 9.1.7
    Execution environment: kvm
    Processor: Intel(R) Xeon(R) Gold 6126 CPU @ 2.60GHz
    BIOS pc-i440fx-9.2  CPU @ 2.0GHz x 4
    RAM: 12248260KB
    Disk: /dev/sda2       232G
    [OK]    node version is correct
    [OK]    IPv6 is enabled in kernel. No public IPv6 address
    [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.7 is running
    [OK]    Dashboard is reachable via domain name
    [WARN]  Domain *******.com expiry check skipped because whois does not have this information
    
    Paperless-ngx

  • WebSocket Connection Error
    M mononym

    I tried to look into why queued documents are not processed. In the end, it was only a question of enough patience.
    But I noticed an error in Settings > System Status (top right) > "WebSocket Connection"

    {
        "pngx_version": "2.20.15",
        "server_os": "Linux-6.8.0-111-generic-x86_64-with-glibc2.39",
        "install_type": "bare-metal",
        "storage": {
            "total": 92342554660,
            "available": 43966247799
        },
        "database": {
            "type": "postgresql",
            "url": "dbd53e3dca2edd46f2b70b12cc2d9b0c26",
            "status": "OK",
            "error": null,
            "migration_status": {
                "latest_migration": "documents.1075_workflowaction_order",
                "unapplied_migrations": []
            }
        },
        "tasks": {
            "redis_url": "redis://redis-d53e3dca-2edd-46f2-b70b-12cc2d9b0c26:6379",
            "redis_status": "OK",
            "redis_error": null,
            "celery_status": "OK",
            "celery_url": "celery@d53e3dca-2edd-46f2-b70b-12cc2d9b0c26",
            "celery_error": null,
            "index_status": "OK",
            "index_last_modified": "2026-05-17T12:53:29.784656Z",
            "index_error": null,
            "classifier_status": "OK",
            "classifier_last_trained": "2026-05-17T12:05:02.705492Z",
            "classifier_error": null,
            "sanity_check_status": "OK",
            "sanity_check_last_run": "2026-05-17T00:30:02.789882Z",
            "sanity_check_error": null
        },
        "websocket_connected": "ERROR"
    }
    

    Don't know how critical that is...

    Paperless-ngx
  • Login

  • Don't have an account? Register

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