feat(doc): Add example systemctl status messages
[BK-2020-03.git] / config-shared / syncthing / INSTRUCTIONS.md
CommitLineData
045f579a
SBS
1<!DOCTYPE html>
2<meta charset="utf-8">
3
4# Install and configure `syncthing`
5
6Created by [Steven Baltakatei Sandoval][bktei_2020_homepage] on 2020-04-27T14:37Z under a [CC BY-SA 4.0][cc_20131125_bysa] license and last updated on 2020-04-27T16:28Z.
7
8## 1. Summary
9
10Syncthing is a decentralized file-synchronization program that permits
11sharing of files over the Internet with computers that have been
12configured to trust one another.
13
14## 2. Instructions
15
16The following are instructions for installing Syncthing onto a GNU/Linux Debian 10 machine.
17
18### 2.1. Install `syncthing` via `apt-get`
19
20Update the local repository package lists with `$ sudo apt-get update`.
21
22Install the `syncthing` package with `$ sudo apt-get install syncthing`.
23
24Note: As of 2020-04-27, Debian 10 Buster uses Syncthing version `1.0.0`.
25
26### 2.2. Enable automatic startup via `systemd` service.
27
28Syncthing can be started automatically via `systemd` as a system
29service upon boot or a user service upon login. If `syncthing` was
30installed from the Debian 10 repository (ex: via `apt-get`), then the
31necessary service files (ex: `syncthing@.service` ) should already be
32installed. If not, see the detailed autostart instructions for where
33to download a copy of the service
34files.<sup>[[1]](#syncthing_20200331_autostart)</sup>
35
36#### 2.2.a. Enable automatic startup via `systemd` upon boot (system service).
37
38For a system service, identify the user under which to run
39`syncthing`. Even though `syncthing` will be run upon startup (without
40needing a user to login first), files cannot be created or modified by
41`syncthing` with permissions of a specified user. In this example,
42`baltakatei` will be the user. This means an appropriate directory for
43a `syncthing` shared folder would be `/home/baltakatei/Sync/`.
44
45Alternatively, if `syncthing` were running as a headless server where
46no user is expected to directly modify files in the server's file
47system, then a dedicated dummy user named `syncthing-user` might be
48appropriate.
49
50The commands to create a `systemd` system service under user
51`baltakatei` are:
52
53 $ sudo systemctl enable syncthing@baltakatei.service
71687450 54 $ sudo systemctl start syncthing@baltakatei.service
55
56The following notifications may appear while running these commands:
57
58 $ systemctl enable syncthing@baltakatei.service
59 Created symlink /etc/systemd/system/multi-user.target.wants/syncthing@baltakatei.service → /lib/systemd/system/syncthing@.service.
045f579a
SBS
60
61The status of the new system service can be verified via:
62
63 $ systemctl status syncthing@baltakatei.service
64
71687450 65The resulting status data will resemble:
66
67 $ systemctl status syncthing@baltakatei.service
68 ● syncthing@baltakatei.service - Syncthing - Open Source Continuous File Synchronization for baltakatei
69 Loaded: loaded (/lib/systemd/system/syncthing@.service; enabled; vendor preset: enabled)
70 Active: active (running) since Mon 2020-04-27 09:01:00 PDT; 3min 34s ago
71 Docs: man:syncthing(1)
72 Main PID: 2799 (syncthing)
73 Tasks: 23 (limit: 1132)
74 Memory: 45.3M
75 CGroup: /system.slice/system-syncthing.slice/syncthing@baltakatei.service
76 └─2799 /usr/bin/syncthing -no-browser -no-restart -logflags=0
77
045f579a
SBS
78#### 2.2.b. Enable automatic startup via `systemd` upon login (user service).
79
80For a user service, identify which user under which to run
81`syncthing`. In this example, `baltakatei` will be the user. This
82means an appropriate directory for a `syncthing` shared folder would
83be `/home/baltakatei/Sync/`.
84
85The commands to create a `systemd` user service under user
86`baltakatei` are:
87
88 $ systemctl --user enable syncthing.service
89 $ systemctl --user start syncthing.service
90
91The status of the new user service can be verified via:
92
93 $ systemctl --user status syncthing.service
94
95## 3. References
96- <a name="syncthing_20200331_autostart">1.</a> ["Starting Syncthing Automatically"][1]. Date: 2020-03-31. [syncthing.net](https://syncthing.net). Date Accessed: 2020-04-27. [Archive link](https://web.archive.org/web/20200414114635/https://docs.syncthing.net/users/autostart.html). Archive date: 2017-04-14.
97
98[1]: https://docs.syncthing.net/users/autostart.html
99[bktei_2020_homepage]: http://baltakatei.com
100[cc_20131125_bysa]: http://creativecommons.org/licenses/by-sa/4.0/
101
102
103<hr>
104<p xmlns:dct="http://purl.org/dc/terms/" xmlns:cc="http://creativecommons.org/ns#">This work by <a rel="cc:attributionURL" href="http://baltakatei.com"><span rel="cc:attributionName">Steven Baltakatei Sandoval</span></a> is licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/?ref=ccchooser" target="_blank" rel="license noopener noreferrer" style="display: inline-block;">CC BY-SA 4.0</a><a href="https://creativecommons.org/licenses/by-sa/4.0/?ref=ccchooser"><img style="height:22px!important;margin-left: 3px;vertical-align:text-bottom;opacity:0.7;" src="https://search.creativecommons.org/static/img/cc_icon.svg" /><img style="height:22px!important;margin-left: 3px;vertical-align:text-bottom;opacity:0.7;" src="https://search.creativecommons.org/static/img/cc-by_icon.svg" /><img style="height:22px!important;margin-left: 3px;vertical-align:text-bottom;opacity:0.7;" src="https://search.creativecommons.org/static/img/cc-sa_icon.svg" /></a></p>