v1.4.1: installer installs Docker, step-by-step quick start, drop confusing AWG_PROFILES hint
Some checks failed
Publish Pro image to GHCR / build-push (push) Has been cancelled
Some checks failed
Publish Pro image to GHCR / build-push (push) Has been cancelled
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
50
README.md
50
README.md
@@ -5,6 +5,7 @@
|
||||
## Что нового в 1.4.0
|
||||
|
||||
- **Xray VLESS‑Reality** — раздел «Xray VLESS‑Reality»: установка с выбором TCP‑порта и сайта‑маскировки, клиенты (создать, выключить/включить, удалить), ссылка `vless://` для Amnezia VPN, v2rayNG, Hiddify, Streisand, Happ. Файлы в `/opt/amnezia/xray` в том же формате, что у приложения Amnezia.
|
||||
- **Установщик сам ставит Docker** на чистом сервере.
|
||||
- **Всё открыто:** убрана редакция «community / только просмотр» и переменные `AMNEZIA_EDITION`, `COMMUNITY_UPGRADE_*` — все функции доступны всем.
|
||||
|
||||
## Что нового в 1.3.0
|
||||
@@ -25,6 +26,55 @@
|
||||
- **Светлая / тёмная тема** — кнопка «◐ Тема» в шапке (по умолчанию как в системе).
|
||||
- Старые установки не затрагиваются: контейнеры, поставленные приложением Amnezia, остаются как были.
|
||||
|
||||
## Быстрый старт: от пустого сервера до VPN за 10 минут
|
||||
|
||||
**Что нужно:** VPS с Ubuntu 22.04/24.04 или Debian 12 (1 ГБ ОЗУ хватает), доступ root по SSH. Docker ставить не нужно — установщик поставит его сам.
|
||||
|
||||
**1. Установите панель.** Зайдите на сервер по SSH и выполните:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO/main/scripts/install.sh | sudo bash
|
||||
```
|
||||
|
||||
В конце будет строка `Админ-панель: http://IP:8080`.
|
||||
|
||||
**2. Откройте порты** в фаерволе хостинга (панель управления VPS) и, если включён, в `ufw`:
|
||||
|
||||
| Порт | Зачем |
|
||||
|---|---|
|
||||
| `8080/tcp` | админ-панель |
|
||||
| `80/tcp` | страница для пользователей (необязательно, `SKIP_LANDING=1` — без неё) |
|
||||
| UDP-порт AmneziaWG, который выберете на шаге 4 (например `41010/udp`) | VPN AmneziaWG |
|
||||
| TCP-порт Xray, если будете ставить (например `443/tcp`) | VPN Xray |
|
||||
|
||||
```bash
|
||||
sudo ufw allow 8080/tcp && sudo ufw allow 41010/udp # пример, если ufw включён
|
||||
```
|
||||
|
||||
**3. Войдите** на `http://IP:8080` — пароль **`admin`**. Сразу смените его в блоке «Сменить пароль».
|
||||
|
||||
**4. Разверните протокол.** Раздел «Протоколы / инстансы» → выберите вариант → порт (например `41010`) → «Развернуть инстанс». Какой выбрать:
|
||||
- **AmneziaWG 2.0** — по умолчанию, для телефонов и ПК (приложение Amnezia VPN);
|
||||
- **AmneziaWG 3.1 / 3.0** — самые новые, нужна свежая версия приложения;
|
||||
- **AmneziaWG 1.x** — для роутеров Keenetic / OpenWrt;
|
||||
- **WireGuard** — для любых WG-клиентов, без маскировки.
|
||||
|
||||
Если на сервере уже стоит VPN, поставленный приложением Amnezia, — шаг пропустите: панель найдёт его сама.
|
||||
|
||||
**5. Создайте клиента.** Блок «Новый клиент» → имя → «Создать и скачать .conf». Файл импортируйте в Amnezia VPN (на телефоне/ПК: «+» → «Файл с настройками»).
|
||||
|
||||
**6. (по желанию) Xray VLESS‑Reality** — если AmneziaWG у провайдера режут. Раздел «Xray VLESS‑Reality» → порт TCP (`443`, если свободен) и сайт‑маскировка → «Установить Xray» (~1 минута) → «Создать» клиента — ссылка `vless://` скопируется. Вставьте её в Amnezia VPN, v2rayNG, Hiddify, Streisand или Happ («+» → «Из буфера обмена»).
|
||||
|
||||
**7. Свой домен (по желанию).** В «Протоколы / инстансы» → «Домен или IP сервера в конфигах клиентов» → «Сохранить адрес». Без него в конфиги подставляется IP.
|
||||
|
||||
**Обновление** — та же команда из шага 1: клиенты, пароль и настройки сохраняются. **Удаление** — см. «Удаление одной командой».
|
||||
|
||||
**Если не работает:**
|
||||
- «Рукопожатие есть, интернета нет» или нет рукопожатия — не открыт UDP-порт у хостинга (шаг 2).
|
||||
- Панель не открывается — не открыт `8080/tcp`; проверка на сервере: `curl -s localhost:8080/health`.
|
||||
- Xray: «TCP-порт занят» — выберите другой порт (например `8443`) и откройте его.
|
||||
- Логи панели: `sudo docker logs --tail 50 amnezia-admin`.
|
||||
|
||||
## Что открывается по какому порту
|
||||
|
||||
| Адрес | Назначение |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "amnezia-admin",
|
||||
"version": "1.4.0",
|
||||
"version": "1.4.1",
|
||||
"private": false,
|
||||
"description": "amnezia_web-PRO — веб-панель AmneziaWG: несколько инстансов, WARP, каскад/Endpoint, экспорт .conf (Docker)",
|
||||
"license": "MIT",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;600;700&family=JetBrains+Mono:wght@400;600&display=swap" rel="stylesheet">
|
||||
<script>try{var t=localStorage.getItem("theme")||(matchMedia("(prefers-color-scheme: light)").matches?"light":"dark");document.documentElement.dataset.theme=t}catch(e){}</script>
|
||||
<link rel="stylesheet" href="/styles.css?v=1.4.0">
|
||||
<link rel="stylesheet" href="/styles.css?v=1.4.1">
|
||||
</head>
|
||||
<body class="page">
|
||||
<aside class="panel-promo-strip" role="complementary" aria-label="Поддержка и донат">
|
||||
@@ -460,6 +460,6 @@
|
||||
</div>
|
||||
</dialog>
|
||||
|
||||
<script src="/app.js?v=1.4.0" type="module"></script>
|
||||
<script src="/app.js?v=1.4.1" type="module"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -21,8 +21,9 @@ need_root() {
|
||||
|
||||
need_docker() {
|
||||
command -v docker >/dev/null 2>&1 || {
|
||||
echo "Ошибка: нужен Docker."
|
||||
exit 1
|
||||
echo "→ Docker не найден — ставлю официальным скриптом get.docker.com..."
|
||||
curl -fsSL https://get.docker.com | sh || { echo "Ошибка: не удалось поставить Docker."; exit 1; }
|
||||
systemctl enable --now docker 2>/dev/null || true
|
||||
}
|
||||
docker info >/dev/null 2>&1 || {
|
||||
echo "Ошибка: демон Docker не отвечает."
|
||||
|
||||
@@ -2626,10 +2626,7 @@ app.post("/api/settings", requireAuth, async (req, res) => {
|
||||
|
||||
app.get("/api/protocols", requireAuth, (req, res) => {
|
||||
const rt = runtimeForRequest(req);
|
||||
const hintSingle =
|
||||
getProfiles().length < 2
|
||||
? "Сейчас один инстанс: при установке не передали AWG_PROFILES или не восстановился снимок. Задайте JSON профилей и запустите install.sh — он сохранится в /root/amnezia-admin.awg-profiles.json."
|
||||
: "";
|
||||
const hintSingle = "";
|
||||
res.json({
|
||||
currentId: rt.profile.id,
|
||||
currentLabel: rt.profile.label,
|
||||
|
||||
Reference in New Issue
Block a user