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?
mononym
Posts
-
Linkwarden 1.21.1: full-text search on archived content is silently unavailable -
Retention ConfigurationThank 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?
-
Retention ConfigurationContinuing 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.yamland 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: 4wMy 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.retentionappears 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)
-
ControlR - remote control and remote accessHello @bitbound
Is there any chance that ControlR could be added to the new https://ca.cloudron.io/ registry ? -
Piruetas - A minimalist journal- 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

-
OIDC mobile client loginHello.
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_configto the right setting ?Thanks

EDIT: I finally managed with FluffyChat, I think you can delete this topic (;
-
Discourse AI (translation)@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 AI (translation)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}', likehttp://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 AI (translation)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 AI (translation)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.
-
Login Security WarningHello. The updates did solve it and the banner disappeared. Thx.
-
Login Security WarningHello. 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.

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 !
-
Cheezy PizzaThere's a fork with additional features in the news : https://itsfoss.com/cheezy-pizza/
Git : https://github.com/hariharjeevan/cheezypizza -
LinkStack (was Littlelink-Custom)@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. -
CloudronHealth check not a crawlerIt's perfect. Thank you, @james !
-
LinkStack (was Littlelink-Custom)@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.

-
CloudronHealth check not a crawlerHello. May it be possible that the CloudronHealth check uses the
/srv/statusendpoint ? It looks like that it shows up as a crawler in the site pageview statistics otherwise. Thanks. -
POP3 settingsJust 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.
-
WebSocket Connection ErrorIs 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 -
WebSocket Connection ErrorI 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 inSettings>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...