Systemd Services & Timers#
Immutablue includes several systemd services and timers for system automation.
System Services#
| Service | Description |
|---|---|
immutablue-first-boot.service | Runs first-boot setup wizard |
immutablue-onboot.service | Runs on-boot scripts |
immutablue-hourly.service | Hourly maintenance scripts |
immutablue-daily.service | Daily maintenance scripts |
immutablue-weekly.service | Weekly maintenance scripts |
immutablue-monthly.service | Monthly maintenance scripts |
lima-guest-ready.service | Lima VM guest agent |
System Timers#
| Timer | Schedule | Triggers |
|---|---|---|
immutablue-hourly.timer | Every hour | immutablue-hourly.service |
immutablue-daily.timer | Daily | immutablue-daily.service |
immutablue-weekly.timer | Weekly | immutablue-weekly.service |
immutablue-monthly.timer | Monthly | immutablue-monthly.service |
User Services#
| Service | Description |
|---|---|
immutablue-first-login.service | First-login user setup |
immutablue-onboot.service | User on-login scripts |
syncthing-override.service | Syncthing with Tailscale integration |
User Timers#
| Timer | Schedule | Triggers |
|---|---|---|
immutablue-hourly.timer | Every hour | immutablue-hourly.service |
immutablue-daily.timer | Daily | immutablue-daily.service |
immutablue-weekly.timer | Weekly | immutablue-weekly.service |
immutablue-monthly.timer | Monthly | immutablue-monthly.service |
Managing Services#
Check service status#
# System service
systemctl status immutablue-onboot.service
# User service
systemctl --user status syncthing-override.serviceList all timers#
# System timers
systemctl list-timers --all | grep immutablue
# User timers
systemctl --user list-timers | grep immutablueView service logs#
# System service logs
journalctl -u immutablue-daily.service
# User service logs
journalctl --user -u immutablue-daily.service
# Follow logs in real-time
journalctl -u immutablue-weekly.service -fManually trigger a service#
# Run daily maintenance now
sudo systemctl start immutablue-daily.service
# Run user weekly maintenance now
systemctl --user start immutablue-weekly.serviceFirst Boot Service#
The immutablue-first-boot.service runs once after installation to:
- Display the graphical setup wizard (if enabled)
- Run first-boot scripts
- Mark first-boot as complete
Re-running First Boot#
To re-run the first boot setup:
immutablue initial_setupOr to fully reset first-boot state:
# Remove the completion marker
rm ~/.config/.immutablue_did_first_login
# Re-enable and reboot
sudo systemctl unmask immutablue-first-boot.service
sudo rebootSyncthing Override Service#
The syncthing-override.service wraps Syncthing with Tailscale integration:
- Detects Tailscale IP if available
- Configures Syncthing to listen on Tailscale interface
- Falls back to standard binding if Tailscale unavailable
Configuration:
# settings.yaml
services:
syncthing:
tailscale_mode: true # Enable Tailscale integrationQuadlet Container Services#
Immutablue uses Podman Quadlet for containerized services:
immutablue-docs.container#
Runs the documentation server:
# Check status
systemctl --user status immutablue-docs.service
# View at http://localhost:1313Disabling Services#
# Disable a system timer
sudo systemctl disable immutablue-weekly.timer
# Disable a user service
systemctl --user disable syncthing-override.service