matx64/synche

systemd user unit + install script

Open

#25 opened on May 27, 2026

View on GitHub
 (0 comments) (0 reactions) (0 assignees)Rust (1 fork)auto 404
enhancementgood first issue

Repository metrics

Stars
 (0 stars)
PR merge metrics
 (PR metrics pending)

Description

Goal

Today there's no story for running Synche as a background service across reboots. Users have to keep a terminal open or write their own service file.

Ship a systemd user unit and a small install script so a Linux user can do ''one command, then it's just always running''.

Requirements

  • New file packaging/systemd/synche.service — a user-level unit (not system-wide), roughly:
    • ExecStart=%h/.local/bin/synche
    • Restart=on-failure
    • RestartSec=5
    • Reasonable journald logging settings
    • Sane hardening defaults (ProtectSystem, ProtectHome set conservatively given Synche needs to read/write the home path)
  • New file packaging/install.sh — a short, idempotent shell script that:
    • Verifies a synche binary is on PATH (or accepts a --binary <path> argument and copies it to ~/.local/bin/)
    • Drops the unit into ~/.config/systemd/user/synche.service
    • Runs systemctl --user daemon-reload && systemctl --user enable --now synche.service
    • Prints next steps (GUI URL, where logs live)
  • Document the install flow in docs/ (either expand EXAMPLE.md or add a docs/INSTALL.md).

Out of scope

  • System-wide (root) units
  • macOS launchd / Windows service equivalents (separate issues)
  • Auto-update logic

Acceptance criteria

  • Running packaging/install.sh on a stock Ubuntu/Fedora installs and starts the service
  • systemctl --user status synche shows it as running
  • Killing the process triggers a restart within 10s
  • Re-running the script is idempotent (no errors on second run)

Contributor guide