Quentin McGaw
76a4bb5dc3
chore: use gofumpt for code formatting
2024-10-11 19:27:29 +00:00
Quentin McGaw
abe9dcbe33
chore(lint): add new linters and update codebase
...
- add canonicalheader
- add copyloopvar
- add fatcontext
- add intrange
2024-10-11 18:28:00 +00:00
Quentin McGaw
3c8e80a1a4
chore(lint): upgrade linter from v1.56.2 to v1.61.0
...
- Remove no longer needed exclude rules
- Add new exclude rules for printf govet errors
- Remove deprecated linters `execinquery` and `exportloopref`
- Rename linter `goerr113` to `err113`
- Rename linter `gomnd` to `mnd`
2024-10-11 18:05:54 +00:00
Quentin McGaw
36c8da7ea7
hotfix(config): split common VPN options per VPN type
...
- Split `VPN_ENDPOINT_IP` in `OPENVPN_ENDPOINT_IP` and `WIREGUARD_ENDPOINT_IP`
- Split `VPN_ENDPOINT_PORT` in `OPENVPN_ENDPOINT_PORT` and `WIREGUARD_ENDPOINT_PORT`
- Fixes bad usage of Wireguard config file endpoint for OpenVPN #2347
2024-07-27 10:42:01 +00:00
Quentin McGaw
7b4befce61
hotfix(settings): openvpn encrypted key reading from file
2024-04-08 07:40:14 +00:00
Quentin McGaw
ecc80a5a9e
chore(config): upgrade to gosettings v0.4.0
...
- drop qdm12/govalid dependency
- upgrade qdm12/ss-server to v0.6.0
- do not unset sensitive config settings (makes no sense to me)
2024-03-25 19:14:20 +00:00
Dennis Gaida
fb00fb16c2
feat(settings): load wireguard individual fields as secret files ( #1348 )
...
- Private key from `/run/secrets/wireguard_private_key` (path configurable with `WIREGUARD_PRIVATE_KEY_SECRETFILE`)
- Preshared key from `/run/secrets/wireguard_preshared_key` (path configurable with `WIREGUARD_PRESHARED_KEY_SECRETFILE`)
- Addresses from `/run/secrets/wireguard_addresses` (path configurable with `WIREGUARD_ADDRESSES_SECRETFILE`)
2024-03-21 10:08:41 +01:00
Quentin McGaw
6096b7ad4b
feat(config): read Wireguard config from secret
...
- defaults to `/run/secrets/wg0.conf`
- can be changed with variable `WIREGUARD_CONF_SECRETFILE`
2024-03-21 08:18:14 +00:00
Quentin McGaw
a9cd7be3f9
chore(sources/env): bump gosettings to v0.3.0-rc13
...
- Use `RetroKeys` option with env.* method calls
- Use `CSV*` typed methods
- Inject `handleDeprecatedKey` function
2023-06-08 07:40:37 +00:00
Quentin McGaw
3b136e02db
chore(secrets): add test for readSecretFileAsStringPtr
2023-06-01 09:07:25 +00:00
Quentin McGaw
482447c151
chore(env): bump qdm12/gosettings to v0.3.0-rc11
2023-06-01 09:07:22 +00:00
Quentin McGaw
5d8fbf8006
fix(sources/secrets): do not lowercase env secret file paths
2023-06-01 08:20:13 +00:00
Quentin McGaw
7399c00508
chore(sources/env): bump gosettings to v0.3.0-rc9
2023-05-31 14:31:56 +00:00
Quentin McGaw
47593928f9
fix(settings): use qdm12/gosettings env.Get
2023-05-29 20:43:06 +00:00
Filippo Buletto
7ba70f19ef
fix(settings): fix httpproxy.go error message ( #1596 )
2023-05-27 20:01:55 +02:00
Quentin McGaw
4ba159e483
chore(all): review error wrappings
...
- remove repetitive `cannot` and `failed` prefixes
- rename `unmarshaling` to `decoding`
2023-04-01 16:57:18 +00:00
Quentin McGaw
8570e09eb9
chore(config): rename Reader to Source struct
2022-08-26 15:40:35 +00:00
Quentin McGaw
ae5cba519c
chore(config): define Source interface locally where needed
2022-08-26 15:03:59 +00:00
Quentin McGaw
062b6a276c
fix(settings): read PEM files but b64 env vars
...
- Extract base64 data from PEM files and secret files
- Environment variables are not PEM encoded and only the base64 data
- Affects OpenVPN certificate, key and encrypted key
2022-08-24 17:48:45 +00:00
Quentin McGaw
a182e3503b
feat: add VPNsecure.me support ( #848 )
...
- `OPENVPN_ENCRYPTED_KEY` environment variable
- `OPENVPN_ENCRYPTED_KEY_SECRETFILE` environment variable
- `OPENVPN_KEY_PASSPHRASE` environment variable
- `OPENVPN_KEY_PASSPHRASE_SECRETFILE` environment variable
- `PREMIUM_ONLY` environment variable
- OpenVPN user and password not required for vpnsecure provider
2022-08-15 16:54:58 -07:00
Quentin McGaw
8db2944749
chore(settings): OpenVPN ClientCrt -> Cert
2022-08-13 18:59:07 +00:00
Quentin McGaw
5986432a22
chore(settings): OpenVPN ClientKey -> Key
2022-08-13 18:58:09 +00:00
Quentin McGaw
1ab74e6bb3
chore: OpenVPN user and password as nullable
...
- Username and password can be the empty string for custom provider
2022-08-13 18:01:26 +00:00
Quentin McGaw
364f9de756
feat(env): clean env variable values
...
- Remove surrounding spaces
- Remove suffix new line characters
2022-05-27 17:27:54 +00:00
Quentin McGaw
ae0334c930
chore(sources): wrap error with source string
2022-02-20 03:04:16 +00:00
Quentin McGaw
7d824a5179
chore(settings): refactor settings processing ( #756 )
...
- Better settings tree structure logged using `qdm12/gotree`
- Read settings from environment variables, then files, then secret files
- Settings methods to default them, merge them and override them
- `DNS_PLAINTEXT_ADDRESS` default changed to `127.0.0.1` to use DoT. Warning added if set to something else.
- `HTTPPROXY_LISTENING_ADDRESS` instead of `HTTPPROXY_PORT` (with retro-compatibility)
2022-01-06 06:40:23 -05:00