Journeyman

Monster Manual: Huginn

Stat Block

DimensionScoreRating
Structural difficulty6/14Medium
Compliance/maintenance5/13Moderate
ConfidenceHigh
Estimated packaging effort15-25 hours
Ongoing maintenanceModerate

Repository: github.com/huginn/huginn Language: Ruby (Rails) License: MIT Stars: 48,800 | Last release: v2022.08.18 | Release frequency: ~1 per year (CalVer), master has ongoing commits

The Verdict

Huginn is a solid Cloudron packaging candidate. Standard Ruby on Rails application with MySQL or PostgreSQL, configured entirely through environment variables, with well-documented Docker deployment. The main complexity is two processes (web server + background job worker) in one container, which is a common and well-understood pattern using supervisor.

No community packaging attempt exists yet, but there is significant demand on the forum. The upstream provides two Docker images: huginn/huginn (multi-process, bundles MySQL) and huginn/huginn-single-process (for external database).

Structural Analysis

A1. Processes (1): Two processes: Rails web server (Puma on port 3000) and a threaded background worker (bin/threaded.rb) for scheduled agent checks and event propagation. Standard web + worker pattern.

A2. Data storage (0): MySQL or PostgreSQL, both Cloudron addons. No Redis, no Elasticsearch. All persistent state is in the database.

A3. Runtime (1): Ruby is not in cloudron/base:5.0.0. However, Debian packages are well-established and pre-built Docker images exist.

A4. Message broker (0): No broker. Uses a threaded Ruby worker that polls the database.

A5. Filesystem writes (2): Init script generates .env at runtime. Rails writes to log/, tmp/pids/, tmp/cache/, tmp/sockets/, public/assets/. Additional gems via ADDITIONAL_GEMS write to the gem directory. Requires 6-8 symlinks.

A6. Authentication (2): Devise-based own auth. No LDAP, no OIDC, no SSO. Admin created via rake db:seed with environment variables.

Compliance Analysis

B1. SSO quality (2): No SSO support. Users must maintain separate Huginn credentials. No upstream interest in adding it.

B2. Upstream stability (1): Mature (since 2013, 231 contributors) but the last tagged release was August 2022. Master branch gets dependency updates. Potentially entering maintenance mode.

B3. Backup complexity (0): All data in the Cloudron-managed database. No file uploads, no local storage.

B4. Platform fit (0): Standard HTTP behind reverse proxy. No WebSocket, no raw TCP, no UDP. Works naturally with Cloudron.

B5. Config drift (2): ADDITIONAL_GEMS installs extra Ruby gems at runtime, extending agent types. This writes to the gem directory and must persist across restarts.

Key Risks

Ruby runtime must be installed in the Dockerfile. Gem compilation is slow (5-10 minutes) and produces a large image.

ADDITIONAL_GEMS is a core Huginn feature. On Cloudron’s read-only filesystem, bundle install must run at boot, adding 30-60 seconds. Solvable (docassemble uses a similar pattern) but needs care.

Potentially dormant project. 603 open issues, 95 open PRs. Bugs are unlikely to be fixed upstream quickly.

Webhook endpoints need to be accessible publicly for external services to POST to. Cloudron’s proxyauth would block these. Must either skip proxyauth or selectively bypass for webhook paths.

Recommendation

Viable and worthwhile. Neither the structural difficulty (6/14) nor the compliance cost (5/13) is a hard blocker. The core work is well-bounded: install Ruby, configure MySQL addon, run web + worker under supervisor, handle ADDITIONAL_GEMS directory.

The strategic question is whether Huginn (stable but dormant, Ruby, no SSO) is worth the effort compared to n8n (already on Cloudron, Node.js, actively developed). They serve overlapping but distinct use cases: Huginn excels at personal web monitoring; n8n is better for service integration workflows. Both have a place.