Skip to content
This repository has been archived by the owner on Dec 9, 2024. It is now read-only.

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
TalalMash committed Nov 15, 2024
0 parents commit 56718fa
Show file tree
Hide file tree
Showing 123 changed files with 1,001 additions and 0 deletions.
18 changes: 18 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: ci
on:
push:
branches:
- master
- main
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: 3.x
- run: pip install mkdocs-material
- run: mkdocs gh-deploy --force
1 change: 1 addition & 0 deletions docs/CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
smoothwan.discourse.group
14 changes: 14 additions & 0 deletions docs/adg.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
###Due to popular request and leak-proof DNS, ADGH is the default DNS server.

##AdGuard Home is a local network-wide advertising blocker

*How to enable adblocking*

- Visit https://172.17.17.2:3000 or your LAN IP :3000 and click "Enable protection"
<img style="border:6px solid #d2ccf1;" src="/SmoothWAN-docs/assets/adg.webp" style="max-height:300px"/>

*Notes*

- You can change password in the configuration tab.


Binary file added docs/assets/adg.webp
Binary file not shown.
Binary file added docs/assets/engarde/1.webp
Binary file not shown.
Binary file added docs/assets/engarde/10.webp
Binary file not shown.
Binary file added docs/assets/engarde/2.webp
Binary file not shown.
Binary file added docs/assets/engarde/3.webp
Binary file not shown.
Binary file added docs/assets/engarde/4.webp
Binary file not shown.
Binary file added docs/assets/engarde/5.webp
Binary file not shown.
Binary file added docs/assets/engarde/6.webp
Binary file not shown.
Binary file added docs/assets/engarde/7.webp
Binary file not shown.
Binary file added docs/assets/engarde/8.webp
Binary file not shown.
Binary file added docs/assets/engarde/9.webp
Binary file not shown.
62 changes: 62 additions & 0 deletions docs/assets/engarde/user-data.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#cloud-config
packages:
- wireguard
runcmd:
- ################
- ### PASSWORD ###
- Password="yourpassword"
- ### 8 letters, numbers, and !-? only ###
- ################
- systemctl disable firewalld
- systemctl stop firewalld
- systemctl disable ssh
- systemctl stop ssh
- ufw disable
- iptables -P INPUT ACCEPT
- iptables -P OUTPUT ACCEPT
- iptables -P FORWARD ACCEPT
- iptables -F
- SERVER_PUB_NIC=$(ip route | awk 'NR==1{print$5}') #Default route is first line _usually_
- printf $Password | openssl dgst -binary -sha256 | openssl base64 -A > /root/private-key
- ckey=$(cat /root/private-key | openssl dgst -binary -sha256 | openssl base64 -A)
- cpubkey=$(echo $ckey | wg pubkey)
- printf $ckey | openssl dgst -binary -sha256 | openssl base64 -A > /root/preshared-key
- ip link add dev wg0 type wireguard
- ip address add dev wg0 10.202.0.5 peer 10.202.0.10
- wg set wg0 listen-port 65532 private-key /root/private-key peer $cpubkey preshared-key /root/preshared-key allowed-ips 10.202.0.10 persistent-keepalive 25
- ip link set up dev wg0
- #(uncommon) Replace amd64 with arm64 if your server is ARM#
- wget https://github.com/SmoothWAN/engarde/releases/download/master/engarde-server.linux.amd64 -O /usr/bin/engarde-server
- chmod +x /usr/bin/engarde-server && mkdir -p /etc/engarde
- wget https://raw.githubusercontent.com/SmoothWAN/SmoothWAN-misc/main/engarde/engarde-server.yml -O /etc/engarde/engarde.yml
- /usr/bin/engarde-server /etc/engarde/engarde.yml &
- ip link set wg0 mtu 1280
- ulimit -n 65535
- sysctl -w net.core.rmem_max=26214400
- sysctl -w net.core.rmem_default=26214400
- sysctl -w net.core.wmem_max=26214400
- sysctl -w net.core.wmem_default=26214400
- sysctl -w net.core.netdev_max_backlog=2048
- echo 1 > /proc/sys/net/ipv4/ip_forward
- iptables -A FORWARD -i $SERVER_PUB_NIC -o wg0 -j ACCEPT
- iptables -A FORWARD -i wg0 -j ACCEPT
- iptables -t nat -A POSTROUTING -s 10.202.0.0/24 -j MASQUERADE
- #Change 1024-65000 range to open lower ports, 65518 and higher is reserved, defaults adjusted for UPnP
- iptables -t nat -A PREROUTING -i $SERVER_PUB_NIC -p udp --dport 1024:65000 -j DNAT --to-destination 10.202.0.10:1024-65000
- iptables -t nat -A PREROUTING -i $SERVER_PUB_NIC -p tcp --dport 1024:65000 -j DNAT --to-destination 10.202.0.10:1024-65000

cloud_final_modules:
- package-update-upgrade-install
- scripts-per-once
- scripts-per-boot
- scripts-per-instance
- [scripts-user, always]
- keys-to-console
- phone-home
- final-message

#Uncomment and adjust below to enable user console login
# chpasswd:
# list: |
# distrodefaultusername:yourpassword
# expire: False
Binary file added docs/assets/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/flintports.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/lan/1.webp
Binary file not shown.
Binary file added docs/assets/lan/2.webp
Binary file not shown.
Binary file added docs/assets/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/npir6sports.webp
Binary file not shown.
Binary file added docs/assets/p2p.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/proxmox/1.webp
Binary file not shown.
Binary file added docs/assets/proxmox/10.webp
Binary file not shown.
Binary file added docs/assets/proxmox/11.webp
Binary file not shown.
Binary file added docs/assets/proxmox/12.webp
Binary file not shown.
Binary file added docs/assets/proxmox/13.webp
Binary file not shown.
Binary file added docs/assets/proxmox/14.webp
Binary file not shown.
Binary file added docs/assets/proxmox/15.webp
Binary file not shown.
Binary file added docs/assets/proxmox/16.webp
Binary file not shown.
Binary file added docs/assets/proxmox/17.webp
Binary file not shown.
Binary file added docs/assets/proxmox/18.webp
Binary file not shown.
Binary file added docs/assets/proxmox/19.webp
Binary file not shown.
Binary file added docs/assets/proxmox/2.webp
Binary file not shown.
Binary file added docs/assets/proxmox/20.webp
Binary file not shown.
Binary file added docs/assets/proxmox/21.webp
Binary file not shown.
Binary file added docs/assets/proxmox/22.webp
Binary file not shown.
Binary file added docs/assets/proxmox/23.webp
Binary file not shown.
Binary file added docs/assets/proxmox/24.webp
Binary file not shown.
Binary file added docs/assets/proxmox/25.webp
Binary file not shown.
Binary file added docs/assets/proxmox/26.webp
Binary file not shown.
Binary file added docs/assets/proxmox/27.webp
Binary file not shown.
Binary file added docs/assets/proxmox/28.webp
Binary file not shown.
Binary file added docs/assets/proxmox/29.webp
Binary file not shown.
Binary file added docs/assets/proxmox/3.webp
Binary file not shown.
Binary file added docs/assets/proxmox/30.webp
Binary file not shown.
Binary file added docs/assets/proxmox/31.webp
Binary file not shown.
Binary file added docs/assets/proxmox/32.webp
Binary file not shown.
Binary file added docs/assets/proxmox/33.webp
Binary file not shown.
Binary file added docs/assets/proxmox/34.webp
Binary file not shown.
Binary file added docs/assets/proxmox/35.webp
Binary file not shown.
Binary file added docs/assets/proxmox/36.webp
Binary file not shown.
Binary file added docs/assets/proxmox/37.webp
Binary file not shown.
Binary file added docs/assets/proxmox/38.webp
Binary file not shown.
Binary file added docs/assets/proxmox/39.webp
Binary file not shown.
Binary file added docs/assets/proxmox/4.webp
Binary file not shown.
Binary file added docs/assets/proxmox/40.webp
Binary file not shown.
Binary file added docs/assets/proxmox/41.webp
Binary file not shown.
Binary file added docs/assets/proxmox/42.webp
Binary file not shown.
Binary file added docs/assets/proxmox/5.webp
Binary file not shown.
Binary file added docs/assets/proxmox/6.webp
Binary file not shown.
Binary file added docs/assets/proxmox/7.webp
Binary file not shown.
Binary file added docs/assets/proxmox/8.webp
Binary file not shown.
Binary file added docs/assets/proxmox/9.webp
Binary file not shown.
Binary file added docs/assets/setup/1.webp
Binary file not shown.
Binary file added docs/assets/setup/10.webp
Binary file not shown.
Binary file added docs/assets/setup/11.webp
Binary file not shown.
Binary file added docs/assets/setup/12.webp
Binary file not shown.
Binary file added docs/assets/setup/13.webp
Binary file not shown.
Binary file added docs/assets/setup/2.webp
Binary file not shown.
Binary file added docs/assets/setup/3.webp
Binary file not shown.
Binary file added docs/assets/setup/4.webp
Binary file not shown.
Binary file added docs/assets/setup/5.webp
Binary file not shown.
Binary file added docs/assets/setup/6.webp
Binary file not shown.
Binary file added docs/assets/setup/7.webp
Binary file not shown.
Binary file added docs/assets/setup/8.webp
Binary file not shown.
Binary file added docs/assets/setup/9.webp
Binary file not shown.
Binary file added docs/assets/slateports.webp
Binary file not shown.
Binary file added docs/assets/tinyfec/1.webp
Binary file not shown.
Binary file added docs/assets/tinyfec/2.webp
Binary file not shown.
Binary file added docs/assets/tinyfec/3.webp
Binary file not shown.
Binary file added docs/assets/tinyfec/4.webp
Binary file not shown.
Binary file added docs/assets/tinyfec/5.webp
Binary file not shown.
Binary file added docs/assets/tinyfec/6.webp
Binary file not shown.
Binary file added docs/assets/tinyfec/7.webp
Binary file not shown.
Binary file added docs/assets/tinyfec/8.webp
Binary file not shown.
Binary file added docs/assets/tinyfec/9.webp
Binary file not shown.
50 changes: 50 additions & 0 deletions docs/assets/tinyfec/user-data.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#cloud-config
runcmd:
- ################
- ### PASSWORD ###
- Password="yourpassword"
- ### 8 letters, numbers, and !-? only ###
- ################
- systemctl disable firewalld
- systemctl stop firewalld
- systemctl disable ssh
- systemctl stop ssh
- ufw disable
- iptables -P INPUT ACCEPT
- iptables -P OUTPUT ACCEPT
- iptables -P FORWARD ACCEPT
- iptables -F
- SERVER_PUB_NIC=$(ip route | awk 'NR==1{print$5}') #Default route is first line _usually_
- ip address add dev wg0 10.202.0.1 peer 10.202.0.2
- wget https://github.com/SmoothWAN/tinyfecVPN/releases/download/master/tinyvpn_amd64 -O /usr/bin/tinyvpn
- chmod +x /usr/bin/tinyvpn
- /usr/bin/tinyvpn -s -l0.0.0.0:65520 -f1:3,2:4,8:6,20:10 -k "$Password" --sub-net 10.202.0.0 --tun-mtu 65535 --disable-checksum --disable-obscure --keep-reconnect --tun-dev tinyfec0 &
- ulimit -n 65535
- sysctl -w net.core.rmem_max=26214400
- sysctl -w net.core.rmem_default=26214400
- sysctl -w net.core.wmem_max=26214400
- sysctl -w net.core.wmem_default=26214400
- sysctl -w net.core.netdev_max_backlog=2048
- echo 1 > /proc/sys/net/ipv4/ip_forward
- iptables -A FORWARD -i $SERVER_PUB_NIC -o tinyfec0 -j ACCEPT
- iptables -A FORWARD -i tinyfec0 -j ACCEPT
- iptables -t nat -A POSTROUTING -s 10.202.0.0/24 -j MASQUERADE
- #Change 1024-65000 range to open lower ports, 65518 and higher is reserved, defaults adjusted for UPnP
- iptables -t nat -A PREROUTING -i $SERVER_PUB_NIC -p udp --dport 1024:65000 -j DNAT --to-destination 10.202.0.2:1024-65000
- iptables -t nat -A PREROUTING -i $SERVER_PUB_NIC -p tcp --dport 1024:65000 -j DNAT --to-destination 10.202.0.2:1024-65000

cloud_final_modules:
- package-update-upgrade-install
- scripts-per-once
- scripts-per-boot
- scripts-per-instance
- [scripts-user, always]
- keys-to-console
- phone-home
- final-message

#Uncomment and adjust below to enable user console login
# chpasswd:
# list: |
# distrodefaultusername:yourpassword
# expire: False
Binary file added docs/assets/vpn/1.webp
Binary file not shown.
Binary file added docs/assets/vpn/1e.webp
Binary file not shown.
Binary file added docs/assets/vpn/2.webp
Binary file not shown.
Binary file added docs/assets/vpn/3.webp
Binary file not shown.
Binary file added docs/assets/vpn/4.webp
Binary file not shown.
Binary file added docs/assets/wan/1.webp
Binary file not shown.
Binary file added docs/assets/wan/2.webp
Binary file not shown.
Binary file added docs/assets/wan/3.webp
Binary file not shown.
Binary file added docs/assets/wan/4.webp
Binary file not shown.
11 changes: 11 additions & 0 deletions docs/contact.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<h2>Quick links</h2>


[![Discourse](https://user-images.githubusercontent.com/96490382/224407817-9e2cef2a-6c51-4a71-90c4-8a48633b51bf.png)](https://smoothwan.discourse.group/)

[![Discord](https://badgen.net/discord/members/AxSSjpgwjx)](https://discord.gg/AxSSjpgwjx)



Visit [Discourse](https://smoothwan.discourse.group/) for discussions, help and live chat on networking configurations and Speedify/Engarde/TinyFEC topics, and [issues](https://github.com/TalalMash/SmoothWAN/issues) for SmoothWAN related issues.

46 changes: 46 additions & 0 deletions docs/devl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
_**Quick build hints**_
??? note "Raspberry Pi 4 and PC"

- Get your imagebuilder device target archive from: https://downloads.openwrt.org/releases/22.03.3/targets/
- Clone repo and copy the corresponding device from devconfigs and packages to imagebuilder root.
- Run "sh build.sh"
- Compiled image is in `bin/...`


??? note "Gl.iNet Slate AX / Flint (no longer possible - repo is down)"

- For v1.0 and above follow the the Pi/PC instructions instead.
- `git clone https://github.com/gl-inet/gl-infra-builder.git`
- `sudo apt install build-essential clang flex g++ gawk gcc-multilib gettext \
git libncurses5-dev libssl-dev python3-distutils rsync unzip zlib1g-dev \
file wget`
- `python3 setup.py -c configs/config-wlan-ap.yml`
- `cd wlan-ap/openwrt`
- `./scripts/gen_config.py target_wlan_ap-gl-ax1800 luci` (replace ax1800 with axt1800 for Slate AX)
- `git clone https://github.com/SmoothWAN/smoothwan-feeds.git`
- Copy the content of the `flint` or `slateax` folder in main SmoothWAN repo to current directory
- `./scripts/feeds update -a`
- `./scripts/feeds install -a`
- `./sideload-glibc.sh`
- Copy the `.config` file from the `flint` or `slateax` folder in main SmoothWAN repo to current directory
- `make -j20 V=sc`
- Compiled image is in `bin/targets/ipq...`


**Notes:**

- For compiling SmoothWAN packages, compile `smoothwan-feeds` with OpenWRT build system.

- Pre-compiled packages are included for easy customization, quick builds and imagebuilder-only setup.

- GL.iNet builds are full-builds and require comprehensive setup. More at: https://github.com/gl-inet/gl-infra-builder

- `glibc` is included from Debian Buster for running Speedify on `musl` built OpenWrt. Lib included: `libc6_2.31-13+deb11u2`, and `libgcc1_8.3.0-6_armhf` for armv7.
Binaries are sideloaded during build. Check `sideload-glibc.sh` for sources.

- All binaries are generated on Github Actions
- Engarde : <https://github.com/SmoothWAN/engarde>
- TinyFEC : <https://github.com/SmoothWAN/tinyfecVPN>
- ntopng : <https://github.com/SmoothWAN/SmoothWAN-chroot-imagebuilder>


45 changes: 45 additions & 0 deletions docs/engarde.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
- [Engarde (by porech)](https://github.com/porech/engarde): A go network utility to create a reliable IP tunnel over multiple connections.
- Duplicate traffic over multiple internet connections using Wireguard.
- A self-hosting alternative to Speedify's Redundant mode, without bufferbloat.
- Offers ~1ms lossless failover duration, and low latency over lossy connections.
- No aggregation, speed of the fastest WAN is the result bandwidth throughput.
- No data consumption reduction on slower WANs, since there is no quality monitoring, hence the low-latency feature compared to Speedify.
- Processing intensive, requiring 3.0Ghz Intel/AMD router and server for >100Mbit speeds.

***

Server setup using Vultr [(Amazon EC2)](https://smoothwan.discourse.group/t/smoothwan-engarde-on-oracle-cloud/102/13?u=talalm) as an example with cloud-init:</h4>
Visit <a href='https://my.vultr.com/'>https://my.vultr.com</a> and login/signup, then follow the arrows:
<img style="border:6px solid #d2ccf1;" src="/SmoothWAN-docs/assets/engarde/1.webp" style="max-height:300px"/><br>
Choose Cloud Compute
<img style="border:6px solid #d2ccf1;" src="/SmoothWAN-docs/assets/engarde/2.webp" style="max-height:300px"/><br>
Choose High Frequency (since Engarde is single threaded)
<img style="border:6px solid #d2ccf1;" src="/SmoothWAN-docs/assets/engarde/3.webp" style="max-height:300px"/><br>
Choose latest Ubuntu and the nearest location, example selects European region
<img style="border:6px solid #d2ccf1;" src="/SmoothWAN-docs/assets/engarde/4.webp" style="max-height:300px"/><br>
Choose a plan according to bandwidth to be used, not hardware resources
<img style="border:6px solid #d2ccf1;" src="/SmoothWAN-docs/assets/engarde/5.webp" style="max-height:300px"/><br>
Copy and paste the content below then locate and change the password in the pasted content:
<iframe style="border:6px solid #d2ccf1;" src="/SmoothWAN-docs/assets/engarde/user-data.txt"></iframe>
<img style="border:6px solid #d2ccf1;" src="/SmoothWAN-docs/assets/engarde/6.webp" style="max-height:300px"/><br>
Wait few minutes till the IP address appears, and note it down
You can wait few minutes or monitor progress by clicking View Console
<img style="border:6px solid #d2ccf1;" src="/SmoothWAN-docs/assets/engarde/7.webp" style="max-height:300px"/><br>
<img style="border:6px solid #d2ccf1;" src="/SmoothWAN-docs/assets/engarde/8.webp" style="max-height:300px"/><br>
Copy the noted IP address & password in the configuration tab of this page and check Enable, Save & Apply
<img style="border:6px solid #d2ccf1;" src="/SmoothWAN-docs/assets/engarde/9.webp" style="max-height:300px"/><br>
Engarde will automatically detect connectivty via any interface in Active Interfaces section and use it!
<img style="border:6px solid #d2ccf1;" src="/SmoothWAN-docs/assets/engarde/10.webp" style="max-height:300px"/><br>
All done! Note that the example shows only one WAN plugged in.
Check your IP address at ping.eu,speedtest.net,etc... to check if it's working correctly, it should match the IP address of your server.
<hr>
<h3>Notes:</h3>

- The server is setup to forward ports from 1024 to 65000 to your SmoothWAN appliance/router, adjust as needed.<br>
- Modern implementation UPnP is automatically configured and enabled for automatic port forwarding.<br>
- You can also forward ports in VPN -> VPN Port Forwarding.<br>
- Changing password is done by simply changing the cloud-init field and doing a server reinstall.<br>
- VPN via server providers is (usually) not log-free as it's used for abuse monitoring, privacy may be equivalent to a direct ISP connection.<br>
- You can use other providers, Vultr is used as it's the easiest, there is no affiliation.<br>
- You may need to modify the cloud-init script for some providers, it's limited to KVM/Virt machines only.<br>
- SSH on the server is disabled by default.<br>
29 changes: 29 additions & 0 deletions docs/faq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@

## Common issues

### Unable to save changes - "Restart Speedify" visible - "Login button" invisible

Make sure to add the web address to your ad-blocker whitelist.
Speedify may have crashed or stopped working.

### Speedify did not detect internet/WAN not visible

An interface name that starts with "br-" prefix is ignored.

### Speedify bypass (domain based) not working with PPPoE interfaces

As of Speedify version 12.6, Speedify seems to use the gateway of each WAN as the DNS resolver for bypass.
This may have been fixed in future versions.
You can use VPN Policy Based Routing as an alternative.

### Speedify installer issues

- Wait around a minute on fresh start or after plugging in single WAN to synchronize date/time
- Reboot after first boot or check the date/time in System
- Use the best quality WAN during installation

### Internet connectivity issue on Intel/AMD build

Depending on the hardware and how interfaces are brought up, OpenWRT may create a default WAN interface on first boot as `WAN` and `WAN_6`.
Delete these interfaces in _Network -> Interfaces_ and restart.

22 changes: 22 additions & 0 deletions docs/features.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
[-> Upcoming features <-](https://github.com/TalalMash/SmoothWAN/projects/1)

- Preset network configuration for various hardware
- Use [your own VPN](vpn) on top of Speedify/Engarde/TinyFEC.
- Unique interface naming for USB network devices to preserve data caps and statistics.
- Speedify installer, auto-update and version selection
- Bypass Speedify with selective WAN for local devices/ports/domains using [Split-tunnling](wanbyp), or using Speedify's internal bypass function with a web app for adaptive WAN selection using data caps and other conditions, utilizing `speedify_cli`
- [ntopng installer](https://www.ntop.org/products/traffic-analysis/ntop/) for deep packet analysis, real-time flow performance metrics, and traffic identification.
- [AdGuard Home](https://github.com/TalalMash/SmoothWAN/wiki/Setting-up-AdGuard-Home-(GL.iNet)) pre-installed and pre-configured (one-click enable) with password change UI addition and working client statistics
- [Tailscale installer](https://github.com/TalalMash/SmoothWAN/wiki/Setting-up-Tailscale) for easy remote access to connected devices in your home network
- Per platform OpenWRT VPN optimization and additional hints in LuCI apps
- Extended OpenWrt's diagnostics web page to include Pi `vcgencmd` tool in-browser and independent WAN speed test
- Download logs for various apps from browser
- VPN PBR pre-configured
- [Engarde](/engarde) as an self-hosting alternative to Speedify's Redundant mode (lossless by duplicating traffic across WANs - no aggregation)
- [TinyFEC VPN](/tinyfec) for fixing a lossy unusable internet connection using forward-error-correction (single WAN - self-hosting)
- One-click cloud-init script for setting up Engarde & TinyFEC VPN in cloud
- BitTorrent detection log showing client IP addresses (needed for non-P2P Speedify servers)
- Per-client (LAN) bandwidth limiter [EQoS](https://github.com/Huangjoe123/luci-app-eqos)
- Auto expand storage to physical free space on PC/Pi
- Working Speedify captive portal login per WAN
- IPv6 ready
6 changes: 6 additions & 0 deletions docs/flint.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
### Port Layout
![](assets/flintports.png)

## 802.11k/v/s/r Support
For versions below 0.99.9 GL.iNet `wpad` is stripped, force update from OpenWrt official server after installation and reboot:
`opkg update && opkg remove wpad-openssl && opkg install wpad-openssl --force-overwrite`
15 changes: 15 additions & 0 deletions docs/hostqos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
1. Visit _Network -> SQM QoS_
1. Set the `Download Speed` and `Upload Speed` to your expected total aggregation speed and **add 20%** (1 Mbit = 1000 Kbit)
1. Choose `connectify0` in `Interface name` and toggle enable
1. Select `Queue Discipline` tab and set discipline/script to `cake/piece-of-cake`
1. Toggle the two `Show and Use Advanced Configuration.` to reveal `Advanced option string to pass to the ingress queueing` & `...egress queueing`
1. In ingress textbox add `diffserv4 nat dual-dsthost ingress` & in egress: `diffserv4 nat dual-srchost ack-filter`
1. _Save & Apply_, changes are effective immediately.

## Tips

* Reduce the additional 20% added if there is no effect in small increments, test the results by downloading a large file with parallel sockets (download accelerator or speed test) on two clients with a 10 second delay before starting the download on the second client, both should show the speed each at ~50% of the total aggregate speed.

* Without this setup, the delayed client will use 1/4th or so without host isolation shaping unless both clients (TCP) start at the same time due to bursty throughput, the effect is less noticable with near servers (less than 30ms delay).

* Equal distribution works when all lines are in good conditions or near the speed set in SQM only.
46 changes: 46 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
**[Donate to Parrot Rescue Lebanon 🦜](https://gofund.me/63163a6c)**


<img src="https://user-images.githubusercontent.com/96490382/185179903-4cbac04d-d0f7-47e2-b81a-167803205d33.png" width="800"/>

## Internet bonding router with seamless failover using Speedify
*SmoothWAN* is a customized [OpenWRT](https://openwrt.org/) based DIY router for quick internet bonding setup using [Speedify](https://speedify.com/), with an emphasis on using an internet browser for easy configuration.

This project is not affiliated with [Speedify](https://speedify.com/) or Connectify.

As of Q4 2024, Speedify now requires a [license for routers](https://speedify.com/store/#routers).

*[WAN](https://en.wikipedia.org/wiki/Wide_area_network) is an internet connection.*

*Supported hardware ordered by performance*

- PC Intel/AMD
- Raspberry Pi 4 / Pi 400
- GL.iNet Flint and Slate AX

~~For running on other hardware or existing OpenWrt users you can use the unofficial installer [here](https://github.com/TalalMash/Unofficial-Speedify-Installer-For-OpenWrt)~~

Update: [Speedify officially supports OpenWrt as of Q4 2024](https://support.speedify.com/article/918-openwrt)

***

*Use cases*

- Build a reliable internet access using multiple WANs for seamless failover, lossless and bonded speeds terminating over a single IP address.
- Run a VPN over Speedify: corporate use, bypass captcha/IP-blocking etc.
- Cover all connected devices in a home network when it's not possible or practical to share a WAN and run Speedify on each device e.g: limited mobile data, IoT and multimedia.

*Extras*

- Use [Engarde](https://github.com/porech/engarde) for self-hosting alternative to Speedify's Redundant mode.
- Use [TinyFEC VPN](https://github.com/wangyu-/tinyfecVPN) for fixing a lossy unusable internet connection using forward-error-correction at a speed cost while maintaining low latency.
- Many more in [features](https://smoothwan.discourse.group/features/)
***
*Typical setup*
<img src="https://raw.githubusercontent.com/TalalMash/SmoothWAN-web/main/smoothwan-illust.drawio.svg" width="600"/>

***

*WebUI preview*

<img src="https://user-images.githubusercontent.com/96490382/208723215-92bb40df-c56d-4f82-b597-707aa8e35f7b.gif" width="800"/>
Loading

0 comments on commit 56718fa

Please sign in to comment.