feat(doc): Describe auto start of syncthing
[BK-2020-03.git] / config-shared / syncthing / INSTRUCTIONS.md
1 <!DOCTYPE html>
2 <meta charset="utf-8">
3
4 # Install and configure `syncthing`
5
6 Created 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
10 Syncthing is a decentralized file-synchronization program that permits
11 sharing of files over the Internet with computers that have been
12 configured to trust one another.
13
14 ## 2. Instructions
15
16 The following are instructions for installing Syncthing onto a GNU/Linux Debian 10 machine.
17
18 ### 2.1. Install `syncthing` via `apt-get`
19
20 Update the local repository package lists with `$ sudo apt-get update`.
21
22 Install the `syncthing` package with `$ sudo apt-get install syncthing`.
23
24 Note: 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
28 Syncthing can be started automatically via `systemd` as a system
29 service upon boot or a user service upon login. If `syncthing` was
30 installed from the Debian 10 repository (ex: via `apt-get`), then the
31 necessary service files (ex: `syncthing@.service` ) should already be
32 installed. If not, see the detailed autostart instructions for where
33 to download a copy of the service
34 files.<sup>[[1]](#syncthing_20200331_autostart)</sup>
35
36 #### 2.2.a. Enable automatic startup via `systemd` upon boot (system service).
37
38 For a system service, identify the user under which to run
39 `syncthing`. Even though `syncthing` will be run upon startup (without
40 needing 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
43 a `syncthing` shared folder would be `/home/baltakatei/Sync/`.
44
45 Alternatively, if `syncthing` were running as a headless server where
46 no user is expected to directly modify files in the server's file
47 system, then a dedicated dummy user named `syncthing-user` might be
48 appropriate.
49
50 The 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
56 The 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
62 For a user service, identify which user under which to run
63 `syncthing`. In this example, `baltakatei` will be the user. This
64 means an appropriate directory for a `syncthing` shared folder would
65 be `/home/baltakatei/Sync/`.
66
67 The 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
73 The 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>