matx64/synche

systemd user unit + install script

开放

#25 创建于 2026年5月27日

 (0 条评论) (0 个反应) (0 位负责人)Rust (1 个派生)auto 404
enhancementgood first issue

仓库指标

星标
 (0 个星标)
PR 合并指标
 (PR 指标待抓取)

描述

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)

贡献者指南