mirror of
https://github.com/andrey271192/amnezia-web-pro-deploy.git
synced 2026-09-20 13:50:06 +00:00
247 lines
8.6 KiB
Markdown
247 lines
8.6 KiB
Markdown
# Amnezia Web PRO Deploy
|
||
|
||
Legacy transitional repo для **Amnezia Web PRO**.
|
||
|
||
Канонический продукт и установщик сейчас живут в private repo:
|
||
|
||
```text
|
||
andrey271192/amnezia_web-PRO_test
|
||
```
|
||
|
||
Этот repo оставлен только как redirect/совместимость для старых ссылок из Boosty, README и ранних инструкций. Для новых установок используйте `install.sh` напрямую из `amnezia_web-PRO_test`.
|
||
|
||
Решение по будущему:
|
||
|
||
- не удалять сразу, пока старые публичные ссылки могут быть у подписчиков;
|
||
- оставить README/quick-install как redirect на private source install;
|
||
- после полной миграции Boosty-постов и документации можно архивировать repo на GitHub;
|
||
- удаление repo не нужно, если нет причины ломать старые инструкции.
|
||
|
||
Основной сценарий:
|
||
|
||
- источник: `andrey271192/amnezia_web-PRO_test`;
|
||
- текущий релиз: `v1.5.2`;
|
||
- нужен `GITHUB_TOKEN` с доступом к private repo;
|
||
- GHCR больше не используется для обычной установки;
|
||
- старый GHCR-режим оставлен только вручную через `USE_GHCR=1`.
|
||
|
||
## Что делает установщик
|
||
|
||
- скачивает актуальный `install.sh` из private repo;
|
||
- ставит Docker, если его нет;
|
||
- разворачивает панель в `/opt/amnezia-web-pro`;
|
||
- создаёт `.env`;
|
||
- собирает и запускает Docker Compose stack;
|
||
- поддерживает явный первый пароль admin через `ADMIN_PASSWORD`;
|
||
- не требует GHCR PAT для обычной установки;
|
||
- требует GitHub token для доступа к private repo.
|
||
|
||
## Быстрая установка
|
||
|
||
На VPS от root:
|
||
|
||
```bash
|
||
export GITHUB_TOKEN='ТОКЕН_ИЗ_BOOSTY'
|
||
curl -fsSL -H "Authorization: Bearer ${GITHUB_TOKEN}" \
|
||
https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh \
|
||
| sudo -E bash
|
||
```
|
||
|
||
То же самое с явным первым паролем admin:
|
||
|
||
```bash
|
||
export GITHUB_TOKEN='ТОКЕН_ИЗ_BOOSTY'
|
||
export ADMIN_PASSWORD='СЛОЖНЫЙ_ПАРОЛЬ'
|
||
curl -fsSL -H "Authorization: Bearer ${GITHUB_TOKEN}" \
|
||
https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh \
|
||
| sudo -E bash
|
||
```
|
||
|
||
`quick-install.sh` скачает и запустит основной установщик:
|
||
|
||
```bash
|
||
https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO_test/main/install.sh
|
||
```
|
||
|
||
Если `GITHUB_TOKEN` не передан, GitHub вернёт `404` или `403`. Это нормально: repo закрыт.
|
||
|
||
## Почему больше не GHCR
|
||
|
||
Старый сценарий тянул private image:
|
||
|
||
```text
|
||
ghcr.io/andrey271192/amnezia-admin-pro:v1.0.0
|
||
```
|
||
|
||
Если у GitHub PAT нет доступа к package или package закрыт, Docker показывает:
|
||
|
||
```text
|
||
unexpected status ... 403 Forbidden
|
||
```
|
||
|
||
Это не ошибка VPS и не ошибка Docker. Это отказ GitHub Container Registry. Чтобы не ловить эту ошибку у подписчиков, обычная установка теперь идёт из private GitHub repo.
|
||
|
||
Предупреждение Docker:
|
||
|
||
```text
|
||
WARNING! Your credentials are stored unencrypted in '/root/.docker/config.json'
|
||
```
|
||
|
||
не является причиной ошибки. Это только предупреждение Docker.
|
||
|
||
## Legacy GHCR mode
|
||
|
||
Оставлен только для ручного использования, если есть доступ к package:
|
||
|
||
```bash
|
||
export GITHUB_TOKEN='ТОКЕН_ИЗ_BOOSTY'
|
||
USE_GHCR=1 curl -fsSL -H "Authorization: Bearer ${GITHUB_TOKEN}" \
|
||
https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh \
|
||
| sudo -E bash
|
||
```
|
||
|
||
или:
|
||
|
||
```bash
|
||
USE_GHCR=1 sudo -E bash scripts/install.sh
|
||
```
|
||
|
||
Нужны:
|
||
|
||
- GitHub PAT с `read:packages`;
|
||
- доступ к package `ghcr.io/andrey271192/amnezia-admin-pro`;
|
||
- существующий tag из `PRO_IMAGE_TAG`.
|
||
|
||
## Проблемы и решения
|
||
|
||
### `403 Forbidden` при `docker pull ghcr.io/...`
|
||
|
||
Причина: старый GHCR-сценарий пытается скачать private image, а у token нет доступа к package.
|
||
|
||
Решение: используйте обычную установку без GHCR:
|
||
|
||
```bash
|
||
export GITHUB_TOKEN='ТОКЕН_ИЗ_BOOSTY'
|
||
curl -fsSL -H "Authorization: Bearer ${GITHUB_TOKEN}" \
|
||
https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh \
|
||
| sudo -E bash
|
||
```
|
||
|
||
### `Login Succeeded`, но pull всё равно падает
|
||
|
||
`docker login` проверяет только логин/token. Он не гарантирует доступ к конкретному package.
|
||
|
||
Решение: не используйте GHCR-режим. Если GHCR всё-таки нужен, проверьте:
|
||
|
||
- PAT имеет `read:packages`;
|
||
- GitHub account имеет доступ к package;
|
||
- package не private для этого пользователя;
|
||
- tag из `PRO_IMAGE_TAG` реально опубликован.
|
||
|
||
### `WARNING! Your credentials are stored unencrypted`
|
||
|
||
Это предупреждение Docker, не ошибка установки. Оно не вызывает `403 Forbidden`.
|
||
|
||
### `Docker daemon недоступен`
|
||
|
||
Docker установлен, но сервис не запущен.
|
||
|
||
```bash
|
||
sudo systemctl enable --now docker
|
||
docker info
|
||
```
|
||
|
||
### `docker compose` не найден
|
||
|
||
Обычный установщик сам ставит Docker Compose plugin. Если запускаете legacy GHCR mode вручную, обновите Docker/Compose:
|
||
|
||
```bash
|
||
sudo apt-get update
|
||
sudo apt-get install -y docker-compose-plugin
|
||
docker compose version
|
||
```
|
||
|
||
### Порт панели занят
|
||
|
||
Укажите другой порт при установке основного проекта:
|
||
|
||
```bash
|
||
export GITHUB_TOKEN='ТОКЕН_ИЗ_BOOSTY'
|
||
export NGINX_HTTP_PORT=8081
|
||
curl -fsSL -H "Authorization: Bearer ${GITHUB_TOKEN}" \
|
||
https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO_test/main/install.sh \
|
||
| sudo -E bash
|
||
```
|
||
|
||
### Не входит в панель после переустановки
|
||
|
||
Задайте новый пароль admin явно:
|
||
|
||
```bash
|
||
export GITHUB_TOKEN='ТОКЕН_ИЗ_BOOSTY'
|
||
export ADMIN_PASSWORD='НОВЫЙ_ПАРОЛЬ'
|
||
curl -fsSL -H "Authorization: Bearer ${GITHUB_TOKEN}" \
|
||
https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO_test/main/install.sh \
|
||
| sudo -E bash
|
||
```
|
||
|
||
### Нужна полная переустановка
|
||
|
||
Удалите панель с данными и поставьте заново:
|
||
|
||
```bash
|
||
export GITHUB_TOKEN='ТОКЕН_ИЗ_BOOSTY'
|
||
curl -fsSL -H "Authorization: Bearer ${GITHUB_TOKEN}" \
|
||
https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO_test/main/uninstall.sh \
|
||
| sudo REMOVE_DATA=1 REMOVE_DIR=1 bash
|
||
curl -fsSL -H "Authorization: Bearer ${GITHUB_TOKEN}" \
|
||
https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh \
|
||
| sudo -E bash
|
||
```
|
||
|
||
## Удаление
|
||
|
||
Обычная остановка панели:
|
||
|
||
```bash
|
||
export GITHUB_TOKEN='ТОКЕН_ИЗ_BOOSTY'
|
||
curl -fsSL -H "Authorization: Bearer ${GITHUB_TOKEN}" \
|
||
https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO_test/main/uninstall.sh \
|
||
| sudo -E bash
|
||
```
|
||
|
||
Полная очистка с данными:
|
||
|
||
```bash
|
||
export GITHUB_TOKEN='ТОКЕН_ИЗ_BOOSTY'
|
||
curl -fsSL -H "Authorization: Bearer ${GITHUB_TOKEN}" \
|
||
https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO_test/main/uninstall.sh \
|
||
| sudo REMOVE_DATA=1 REMOVE_DIR=1 bash
|
||
```
|
||
|
||
## Обновление
|
||
|
||
В панели: **Настройки → О программе и обновления → Проверить обновления**.
|
||
|
||
Доступно:
|
||
|
||
- стабильный канал;
|
||
- beta-канал;
|
||
- выбор версии;
|
||
- откат на старый tag.
|
||
|
||
Ручное обновление source-установки:
|
||
|
||
```bash
|
||
cd /opt/amnezia-web-pro
|
||
git pull
|
||
docker compose build
|
||
docker compose up -d
|
||
```
|
||
|
||
## Поддержка проекта
|
||
|
||
- GitHub: [andrey271192/amnezia_web-PRO_test](https://github.com/andrey271192/amnezia_web-PRO_test)
|
||
- Boosty: [boosty.to/andrey27/donate](https://boosty.to/andrey27/donate)
|
||
- Telegram: [@PCAdministration](https://t.me/PCAdministration)
|