Commands, logs, and files
last updated at: 1 Oct 2026
Everything you do with Eigen on the server goes through ./eigen in the install folder. ./eigen help lists the commands, and ./eigen <command> --help tells more about one.
Commands
| Command | What it does |
|---|---|
./eigen setup |
Asks the setup questions, starts Eigen, and prints the link that finishes the setup. Run it again to change an answer. |
./eigen status |
Shows the version, a waiting update, the services, disk space, the newest backup, the certificate, and the mail queue |
./eigen logs [service] |
Follows the logs of every service, or of one. Ctrl-C stops it. |
./eigen restart |
Starts Eigen, and any part of it that stopped |
./eigen stop |
Stops Eigen. ./eigen restart starts it again. |
./eigen update |
Installs a new release. See Update Eigen. |
./eigen rollback |
Goes back to the version before the last update |
./eigen backup |
Backs up the whole server into backups/ while Eigen runs. Its exit code tells a script whether the backup verified and reached the bucket. Eigen keeps these backups until you delete them; for a backup every night, turn on the nightly backup instead. See Back up now. |
./eigen restore <backup> |
Puts a whole-server backup back, on this server or a new one |
./eigen reset-password <email> |
Sets a new password for an account. See Reset a password from the server. |
./eigen runs one command that changes Eigen at a time, like an update, a rollback, or a restore. A second one stops with "Another ./eigen command is running." ./eigen backup does not count: it changes nothing, and runs on the running server.
Status
./eigen status also names the install folder, and the newest backup with its age and size. The Backup row turns red when the last nightly backup failed. It warns when the last backup has warnings, when that backup did not reach your backup bucket, when there is no backup yet, and when nightly backups are on but no Full backup has verified in two days. An update that stopped halfway shows as files of <new version>, running <old version>, and ./eigen update finishes it.
Logs
./eigen logs follows the last lines of every service and keeps going. ./eigen logs eigen-api shows only the server itself. The services are:
| Service | What it is | Runs when |
|---|---|---|
eigen-api |
The Eigen server | Always |
caddy |
Eigen's own web server, with HTTPS | Eigen handles HTTPS |
eigen-static |
The web pages, for your own web server to forward to | Your web server forwards to Eigen |
postfix |
Mail in and out | Eigen hosts your mail |
dovecot |
IMAP, for mail apps | Eigen hosts your mail |
unbound |
Looks up other mail servers | Eigen hosts your mail |
Docker keeps three log files of 10 MB for each service, and ten of 50 MB for postfix and dovecot, so a run of password guessing is still there when you look.
When a step of ./eigen fails, it shows the last lines of its output. The full output is in .eigen/last-step.log.
Where things live
Everything is in the install folder, like /opt/eigen:
| Path | What it holds |
|---|---|
eigen |
The eigen command |
.env.production |
Your setup answers and the version you run. Its owner can read it, and so can Eigen, through group 1000, so the backup can take it along. |
.env.example |
Every setting, with a comment on each |
docker-compose.yml |
Which services run. An update rewrites it. |
docker-compose.override.yml |
Your own Compose settings, if you made one. An update leaves it alone. |
data/home/, data/team/, data/org/ |
Every user's, team's, and organization's files, mail, calendars, and contacts |
data/guest/ |
The workspaces of guests, people who sign in with a code. A backup leaves them out: after a restore of a Full backup, a guest keeps their account and starts with an empty workspace. A restore of a Light backup leaves them as they are. |
data/server/ |
The accounts, the server settings, and the organization |
data/dkim/ |
The key that signs outgoing mail |
data/certs/ |
The certificate of the mail server |
backups/ |
Whole-server backups, and backups of single users and teams made in Admin |
snapshots/ |
The snapshots Eigen 0.3.0 made, by ./eigen backup and by the update from 0.3.0. Only Eigen 0.3.0 restores them. See Update Eigen. |
caddy-data/ |
The HTTPS certificates of Eigen's own web server |
eigen.nginx.conf, eigen.apache.conf, eigen.Caddyfile |
Settings for your own web server, when it forwards to Eigen |
docker/fail2ban/ |
Rules for fail2ban, when you host mail |
scripts/ |
The hourly reset of a demo server. A normal install does not use it. |
.eigen/ |
The command's own notes, like last-step.log |
Mail still waiting to go out is the one thing outside the folder. Docker keeps it in a volume of its own.