Eventum Logo

Eventum

$ eventum service

Install, uninstall, and check status of Eventum as a systemd service.

Manages Eventum as a systemd service. This command group handles the full lifecycle — creating directories, generating default configs, installing a systemd unit file, and tearing everything down. Designed for production deployments where Eventum should start on boot and run continuously via eventum run.

eventum service <command> [OPTIONS]

Mode detection

Eventum automatically picks system or user mode based on who runs the command:

ContextModeConfig dirLog dirUnit file
Running as rootSystem/etc/eventum//var/log/eventum//etc/systemd/system/eventum.service
Running as non-rootUser~/.config/eventum/~/.local/state/eventum/logs/~/.config/systemd/user/eventum.service
Root with --userUser(same as above)(same as above)(same as above)

The --user flag forces user mode even when running as root.

Commands

install

Creates directories, generates default configuration files, and installs a systemd unit.

eventum service install [--config-dir <path>] [--log-dir <path>] [--user] [--no-ask]
OptionTypeDefaultDescription
--config-dirpathSee mode detectionDirectory for configuration files.
--log-dirpathSee mode detectionDirectory for log files.
--userflagfalseInstall as a user service even when running as root.
--no-askflagfalseSkip all prompts — use defaults and proceed without confirmation.

When --config-dir or --log-dir are omitted and --no-ask is not set, the installer prompts for each directory with the default pre-filled.

What it creates:

PathContents
<config-dir>/Configuration directory
<config-dir>/generators/Generator configs (referenced by startup.yml)
<config-dir>/eventum.ymlMain config with sensible defaults — see generated config
<config-dir>/startup.ymlEmpty generator list ([])
<config-dir>/cryptfile.cfgEmpty keyring cryptfile
<log-dir>/Log directory
Unit filesystemd service unit

Existing files are never overwritten. If eventum.yml or startup.yml already exist, they are preserved and a message is printed.

After installation, the service is not started automatically. Follow the printed next steps to enable and start it.

Interactive example:

$ eventum service install
Configuration directory [/etc/eventum]:
Log directory [/var/log/eventum]:

Eventum service will be installed with the following settings:
  Mode:       system
  Binary:     /usr/local/bin/eventum
  Config dir: /etc/eventum
  Log dir:    /var/log/eventum
  Unit file:  /etc/systemd/system/eventum.service

Proceed? [Y/n]: y
Created /etc/eventum/
Created /etc/eventum/generators/
Created /var/log/eventum/
Generated /etc/eventum/eventum.yml
Generated /etc/eventum/startup.yml
Created /etc/eventum/cryptfile.cfg
Installed /etc/systemd/system/eventum.service
Reloaded systemd daemon

Done! Next steps:
  1. Review configuration:  cat /etc/eventum/eventum.yml
  2. Enable on boot:        sudo systemctl enable eventum
  3. Start the service:     sudo systemctl start eventum
  4. Check status:          eventum service status

Non-interactive (scripted):

sudo eventum service install \
  --config-dir /opt/eventum/config \
  --log-dir /opt/eventum/logs \
  --no-ask

uninstall

Stops the service, removes the systemd unit file, and optionally purges configuration and log directories.

eventum service uninstall [--user] [--purge]
OptionTypeDefaultDescription
--userflagfalseUninstall the user service even when running as root.
--purgeflagfalseAlso remove configuration and log directories (prompts for confirmation).

Without --purge, configuration files are preserved and a hint is printed showing how to remove them later.

$ sudo eventum service uninstall
Stopping eventum service...
Disabling eventum service...
Removed /etc/systemd/system/eventum.service
Reloaded systemd daemon

Done!
Configuration files preserved in /etc/eventum/
To also remove configuration and logs, run:
  sudo eventum service uninstall --purge

With --purge, each directory is confirmed individually:

$ sudo eventum service uninstall --purge
Stopping eventum service...
Disabling eventum service...
Removed /etc/systemd/system/eventum.service
Reloaded systemd daemon
Remove configuration directory /etc/eventum/ and all its contents? [y/N]: y
Removed /etc/eventum/
Remove log directory /var/log/eventum/ and all its contents? [y/N]: y
Removed /var/log/eventum/

Done!

status

Shows the current state of the Eventum service.

eventum service status [--user]
OptionTypeDefaultDescription
--userflagfalseCheck the user service even when running as root.
$ eventum service status
Service:  installed
Unit:     /etc/systemd/system/eventum.service
State:    active (running)
Enabled:  yes
Config:   /etc/eventum/eventum.yml

If the service is not installed:

Service:  not installed

Generated config

The install command generates an eventum.yml with all required sections and sensible defaults:

eventum.yml
# Eventum Configuration
# Generated by: eventum service install
# Full reference: https://eventum.run/docs/configuration

server.ui_enabled: true
server.api_enabled: true
server.host: 0.0.0.0
server.port: 9474
server.auth.user: eventum
server.auth.password: eventum
generation.timezone: UTC
log.level: info
log.format: plain
path.logs: /var/log/eventum
path.startup: /etc/eventum/startup.yml
path.generators_dir: /etc/eventum/generators
path.keyring_cryptfile: /etc/eventum/cryptfile.cfg

The default credentials (eventum/eventum) are for initial setup only. Change server.auth.user and server.auth.password before exposing the server to a network.

Path values are resolved to absolute paths based on the directories chosen during installation. The config uses dot notation which Eventum expands to nested YAML at load time.

Systemd unit

The generated unit file runs eventum run -c <config-path> as a Type=simple service:

  • Restart on failure with a 5-second delay
  • Hot reload via systemctl reload eventum (sends SIGHUP — see signal handling)
  • Journal logging — view with journalctl -u eventum

Standard systemd commands work as expected:

# Start / stop / restart
sudo systemctl start eventum
sudo systemctl stop eventum
sudo systemctl restart eventum

# Hot reload (re-reads config without downtime)
sudo systemctl reload eventum

# Enable on boot
sudo systemctl enable eventum

# View logs
journalctl -u eventum -f

For user services, add --user and drop sudo:

systemctl --user start eventum
journalctl --user -u eventum -f

Exit codes

CodeMeaning
0Command completed successfully.
1Error — service not installed, permission denied, systemd not available, or other failure.

On this page