The Eigenfocus project
Your Data, Your Control, Your Productivity
Between all project management and time tracking tools, Eigenfocus iss designed to be an all-in-one solution that not only helps you manage projects and track time but also provides dedicated features to improve your focus.
For self-hosters, its appeal is even stronger: the ability to own your data and run the application on your own infrastructure.
While Eigenfocus is available as a “Free Edition” for self-hosting and its code is publicly accessible, it’s important to note their specific licensing: they position themselves as a “free self-hosted project” but clarify they are not traditionally open source
Meaning the code isn’t typically free for modification and redistribution in the same way as, say, MIT or GPL licensed software.
Nonetheless, the ability to self-host the free version is a significant advantage for those seeking data sovereignty.
What Makes Eigenfocus Stand Out for Self-Hosters?
Eigenfocus combines the best aspects of several tools into one, all while providing the flexibility of self-hosting:
- Integrated Project Management: Create boards, issues, and tasks. Customize workflows, use labels, and view your projects in various ways (Kanban, Grid, etc.). It’s flexible enough for solo ventures or small team collaboration.
- Seamless Time Tracking: Log time directly against tasks and projects. Generate detailed reports for invoicing, performance analysis, or simply understanding your effort distribution.
- Dedicated Focus Space: Unique to Eigenfocus, the “Focus Space” helps you concentrate with ambient sounds and configurable timers (Pomodoro, breaks, water reminders). It’s a thoughtful addition for deep work.
- Data Ownership: This is the paramount benefit for self-hosters. By running Eigenfocus on your server, your project data, time logs, and personal insights remain entirely under your control, free from third-party cloud dependencies.
- Single-Application Convenience: No more juggling separate apps for project boards, time tracking, and focus timers. Eigenfocus brings it all together under one roof.
- Active Development: The project is continuously evolving, with regular updates and new features being added.
Self-Hosting Eigenfocus: The Docker Way
Eigenfocus is built with self-hosting in mind, and Docker is the recommended and easiest path to get it running on your server.
Option 1: Quick Start with Docker Run
For a fast setup, especially if you’re experimenting or have a single-instance need, the docker run
command is incredibly convenient.
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.0.0-free
Let’s break down this command:
docker run
: The command to run a Docker container.--restart unless-stopped
: Ensures the container automatically restarts if your server reboots or the container stops for any non-manual reason.-v ./app-data:/eigenfocus-app/app-data
: This is a volume mount. It maps a directory on your host machine (./app-data
in the current directory where you run the command) to the/eigenfocus-app/app-data
directory inside the container. This is crucial because Eigenfocus stores its database and other persistent data here. Without this, your data would be lost if the container is removed!-p 3001:3000
: This maps port3001
on your host machine to port3000
inside the container. You’ll access Eigenfocus by navigating your browser tohttp://your-server-ip:3001
.-e DEFAULT_HOST_URL=http://localhost:3001
: Sets an environment variable within the container. This tells Eigenfocus what its public-facing URL is, which is important for certain internal functionalities and links. Remember to changelocalhost
to your server’s actual IP address or domain name if accessing remotely.-d
: Runs the container in “detached” mode, meaning it runs in the background.eigenfocus/eigenfocus:1.0.0-free
: Specifies the Docker image to pull and run.eigenfocus/eigenfocus
is the repository, and1.0.0-free
is the specific tag for the free edition.
Option 2: Robust Deployment with Docker Compose (Recommended)
For more robust deployments, especially if you plan to manage multiple services or ensure easier updates and configuration, docker compose
is the preferred method.
It allows you to define your service in a human-readable YAML
file.
First, create a docker-compose.yml
file in your desired directory:
#version: '3.8'
services:
eigenfocus:
image: eigenfocus/eigenfocus:1.0.0-free
container_name: eigenfocus
restart: unless-stopped
ports:
- "3001:3000" # Host_Port:Container_Port
environment:
- DEFAULT_HOST_URL=http://localhost:3001 # IMPORTANT: Change localhost to your server's IP or domain
volumes:
- eigenfocus_data:/eigenfocus-app/app-data # Use a named volume for persistence
volumes:
eigenfocus_data:
# Optional: If you want to specify a driver or custom options for the volume,
# you can do so here. Otherwise, a default local volume will be created.
Explanation of the docker-compose.yml
:
version: '3.8'
: Specifies the Docker Compose file format version.services:
: Defines the different services (containers) that make up your application.eigenfocus:
: The name of your service.image: eigenfocus/eigenfocus:1.0.0-free
: The Docker image to use.container_name: eigenfocus
: Assigns a specific name to the running container.restart: unless-stopped
: Same as indocker run
.ports:
: Maps the host port to the container port.environment:
: Sets environment variables for the container. Remember to updateDEFAULT_HOST_URL
with your actual server IP or domain!volumes:
: This is where named volumes come in.eigenfocus_data:/eigenfocus-app/app-data
: This mounts the named volumeeigenfocus_data
to the/eigenfocus-app/app-data
directory inside the container.
volumes:
: Defines the named volumes used by your services.eigenfocus_data:
: This line declares a named volume. Docker will manage its creation and storage location (typically in/var/lib/docker/volumes/
on Linux). Named volumes are the recommended way to persist data in Docker as they are easier to manage and back up than bind mounts for application data.
To start Eigenfocus using this docker-compose.yml
file, navigate to the directory where you saved the file and run:
docker compose up -d
To stop it:
docker compose down
After Deployment
Once Eigenfocus is running, open your web browser and navigate to the address you configured (e.g., http://your-server-ip:3001
).
Final Thoughts
Eigenfocus offers a compelling solution for individuals and teams seeking an integrated project, time, and focus management tool with the critical benefit of self-hosting.
By deploying Eigenfocus with Docker, you gain complete control over your data and infrastructure, aligning perfectly with the self-hosting ethos.
Dive in, manage your projects, track your time, and enhance your focus—all on your terms.