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)
|
e.FatalOnError(err)
|
||||||
logger.Info(allSettings.String())
|
logger.Info(allSettings.String())
|
||||||
|
|
||||||
err = alpineConf.CreateUser("nonrootuser", allSettings.UID)
|
err = alpineConf.CreateUser("nonrootuser", allSettings.System.UID)
|
||||||
e.FatalOnError(err)
|
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)
|
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)
|
e.FatalOnError(err)
|
||||||
|
|
||||||
if err := ovpnConf.CheckTUN(); err != nil {
|
if err := ovpnConf.CheckTUN(); err != nil {
|
||||||
@@ -97,7 +97,7 @@ func main() {
|
|||||||
openVPNUser = allSettings.Windscribe.User
|
openVPNUser = allSettings.Windscribe.User
|
||||||
openVPNPassword = allSettings.Windscribe.Password
|
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)
|
e.FatalOnError(err)
|
||||||
|
|
||||||
// Temporarily reset chain policies allowing Kubernetes sidecar to
|
// Temporarily reset chain policies allowing Kubernetes sidecar to
|
||||||
@@ -118,11 +118,11 @@ func main() {
|
|||||||
if allSettings.DNS.Enabled {
|
if allSettings.DNS.Enabled {
|
||||||
initialDNSToUse := constants.DNSProviderMapping()[allSettings.DNS.Providers[0]]
|
initialDNSToUse := constants.DNSProviderMapping()[allSettings.DNS.Providers[0]]
|
||||||
dnsConf.UseDNSInternally(initialDNSToUse.IPs[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)
|
e.FatalOnError(err)
|
||||||
err = dnsConf.DownloadRootKey(allSettings.UID, allSettings.GID)
|
err = dnsConf.DownloadRootKey(allSettings.System.UID, allSettings.System.GID)
|
||||||
e.FatalOnError(err)
|
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)
|
e.FatalOnError(err)
|
||||||
stream, waitFn, err := dnsConf.Start(allSettings.DNS.VerbosityDetailsLevel)
|
stream, waitFn, err := dnsConf.Start(allSettings.DNS.VerbosityDetailsLevel)
|
||||||
e.FatalOnError(err)
|
e.FatalOnError(err)
|
||||||
@@ -150,8 +150,8 @@ func main() {
|
|||||||
connections,
|
connections,
|
||||||
allSettings.PIA.Encryption,
|
allSettings.PIA.Encryption,
|
||||||
allSettings.OpenVPN.Verbosity,
|
allSettings.OpenVPN.Verbosity,
|
||||||
allSettings.UID,
|
allSettings.System.UID,
|
||||||
allSettings.GID,
|
allSettings.System.GID,
|
||||||
allSettings.OpenVPN.Root,
|
allSettings.OpenVPN.Root,
|
||||||
allSettings.OpenVPN.Cipher,
|
allSettings.OpenVPN.Cipher,
|
||||||
allSettings.OpenVPN.Auth)
|
allSettings.OpenVPN.Auth)
|
||||||
@@ -168,8 +168,8 @@ func main() {
|
|||||||
err = mullvadConf.BuildConf(
|
err = mullvadConf.BuildConf(
|
||||||
connections,
|
connections,
|
||||||
allSettings.OpenVPN.Verbosity,
|
allSettings.OpenVPN.Verbosity,
|
||||||
allSettings.UID,
|
allSettings.System.UID,
|
||||||
allSettings.GID,
|
allSettings.System.GID,
|
||||||
allSettings.OpenVPN.Root,
|
allSettings.OpenVPN.Root,
|
||||||
allSettings.OpenVPN.Cipher)
|
allSettings.OpenVPN.Cipher)
|
||||||
e.FatalOnError(err)
|
e.FatalOnError(err)
|
||||||
@@ -183,8 +183,8 @@ func main() {
|
|||||||
err = windscribeConf.BuildConf(
|
err = windscribeConf.BuildConf(
|
||||||
connections,
|
connections,
|
||||||
allSettings.OpenVPN.Verbosity,
|
allSettings.OpenVPN.Verbosity,
|
||||||
allSettings.UID,
|
allSettings.System.UID,
|
||||||
allSettings.GID,
|
allSettings.System.GID,
|
||||||
allSettings.OpenVPN.Root,
|
allSettings.OpenVPN.Root,
|
||||||
allSettings.OpenVPN.Cipher,
|
allSettings.OpenVPN.Cipher,
|
||||||
allSettings.OpenVPN.Auth)
|
allSettings.OpenVPN.Auth)
|
||||||
@@ -212,8 +212,8 @@ func main() {
|
|||||||
allSettings.TinyProxy.Port,
|
allSettings.TinyProxy.Port,
|
||||||
allSettings.TinyProxy.User,
|
allSettings.TinyProxy.User,
|
||||||
allSettings.TinyProxy.Password,
|
allSettings.TinyProxy.Password,
|
||||||
allSettings.UID,
|
allSettings.System.UID,
|
||||||
allSettings.GID)
|
allSettings.System.GID)
|
||||||
e.FatalOnError(err)
|
e.FatalOnError(err)
|
||||||
err = firewallConf.AllowAnyIncomingOnPort(allSettings.TinyProxy.Port)
|
err = firewallConf.AllowAnyIncomingOnPort(allSettings.TinyProxy.Port)
|
||||||
e.FatalOnError(err)
|
e.FatalOnError(err)
|
||||||
@@ -232,8 +232,8 @@ func main() {
|
|||||||
allSettings.ShadowSocks.Port,
|
allSettings.ShadowSocks.Port,
|
||||||
allSettings.ShadowSocks.Password,
|
allSettings.ShadowSocks.Password,
|
||||||
allSettings.ShadowSocks.Method,
|
allSettings.ShadowSocks.Method,
|
||||||
allSettings.UID,
|
allSettings.System.UID,
|
||||||
allSettings.GID)
|
allSettings.System.GID)
|
||||||
e.FatalOnError(err)
|
e.FatalOnError(err)
|
||||||
err = firewallConf.AllowAnyIncomingOnPort(allSettings.ShadowSocks.Port)
|
err = firewallConf.AllowAnyIncomingOnPort(allSettings.ShadowSocks.Port)
|
||||||
e.FatalOnError(err)
|
e.FatalOnError(err)
|
||||||
@@ -256,8 +256,8 @@ func main() {
|
|||||||
if err := piaConf.WritePortForward(
|
if err := piaConf.WritePortForward(
|
||||||
allSettings.PIA.PortForwarding.Filepath,
|
allSettings.PIA.PortForwarding.Filepath,
|
||||||
port,
|
port,
|
||||||
allSettings.UID,
|
allSettings.System.UID,
|
||||||
allSettings.GID); err != nil {
|
allSettings.System.GID); err != nil {
|
||||||
logger.Error("port forwarding:", err)
|
logger.Error("port forwarding:", err)
|
||||||
}
|
}
|
||||||
if err := piaConf.AllowPortForwardFirewall(constants.TUN, port); err != nil {
|
if err := piaConf.AllowPortForwardFirewall(constants.TUN, port); err != nil {
|
||||||
|
|||||||
@@ -28,9 +28,10 @@ type ParamsReader interface {
|
|||||||
GetDNSOverTLSPrivateAddresses() (privateAddresses []string)
|
GetDNSOverTLSPrivateAddresses() (privateAddresses []string)
|
||||||
GetDNSOverTLSIPv6() (ipv6 bool, err error)
|
GetDNSOverTLSIPv6() (ipv6 bool, err error)
|
||||||
|
|
||||||
// IDs
|
// System
|
||||||
GetUID() (uid int, err error)
|
GetUID() (uid int, err error)
|
||||||
GetGID() (gid int, err error)
|
GetGID() (gid int, err error)
|
||||||
|
GetTimezone() (timezone string, err error)
|
||||||
|
|
||||||
// Firewall getters
|
// Firewall getters
|
||||||
GetExtraSubnets() (extraSubnets []net.IPNet, err error)
|
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) {
|
func (p *paramsReader) GetGID() (gid int, err error) {
|
||||||
return p.envParams.GetEnvIntRange("GID", 0, 65535, libparams.Default("1000"))
|
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
|
PIA PIA
|
||||||
Mullvad Mullvad
|
Mullvad Mullvad
|
||||||
Windscribe Windscribe
|
Windscribe Windscribe
|
||||||
|
System System
|
||||||
DNS DNS
|
DNS DNS
|
||||||
Firewall Firewall
|
Firewall Firewall
|
||||||
TinyProxy TinyProxy
|
TinyProxy TinyProxy
|
||||||
ShadowSocks ShadowSocks
|
ShadowSocks ShadowSocks
|
||||||
UID int
|
|
||||||
GID int
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Settings) String() string {
|
func (s *Settings) String() string {
|
||||||
@@ -34,9 +33,9 @@ func (s *Settings) String() string {
|
|||||||
}
|
}
|
||||||
return strings.Join([]string{
|
return strings.Join([]string{
|
||||||
"Settings summary below:",
|
"Settings summary below:",
|
||||||
fmt.Sprintf("|-- Using UID %d and GID %d", s.UID, s.GID),
|
|
||||||
s.OpenVPN.String(),
|
s.OpenVPN.String(),
|
||||||
vpnServiceProvider,
|
vpnServiceProvider,
|
||||||
|
s.System.String(),
|
||||||
s.DNS.String(),
|
s.DNS.String(),
|
||||||
s.Firewall.String(),
|
s.Firewall.String(),
|
||||||
s.TinyProxy.String(),
|
s.TinyProxy.String(),
|
||||||
@@ -118,11 +117,7 @@ func GetAllSettings(params params.ParamsReader) (settings Settings, err error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return settings, err
|
return settings, err
|
||||||
}
|
}
|
||||||
settings.UID, err = params.GetUID()
|
settings.System, err = GetSystemSettings(params)
|
||||||
if err != nil {
|
|
||||||
return settings, err
|
|
||||||
}
|
|
||||||
settings.GID, err = params.GetGID()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return settings, err
|
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