TZ setting shown at start (#119)
This commit is contained in:
38
cmd/main.go
38
cmd/main.go
@@ -72,11 +72,11 @@ func main() {
|
||||
e.FatalOnError(err)
|
||||
logger.Info(allSettings.String())
|
||||
|
||||
err = alpineConf.CreateUser("nonrootuser", allSettings.UID)
|
||||
err = alpineConf.CreateUser("nonrootuser", allSettings.System.UID)
|
||||
e.FatalOnError(err)
|
||||
err = fileManager.SetOwnership("/etc/unbound", allSettings.UID, allSettings.GID)
|
||||
err = fileManager.SetOwnership("/etc/unbound", allSettings.System.UID, allSettings.System.GID)
|
||||
e.FatalOnError(err)
|
||||
err = fileManager.SetOwnership("/etc/tinyproxy", allSettings.UID, allSettings.GID)
|
||||
err = fileManager.SetOwnership("/etc/tinyproxy", allSettings.System.UID, allSettings.System.GID)
|
||||
e.FatalOnError(err)
|
||||
|
||||
if err := ovpnConf.CheckTUN(); err != nil {
|
||||
@@ -97,7 +97,7 @@ func main() {
|
||||
openVPNUser = allSettings.Windscribe.User
|
||||
openVPNPassword = allSettings.Windscribe.Password
|
||||
}
|
||||
err = ovpnConf.WriteAuthFile(openVPNUser, openVPNPassword, allSettings.UID, allSettings.GID)
|
||||
err = ovpnConf.WriteAuthFile(openVPNUser, openVPNPassword, allSettings.System.UID, allSettings.System.GID)
|
||||
e.FatalOnError(err)
|
||||
|
||||
// Temporarily reset chain policies allowing Kubernetes sidecar to
|
||||
@@ -118,11 +118,11 @@ func main() {
|
||||
if allSettings.DNS.Enabled {
|
||||
initialDNSToUse := constants.DNSProviderMapping()[allSettings.DNS.Providers[0]]
|
||||
dnsConf.UseDNSInternally(initialDNSToUse.IPs[0])
|
||||
err = dnsConf.DownloadRootHints(allSettings.UID, allSettings.GID)
|
||||
err = dnsConf.DownloadRootHints(allSettings.System.UID, allSettings.System.GID)
|
||||
e.FatalOnError(err)
|
||||
err = dnsConf.DownloadRootKey(allSettings.UID, allSettings.GID)
|
||||
err = dnsConf.DownloadRootKey(allSettings.System.UID, allSettings.System.GID)
|
||||
e.FatalOnError(err)
|
||||
err = dnsConf.MakeUnboundConf(allSettings.DNS, allSettings.UID, allSettings.GID)
|
||||
err = dnsConf.MakeUnboundConf(allSettings.DNS, allSettings.System.UID, allSettings.System.GID)
|
||||
e.FatalOnError(err)
|
||||
stream, waitFn, err := dnsConf.Start(allSettings.DNS.VerbosityDetailsLevel)
|
||||
e.FatalOnError(err)
|
||||
@@ -150,8 +150,8 @@ func main() {
|
||||
connections,
|
||||
allSettings.PIA.Encryption,
|
||||
allSettings.OpenVPN.Verbosity,
|
||||
allSettings.UID,
|
||||
allSettings.GID,
|
||||
allSettings.System.UID,
|
||||
allSettings.System.GID,
|
||||
allSettings.OpenVPN.Root,
|
||||
allSettings.OpenVPN.Cipher,
|
||||
allSettings.OpenVPN.Auth)
|
||||
@@ -168,8 +168,8 @@ func main() {
|
||||
err = mullvadConf.BuildConf(
|
||||
connections,
|
||||
allSettings.OpenVPN.Verbosity,
|
||||
allSettings.UID,
|
||||
allSettings.GID,
|
||||
allSettings.System.UID,
|
||||
allSettings.System.GID,
|
||||
allSettings.OpenVPN.Root,
|
||||
allSettings.OpenVPN.Cipher)
|
||||
e.FatalOnError(err)
|
||||
@@ -183,8 +183,8 @@ func main() {
|
||||
err = windscribeConf.BuildConf(
|
||||
connections,
|
||||
allSettings.OpenVPN.Verbosity,
|
||||
allSettings.UID,
|
||||
allSettings.GID,
|
||||
allSettings.System.UID,
|
||||
allSettings.System.GID,
|
||||
allSettings.OpenVPN.Root,
|
||||
allSettings.OpenVPN.Cipher,
|
||||
allSettings.OpenVPN.Auth)
|
||||
@@ -212,8 +212,8 @@ func main() {
|
||||
allSettings.TinyProxy.Port,
|
||||
allSettings.TinyProxy.User,
|
||||
allSettings.TinyProxy.Password,
|
||||
allSettings.UID,
|
||||
allSettings.GID)
|
||||
allSettings.System.UID,
|
||||
allSettings.System.GID)
|
||||
e.FatalOnError(err)
|
||||
err = firewallConf.AllowAnyIncomingOnPort(allSettings.TinyProxy.Port)
|
||||
e.FatalOnError(err)
|
||||
@@ -232,8 +232,8 @@ func main() {
|
||||
allSettings.ShadowSocks.Port,
|
||||
allSettings.ShadowSocks.Password,
|
||||
allSettings.ShadowSocks.Method,
|
||||
allSettings.UID,
|
||||
allSettings.GID)
|
||||
allSettings.System.UID,
|
||||
allSettings.System.GID)
|
||||
e.FatalOnError(err)
|
||||
err = firewallConf.AllowAnyIncomingOnPort(allSettings.ShadowSocks.Port)
|
||||
e.FatalOnError(err)
|
||||
@@ -256,8 +256,8 @@ func main() {
|
||||
if err := piaConf.WritePortForward(
|
||||
allSettings.PIA.PortForwarding.Filepath,
|
||||
port,
|
||||
allSettings.UID,
|
||||
allSettings.GID); err != nil {
|
||||
allSettings.System.UID,
|
||||
allSettings.System.GID); err != nil {
|
||||
logger.Error("port forwarding:", err)
|
||||
}
|
||||
if err := piaConf.AllowPortForwardFirewall(constants.TUN, port); err != nil {
|
||||
|
||||
@@ -28,9 +28,10 @@ type ParamsReader interface {
|
||||
GetDNSOverTLSPrivateAddresses() (privateAddresses []string)
|
||||
GetDNSOverTLSIPv6() (ipv6 bool, err error)
|
||||
|
||||
// IDs
|
||||
// System
|
||||
GetUID() (uid int, err error)
|
||||
GetGID() (gid int, err error)
|
||||
GetTimezone() (timezone string, err error)
|
||||
|
||||
// Firewall getters
|
||||
GetExtraSubnets() (extraSubnets []net.IPNet, err error)
|
||||
|
||||
@@ -13,3 +13,8 @@ func (p *paramsReader) GetUID() (uid int, err error) {
|
||||
func (p *paramsReader) GetGID() (gid int, err error) {
|
||||
return p.envParams.GetEnvIntRange("GID", 0, 65535, libparams.Default("1000"))
|
||||
}
|
||||
|
||||
// GetTZ obtains the timezone from the environment variable TZ
|
||||
func (p *paramsReader) GetTimezone() (timezone string, err error) {
|
||||
return p.envParams.GetEnv("TZ")
|
||||
}
|
||||
@@ -14,12 +14,11 @@ type Settings struct {
|
||||
PIA PIA
|
||||
Mullvad Mullvad
|
||||
Windscribe Windscribe
|
||||
System System
|
||||
DNS DNS
|
||||
Firewall Firewall
|
||||
TinyProxy TinyProxy
|
||||
ShadowSocks ShadowSocks
|
||||
UID int
|
||||
GID int
|
||||
}
|
||||
|
||||
func (s *Settings) String() string {
|
||||
@@ -34,9 +33,9 @@ func (s *Settings) String() string {
|
||||
}
|
||||
return strings.Join([]string{
|
||||
"Settings summary below:",
|
||||
fmt.Sprintf("|-- Using UID %d and GID %d", s.UID, s.GID),
|
||||
s.OpenVPN.String(),
|
||||
vpnServiceProvider,
|
||||
s.System.String(),
|
||||
s.DNS.String(),
|
||||
s.Firewall.String(),
|
||||
s.TinyProxy.String(),
|
||||
@@ -118,11 +117,7 @@ func GetAllSettings(params params.ParamsReader) (settings Settings, err error) {
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
settings.UID, err = params.GetUID()
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
settings.GID, err = params.GetGID()
|
||||
settings.System, err = GetSystemSettings(params)
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
|
||||
42
internal/settings/system.go
Normal file
42
internal/settings/system.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package settings
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/qdm12/private-internet-access-docker/internal/params"
|
||||
)
|
||||
|
||||
// System contains settings to configure system related elements
|
||||
type System struct {
|
||||
UID int
|
||||
GID int
|
||||
Timezone string
|
||||
}
|
||||
|
||||
// GetSystemSettings obtains the System settings using the params functions
|
||||
func GetSystemSettings(params params.ParamsReader) (settings System, err error) {
|
||||
settings.UID, err = params.GetUID()
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
settings.GID, err = params.GetGID()
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
settings.Timezone, err = params.GetTimezone()
|
||||
if err != nil {
|
||||
return settings, err
|
||||
}
|
||||
return settings, nil
|
||||
}
|
||||
|
||||
func (s *System) String() string {
|
||||
settingsList := []string{
|
||||
"System settings:",
|
||||
fmt.Sprintf("User ID: %d", s.UID),
|
||||
fmt.Sprintf("Group ID: %d", s.GID),
|
||||
fmt.Sprintf("Timezone: %s", s.Timezone),
|
||||
}
|
||||
return strings.Join(settingsList, "\n|--")
|
||||
}
|
||||
Reference in New Issue
Block a user