Eigenfocus: Self-Hosted Project Management with a Free Docker Edition and a One-Time-Pay Pro Tier
Eigenfocus - Project Management tool without the clutter.
At a glance
- What is it?
- Eigenfocus is a self-hosted project management application built on Ruby on Rails that ships as a Docker image. The free edition covers unlimited projects, built-in time tracking, and a Focus Space with ambient sounds; the Pro edition adds multi-user roles, custom fields, a timeline view, and SSO, priced as a one-time purchase rather than a subscription.
- Who is it for?
- Eigenfocus suits solo developers and small teams who want self-hosted project management with a clean interface and no recurring subscription for advanced features. The source-available license means you can read and modify the code but redistribution as a competing product is restricted.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Ruby, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The Problem Eigenfocus Is Designed to Avoid
Most project management tools accumulate features across releases until navigating them requires as much effort as the work they track. Eigenfocus is built around the opposite premise: the README describes it as a tool "without the clutter," powerful enough for complex projects but simple enough to actually use.
The target audience is individuals and small teams who want a self-hosted alternative to SaaS tools. The free edition is intended for single-user deployments; the Pro edition adds the multi-user and permissions model. Both run from a single Docker image with persistent data stored in a mounted volume, which keeps the operational footprint small.
The application runs on Ruby 4.0.0 and Node.js 26.x, both recent releases. The last push to the repository was on 2026-09-27, and the project shows a consistent release history going back through the version 1.x series.
What the Free Edition Includes
The free edition covers the core task management features: unlimited projects, boards, and issues; list and board views; markdown descriptions and file attachments; labels, comments, and due dates. These are the table-stakes features that most project management tools offer.
What distinguishes the free edition from generic issue trackers is the built-in time tracking with reports and the Focus Space. The Focus Space provides timers and ambient sounds, positioning Eigenfocus as a tool for focused work sessions rather than pure project coordination. Light and dark themes are included.
The list and board views are the only two view types in the free edition. The Pro edition extends this with grid view (columns and swimlanes), timeline view, and the ability to create multiple saved views with predefined settings. If your workflows require visualizing work across a time axis or in a swimlane layout, those features sit behind the paid tier.
Docker Installation and Environment Variables
The README provides two installation paths. The single-container path uses a docker run command:
docker run \
--restart unless-stopped \
-v ./app-data:/eigenfocus-app/app-data \
-p 3001:3000 \
-e DEFAULT_HOST_URL=http://localhost:3001 \
-d \
eigenfocus/eigenfocus:1.5.1-freeThis mounts ./app-data as the persistent volume, maps port 3001 on the host to 3000 inside the container, and sets the DEFAULT_HOST_URL. The application is then accessible at http://localhost:3001.
For docker-compose deployments, the README provides an equivalent service definition. You can then start it with:
docker compose up -dThree environment variables control the networking and SSL behavior. DEFAULT_HOST_URL sets the canonical URL the app uses to generate links; set it to your domain when exposing the service externally. FORCE_SSL defaults to false; setting it to true redirects all non-HTTPS requests to HTTPS. ASSUME_SSL_REVERSE_PROXY defaults to false; setting it to true tells the application to treat incoming HTTP requests as HTTPS, which is necessary when a reverse proxy terminates TLS upstream to avoid an infinite redirect loop. Two additional optional variables, HTTP_AUTH_USER and HTTP_AUTH_PASSWORD, enable HTTP Basic Auth as a network-level access gate.
Pro Edition: One-Time Purchase and Cloud Option
The Pro edition is available as a one-time payment, not a subscription, according to the README. It adds the features that make Eigenfocus viable for teams: multiple users with roles and permissions, custom fields for project-specific data, grid view with swimlanes, timeline view for planning work over time, custom statuses and issue types, project templates, and SSO integration with Google, Microsoft, GitHub, and OIDC providers.
The README also mentions a managed cloud edition at eigenfocus.com, which removes the self-hosting requirement. The cloud option is documented but no pricing or feature differences between cloud and self-hosted Pro are stated in the README.
The free edition is labeled with the -free suffix in the Docker image tag (eigenfocus/eigenfocus:1.5.1-free) and tracked in a separate VERSION-FREE file in the repository. This makes it straightforward to pin to a specific free release in a deployment.
Technical Architecture: Rails, Solid Queue, and Dual Database Support
The Dockerfile reveals several architectural choices. The application runs Ruby on Rails in production mode, with RAILS_ENV set to production and BUNDLE_DEPLOYMENT=1 enforcing lockfile-based gem installation. Background jobs run inside the Puma web server process using Solid Queue, controlled by the SOLID_QUEUE_IN_PUMA=1 environment variable. This avoids the need for a separate worker process in the container, keeping the deployment to a single image.
The final Docker image installs both libsqlite3-0 and libpq5, meaning the application can connect to either SQLite or PostgreSQL. The Dockerfile copies config/database.example.yml to config/database.yml during the build, which sets the default database configuration. For production deployments at scale, connecting to an external PostgreSQL instance instead of the default SQLite setup is likely preferable, though the README does not document how to switch.
The frontend uses React (version 19) bundled with Shakapacker (a Rails-compatible Webpack wrapper). The Milkdown library handles the markdown editor for issue descriptions. File attachment processing uses libvips.
Source-Available License and the No-Pull-Requests Policy
Eigenfocus describes its license as "source available" in the README: the code is readable and self-hostable, but it is not licensed under an OSI-approved open-source license. GitHub reports the license identifier as NOASSERTION, meaning it does not match a recognized SPDX identifier. The actual terms are in the LICENSE file in the repository.
The contribution model follows from the commercial structure. The README states: "Since Eigenfocus includes a paid version, we don't accept external pull requests. We believe this keeps expectations clear and fair." Bug reports, ideas, suggestions, and feedback can be sent by email.
This is a meaningful distinction for teams evaluating it against fully open-source alternatives. Plane is an open-source project management tool (Apache-2.0) that accepts community contributions and covers a similar feature set including issues, cycles, and multiple views. The trade-off is that Plane's multi-user model requires self-hosting a more complex stack, while Eigenfocus runs as a single Docker container with a simpler operational profile. Teams who want to contribute features upstream or depend on community-driven development will find Eigenfocus a poor fit; teams who want a predictable, maintained product with clear commercial terms are the intended audience.
Editorial conclusion
Eigenfocus suits solo developers and small teams who want self-hosted project management with a clean interface and no recurring subscription for advanced features. The source-available license means you can read and modify the code but redistribution as a competing product is restricted. Before deploying to the internet, configure FORCE_SSL=true and, if behind a reverse proxy that terminates TLS, also set ASSUME_SSL_REVERSE_PROXY=true to avoid the redirect loop described in the Rails changelog.
Frequently asked questions
What is the difference between the free and Pro editions of Eigenfocus?
The free edition supports a single user with unlimited projects, list and board views, time tracking, and a Focus Space. The Pro edition adds multiple users with roles and permissions, custom fields, grid and timeline views, custom statuses and issue types, project templates, and SSO with Google, Microsoft, GitHub, and OIDC.
How do I run Eigenfocus behind a reverse proxy with HTTPS?
Set FORCE_SSL=true to redirect HTTP to HTTPS, and also set ASSUME_SSL_REVERSE_PROXY=true so the application treats incoming HTTP requests from the proxy as HTTPS. Without the second variable, a proxy that terminates TLS and forwards HTTP will trigger an infinite redirect loop.
Does Eigenfocus accept code contributions from the community?
No. The README states that Eigenfocus does not accept external pull requests because the project includes a paid version. Ideas and feedback can be submitted by email to [email protected].
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/eigenfocus-eigenfocus)