Co-authored-by: Cursor <cursoragent@cursor.com>
Amnezia Admin Pro — установка (Docker / GHCR)
Публичный репозиторий только с инструкциями и compose. Сам образ приложения — приватный на GitHub Container Registry; учётные данные для docker pull выдаются активным подписчикам (например, в закрытом посте на Boosty).
Требования
- VPS с установленным Docker и запущенным демоном.
- Командная строка должна понимать
docker compose(Compose v2).
Если пакетаdocker-compose-pluginнет в ваших APT‑репозиториях,quick-install.shпо умолчанию скачивает официальный CLI‑плагин Compose v2 с GitHub Releases в/usr/local/lib/docker/cli-plugins/(переменныеCOMPOSE_CLI_VERSION/DISABLE_STANDALONE_COMPOSE_DOWNLOAD=1— см.scripts/lib-compose-v2.sh). - Альтернатива: добавить репозиторий Docker CE и поставить
docker-compose-pluginиз apt. - Не использовать одноимённый устаревший
docker-compose1.x (Python): на образах GHCR будетContainerConfig/ KeyError. - Нужны curl и при первой установке — git
- Подписка и ключ (GitHub PAT с
read:packages), см. закрытый пост Boosty
Скриншоты интерфейса PRO
После установки в браузере открывается та же админ-панель, что и в исходниках amnezia_web-PRO (при актуальном образе на GHCR):
Одна команда — FREE → PRO (спросит только ключ)
На VPS от root:
curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh | sudo bash
Скрипт перед установкой PRO:
- Убирает FREE-панель из типового
install.sh(amnezia_web): контейнерыamnezia-admin,amnezia-web-landing, локальные образыamnezia-admin:latest/amnezia-web-landing:latest, каталог сборки/opt/amnezia-admin. - Не трогает контейнеры VPN (AmneziaWG / AWG):
amnezia-awg,amnezia-awg2и т.п. - Подставляет
AWG_CONTAINERавтоматически, если на сервере уже естьamnezia-awgилиamnezia-awg2. - Клонирует/обновляет
/opt/amnezia-web-pro-deploy, тянет тег изPRO_IMAGE_TAG, запрашивает ключ PAT (ввод с/dev/tty).
Перед всем этим, если docker compose отсутствует, установщик подтягивает модуль Compose v2 (см. выше).
Отключить снос FREE (редко нужно): SKIP_REMOVE_FREE=1 curl … | sudo -E bash.
Если нет интерактива на stdin:
curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh -o /tmp/amnezia-quick-install.sh
sudo bash /tmp/amnezia-quick-install.sh
Порт: если после удаления FREE 8080 всё ещё занят — скрипт предложит другой или задайте HOST_PORT=8081 curl … | sudo -E bash.
Частые проблемы после установки
Bind for 0.0.0.0:8080 failed: port is already allocated
На 8080 уже слушает другой процесс или контейнер (не только снятая FREE-панель). Посмотреть занятость: ss -tlnp | grep ':8080'. Обход: переустановка с HOST_PORT=8081 (или свободный порт):
HOST_PORT=8081 curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh | sudo -E bash
KeyError: 'ContainerConfig' и в трассировке указан docker-compose 1.29.x (/usr/lib/python3/...)
Старый Docker Compose v1 из пакета docker-compose непонимает образы из GHCR с современным OCI-манифестом без поля ContainerConfig. Нужна Compose v2 — docker compose.
На актуальной ветке main установщики не дергают legacy docker-compose 1.x, а поднимают Compose v2 через APT (если пакет виден) либо официальный CLI‑плагин с GitHub.
sudo git -C /opt/amnezia-web-pro-deploy fetch origin main
sudo git -C /opt/amnezia-web-pro-deploy reset --hard origin/main
curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh | sudo bash
Вручную: docker-compose-plugin из репозитория Docker CE или шаг из справки в scripts/lib-compose-v2.sh.
Если после неудачного up образовался полубитый контейнер:
sudo docker rm -f amnezia-admin-pro 2>/dev/null || true
sudo bash /opt/amnezia-web-pro-deploy/scripts/install.sh
Если файл .env удалён или пуст, снова запустите quick-install.sh — он заново попросит PAT.
Unable to locate package docker-compose-plugin (Ubuntu без репозитория Docker)
Пакет поставляет официальный репозиторий Docker CE на Ubuntu/Debian. Если его подключать не хотите или apt-get всё равно пишет, что пакета нет:
- Просто снова запустите обновлённый
quick-install.shпослеgit pullрепозитория установки — он попытается скачать плагин Compose v2 напрямую с GitHub (нужныcurlи исходящий HTTPS доgithub.com).
Либо отдельно:
sudo curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/scripts/lib-compose-v2.sh -o /tmp/lib-compose-v2.sh
sudo bash -c 'source /tmp/lib-compose-v2.sh && ensure_compose_v2'
sudo rm -f /tmp/lib-compose-v2.sh
docker compose version
Ручной способ (git + .env)
git clone https://github.com/andrey271192/amnezia-web-pro-deploy.git
cd amnezia-web-pro-deploy
cp .env.example .env
# заполните GHCR_* из закрытого поста Boosty
sudo bash scripts/install.sh
Обновление
После объявления нового тега образа обновите IMAGE_TAG в .env и выполните:
sudo bash scripts/update.sh
Шаблон поста для Boosty
См. docs/BOOSTY_SUBSCRIBERS_POST.md.
Безопасность
- Файл
.envс токеном не должен попадать в issue, чаты и скриншоты. - При утечке токена автор перевыпускает его в GitHub; подписчикам выдаётся новый токен в обновлённом посте.

