Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7b5ba95938 | |||
| da90d67cc0 | |||
| a52da67b38 | |||
| e513090074 | |||
| 2dc8ba7792 | |||
| 4e8cccb4c7 | |||
| e57b0977d3 | |||
| b8be53c3f7 | |||
| 0794413191 |
@@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Add trailing newline to Prometheus metrics output (https://github.com/wg-easy/wg-easy/pull/2573)
|
- Add trailing newline to Prometheus metrics output (https://github.com/wg-easy/wg-easy/pull/2573)
|
||||||
|
- Correctly use DEBUG env var (https://github.com/wg-easy/wg-easy/pull/2619)
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -7,7 +7,7 @@ RUN npm install --global corepack@latest
|
|||||||
RUN corepack enable pnpm
|
RUN corepack enable pnpm
|
||||||
|
|
||||||
# Copy Web UI
|
# Copy Web UI
|
||||||
COPY src/package.json src/pnpm-lock.yaml ./
|
COPY src/package.json src/pnpm-lock.yaml src/pnpm-workspace.yaml ./
|
||||||
RUN pnpm install
|
RUN pnpm install
|
||||||
|
|
||||||
# Build UI
|
# Build UI
|
||||||
@@ -72,7 +72,7 @@ RUN update-alternatives --install /usr/sbin/iptables iptables /usr/sbin/iptables
|
|||||||
RUN update-alternatives --install /usr/sbin/ip6tables ip6tables /usr/sbin/ip6tables-legacy 10 --slave /usr/sbin/ip6tables-restore ip6tables-restore /usr/sbin/ip6tables-legacy-restore --slave /usr/sbin/ip6tables-save ip6tables-save /usr/sbin/ip6tables-legacy-save
|
RUN update-alternatives --install /usr/sbin/ip6tables ip6tables /usr/sbin/ip6tables-legacy 10 --slave /usr/sbin/ip6tables-restore ip6tables-restore /usr/sbin/ip6tables-legacy-restore --slave /usr/sbin/ip6tables-save ip6tables-save /usr/sbin/ip6tables-legacy-save
|
||||||
|
|
||||||
# Set Environment
|
# Set Environment
|
||||||
ENV DEBUG=Server,WireGuard,Database,CMD
|
ENV DEBUG=Server,WireGuard,Database,CMD,Firewall
|
||||||
ENV PORT=51821
|
ENV PORT=51821
|
||||||
ENV HOST=0.0.0.0
|
ENV HOST=0.0.0.0
|
||||||
ENV INSECURE=false
|
ENV INSECURE=false
|
||||||
|
|||||||
+2
-2
@@ -24,7 +24,7 @@ RUN update-alternatives --install /usr/sbin/iptables iptables /usr/sbin/iptables
|
|||||||
RUN update-alternatives --install /usr/sbin/ip6tables ip6tables /usr/sbin/ip6tables-legacy 10 --slave /usr/sbin/ip6tables-restore ip6tables-restore /usr/sbin/ip6tables-legacy-restore --slave /usr/sbin/ip6tables-save ip6tables-save /usr/sbin/ip6tables-legacy-save
|
RUN update-alternatives --install /usr/sbin/ip6tables ip6tables /usr/sbin/ip6tables-legacy 10 --slave /usr/sbin/ip6tables-restore ip6tables-restore /usr/sbin/ip6tables-legacy-restore --slave /usr/sbin/ip6tables-save ip6tables-save /usr/sbin/ip6tables-legacy-save
|
||||||
|
|
||||||
# Set Environment
|
# Set Environment
|
||||||
ENV DEBUG=Server,WireGuard,Database,CMD
|
ENV DEBUG=Server,WireGuard,Database,CMD,Firewall
|
||||||
ENV PORT=51821
|
ENV PORT=51821
|
||||||
ENV HOST=0.0.0.0
|
ENV HOST=0.0.0.0
|
||||||
ENV INSECURE=true
|
ENV INSECURE=true
|
||||||
@@ -32,7 +32,7 @@ ENV INIT_ENABLED=false
|
|||||||
ENV DISABLE_IPV6=false
|
ENV DISABLE_IPV6=false
|
||||||
|
|
||||||
# Install Dependencies
|
# Install Dependencies
|
||||||
COPY src/package.json src/pnpm-lock.yaml ./
|
COPY src/package.json src/pnpm-lock.yaml src/pnpm-workspace.yaml ./
|
||||||
RUN pnpm install
|
RUN pnpm install
|
||||||
|
|
||||||
# Copy Project
|
# Copy Project
|
||||||
|
|||||||
@@ -1,16 +1,14 @@
|
|||||||
# WireGuard Easy
|
# WireGuard Easy
|
||||||
|
|
||||||
[](https://github.com/wg-easy/wg-easy/actions/workflows/deploy.yml)
|
[](https://github.com/wg-easy/wg-easy/actions/workflows/deploy.yml)
|
||||||
[](https://github.com/wg-easy/wg-easy/actions/workflows/lint.yml)
|
[](https://github.com/wg-easy/wg-easy/actions/workflows/lint.yml)
|
||||||
[](https://github.com/wg-easy/wg-easy/stargazers)
|
[](https://github.com/wg-easy/wg-easy/stargazers)
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
[](https://github.com/wg-easy/wg-easy/releases/latest)
|
[](https://github.com/wg-easy/wg-easy/releases/latest)
|
||||||
[](https://github.com/wg-easy/wg-easy/pkgs/container/wg-easy)
|
[](https://github.com/wg-easy/wg-easy/pkgs/container/wg-easy)
|
||||||
|
|
||||||
You have found the easiest way to install & manage WireGuard on any Linux host!
|
You have found the easiest way to install & manage WireGuard on any Linux host!
|
||||||
|
|
||||||
<!-- TOOD: update screenshot -->
|
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="./assets/screenshot.png" width="802" alt="wg-easy Screenshot" />
|
<img src="./assets/screenshot.png" width="802" alt="wg-easy Screenshot" />
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
@@ -0,0 +1,63 @@
|
|||||||
|
{
|
||||||
|
"fill" : {
|
||||||
|
"automatic-gradient" : "display-p3:0.48853,0.13220,0.12335,1.00000"
|
||||||
|
},
|
||||||
|
"groups" : [
|
||||||
|
{
|
||||||
|
"layers" : [
|
||||||
|
{
|
||||||
|
"fill" : {
|
||||||
|
"automatic-gradient" : "srgb:1.00000,1.00000,1.00000,1.00000"
|
||||||
|
},
|
||||||
|
"image-name" : "wireguard-logo.png",
|
||||||
|
"name" : "wireguard-logo",
|
||||||
|
"position" : {
|
||||||
|
"scale" : 0.5,
|
||||||
|
"translation-in-points" : [
|
||||||
|
255.828125,
|
||||||
|
-225.5
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fill-specializations" : [
|
||||||
|
{
|
||||||
|
"value" : {
|
||||||
|
"automatic-gradient" : "srgb:1.00000,1.00000,1.00000,1.00000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"appearance" : "dark",
|
||||||
|
"value" : {
|
||||||
|
"automatic-gradient" : "display-p3:0.48853,0.13220,0.12335,1.00000"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"image-name" : "ticket.png",
|
||||||
|
"name" : "ticket",
|
||||||
|
"position" : {
|
||||||
|
"scale" : 1.2,
|
||||||
|
"translation-in-points" : [
|
||||||
|
-119.91562499999998,
|
||||||
|
165.65625
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"shadow" : {
|
||||||
|
"kind" : "neutral",
|
||||||
|
"opacity" : 0.5
|
||||||
|
},
|
||||||
|
"translucency" : {
|
||||||
|
"enabled" : true,
|
||||||
|
"value" : 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"supported-platforms" : {
|
||||||
|
"circles" : [
|
||||||
|
"watchOS"
|
||||||
|
],
|
||||||
|
"squares" : "shared"
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -13,5 +13,5 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"prettier": "^3.8.3"
|
"prettier": "^3.8.3"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@10.33.3"
|
"packageManager": "pnpm@11.1.2"
|
||||||
}
|
}
|
||||||
|
|||||||
+152
-1
@@ -120,7 +120,11 @@
|
|||||||
"endpointDesc": "IP do cliente desde a que se establece a conexión WireGuard",
|
"endpointDesc": "IP do cliente desde a que se establece a conexión WireGuard",
|
||||||
"search": "Buscar clientes...",
|
"search": "Buscar clientes...",
|
||||||
"config": "Configuración",
|
"config": "Configuración",
|
||||||
"viewConfig": "Ver configuración"
|
"viewConfig": "Ver configuración",
|
||||||
|
"firewallIps": "IPs permitidas do cortalumes",
|
||||||
|
"firewallIpsDesc": "IPs/CIDRs de destino aos que este cliente pode acceder (aplicado no lado do servidor). Déixao baleiro para usar as IPs permitidas. Admite filtrado opcional por porto e protocolo. Consulta a documentación para a sintaxe.",
|
||||||
|
"downloadPng": "Descargar PNG",
|
||||||
|
"copyPng": "Copiar PNG"
|
||||||
},
|
},
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"change": "Cambiar",
|
"change": "Cambiar",
|
||||||
@@ -141,5 +145,152 @@
|
|||||||
"noItems": "Sen elementos",
|
"noItems": "Sen elementos",
|
||||||
"nullNoItems": "Sen elementos. Usando a configuración global",
|
"nullNoItems": "Sen elementos. Usando a configuración global",
|
||||||
"add": "Engadir"
|
"add": "Engadir"
|
||||||
|
},
|
||||||
|
"admin": {
|
||||||
|
"general": {
|
||||||
|
"sessionTimeout": "Tempo límite da sesión",
|
||||||
|
"sessionTimeoutDesc": "Duración da sesión para Lembrarme (segundos)",
|
||||||
|
"metrics": "Métricas",
|
||||||
|
"metricsPassword": "Contrasinal",
|
||||||
|
"metricsPasswordDesc": "Contrasinal Bearer para o endpoint de métricas (contrasinal ou hash argon2)",
|
||||||
|
"json": "JSON",
|
||||||
|
"jsonDesc": "Ruta para as métricas en formato JSON",
|
||||||
|
"prometheus": "Prometheus",
|
||||||
|
"prometheusDesc": "Ruta para as métricas de Prometheus"
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"connection": "Conexión",
|
||||||
|
"hostDesc": "Nome de host público ao que se conectarán os clientes (invalida a configuración)",
|
||||||
|
"portDesc": "Porto UDP público ao que se conectarán os clientes (invalida a configuración; probablemente tamén queiras cambiar o Porto da interface)",
|
||||||
|
"allowedIpsDesc": "IPs permitidas que usarán os clientes (configuración global)",
|
||||||
|
"dnsDesc": "Servidor DNS que usarán os clientes (configuración global)",
|
||||||
|
"mtuDesc": "MTU que usarán os clientes (só para clientes novos)",
|
||||||
|
"persistentKeepaliveDesc": "Intervalo en segundos para enviar keepalives ao servidor. 0 = desactivado (só para clientes novos)",
|
||||||
|
"suggest": "Suxerir",
|
||||||
|
"suggestDesc": "Escolle un enderezo IP ou nome de host para o campo Host"
|
||||||
|
},
|
||||||
|
"interface": {
|
||||||
|
"cidrSuccess": "CIDR cambiado",
|
||||||
|
"device": "Dispositivo",
|
||||||
|
"deviceDesc": "Dispositivo Ethernet polo que se redirixirá o tráfico de WireGuard",
|
||||||
|
"mtuDesc": "MTU que usará WireGuard",
|
||||||
|
"portDesc": "Porto UDP no que WireGuard escoitará (probablemente tamén queiras cambiar o Porto da configuración)",
|
||||||
|
"changeCidr": "Cambiar CIDR",
|
||||||
|
"restart": "Reiniciar interface",
|
||||||
|
"restartDesc": "Reiniciar a interface de WireGuard",
|
||||||
|
"restartWarn": "Seguro que queres reiniciar a interface? Isto desconectará todos os clientes.",
|
||||||
|
"restartSuccess": "Interface reiniciada",
|
||||||
|
"firewall": "Filtrado de tráfico",
|
||||||
|
"firewallEnabled": "Activar devasa por cliente",
|
||||||
|
"firewallEnabledDesc": "Restrinxir o tráfico dos clientes a IPs de destino específicas usando iptables. Cando está activado, cada cliente pode configurarse con destinos permitidos."
|
||||||
|
},
|
||||||
|
"introText": "Benvido ao panel de administración.\n\nAquí podes xestionar a configuración xeral, a configuración, os axustes da interface e os hooks.\n\nComeza escollendo unha das seccións na barra lateral."
|
||||||
|
},
|
||||||
|
"zod": {
|
||||||
|
"generic": {
|
||||||
|
"required": "{0} é obrigatorio",
|
||||||
|
"validNumber": "{0} debe ser un número válido",
|
||||||
|
"validNumberRange": "{0} debe ser un número válido ou un rango de números",
|
||||||
|
"validString": "{0} debe ser unha cadea válida",
|
||||||
|
"validBoolean": "{0} debe ser un booleano válido",
|
||||||
|
"validArray": "{0} debe ser un array válido",
|
||||||
|
"stringMin": "{0} debe ter polo menos {1} carácter",
|
||||||
|
"numberMin": "{0} debe ser polo menos {1}"
|
||||||
|
},
|
||||||
|
"client": {
|
||||||
|
"id": "ID do cliente",
|
||||||
|
"name": "Nome",
|
||||||
|
"expiresAt": "Caduca o",
|
||||||
|
"address4": "Enderezo IPv4",
|
||||||
|
"address6": "Enderezo IPv6",
|
||||||
|
"serverAllowedIps": "IPs permitidas do servidor",
|
||||||
|
"firewallIps": "IPs permitidas da devasa",
|
||||||
|
"firewallIpsInvalid": "Entrada de IP da devasa non válida. Consulta a documentación para a sintaxe admitida."
|
||||||
|
},
|
||||||
|
"user": {
|
||||||
|
"username": "Nome de usuario",
|
||||||
|
"password": "Contrasinal",
|
||||||
|
"remember": "Lembrar",
|
||||||
|
"name": "Nome",
|
||||||
|
"email": "Correo electrónico",
|
||||||
|
"emailInvalid": "O correo electrónico debe ser válido",
|
||||||
|
"passwordMatch": "Os contrasinais deben coincidir",
|
||||||
|
"totpEnable": "Activar TOTP",
|
||||||
|
"totpEnableTrue": "Activar TOTP debe ser verdadeiro",
|
||||||
|
"totpCode": "Código TOTP"
|
||||||
|
},
|
||||||
|
"userConfig": {
|
||||||
|
"host": "Host"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"sessionTimeout": "Tempo límite da sesión",
|
||||||
|
"metricsEnabled": "Métricas",
|
||||||
|
"metricsPassword": "Contrasinal das métricas"
|
||||||
|
},
|
||||||
|
"interface": {
|
||||||
|
"cidr": "CIDR",
|
||||||
|
"device": "Dispositivo",
|
||||||
|
"cidrValid": "O CIDR debe ser válido"
|
||||||
|
},
|
||||||
|
"otl": "Ligazón dun só uso",
|
||||||
|
"stringMalformed": "A cadea está mal formada",
|
||||||
|
"body": "O corpo debe ser un obxecto válido",
|
||||||
|
"hook": "Hook",
|
||||||
|
"enabled": "Activado",
|
||||||
|
"mtu": "MTU",
|
||||||
|
"port": "Porto",
|
||||||
|
"persistentKeepalive": "Keepalive persistente",
|
||||||
|
"address": "Enderezo IP",
|
||||||
|
"dns": "DNS",
|
||||||
|
"allowedIps": "IPs permitidas",
|
||||||
|
"file": "Ficheiro"
|
||||||
|
},
|
||||||
|
"hooks": {
|
||||||
|
"preUp": "PreUp",
|
||||||
|
"postUp": "PostUp",
|
||||||
|
"preDown": "PreDown",
|
||||||
|
"postDown": "PostDown"
|
||||||
|
},
|
||||||
|
"copy": {
|
||||||
|
"notSupported": "Copiar non é compatible",
|
||||||
|
"copied": "Copiado!",
|
||||||
|
"failed": "Erro ao copiar",
|
||||||
|
"copy": "Copiar"
|
||||||
|
},
|
||||||
|
"awg": {
|
||||||
|
"jCLabel": "Número de paquetes lixo (Jc)",
|
||||||
|
"jCDescription": "Número de paquetes lixo para enviar (1-128, recomendado: 4-12)",
|
||||||
|
"jMinLabel": "Tamaño mínimo dos paquetes lixo (Jmin)",
|
||||||
|
"jMinDescription": "Tamaño mínimo dos paquetes lixo (0-1279*, recomendado: 8, debe ser < Jmax)",
|
||||||
|
"jMaxLabel": "Tamaño máximo dos paquetes lixo (Jmax)",
|
||||||
|
"jMaxDescription": "Tamaño máximo dos paquetes lixo (1-1280*, recomendado: 80, debe ser > Jmin)",
|
||||||
|
"s1Label": "Tamaño lixo do paquete de inicio (S1)",
|
||||||
|
"s1Description": "Tamaño lixo do paquete de inicio (0-1132[1280* - 148 = 1132], recomendado: 15-150, S1+56 ≠ S2)",
|
||||||
|
"s2Label": "Tamaño lixo do paquete de resposta (S2)",
|
||||||
|
"s2Description": "Tamaño lixo do paquete de resposta (0-1188[1280* - 92 = 1188], recomendado: 15-150)",
|
||||||
|
"s3Label": "Tamaño lixo do paquete de resposta cookie (S3)",
|
||||||
|
"s3Description": "Tamaño lixo do paquete de resposta cookie",
|
||||||
|
"s4Label": "Tamaño lixo do paquete de transporte (S4)",
|
||||||
|
"s4Description": "Tamaño lixo do paquete de transporte",
|
||||||
|
"h1Label": "Cabeceira máxica de inicio (H1)",
|
||||||
|
"h1Description": "Valor ou rango da cabeceira do paquete de inicio (X ou X-Y, onde X<Y. Mín 5, máx 2147483647. O valor ou rango non debe solaparse con outras cabeceiras)",
|
||||||
|
"h2Label": "Cabeceira máxica de resposta (H2)",
|
||||||
|
"h2Description": "Valor ou rango da cabeceira do paquete de resposta (X ou X-Y, onde X<Y. Mín 5, máx 2147483647. O valor ou rango non debe solaparse con outras cabeceiras)",
|
||||||
|
"h3Label": "Cabeceira máxica da resposta cookie (H3)",
|
||||||
|
"h3Description": "Valor ou rango da cabeceira do paquete de resposta cookie (X ou X-Y, onde X<Y. Mín 5, máx 2147483647. O valor ou rango non debe solaparse con outras cabeceiras)",
|
||||||
|
"h4Label": "Cabeceira máxica de transporte (H4)",
|
||||||
|
"h4Description": "Valor ou rango da cabeceira do paquete de transporte (X ou X-Y, onde X<Y. Mín 5, máx 2147483647. O valor ou rango non debe solaparse con outras cabeceiras)",
|
||||||
|
"i1Label": "Paquete lixo especial 1 (I1)",
|
||||||
|
"i1Description": "Paquete de simulación de protocolo en formato hexadecimal: <b 0x...>",
|
||||||
|
"i2Label": "Paquete lixo especial 2 (I2)",
|
||||||
|
"i2Description": "Paquete de simulación de protocolo en formato hexadecimal: <b 0x...>",
|
||||||
|
"i3Label": "Paquete lixo especial 3 (I3)",
|
||||||
|
"i3Description": "Paquete de simulación de protocolo en formato hexadecimal: <b 0x...>",
|
||||||
|
"i4Label": "Paquete lixo especial 4 (I4)",
|
||||||
|
"i4Description": "Paquete de simulación de protocolo en formato hexadecimal: <b 0x...>",
|
||||||
|
"i5Label": "Paquete lixo especial 5 (I5)",
|
||||||
|
"i5Description": "Paquete de simulación de protocolo en formato hexadecimal: <b 0x...>",
|
||||||
|
"mtuNote": "Os valores dependen da MTU",
|
||||||
|
"obfuscationParameters": "Parámetros de ofuscación de AmneziaWG"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-15
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "wg-easy",
|
"name": "wg-easy",
|
||||||
"version": "15.3.0-beta.3",
|
"version": "15.3.0",
|
||||||
"description": "The easiest way to run WireGuard VPN + Web-based Admin UI.",
|
"description": "The easiest way to run WireGuard VPN + Web-based Admin UI.",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -31,24 +31,24 @@
|
|||||||
"@tailwindcss/forms": "^0.5.11",
|
"@tailwindcss/forms": "^0.5.11",
|
||||||
"@vueuse/core": "^14.3.0",
|
"@vueuse/core": "^14.3.0",
|
||||||
"@vueuse/nuxt": "^14.3.0",
|
"@vueuse/nuxt": "^14.3.0",
|
||||||
"apexcharts": "^5.10.6",
|
"apexcharts": "^5.12.0",
|
||||||
"argon2": "^0.44.0",
|
"argon2": "^0.44.0",
|
||||||
"cidr-tools": "^11.3.5",
|
"cidr-tools": "^12.0.1",
|
||||||
"citty": "^0.2.2",
|
"citty": "^0.2.2",
|
||||||
"consola": "^3.4.2",
|
"consola": "^3.4.2",
|
||||||
"crc-32": "^1.2.2",
|
"crc-32": "^1.2.2",
|
||||||
"debug": "^4.4.3",
|
|
||||||
"drizzle-orm": "^0.45.2",
|
"drizzle-orm": "^0.45.2",
|
||||||
"ip-bigint": "^8.3.6",
|
"ip-bigint": "^9.0.4",
|
||||||
"is-cidr": "^6.0.4",
|
"is-cidr": "^7.0.0",
|
||||||
"is-ip": "^5.0.1",
|
"is-ip": "^5.0.1",
|
||||||
"js-sha256": "^0.11.1",
|
"js-sha256": "^0.11.1",
|
||||||
"nuxt": "^3.21.4",
|
"nuxt": "^3.21.5",
|
||||||
|
"obug": "^2.1.1",
|
||||||
"otpauth": "^9.5.1",
|
"otpauth": "^9.5.1",
|
||||||
"pinia": "^3.0.4",
|
"pinia": "^3.0.4",
|
||||||
"qr": "^0.6.0",
|
"qr": "^0.6.0",
|
||||||
"radix-vue": "^1.9.17",
|
"radix-vue": "^1.9.17",
|
||||||
"semver": "^7.7.4",
|
"semver": "^7.8.0",
|
||||||
"tailwindcss": "^3.4.19",
|
"tailwindcss": "^3.4.19",
|
||||||
"timeago.js": "^4.0.2",
|
"timeago.js": "^4.0.2",
|
||||||
"vue": "latest",
|
"vue": "latest",
|
||||||
@@ -58,21 +58,20 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@nuxt/eslint": "^1.15.2",
|
"@nuxt/eslint": "^1.15.2",
|
||||||
"@nuxt/test-utils": "^4.0.3",
|
"@nuxt/test-utils": "^4.0.3",
|
||||||
"@types/debug": "^4.1.13",
|
|
||||||
"@types/phc__format": "^1.0.1",
|
"@types/phc__format": "^1.0.1",
|
||||||
"@types/semver": "^7.7.1",
|
"@types/semver": "^7.7.1",
|
||||||
"@vitest/coverage-v8": "^4.1.5",
|
"@vitest/coverage-v8": "^4.1.6",
|
||||||
"@vitest/ui": "^4.1.5",
|
"@vitest/ui": "^4.1.6",
|
||||||
"drizzle-kit": "^0.31.10",
|
"drizzle-kit": "^0.31.10",
|
||||||
"esbuild": "^0.28.0",
|
"esbuild": "^0.28.0",
|
||||||
"eslint": "^9.39.4",
|
"eslint": "^9.39.4",
|
||||||
"eslint-config-prettier": "^10.1.8",
|
"eslint-config-prettier": "^10.1.8",
|
||||||
"prettier": "^3.8.3",
|
"prettier": "^3.8.3",
|
||||||
"prettier-plugin-tailwindcss": "^0.8.0",
|
"prettier-plugin-tailwindcss": "^0.8.0",
|
||||||
"tsx": "^4.21.0",
|
"tsx": "^4.22.1",
|
||||||
"typescript": "^6.0.3",
|
"typescript": "^6.0.3",
|
||||||
"vitest": "^4.1.5",
|
"vitest": "^4.1.6",
|
||||||
"vue-tsc": "^3.2.8"
|
"vue-tsc": "^3.2.9"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@10.33.3"
|
"packageManager": "pnpm@11.1.2"
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+1216
-1175
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,6 @@
|
|||||||
|
allowBuilds:
|
||||||
|
'@parcel/watcher': false
|
||||||
|
argon2: false
|
||||||
|
esbuild: false
|
||||||
|
unrs-resolver: false
|
||||||
|
vue-demi: false
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 663 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 1.9 MiB |
@@ -1,7 +1,7 @@
|
|||||||
import { drizzle } from 'drizzle-orm/libsql';
|
import { drizzle } from 'drizzle-orm/libsql';
|
||||||
import { migrate as drizzleMigrate } from 'drizzle-orm/libsql/migrator';
|
import { migrate as drizzleMigrate } from 'drizzle-orm/libsql/migrator';
|
||||||
import { createClient } from '@libsql/client';
|
import { createClient } from '@libsql/client';
|
||||||
import debug from 'debug';
|
import { createDebug } from 'obug';
|
||||||
import { eq } from 'drizzle-orm';
|
import { eq } from 'drizzle-orm';
|
||||||
|
|
||||||
import * as schema from './schema';
|
import * as schema from './schema';
|
||||||
@@ -13,7 +13,7 @@ import { InterfaceService } from './repositories/interface/service';
|
|||||||
import { HooksService } from './repositories/hooks/service';
|
import { HooksService } from './repositories/hooks/service';
|
||||||
import { OneTimeLinkService } from './repositories/oneTimeLink/service';
|
import { OneTimeLinkService } from './repositories/oneTimeLink/service';
|
||||||
|
|
||||||
const DB_DEBUG = debug('Database');
|
const DB_DEBUG = createDebug('Database');
|
||||||
|
|
||||||
const client = createClient({ url: 'file:/etc/wireguard/wg-easy.db' });
|
const client = createClient({ url: 'file:/etc/wireguard/wg-easy.db' });
|
||||||
const db = drizzle({ client, schema });
|
const db = drizzle({ client, schema });
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import fs from 'node:fs/promises';
|
import fs from 'node:fs/promises';
|
||||||
import debug from 'debug';
|
import { createDebug } from 'obug';
|
||||||
import type { InterfaceType } from '#db/repositories/interface/types';
|
import type { InterfaceType } from '#db/repositories/interface/types';
|
||||||
|
|
||||||
const WG_DEBUG = debug('WireGuard');
|
const WG_DEBUG = createDebug('WireGuard');
|
||||||
|
|
||||||
const generateRandomHeaderValue = () =>
|
const generateRandomHeaderValue = () =>
|
||||||
Math.floor(Math.random() * 2147483642) + 5;
|
Math.floor(Math.random() * 2147483642) + 5;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import childProcess from 'child_process';
|
import childProcess from 'child_process';
|
||||||
import debug from 'debug';
|
import { createDebug } from 'obug';
|
||||||
|
|
||||||
const CMD_DEBUG = debug('CMD');
|
const CMD_DEBUG = createDebug('CMD');
|
||||||
|
|
||||||
export function exec(
|
export function exec(
|
||||||
cmd: string,
|
cmd: string,
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import debug from 'debug';
|
import { createDebug } from 'obug';
|
||||||
import packageJson from '@@/package.json';
|
import packageJson from '@@/package.json';
|
||||||
|
|
||||||
export const RELEASE = 'v' + packageJson.version;
|
export const RELEASE = 'v' + packageJson.version;
|
||||||
|
|
||||||
export const SERVER_DEBUG = debug('Server');
|
export const SERVER_DEBUG = createDebug('Server');
|
||||||
|
|
||||||
export const OLD_ENV = {
|
export const OLD_ENV = {
|
||||||
/** @deprecated Only for migration purposes */
|
/** @deprecated Only for migration purposes */
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import debug from 'debug';
|
import { createDebug } from 'obug';
|
||||||
import { isIPv6 } from 'is-ip';
|
import { isIPv6 } from 'is-ip';
|
||||||
|
|
||||||
import type { ClientType } from '#db/repositories/client/types';
|
import type { ClientType } from '#db/repositories/client/types';
|
||||||
import type { InterfaceType } from '#db/repositories/interface/types';
|
import type { InterfaceType } from '#db/repositories/interface/types';
|
||||||
import type { UserConfigType } from '#db/repositories/userConfig/types';
|
import type { UserConfigType } from '#db/repositories/userConfig/types';
|
||||||
|
|
||||||
const FW_DEBUG = debug('Firewall');
|
const FW_DEBUG = createDebug('Firewall');
|
||||||
const CHAIN_NAME = 'WG_CLIENTS';
|
const CHAIN_NAME = 'WG_CLIENTS';
|
||||||
|
|
||||||
// Mutex to prevent concurrent rule rebuilds
|
// Mutex to prevent concurrent rule rebuilds
|
||||||
|
|||||||
Reference in New Issue
Block a user