matx64 / matx64/synche

systemd user unit + install script

Open
#25 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement good first issue
Dominant language
Rust
Stars
0
Forks
1
PR merge metrics
No merged PRs in 30d

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the requirements for packaging/systemd/synche.service and packaging/install.sh, then inspect the existing binary's expected path and the documentation in docs/ or EXAMPLE.md. Verify the script on stock Ubuntu or Fedora, including a --binary path, user-unit startup, restart behavior, and a second idempotent run. Done means the service runs, restarts within 10 seconds, and the install flow documents the GUI URL and logs.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, rust, shell
Domain
devops, infrastructure, operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.