mirror of
https://github.com/octoleo/syncthing.git
synced 2024-12-22 10:58:57 +00:00
This commit is contained in:
parent
edf2399ce6
commit
7b37d453f9
20
build.go
20
build.go
@ -57,11 +57,13 @@ type target struct {
|
|||||||
name string
|
name string
|
||||||
debname string
|
debname string
|
||||||
debdeps []string
|
debdeps []string
|
||||||
|
debpre string
|
||||||
debpost string
|
debpost string
|
||||||
description string
|
description string
|
||||||
buildPkg string
|
buildPkg string
|
||||||
binaryName string
|
binaryName string
|
||||||
archiveFiles []archiveFile
|
archiveFiles []archiveFile
|
||||||
|
systemdServices []string
|
||||||
installationFiles []archiveFile
|
installationFiles []archiveFile
|
||||||
tags []string
|
tags []string
|
||||||
}
|
}
|
||||||
@ -128,6 +130,7 @@ var targets = map[string]target{
|
|||||||
name: "stdiscosrv",
|
name: "stdiscosrv",
|
||||||
debname: "syncthing-discosrv",
|
debname: "syncthing-discosrv",
|
||||||
debdeps: []string{"libc6"},
|
debdeps: []string{"libc6"},
|
||||||
|
debpre: "cmd/stdiscosrv/scripts/preinst",
|
||||||
description: "Syncthing Discovery Server",
|
description: "Syncthing Discovery Server",
|
||||||
buildPkg: "github.com/syncthing/syncthing/cmd/stdiscosrv",
|
buildPkg: "github.com/syncthing/syncthing/cmd/stdiscosrv",
|
||||||
binaryName: "stdiscosrv", // .exe will be added automatically for Windows builds
|
binaryName: "stdiscosrv", // .exe will be added automatically for Windows builds
|
||||||
@ -137,12 +140,17 @@ var targets = map[string]target{
|
|||||||
{src: "LICENSE", dst: "LICENSE.txt", perm: 0644},
|
{src: "LICENSE", dst: "LICENSE.txt", perm: 0644},
|
||||||
{src: "AUTHORS", dst: "AUTHORS.txt", perm: 0644},
|
{src: "AUTHORS", dst: "AUTHORS.txt", perm: 0644},
|
||||||
},
|
},
|
||||||
|
systemdServices: []string{
|
||||||
|
"cmd/stdiscosrv/etc/linux-systemd/stdiscosrv.service",
|
||||||
|
},
|
||||||
installationFiles: []archiveFile{
|
installationFiles: []archiveFile{
|
||||||
{src: "{{binary}}", dst: "deb/usr/bin/{{binary}}", perm: 0755},
|
{src: "{{binary}}", dst: "deb/usr/bin/{{binary}}", perm: 0755},
|
||||||
{src: "cmd/stdiscosrv/README.md", dst: "deb/usr/share/doc/syncthing-discosrv/README.txt", perm: 0644},
|
{src: "cmd/stdiscosrv/README.md", dst: "deb/usr/share/doc/syncthing-discosrv/README.txt", perm: 0644},
|
||||||
{src: "LICENSE", dst: "deb/usr/share/doc/syncthing-discosrv/LICENSE.txt", perm: 0644},
|
{src: "LICENSE", dst: "deb/usr/share/doc/syncthing-discosrv/LICENSE.txt", perm: 0644},
|
||||||
{src: "AUTHORS", dst: "deb/usr/share/doc/syncthing-discosrv/AUTHORS.txt", perm: 0644},
|
{src: "AUTHORS", dst: "deb/usr/share/doc/syncthing-discosrv/AUTHORS.txt", perm: 0644},
|
||||||
{src: "man/stdiscosrv.1", dst: "deb/usr/share/man/man1/stdiscosrv.1", perm: 0644},
|
{src: "man/stdiscosrv.1", dst: "deb/usr/share/man/man1/stdiscosrv.1", perm: 0644},
|
||||||
|
{src: "cmd/stdiscosrv/etc/linux-systemd/default", dst: "deb/etc/default/syncthing-discosrv", perm: 0644},
|
||||||
|
{src: "cmd/stdiscosrv/etc/firewall-ufw/stdiscosrv", dst: "deb/etc/ufw/applications.d/stdiscosrv", perm: 0644},
|
||||||
},
|
},
|
||||||
tags: []string{"purego"},
|
tags: []string{"purego"},
|
||||||
},
|
},
|
||||||
@ -150,6 +158,7 @@ var targets = map[string]target{
|
|||||||
name: "strelaysrv",
|
name: "strelaysrv",
|
||||||
debname: "syncthing-relaysrv",
|
debname: "syncthing-relaysrv",
|
||||||
debdeps: []string{"libc6"},
|
debdeps: []string{"libc6"},
|
||||||
|
debpre: "cmd/strelaysrv/scripts/preinst",
|
||||||
description: "Syncthing Relay Server",
|
description: "Syncthing Relay Server",
|
||||||
buildPkg: "github.com/syncthing/syncthing/cmd/strelaysrv",
|
buildPkg: "github.com/syncthing/syncthing/cmd/strelaysrv",
|
||||||
binaryName: "strelaysrv", // .exe will be added automatically for Windows builds
|
binaryName: "strelaysrv", // .exe will be added automatically for Windows builds
|
||||||
@ -160,6 +169,9 @@ var targets = map[string]target{
|
|||||||
{src: "LICENSE", dst: "LICENSE.txt", perm: 0644},
|
{src: "LICENSE", dst: "LICENSE.txt", perm: 0644},
|
||||||
{src: "AUTHORS", dst: "AUTHORS.txt", perm: 0644},
|
{src: "AUTHORS", dst: "AUTHORS.txt", perm: 0644},
|
||||||
},
|
},
|
||||||
|
systemdServices: []string{
|
||||||
|
"cmd/strelaysrv/etc/linux-systemd/strelaysrv.service",
|
||||||
|
},
|
||||||
installationFiles: []archiveFile{
|
installationFiles: []archiveFile{
|
||||||
{src: "{{binary}}", dst: "deb/usr/bin/{{binary}}", perm: 0755},
|
{src: "{{binary}}", dst: "deb/usr/bin/{{binary}}", perm: 0755},
|
||||||
{src: "cmd/strelaysrv/README.md", dst: "deb/usr/share/doc/syncthing-relaysrv/README.txt", perm: 0644},
|
{src: "cmd/strelaysrv/README.md", dst: "deb/usr/share/doc/syncthing-relaysrv/README.txt", perm: 0644},
|
||||||
@ -167,6 +179,8 @@ var targets = map[string]target{
|
|||||||
{src: "LICENSE", dst: "deb/usr/share/doc/syncthing-relaysrv/LICENSE.txt", perm: 0644},
|
{src: "LICENSE", dst: "deb/usr/share/doc/syncthing-relaysrv/LICENSE.txt", perm: 0644},
|
||||||
{src: "AUTHORS", dst: "deb/usr/share/doc/syncthing-relaysrv/AUTHORS.txt", perm: 0644},
|
{src: "AUTHORS", dst: "deb/usr/share/doc/syncthing-relaysrv/AUTHORS.txt", perm: 0644},
|
||||||
{src: "man/strelaysrv.1", dst: "deb/usr/share/man/man1/strelaysrv.1", perm: 0644},
|
{src: "man/strelaysrv.1", dst: "deb/usr/share/man/man1/strelaysrv.1", perm: 0644},
|
||||||
|
{src: "cmd/strelaysrv/etc/linux-systemd/default", dst: "deb/etc/default/syncthing-relaysrv", perm: 0644},
|
||||||
|
{src: "cmd/strelaysrv/etc/firewall-ufw/strelaysrv", dst: "deb/etc/ufw/applications.d/strelaysrv", perm: 0644},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"strelaypoolsrv": {
|
"strelaypoolsrv": {
|
||||||
@ -555,9 +569,15 @@ func buildDeb(target target) {
|
|||||||
for _, dep := range target.debdeps {
|
for _, dep := range target.debdeps {
|
||||||
args = append(args, "-d", dep)
|
args = append(args, "-d", dep)
|
||||||
}
|
}
|
||||||
|
for _, service := range target.systemdServices {
|
||||||
|
args = append(args, "--deb-systemd", service)
|
||||||
|
}
|
||||||
if target.debpost != "" {
|
if target.debpost != "" {
|
||||||
args = append(args, "--after-upgrade", target.debpost)
|
args = append(args, "--after-upgrade", target.debpost)
|
||||||
}
|
}
|
||||||
|
if target.debpre != "" {
|
||||||
|
args = append(args, "--before-install", target.debpre)
|
||||||
|
}
|
||||||
runPrint("fpm", args...)
|
runPrint("fpm", args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
cmd/stdiscosrv/etc/firewall-ufw/stdiscosrv
Normal file
4
cmd/stdiscosrv/etc/firewall-ufw/stdiscosrv
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
[stdiscosrv]
|
||||||
|
title=Syncthing discovery server
|
||||||
|
description=Lets syncthing clients discover each other
|
||||||
|
ports=8443/tcp
|
3
cmd/stdiscosrv/etc/linux-systemd/default
Normal file
3
cmd/stdiscosrv/etc/linux-systemd/default
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Default settings for syncthing-relaysrv (strelaysrv).
|
||||||
|
## Add Options here:
|
||||||
|
DISCOSRV_OPTS=
|
25
cmd/stdiscosrv/etc/linux-systemd/stdiscosrv.service
Normal file
25
cmd/stdiscosrv/etc/linux-systemd/stdiscosrv.service
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Syncthing Discovery Server
|
||||||
|
After=network.target
|
||||||
|
Documentation=man:stdiscosrv(1)
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
WorkingDirectory=/var/lib/syncthing-discosrv
|
||||||
|
EnvironmentFile=/etc/default/syncthing-discosrv
|
||||||
|
ExecStart=/usr/bin/stdiscosrv $DISCOSRV_OPTS
|
||||||
|
|
||||||
|
# Hardening
|
||||||
|
User=syncthing-discosrv
|
||||||
|
Group=syncthing
|
||||||
|
ProtectSystem=strict
|
||||||
|
ReadWritePaths=/var/lib/syncthing-discosrv
|
||||||
|
NoNewPrivileges=true
|
||||||
|
PrivateTmp=true
|
||||||
|
PrivateDevices=true
|
||||||
|
ProtectHome=true
|
||||||
|
SystemCallArchitectures=native
|
||||||
|
MemoryDenyWriteExecute=true
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
Alias=syncthing-discosrv.service
|
4
cmd/stdiscosrv/scripts/preinst
Normal file
4
cmd/stdiscosrv/scripts/preinst
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
addgroup --system syncthing
|
||||||
|
adduser --system --home /var/lib/syncthing-discosrv --ingroup syncthing syncthing-discosrv
|
9
cmd/strelaysrv/etc/firewall-ufw/strelaysrv
Normal file
9
cmd/strelaysrv/etc/firewall-ufw/strelaysrv
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[strelaysrv]
|
||||||
|
title=Syncthing relay server
|
||||||
|
description=Proxies traffic of syncthing client behind firewalls
|
||||||
|
ports=22067/tcp
|
||||||
|
|
||||||
|
[strelaysrv-metrics]
|
||||||
|
title=Syncthing relay metrics
|
||||||
|
description=Provides metrics about the syncthing relay server
|
||||||
|
ports=22070/tcp
|
5
cmd/strelaysrv/etc/linux-systemd/default
Normal file
5
cmd/strelaysrv/etc/linux-systemd/default
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Default settings for syncthing-relaysrv (strelaysrv).
|
||||||
|
NAT=true
|
||||||
|
|
||||||
|
## Add Options here:
|
||||||
|
RELAYSRV_OPTS=
|
@ -1,17 +1,25 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=Syncthing relay server
|
Description=Syncthing Relay Server
|
||||||
After=network.target
|
After=network.target
|
||||||
|
Documentation=man:strelaysrv(1)
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
User=strelaysrv
|
WorkingDirectory=/var/lib/syncthing-relaysrv
|
||||||
Group=strelaysrv
|
EnvironmentFile=/etc/default/syncthing-relaysrv
|
||||||
ExecStart=/usr/bin/strelaysrv
|
ExecStart=/usr/bin/strelaysrv -nat=${NAT} $RELAYSRV_OPTS
|
||||||
WorkingDirectory=/var/lib/strelaysrv
|
|
||||||
|
|
||||||
PrivateTmp=true
|
# Hardening
|
||||||
ProtectSystem=full
|
User=syncthing-relaysrv
|
||||||
ProtectHome=true
|
Group=syncthing
|
||||||
|
ProtectSystem=strict
|
||||||
|
ReadWritePaths=/var/lib/syncthing-relaysrv
|
||||||
NoNewPrivileges=true
|
NoNewPrivileges=true
|
||||||
|
PrivateTmp=true
|
||||||
|
PrivateDevices=true
|
||||||
|
ProtectHome=true
|
||||||
|
SystemCallArchitectures=native
|
||||||
|
MemoryDenyWriteExecute=true
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
|
Alias=syncthing-relaysrv.service
|
||||||
|
4
cmd/strelaysrv/scripts/preinst
Normal file
4
cmd/strelaysrv/scripts/preinst
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
addgroup --system syncthing
|
||||||
|
adduser --system --home /var/lib/syncthing-relaysrv --ingroup syncthing syncthing-relaysrv
|
Loading…
Reference in New Issue
Block a user