Browse Source
Add INIT_ALLOWED_IPS for unattended setup (#2164 )
* Add INIT_ALLOWED_IPS env var
Implement INIT_ALLOWED_IPS env var like the INIT_DNS to preset the global Allowed IPs field.
* Docs: Add INIT_ALLOWED_IPS var to unattended setup table
* Make UserConfigService.update param partial
Update UserConfigService.update() to accept any subset of the updatable fields.
Remove the unnecessary userConfig object from DBService.initialSetup()
* formatting fix
* format on linux
On windows prettier get confused by global conf... common windows things
master
Németh Bálint
3 days ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with
22 additions and
15 deletions
docs/content/advanced/config/unattended-setup.md
src/server/database/repositories/userConfig/service.ts
src/server/database/sqlite.ts
src/server/utils/config.ts
@ -7,7 +7,7 @@ If you want to run the setup without any user interaction, e.g. with a tool like
These will only be used during the first start of the container. After that, the setup will be disabled.
| Env | Example | Description | Group |
| ---------------- | ----------------- | --------------------------------------------------------- | ----- |
| ------------------ | ----------- ----------------- | --------------------------------------------------------- | ----- |
| `INIT_ENABLED` | `true` | Enables the below env vars | 0 |
| `INIT_USERNAME` | `admin` | Sets admin username | 1 |
| `INIT_PASSWORD` | `Se!ureP%ssw` | Sets admin password | 1 |
@ -16,8 +16,9 @@ These will only be used during the first start of the container. After that, the
| `INIT_DNS` | `1.1.1.1,8.8.8.8` | Sets global dns setting | 2 |
| `INIT_IPV4_CIDR` | `10.8.0.0/24` | Sets IPv4 cidr | 3 |
| `INIT_IPV6_CIDR` | `2001:0DB8::/32` | Sets IPv6 cidr | 3 |
| `INIT_ALLOWED_IPS` | `10.8.0.0/24,2001:0DB8::/32` | Sets global Allowed IPs | 4 |
/// warning | Variables have to be used together
/// warning | Variables have to be used together
If variables are in the same group, you have to set all of them. For example, if you set `INIT_IPV4_CIDR` , you also have to set `INIT_IPV6_CIDR` .
@ -54,7 +54,7 @@ export class UserConfigService {
} ) ;
}
update ( data : UserConfigUpdateType ) {
update ( data : Partial < UserConfigUpdateType > ) {
return this . # db
. update ( userConfig )
. set ( data )
@ -89,13 +89,18 @@ async function initialSetup(db: DBServiceType) {
if ( WG_INITIAL_ENV . DNS ) {
DB_DEBUG ( 'Setting initial DNS...' ) ;
const userConfig = await db . userConfigs . get ( ) ;
await db . userConfigs . update ( {
. . . userConfig ,
defaultDns : WG_INITIAL_ENV.DNS ,
} ) ;
}
if ( WG_INITIAL_ENV . ALLOWED_IPS ) {
DB_DEBUG ( 'Setting initial Allowed IPs...' ) ;
await db . userConfigs . update ( {
defaultAllowedIps : WG_INITIAL_ENV.ALLOWED_IPS ,
} ) ;
}
if (
WG_INITIAL_ENV . USERNAME &&
WG_INITIAL_ENV . PASSWORD &&
@ -38,6 +38,7 @@ export const WG_INITIAL_ENV = {
DNS : process.env.INIT_DNS?.split ( ',' ) . map ( ( x ) = > x . trim ( ) ) ,
IPV4_CIDR : process.env.INIT_IPV4_CIDR ,
IPV6_CIDR : process.env.INIT_IPV6_CIDR ,
ALLOWED_IPS : process.env.INIT_ALLOWED_IPS?.split ( ',' ) . map ( ( x ) = > x . trim ( ) ) ,
HOST : process.env.INIT_HOST ,
PORT : process.env.INIT_PORT
? Number . parseInt ( process . env . INIT_PORT , 10 )