Commit graph

1358 commits

Author SHA1 Message Date
Bernd Storath
bc4dfd03df
feat: copy & download qr code as png (#2521)
* copy & download qr code as png

* i18n, accessibility

* improve error handling
2026-03-05 13:39:31 +01:00
Bernd Storath
7cde04de81 docs: fix faq urls
introduced in #2418
2026-03-05 13:38:12 +01:00
Bernd Storath
5228734c98
feat(cli): add command to show qr code (#2518)
* refactor cli, add commands

* add docs

* improve

* fix ec mode order
2026-03-05 11:53:27 +01:00
Ian Foster
47f81dd66a
Feature/client firewall filtering (#2418)
* Add per-client firewall filtering

Implement server-side firewall rules to restrict client network access,
allowing administrators to enforce security policies that cannot be
bypassed by clients modifying their local configuration.

This feature addresses the limitation where "Allowed IPs" only controls
client-side routing but doesn't prevent clients from accessing networks
they shouldn't reach. The firewall rules are enforced on the server
using iptables/ip6tables and provide true access control.

Features:
- Opt-in via "Enable Per-Client Firewall" toggle in admin interface
- Per-client "Firewall Allowed IPs" field for granular control
- Support for IPs, CIDRs, and port-based filtering
- Protocol specification: TCP, UDP, or both (default)
- IPv4 and IPv6 dual-stack support
- Falls back to client's allowedIps when firewallIps is empty
- Clean separation of routing (allowedIps) from security (firewallIps)

Supported formats:
- 10.10.0.3 (single IP)
- 10.10.0.0/24 (CIDR range)
- 192.168.1.5:443 (IP with port, both TCP+UDP)
- 192.168.1.5:443/tcp (IP with specific protocol)
- [2001:db8::1]:443 (IPv6 with port)

Implementation:
- New database columns: firewall_enabled (interfaces), firewall_ips (clients)
- Migration 0003_add_firewall_filtering for schema updates
- firewall.ts utility for iptables chain management (WG_CLIENTS chain)
- Integration into WireGuard.ts for automatic rule application
- UI components with conditional rendering based on firewall toggle

Technical details:
- Uses custom WG_CLIENTS iptables chain for isolation
- Rebuild strategy: flush and recreate all rules on config save
- Mutex protection via rebuildInProgress/rebuildQueued flags
- Graceful cleanup when firewall is disabled
- No new dependencies (uses existing is-ip, is-cidr packages)

* added Comprehensive documentation in README and docs/ for firewall
filtering

* validate firewall IPs

* check for iptables before enabling the firewall and inform the user if
it is missing

* updated firewall docs

* fix imports

* remove extra import

* Document all allowed IP/cidr/port/proto combinations that are allowed
and check on save

* add note on firewall being experimental and how to opt a single client
out of the firewall.

* cleanup more imports

* add tests

* Fix firewall IPv6 validation and test expectations

Updated validation to correctly handle plain and bracketed IPv6 addresses, and fixed test to expect string from schema instead of object.

* added comments to firewall rules and updated tests

* fix auto-import

* fix typescript errors

* recreate sql migrations and rebase

* improve tests, typechecking, documentation

* fix formatting, fix types

* improve type

* added note for including host's IP in client firewall

* updated language to include cidr and protocol options

* another language update

* refer to docs for firewall allowed IPs

---------

Co-authored-by: Bernd Storath <999999bst@gmail.com>
2026-03-05 08:47:46 +01:00
Filip Richter
e5b2c3d10b
Add Czech language support (#2487)
* Add Czech localization file for i18n

* Add Czech locale support to i18n configuration

* Add Czech language support to nuxt.config.ts

* Update Czech translation for 'hooks' key
2026-03-03 11:30:06 +01:00
Bernd Storath
059a0ccffc update packages 2026-03-02 08:18:59 +01:00
Maksim M.
8c9c54c8b2
i18n(ru): Add missing validNumberRange and update H1-H4 descriptions (#2501)
Update Russian translations - H Descriptions
2026-03-02 08:09:12 +01:00
Stephan Paternotte
02ce6f0a65
Update nl.json - hxDescriptions updated (#2498)
AmneziaWG 2.0: support for H1-H4 ranges (#2480)
2026-02-27 07:47:37 +01:00
Bernd Storath
48682e1abd update packages 2026-02-23 08:12:21 +01:00
Stephan Paternotte
044dd34dcc
Update nl.json (#2490)
AmneziaWG 2.0: support for H1-H4 ranges (#2480) TRANSLATED
2026-02-21 20:34:09 +01:00
CthulhuVRN
a469ac6897
AmneziaWG 2.0: support for H1-H4 ranges (#2480)
* AmneziaWG 2.0: support for H1-H4 ranges

## Changes:
```
- [+] Added support for H1-H4 ranges
- [!] Fixed interface fields order (H1-H4 goes before I1-I5)
```

## Known issues:
```
- [!] no check for unique/overlap of H1-H4 values on settings apply:
  settings will be applied but wg interface will crash with "Invalid argument" error
```

* AmneziaWG 2.0: support for H1-H4 ranges

## Changes:
```
- [+] Added support for H1-H4 ranges
- [!] Fixed interface fields order (H1-H4 goes before I1-I5)
```

## Known issues:
```
- [!] no check for unique/overlap of H1-H4 values on settings apply:
  settings will be applied but wg interface will crash with "Invalid argument" error
```

* AmneziaWG 2.0: support for H1-H4 ranges

## Changes:
```
- [+] Added support for H1-H4 ranges
- [!] Fixed interface fields order (H1-H4 goes before I1-I5)
```

## Known issues:
```
- [!] no check for unique/overlap of H1-H4 values on settings apply:
  settings will be applied but wg interface will crash with "Invalid argument" error
```

* Update types.ts

Lint fixes

---------

Co-authored-by: CthulhuVRN <alexander@ptitsyn.info>
2026-02-17 13:27:22 +01:00
Bernd Storath
1178d23659 update packages 2026-02-16 09:11:19 +01:00
Bernd Storath
b3cc1ce839 reduce container size
from around 700mb to 400mb
2026-02-11 15:36:29 +01:00
Bernd Storath
71aaec93ef add unit tests
this adds the groundwork to start unit testing some modules
2026-02-11 15:23:04 +01:00
HackingAll
7a219b73d4
Adding galician (#2473)
* Adding galego -> gl.json

* Update i18n.config.ts

* Update nuxt.config.ts
2026-02-10 11:18:02 +01:00
Bare7a
c456c5e7dd
Add Bulgarian translation (#2466) 2026-02-09 08:00:38 +01:00
Bernd Storath
a5880cc0b8 update packages 2026-02-09 08:00:07 +01:00
Bernd Storath
5fca628ebd change date in copyright footer 2026-02-06 15:32:39 +01:00
Bernd Storath
7ab297c366 Bump version to 15.2.2 2026-02-06 14:55:20 +01:00
Bernd Storath
c5de8f0f44
cli: reset 2fa on admin reset (#2461)
reset 2fa on cli reset
2026-02-06 12:28:13 +01:00
Bernd Storath
c0641889cf
replace watchtower (#2456)
update to maintained fork
2026-02-04 08:24:48 +01:00
Bernd Storath
9141562f91 update tagging convention for latest tag 2026-02-04 08:17:58 +01:00
thebigpotatoe
d21af70df1
fix: correct help text for prometheus metrics (#2453) 2026-02-03 11:27:03 +01:00
Bernd Storath
56ee86cc1c update packages 2026-02-02 08:27:05 +01:00
Runar Ingebrigtsen
f017b4968c
Add Norwegian bokmål translation (#2447)
* add Norwegian bokmål translation

Signed-off-by: Runar Ingebrigtsen <runar@rin.no>

* add nb config, available in UI

Signed-off-by: Runar Ingebrigtsen <runar@rin.no>

---------

Signed-off-by: Runar Ingebrigtsen <runar@rin.no>
2026-02-02 08:18:31 +01:00
Alexander Chepurnoy
6004457666
feat: update client and server interface parameters (#2440) 2026-01-28 09:34:11 +01:00
Bernd Storath
1a5a0180ea
Fix LangSelector and ClientCard z-index (#2434)
fix client card
2026-01-27 08:24:53 +01:00
Ayush Chothe
c732f149e6
feat: Add wireguard-go package in Dockerfile (#2419)
* feat: Add `wireguard-go` package in `Dockerfile`

* feat: add amneziawg-go
Co-authored-by: cany748 <cany748@gmail.com>
2026-01-27 08:08:24 +01:00
Bernd Storath
4819480eb0 update packages 2026-01-26 09:02:25 +01:00
Alexander Chepurnoy
fc7ab0dc21
feat(docs): edit amnezia.md (#2430)
* feat(docs): edit amnezia.md

* Update docs/content/advanced/config/amnezia.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update docs/content/advanced/config/amnezia.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-26 08:43:09 +01:00
Bernd Storath
eb6b96c0f1
lang: Add dutch language (#2413)
add dutch language

Co-authored-by: Stephan Paternotte <Stephan-P@users.noreply.github.com>
2026-01-21 09:39:18 +01:00
Bernd Storath
f62fad9c40 update packages 2026-01-20 08:51:19 +01:00
Maksim M.
e9a472c8f7
fix(i18n/ru): use "мусор" for AmneziaWG junk packets (#2402)
The RU translation changed "junk" from "мусорный" to "шумовой".
Amnezia authors consistently describe these packets/bytes as "мусор" in their docs and Habr posts. Align wording with upstream terminology to avoid confusion for RU users.
2026-01-15 08:14:38 +01:00
Bernd Storath
552e2b8cbf update screenshot 2026-01-14 09:53:04 +01:00
Bernd Storath
a0b4192cbd Bump version to 15.2.1 2026-01-14 08:51:01 +01:00
Bernd Storath
32a055093a exclude i18n from setup middleware 2026-01-13 13:15:46 +01:00
Bernd Storath
51558c7027
refactor: session handling (#2398)
* refactor session handling

* simplify
2026-01-13 10:11:13 +01:00
binnichtaktiv
b85286f0ab
Lang(de): Improve and add missing translations (#2393)
* add missing german translations

* fix typos and improve existing translations

* fix punctuation

* fix last overlooked typos
2026-01-13 08:21:08 +01:00
Bernd Storath
48f3fbd715 always generate awg h1-h5 2026-01-13 08:07:13 +01:00
Bernd Storath
458f66818a fix search magnifying icon 2026-01-12 12:04:50 +01:00
Bernd Storath
7964dc7993 Bump version to 15.2.0 2026-01-12 08:28:23 +01:00
RaffaelHold
0ac5d7d461
feat(docs): Extend docs for routed setup with nftables (#2380)
* Extend docs for routed setup with nftables

When using nftables in a routed setup different up and down hooks need to be used. 
To limit interaction with docker managed chains a custom WG_EASY chain is added as a jump target.
Since nft only supports deletion via handles awk is needed to get the handle of the jump rule for deletion

* Remove link to podman-nft

* Fix formatting according to prettier rules

* Add additional whitespace
2026-01-12 08:21:18 +01:00
Bernd Storath
826914a4f3 update packages 2026-01-12 08:19:01 +01:00
Bernd Storath
261da431e7
Fix: reset onetimelink expiration instead of failing (#2370)
* update expiresAt instead of failing

* add changelog
2025-12-29 19:12:53 +01:00
Bernd Storath
94b33abf5e
Remove armv7 support (#2369)
remove armv7 support
2025-12-29 18:54:47 +01:00
Bernd Storath
8325056ccc
update lockfile 2025-12-29 18:47:48 +01:00
Bernd Storath
81a1b2c907
update packages 2025-12-29 18:36:51 +01:00
dependabot[bot]
fc8f89fb83
build(deps): bump actions/download-artifact from 6 to 7 (#2343)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-18 07:58:23 +01:00
dependabot[bot]
d846c7745f
build(deps): bump actions/upload-artifact from 5 to 6 (#2344)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-18 07:58:12 +01:00
Bernd Storath
61c6fd6c02 update packages 2025-12-15 08:03:25 +01:00