fix: update stale version URLs, correct EN script references, improve repo config

- Update version-pinned URLs from v5.8.3 to v5.10.0 in ADVANCED docs
- Fix EN scripts referencing RU installer name in error messages
- Fix EN docs command examples to use install_amneziawg_en.sh
- Clarify workflow_dispatch availability in CONTRIBUTING.md
- Add build artifact patterns to .gitignore (output/, *.deb, *.sha256)
- Extend .editorconfig to cover .bash and .bats files
- Add Troubleshooting and Ecosystem sections to README TOC
This commit is contained in:
Ivan Bondarev 2026-04-19 01:17:51 +03:00
parent 97f6df9d64
commit f0dd033434
9 changed files with 29 additions and 16 deletions

View file

@ -6,7 +6,7 @@ end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.sh]
[*.{sh,bash,bats}]
indent_style = space
indent_size = 4

5
.gitignore vendored
View file

@ -22,6 +22,11 @@ Desktop.ini
*.lock
*.pid
# Build artifacts
output/
*.deb
*.sha256
# Secrets
.env
.env.*

View file

@ -494,7 +494,7 @@ Client keys are stored in `/root/awg/keys/` (permissions 600). Server keys are i
The installer downloads `awg_common.sh` and `manage_amneziawg.sh` from URLs pinned to the specific version tag:
```
https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.8.3/awg_common.sh
https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.10.0/awg_common.sh
```
This provides **supply chain pinning** — ensuring downloaded scripts match the installer version, even if `main` has already been updated.
@ -514,12 +514,12 @@ To update the management and shared library scripts **without reinstalling the s
```bash
# Russian version:
wget -O /root/awg/manage_amneziawg.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.8.3/manage_amneziawg.sh
wget -O /root/awg/awg_common.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.8.3/awg_common.sh
wget -O /root/awg/manage_amneziawg.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.10.0/manage_amneziawg.sh
wget -O /root/awg/awg_common.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.10.0/awg_common.sh
# English version:
wget -O /root/awg/manage_amneziawg.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.8.3/manage_amneziawg_en.sh
wget -O /root/awg/awg_common.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.8.3/awg_common_en.sh
wget -O /root/awg/manage_amneziawg.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.10.0/manage_amneziawg_en.sh
wget -O /root/awg/awg_common.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.10.0/awg_common_en.sh
# Set permissions
chmod 700 /root/awg/manage_amneziawg.sh /root/awg/awg_common.sh
@ -609,7 +609,7 @@ chmod 700 /root/awg/manage_amneziawg.sh /root/awg/awg_common.sh
<b>A:</b> Starting with v5.10.0, simply install with the <code>--preset=mobile</code> flag — it automatically sets optimal parameters for mobile networks (Jc=3, narrow Jmax). Discussion #38 (@elvaleto): on Tattelecom (Letai) with Jc=4-8 it took multiple attempts to connect, but after setting <code>Jc = 3</code> it worked immediately.
<br><br>
<b>Fresh install (recommended):</b>
<pre>sudo bash install_amneziawg.sh --preset=mobile --yes --route-amnezia</pre>
<pre>sudo bash install_amneziawg_en.sh --preset=mobile --yes --route-amnezia</pre>
<b>Existing install — manual edit:</b>
<ol>
@ -654,7 +654,7 @@ chmod 700 /root/awg/manage_amneziawg.sh /root/awg/awg_common.sh
</details>
<details>
<summary><strong>Q: "Another install_amneziawg.sh instance is already running" — what is this?</strong></summary>
<summary><strong>Q: "Another installer instance is already running" — what is this?</strong></summary>
<b>A:</b> As of v5.8.0, the installer takes a process-wide <code>flock</code> on <code>/root/awg/.install.lock</code> at the beginning of <code>initialize_setup()</code>. This prevents two parallel runs from racing each other on <code>apt-get</code> and corrupting package state. If you see this error but no second installer is actually running (hung / crashed process), remove <code>/root/awg/.install.lock</code> and try again.
</details>

View file

@ -492,7 +492,7 @@ graph TD
Инсталлятор скачивает `awg_common.sh` и `manage_amneziawg.sh` с URL, привязанных к конкретному тегу версии:
```
https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.8.3/awg_common.sh
https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.10.0/awg_common.sh
```
Это обеспечивает **supply chain pinning** — гарантию, что скачиваемые скрипты соответствуют версии инсталлятора, даже если `main` уже обновлён.
@ -512,12 +512,12 @@ AWG_BRANCH=my-feature-branch sudo bash ./install_amneziawg.sh
```bash
# Русская версия:
wget -O /root/awg/manage_amneziawg.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.8.3/manage_amneziawg.sh
wget -O /root/awg/awg_common.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.8.3/awg_common.sh
wget -O /root/awg/manage_amneziawg.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.10.0/manage_amneziawg.sh
wget -O /root/awg/awg_common.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.10.0/awg_common.sh
# Английская версия:
wget -O /root/awg/manage_amneziawg.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.8.3/manage_amneziawg_en.sh
wget -O /root/awg/awg_common.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.8.3/awg_common_en.sh
wget -O /root/awg/manage_amneziawg.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.10.0/manage_amneziawg_en.sh
wget -O /root/awg/awg_common.sh https://raw.githubusercontent.com/bivlked/amneziawg-installer/v5.10.0/awg_common_en.sh
# Установить права
chmod 700 /root/awg/manage_amneziawg.sh /root/awg/awg_common.sh

View file

@ -147,7 +147,7 @@ docs: update CHANGELOG for v5.5
1. Fill in the PR template completely
2. Ensure CI checks pass (ShellCheck + syntax)
3. **If your PR adds or modifies a GitHub Actions workflow** (`.github/workflows/*.yml`) or a build script (`scripts/*.sh`), run the workflow via `workflow_dispatch` on your fork and confirm it passes **before** requesting review. This catches environment-specific failures that local testing cannot.
3. **If your PR adds or modifies a GitHub Actions workflow** (`.github/workflows/*.yml`) or a build script (`scripts/*.sh`), run the workflow on your fork and confirm it passes **before** requesting review. `arm-build.yml` supports `workflow_dispatch` for manual triggering; other workflows run automatically on push. This catches environment-specific failures that local testing cannot.
4. Update **both** `CHANGELOG.md` and `CHANGELOG.en.md` if applicable
4. Update `[Unreleased]` comparator link in both CHANGELOGs when bumping version
5. Request a review from `@bivlked`

View file

@ -42,6 +42,8 @@
<a href="#client-management">Management</a>
<a href="#additional-information">More</a>
<a href="#faq">FAQ</a>
<a href="#troubleshooting">Troubleshooting</a>
<a href="#ecosystem">Ecosystem</a>
<a href="#license">License</a>
</p>
@ -462,6 +464,7 @@ For the changelog, see **[CHANGELOG.en.md](CHANGELOG.en.md)**.
---
<a id="troubleshooting"></a>
## 🛠️ Troubleshooting
1. **Logs:** `/root/awg/install_amneziawg.log`, `/root/awg/manage_amneziawg.log`
@ -473,6 +476,7 @@ For the changelog, see **[CHANGELOG.en.md](CHANGELOG.en.md)**.
---
<a id="ecosystem"></a>
## 🌐 Ecosystem
### Clients

View file

@ -42,6 +42,8 @@
<a href="#upravlenie">Управление</a>
<a href="#dopolnitelno">Дополнительно</a>
<a href="#faq-main">FAQ</a>
<a href="#nepoladki">Устранение неполадок</a>
<a href="#ekosistema">Экосистема</a>
<a href="#licenziya">Лицензия</a>
</p>
@ -462,6 +464,7 @@ sudo bash /root/awg/manage_amneziawg.sh restart # Перезапу
---
<a id="nepoladki"></a>
## 🛠️ Устранение неполадок
1. **Логи:** `/root/awg/install_amneziawg.log`, `/root/awg/manage_amneziawg.log`
@ -473,6 +476,7 @@ sudo bash /root/awg/manage_amneziawg.sh restart # Перезапу
---
<a id="ekosistema"></a>
## 🌐 Экосистема
### Клиенты

View file

@ -1376,7 +1376,7 @@ initialize_setup() {
INSTALL_LOCK_FILE="$AWG_DIR/.install.lock"
exec 9>"$INSTALL_LOCK_FILE" || die "Cannot open $INSTALL_LOCK_FILE"
if ! flock -n 9; then
die "Another install_amneziawg.sh instance is already running. Wait for it to finish, or if the process is hung, remove $INSTALL_LOCK_FILE and try again."
die "Another install_amneziawg_en.sh instance is already running. Wait for it to finish, or if the process is hung, remove $INSTALL_LOCK_FILE and try again."
fi
touch "$LOG_FILE" || die "Failed to create log file $LOG_FILE"

View file

@ -183,7 +183,7 @@ check_dependencies() {
ok=0
fi
if [[ "$ok" -eq 0 ]]; then
die "Installation files not found. Run install_amneziawg.sh."
die "Installation files not found. Run install_amneziawg_en.sh."
fi
if ! command -v awg &>/dev/null; then die "'awg' not found."; fi