8 Commits

Author SHA1 Message Date
Svyatoslav Shchipunov
311ce2290b feat: add manual run for all platforms 2025-12-23 11:47:49 +07:00
Slava-Shchipunov
f4c13f262d docs: fix shield 2025-12-22 14:15:15 +07:00
Slava-Shchipunov
6164b8e8d3 docs: add downloads counter to README.md 2025-12-22 14:14:06 +07:00
Slava-Shchipunov
c4e45cd3bc docs: update README.md 2025-12-22 12:51:20 +07:00
Slava-Shchipunov
ce827121a1 refactor: use tag for source version 2025-12-22 12:11:53 +07:00
Slava-Shchipunov
1589abe9ec feat: update source version in kmod Makefile 2025-12-22 12:09:42 +07:00
Slava-Shchipunov
8b3f1c1e5d docs: update README.md 2025-10-29 09:18:03 +07:00
Slava-Shchipunov
9a3f4520b3 feat: add PKGARCH to luci package 2025-10-23 22:16:20 +07:00
4 changed files with 57 additions and 42 deletions

View File

@@ -12,18 +12,19 @@ on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
version: version:
description: 'OpenWRT version (e.g., 24.10.3)' description: 'OpenWRT version (e.g., 24.10.5)'
required: true required: true
type: string type: string
targets: targets:
description: 'Targets (comma-separated, e.g., "stm32,ramips")' description: 'Targets (comma-separated, optional)'
required: true required: false
type: string type: string
subtargets: subtargets:
description: 'Subtargets (comma-separated, e.g., "stm32mp1,mt7621")' description: 'Subtargets (comma-separated, optional)'
required: true required: false
type: string type: string
jobs: jobs:
generate-config: generate-config:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -38,16 +39,22 @@ jobs:
with: with:
node-version: '20.16.0' node-version: '20.16.0'
- name: Get OpenWRT version from tag - name: Get OpenWRT version from inputs or tag
id: get_version
run: | run: |
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "VERSION=${{ inputs.version }}" >> $GITHUB_ENV echo "VERSION=${{ inputs.version }}" >> $GITHUB_ENV
echo "TARGETS=${{ inputs.targets }}" >> $GITHUB_ENV
echo "SUBTARGETS=${{ inputs.subtargets }}" >> $GITHUB_ENV if [ -n "${{ inputs.targets }}" ]; then
elif [ "${{ github.event_name }}" == "workflow_call" ]; then echo "TARGETS=${{ inputs.targets }}" >> $GITHUB_ENV
VERSION="${{ inputs.tag_name }}" fi
echo "VERSION=${VERSION#v}" >> $GITHUB_ENV
if [ -n "${{ inputs.subtargets }}" ]; then
echo "SUBTARGETS=${{ inputs.subtargets }}" >> $GITHUB_ENV
fi
elif [ "${{ github.event_name }}" = "workflow_call" ]; then
echo "VERSION=${{ inputs.tag_name }}" >> $GITHUB_ENV
else else
echo "VERSION=${GITHUB_REF/refs\/tags\/v/}" >> $GITHUB_ENV echo "VERSION=${GITHUB_REF/refs\/tags\/v/}" >> $GITHUB_ENV
fi fi
@@ -120,33 +127,34 @@ jobs:
- name: Setup SDK and feeds - name: Setup SDK and feeds
run: | run: |
# Find SDK directory
SDK_DIR=$(find . -maxdepth 1 -name "openwrt-sdk-*" -type d | head -n1) SDK_DIR=$(find . -maxdepth 1 -name "openwrt-sdk-*" -type d | head -n1)
[ -z "$SDK_DIR" ] && echo "SDK directory not found" && exit 1
if [ -z "$SDK_DIR" ]; then
echo "SDK directory not found"
exit 1
fi
# Get absolute paths
WORKSPACE_DIR=$(pwd) WORKSPACE_DIR=$(pwd)
cd "$SDK_DIR" cd "$SDK_DIR"
# Update feeds to include LuCI # Remove unstable feeds
./scripts/feeds update -a sed -i '/telephony/d' feeds.conf.default
./scripts/feeds install -a sed -i '/routing/d' feeds.conf.default
# Copy current repository packages directly to package directory # Update only required feeds
./scripts/feeds update base packages luci
./scripts/feeds install -p base
./scripts/feeds install -p packages
./scripts/feeds install -p luci
# Copy packages
cp -r "$WORKSPACE_DIR/kmod-amneziawg" package/ cp -r "$WORKSPACE_DIR/kmod-amneziawg" package/
cp -r "$WORKSPACE_DIR/amneziawg-tools" package/ cp -r "$WORKSPACE_DIR/amneziawg-tools" package/
cp -r "$WORKSPACE_DIR/luci-proto-amneziawg" package/ cp -r "$WORKSPACE_DIR/luci-proto-amneziawg" package/
# Configure packages to build # Config
echo "CONFIG_PACKAGE_kmod-amneziawg=m" > .config cat > .config <<EOF
echo "CONFIG_PACKAGE_amneziawg-tools=y" >> .config CONFIG_PACKAGE_kmod-amneziawg=m
echo "CONFIG_PACKAGE_luci-proto-amneziawg=y" >> .config CONFIG_PACKAGE_amneziawg-tools=y
echo "CONFIG_PACKAGE_luci-i18n-amneziawg-ru=y" >> .config CONFIG_PACKAGE_luci-proto-amneziawg=y
CONFIG_PACKAGE_luci-i18n-amneziawg-ru=y
EOF
make defconfig make defconfig

View File

@@ -1,7 +1,9 @@
![Downloads](https://img.shields.io/github/downloads/Slava-Shchipunov/awg-openwrt/total)
# Пакеты amneziawg для роутеров с прошивкой OpenWRT # Пакеты amneziawg для роутеров с прошивкой OpenWRT
## Автоматическая настройка AmneziaWG для OpenWRT версии 23.05.0 и более новых ## Автоматическая настройка AmneziaWG для OpenWRT версии 23.05.0 и более новых
1) Если ваш роутер обладает достаточным объмом доступной RAM, рекомендую воспользоваться скриптом, описанным ниже, только для установки нужных пакетов, а для точечной маршрутизации траффика в туннель использовать podkop от пользователя [@itdoginfo](https://github.com/itdoginfo) - тут в [документации](https://podkop.net/docs/tunnels/awg_settings/) описан процесс настройки 1) Если ваш роутер обладает достаточным объмом доступной ROM, рекомендую воспользоваться скриптом, описанным ниже, только для установки нужных пакетов, а для точечной маршрутизации траффика в туннель использовать podkop от пользователя [@itdoginfo](https://github.com/itdoginfo) - тут в [документации](https://podkop.net/docs/tunnels/awg_settings/) описан процесс настройки
2) Если вам нужно только установить пакеты, я добавил скрипт amneziawg-install - он автоматически скачает пакеты из этого репозитория под ваше устройство (только для стабильной версии OpenWRT), а также предложит сразу настроить интерфейс с протоколом AmneziaWG. Если пользователь согласится, нужно будет ввести параметры конфига, которые запросит скрипт. При этом скрипт создаст интерфейс, настроит для него правила фаерволла, а также **включит перенаправление всего траффика через тунель AmneziaWG** (установит в настройках Peer галочку Route Allowed IPs). 2) Если вам нужно только установить пакеты, я добавил скрипт amneziawg-install - он автоматически скачает пакеты из этого репозитория под ваше устройство (только для стабильной версии OpenWRT), а также предложит сразу настроить интерфейс с протоколом AmneziaWG. Если пользователь согласится, нужно будет ввести параметры конфига, которые запросит скрипт. При этом скрипт создаст интерфейс, настроит для него правила фаерволла, а также **включит перенаправление всего траффика через тунель AmneziaWG** (установит в настройках Peer галочку Route Allowed IPs).
Для запуска скрипта подключитесь к роутеру по SSH, введите команду и следуйте инструкциям на экране: Для запуска скрипта подключитесь к роутеру по SSH, введите команду и следуйте инструкциям на экране:
@@ -9,7 +11,7 @@
sh <(wget -O - https://raw.githubusercontent.com/Slava-Shchipunov/awg-openwrt/refs/heads/master/amneziawg-install.sh) sh <(wget -O - https://raw.githubusercontent.com/Slava-Shchipunov/awg-openwrt/refs/heads/master/amneziawg-install.sh)
``` ```
3) Кроме того для автоматической настройки также можно использовать [скрипт](https://github.com/itdoginfo/domain-routing-openwrt) от пользователя [@itdoginfo](https://github.com/itdoginfo). Этот скрипт позволяет автоматически скачать нужные пакеты из собранных здесь и настроить [точечный обход блокировок по доменам](https://habr.com/ru/articles/767464/). Подойдёт, если у вас слабый роутер с недостаточным объёмом RAM для установки podkop-a и зависимостей 3) Кроме того для автоматической настройки также можно использовать [скрипт](https://github.com/itdoginfo/domain-routing-openwrt) от пользователя [@itdoginfo](https://github.com/itdoginfo). Этот скрипт позволяет автоматически скачать нужные пакеты из собранных здесь и настроить [точечный обход блокировок по доменам](https://habr.com/ru/articles/767464/). Подойдёт, если у вас слабый роутер с недостаточным объёмом ROM для установки podkop-a и зависимостей
## Сборка пакетов для всех устройств, поддерживающих OpenWRT ## Сборка пакетов для всех устройств, поддерживающих OpenWRT
В репозиторий добавлен скрипт, который парсит данные о поддерживаемых платформах со страницы OpenWRT и автоматически запускает сборку пакетов AmneziaWG для всех устройств. В репозиторий добавлен скрипт, который парсит данные о поддерживаемых платформах со страницы OpenWRT и автоматически запускает сборку пакетов AmneziaWG для всех устройств.
@@ -25,6 +27,8 @@ sh <(wget -O - https://raw.githubusercontent.com/Slava-Shchipunov/awg-openwrt/re
9) [24.10.1](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.1) 9) [24.10.1](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.1)
10) [24.10.2](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.2) 10) [24.10.2](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.2)
11) AWG-2.0 [24.10.3](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.3) 11) AWG-2.0 [24.10.3](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.3)
12) AWG-2.0 [24.10.4](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.4)
13) AWG-2.0 [24.10.5](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.5)
Также запускал сборку для версии [22.03.7](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v22.03.7), но там для двух платформ сборка завершилась ошибкой. Так как это достаточно старая версия OpenWRT, я не стал разбираться, в чем проблема. Также запускал сборку для версии [22.03.7](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v22.03.7), но там для двух платформ сборка завершилась ошибкой. Так как это достаточно старая версия OpenWRT, я не стал разбираться, в чем проблема.
@@ -67,7 +71,7 @@ AWG 2.0 можно собрать под определённую платфор
- А также всем, кто приносил полезные примеры в личку и в [ишью](https://github.com/Slava-Shchipunov/awg-openwrt/issues/39), отписывались в комменты к PR с имплементацией о возникших багах и проблемах ❤️ - А также всем, кто приносил полезные примеры в личку и в [ишью](https://github.com/Slava-Shchipunov/awg-openwrt/issues/39), отписывались в комменты к PR с имплементацией о возникших багах и проблемах ❤️
## Automatic configuration of AmneziaWG for OpenWRT version 23.05.0 and newer ## Automatic configuration of AmneziaWG for OpenWRT version 23.05.0 and newer
1) If your router has enough available RAM, I recommend using the script described below only to install the necessary packages, and use podkop from user [@itdoginfo](https://github.com/itdoginfo) for selective traffic routing into the tunnel - the setup process is described in the [documentation](https://podkop.net/docs/tunnels/awg_settings/) 1) If your router has enough available ROM, I recommend using the script described below only to install the necessary packages, and use podkop from user [@itdoginfo](https://github.com/itdoginfo) for selective traffic routing into the tunnel - the setup process is described in the [documentation](https://podkop.net/docs/tunnels/awg_settings/)
2) If you only need to install packages, I added the amneziawg-install script - it will automatically download packages from this repository for your device (only for the stable version of OpenWRT), and also offer to immediately configure the interface with the AmneziaWG protocol. If the user agrees, you will need to enter the config parameters that the script will request. The script will create an interface, configure firewall rules for it, and also **enable redirection of all traffic through the AmneziaWG tunnel** (check the Route Allowed IPs box in the Peer settings). 2) If you only need to install packages, I added the amneziawg-install script - it will automatically download packages from this repository for your device (only for the stable version of OpenWRT), and also offer to immediately configure the interface with the AmneziaWG protocol. If the user agrees, you will need to enter the config parameters that the script will request. The script will create an interface, configure firewall rules for it, and also **enable redirection of all traffic through the AmneziaWG tunnel** (check the Route Allowed IPs box in the Peer settings).
To run the script, connect to the router via SSH, enter the command and follow the instructions on the screen: To run the script, connect to the router via SSH, enter the command and follow the instructions on the screen:
@@ -75,7 +79,7 @@ To run the script, connect to the router via SSH, enter the command and follow t
sh <(wget -O - https://raw.githubusercontent.com/Slava-Shchipunov/awg-openwrt/refs/heads/master/amneziawg-install.sh) sh <(wget -O - https://raw.githubusercontent.com/Slava-Shchipunov/awg-openwrt/refs/heads/master/amneziawg-install.sh)
``` ```
3) In addition, for automatic configuration you can also use the [script](https://github.com/itdoginfo/domain-routing-openwrt) from user [@itdoginfo](https://github.com/itdoginfo). This script allows you to automatically download the necessary packages from those collected here and configure [point-by-point bypass of blocking by domains](https://habr.com/ru/articles/767464/) (instructions in Russian). Suitable if you have a weak router with insufficient RAM to install podkop and its dependencies 3) In addition, for automatic configuration you can also use the [script](https://github.com/itdoginfo/domain-routing-openwrt) from user [@itdoginfo](https://github.com/itdoginfo). This script allows you to automatically download the necessary packages from those collected here and configure [point-by-point bypass of blocking by domains](https://habr.com/ru/articles/767464/) (instructions in Russian). Suitable if you have a weak router with insufficient ROM to install podkop and its dependencies
# Building packages for all devices that support OpenWRT # Building packages for all devices that support OpenWRT
A script has been added to the repository that parses data on supported platforms from the OpenWRT page and automatically starts building AmneziaWG packages for all devices. A script has been added to the repository that parses data on supported platforms from the OpenWRT page and automatically starts building AmneziaWG packages for all devices.
@@ -91,6 +95,8 @@ At the moment I have collected packages for all devices for OpenWRT versions:
9) [24.10.1](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.1) 9) [24.10.1](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.1)
10) [24.10.2](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.2) 10) [24.10.2](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.2)
11) AWG-2.0 [24.10.3](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.3) 11) AWG-2.0 [24.10.3](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.3)
12) AWG-2.0 [24.10.4](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.4)
13) AWG-2.0 [24.10.5](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v24.10.5)
I also ran the build for version [22.03.7](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v22.03.7), but the build ended with an error for two platforms. Since this is a fairly old version of OpenWRT, I did not bother to figure out what the problem was. I also ran the build for version [22.03.7](https://github.com/Slava-Shchipunov/awg-openwrt/releases/tag/v22.03.7), but the build ended with an error for two platforms. Since this is a fairly old version of OpenWRT, I did not bother to figure out what the problem was.

View File

@@ -2,13 +2,13 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=kmod-amneziawg PKG_NAME:=kmod-amneziawg
PKG_VERSION:=1.0.20251005 PKG_VERSION:=1.0.20251104
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE_PROTO:=git PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/amnezia-vpn/amneziawg-linux-kernel-module.git PKG_SOURCE_URL:=https://github.com/amnezia-vpn/amneziawg-linux-kernel-module.git
# Latest commit from master branch as of 2025-10-05 # Version: latest stable release tag
PKG_SOURCE_VERSION:=876bf7571e47e349d0e86b70c244330b470d9642 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
MAKE_PATH:=src MAKE_PATH:=src

View File

@@ -5,6 +5,7 @@ LUCI_DESCRIPTION:=Provides support and Web UI for AmneziaWG VPN
PKG_VERSION:=2.0.4 PKG_VERSION:=2.0.4
LUCI_DEPENDS:=+amneziawg-tools +ucode +luci-lib-uqr +resolveip LUCI_DEPENDS:=+amneziawg-tools +ucode +luci-lib-uqr +resolveip
LUCI_PKGARCH:=all LUCI_PKGARCH:=all
PKGARCH:=all
PKG_LICENSE:=Apache-2.0 PKG_LICENSE:=Apache-2.0