web/README.md
2026-08-16 22:37:44 +02:00

82 lines
2.5 KiB
Markdown

![fwlnx](https://gitlab.com/fwlnx/fwlnx/-/raw/master/fwlnx.png)
# fwlnx
Firewall Linux - A small and simple Linux based Firewall Distribution
It combines a smart Linux distribution ([NixOS](https://nixos.org/)) with modern network services, a simple web interface and an API to configure it. It's not meant to be a replacement for far superiour Appliances like [pfSense](https://www.pfsense.org/) or [OPNSense](https://opnsense.org/) but as an alternative solution for typical home use. Think FRITZ!Box on steroids.
## Target platforms
- QEMU/KVM
- [PCEngines APU2/3/4](https://www.pcengines.ch/apu2.htm)
- Generic [AliExpress](https://www.aliexpress.com/wholesale?catId=0&SearchText=router+pc) Router PCs
## Planned initial features
- Firewall ([netfilter](https://netfilter.org/))
- [ ] NAT
- [ ] Rules
- [ ] UPnP ([miniupnp](https://miniupnp.tuxfamily.org/))
- [ ] DynDNS ([ddclient](https://ddclient.net/))
- VPN
- [ ] [OpenVPN](https://openvpn.net/)
- [ ] [Wireguard](https://www.wireguard.com/)
- [ ] NTP ([chrony](https://chrony.tuxfamily.org/))
- [ ] DHCP ([Kea](https://www.isc.org/kea/))
- [ ] DNS ([Knot](https://www.knot-dns.cz/))
- [ ] mDNS/DNS-SD ([Avahi](https://www.avahi.org/))
- [ ] TFTP ([Netkit TFTP](http://ftp.linux.org.uk/pub/linux/Networking/netkit/))
- [ ] Auto config backup
- [ ] Cron/Timers ([Systemd-timers](https://www.freedesktop.org/software/systemd/man/systemd.timer.html))
## Minimum hardware requirements
- x86_64 Multicore CPU
- 4GB RAM
- 64GB storage
- 2x ethernet ports
- one dedicated WAN port
- one dedicated LAN port
## Installation
TBD
## Design
### Partitioning
The partitioning schema is kept simple and will be setup like this:
UEFI/GPT:
```
/dev/sda:
/dev/sda1 vfat /boot 1G # ESP
/dev/sda2 swap [SWAP] 4G # SWAP
/dev/sda3 ext4 / 100%FREE # FWLNX
```
Minimum size for the storage is 64GB. eMMC, SATA or NVMe SSDs should be preferred to SD cards. Minimum RAM size is 4GB, but more RAM is more good. 😉
### Operating system
As the base operating system NixOS is used. The backend daemon Garmr feeds configuration into nix expressions to configure the whole system.
### [Garmr](https://gitlab.com/fwlnx/garmr)
Backend daemon which exposes all configuration options via a HTTP API.
### [Freyja](https://gitlab.com/fwlnx/freyja)
Web frontend that hooks into Garmrs API to make it easier to configure fwlnx.
---
Made with ❤️ and ❄️.
Icon partly from [stockio](https://www.stockio.com/free-icon/nature-icons-penguin)