feat(doc): Describe auto start of syncthing
[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
54 $ sudo systemctl start syncthing@baltakatei.service
55
56The status of the new system service can be verified via:
57
58 $ systemctl status syncthing@baltakatei.service
59
60#### 2.2.b. Enable automatic startup via `systemd` upon login (user service).
61
62For a user service, identify which user under which to run
63`syncthing`. In this example, `baltakatei` will be the user. This
64means an appropriate directory for a `syncthing` shared folder would
65be `/home/baltakatei/Sync/`.
66
67The commands to create a `systemd` user service under user
68`baltakatei` are:
69
70 $ systemctl --user enable syncthing.service
71 $ systemctl --user start syncthing.service
72
73The status of the new user service can be verified via:
74
75 $ systemctl --user status syncthing.service
76
77## 3. References
78- <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.
79
80[1]: https://docs.syncthing.net/users/autostart.html
81[bktei_2020_homepage]: http://baltakatei.com
82[cc_20131125_bysa]: http://creativecommons.org/licenses/by-sa/4.0/
83
84
85<hr>
86<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>