• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/H03-Aug-2021-10980

assets/statusicons/H03-May-2022-

cmd/H03-Aug-2021-13,76610,892

etc/H03-Aug-2021-454312

gui/H03-Aug-2021-27,41327,078

lib/H03-Aug-2021-113,89291,553

man/H03-Aug-2021-8,8778,665

meta/H03-May-2022-240178

next-gen-gui/H03-May-2022-42,25541,404

proto/H03-Aug-2021-1,5041,199

script/H03-Aug-2021-2,8412,340

test/H03-Aug-2021-4,9113,646

vendor/H03-May-2022-569,157452,264

.codecov.ymlH A D03-Aug-2021278 2117

.deepsource.tomlH A D03-Aug-2021216 139

.gitattributesH A D03-Aug-2021200 96

.gitignoreH A D03-Aug-2021246 2322

.golangci.ymlH A D03-Aug-2021440 2724

AUTHORSH A D03-Aug-202113.5 KiB279277

CONDUCT.mdH A D03-Aug-20213.2 KiB7455

CONTRIBUTING.mdH A D03-Aug-20212.1 KiB6442

DockerfileH A D03-Aug-2021718 3019

Dockerfile.builderH A D03-Aug-2021284 108

Dockerfile.buildxH A D03-Aug-2021499 2012

Dockerfile.stdiscosrvH A D03-Aug-2021654 3019

Dockerfile.strelaysrvH A D03-Aug-2021656 3019

GOALS.mdH A D03-Aug-20213.4 KiB8459

LICENSEH A D03-Aug-202116.3 KiB374293

README-Docker.mdH A D03-Aug-20212.5 KiB8569

README.mdH A D03-Aug-20214.6 KiB11677

RELEASEH A D03-Aug-20218 21

build.goH A D03-Aug-202139.7 KiB1,4651,201

build.ps1H A D03-Aug-2021264 2117

build.shH A D03-Aug-2021486 3628

go.modH A D03-Aug-20212.4 KiB5855

go.sumH A D03-Aug-202169 KiB707706

tools.goH A D03-Aug-2021411 157

README-Docker.md

1# Docker Container for Syncthing
2
3Use the Dockerfile in this repo, or pull the `syncthing/syncthing` image
4from Docker Hub.
5
6Use the `/var/syncthing` volume to have the synchronized files available on the
7host. You can add more folders and map them as you prefer.
8
9Note that Syncthing runs as UID 1000 and GID 1000 by default. These may be
10altered with the ``PUID`` and ``PGID`` environment variables. In addition
11the name of the Syncthing instance can be optionally defined by using
12``--hostname=syncthing`` parameter.
13
14## Example Usage
15
16**Docker cli**
17```
18$ docker pull syncthing/syncthing
19$ docker run -p 8384:8384 -p 22000:22000/tcp -p 22000:22000/udp \
20    -v /wherever/st-sync:/var/syncthing \
21    --hostname=my-syncthing \
22    syncthing/syncthing:latest
23```
24
25**Docker compose**
26```
27---
28version: "3"
29services:
30  syncthing:
31    image: syncthing/syncthing
32    container_name: syncthing
33    hostname: my-syncthing
34    environment:
35      - PUID=1000
36      - PGID=1000
37    volumes:
38      - /wherever/st-sync:/var/syncthing
39    ports:
40      - 8384:8384
41      - 22000:22000/tcp
42      - 22000:22000/udp
43    restart: unless-stopped
44```
45
46## Discovery
47
48Note that local device discovery will not work with the above command,
49resulting in poor local transfer rates if local device addresses are not
50manually configured.
51
52To allow local discovery, the docker host network can be used instead:
53
54```
55$ docker pull syncthing/syncthing
56$ docker run --network=host \
57    -v /wherever/st-sync:/var/syncthing \
58    syncthing/syncthing:latest
59```
60
61Be aware that syncthing alone is now in control of what interfaces and ports it
62listens on. You can edit the syncthing configuration to change the defaults if
63there are conflicts.
64
65## GUI Security
66
67By default Syncthing inside the Docker image listens on 0.0.0.0:8384 to
68allow GUI connections via the Docker proxy. This is set by the
69`STGUIADDRESS` environment variable in the Dockerfile, as it differs from
70what Syncthing would otherwise use by default. This means you should set up
71authentication in the GUI, like for any other externally reachable Syncthing
72instance. If you do not require the GUI, or you use host networking, you can
73unset the `STGUIADDRESS` variable to have Syncthing fall back to listening
74on 127.0.0.1:
75
76```
77$ docker pull syncthing/syncthing
78$ docker run -e STGUIADDRESS= \
79    -v /wherever/st-sync:/var/syncthing \
80    syncthing/syncthing:latest
81```
82
83With the environment variable unset Syncthing will follow what is set in the
84configuration file / GUI settings dialog.
85

README.md

1[![Syncthing][14]][15]
2
3---
4
5[![Latest Linux & Cross Build](https://img.shields.io/teamcity/https/build.syncthing.net/s/Syncthing_BuildLinuxCross.svg?style=flat-square&label=linux+%26+cross+build)](https://build.syncthing.net/viewType.html?buildTypeId=Syncthing_BuildLinuxCross&guest=1)
6[![Latest Windows Build](https://img.shields.io/teamcity/https/build.syncthing.net/s/Syncthing_BuildWindows.svg?style=flat-square&label=windows+build)](https://build.syncthing.net/viewType.html?buildTypeId=Syncthing_BuildWindows&guest=1)
7[![Latest Mac Build](https://img.shields.io/teamcity/https/build.syncthing.net/s/Syncthing_BuildMac.svg?style=flat-square&label=mac+build)](https://build.syncthing.net/viewType.html?buildTypeId=Syncthing_BuildMac&guest=1)
8[![MPLv2 License](https://img.shields.io/badge/license-MPLv2-blue.svg?style=flat-square)](https://www.mozilla.org/MPL/2.0/)
9[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/88/badge)](https://bestpractices.coreinfrastructure.org/projects/88)
10[![Go Report Card](https://goreportcard.com/badge/github.com/syncthing/syncthing)](https://goreportcard.com/report/github.com/syncthing/syncthing)
11
12## Goals
13
14Syncthing is a **continuous file synchronization program**. It synchronizes
15files between two or more computers. We strive to fulfill the goals below.
16The goals are listed in order of importance, the most important one being
17the first. This is the summary version of the goal list - for more
18commentary, see the full [Goals document][13].
19
20Syncthing should be:
21
221. **Safe From Data Loss**
23
24   Protecting the user's data is paramount. We take every reasonable
25   precaution to avoid corrupting the user's files.
26
272. **Secure Against Attackers**
28
29   Again, protecting the user's data is paramount. Regardless of our other
30   goals we must never allow the user's data to be susceptible to
31   eavesdropping or modification by unauthorized parties.
32
333. **Easy to Use**
34
35   Syncthing should be approachable, understandable and inclusive.
36
374. **Automatic**
38
39   User interaction should be required only when absolutely necessary.
40
415. **Universally Available**
42
43   Syncthing should run on every common computer. We are mindful that the
44   latest technology is not always available to any given individual.
45
466. **For Individuals**
47
48   Syncthing is primarily about empowering the individual user with safe,
49   secure and easy to use file synchronization.
50
517. **Everything Else**
52
53   There are many things we care about that don't make it on to the list. It
54   is fine to optimize for these values, as long as they are not in conflict
55   with the stated goals above.
56
57## Getting Started
58
59Take a look at the [getting started guide][2].
60
61There are a few examples for keeping Syncthing running in the background
62on your system in [the etc directory][3]. There are also several [GUI
63implementations][11] for Windows, Mac and Linux.
64
65## Docker
66
67To run Syncthing in Docker, see [the Docker README][16].
68
69## Vote on features/bugs
70
71We'd like to encourage you to [vote][12] on issues that matter to you.
72This helps the team understand what are the biggest pain points for our users, and could potentially influence what is being worked on next.
73
74## Getting in Touch
75
76The first and best point of contact is the [Forum][8].
77If you've found something that is clearly a
78bug, feel free to report it in the [GitHub issue tracker][10].
79
80## Building
81
82Building Syncthing from source is easy, and there's [a guide][5]
83that describes it for both Unix and Windows systems.
84
85## Signed Releases
86
87As of v0.10.15 and onwards release binaries are GPG signed with the key
88D26E6ED000654A3E, available from https://syncthing.net/security.html and
89most key servers.
90
91There is also a built in automatic upgrade mechanism (disabled in some
92distribution channels) which uses a compiled in ECDSA signature. macOS
93binaries are also properly code signed.
94
95## Documentation
96
97Please see the [Syncthing documentation site][6].
98
99All code is licensed under the [MPLv2 License][7].
100
101[1]: https://docs.syncthing.net/specs/bep-v1.html
102[2]: https://docs.syncthing.net/intro/getting-started.html
103[3]: https://github.com/syncthing/syncthing/blob/main/etc
104[5]: https://docs.syncthing.net/dev/building.html
105[6]: https://docs.syncthing.net/
106[7]: https://github.com/syncthing/syncthing/blob/main/LICENSE
107[8]: https://forum.syncthing.net/
108[10]: https://github.com/syncthing/syncthing/issues
109[11]: https://docs.syncthing.net/users/contrib.html#gui-wrappers
110[12]: https://www.bountysource.com/teams/syncthing/issues
111[13]: https://github.com/syncthing/syncthing/blob/main/GOALS.md
112[14]: assets/logo-text-128.png
113[15]: https://syncthing.net/
114[16]: https://github.com/syncthing/syncthing/blob/main/README-Docker.md
115
116