mirror of
https://github.com/andrey271192/amnezia-web-pro-deploy.git
synced 2026-09-20 13:50:06 +00:00
docs: prepare private subscriber install
This commit is contained in:
68
README.md
68
README.md
@@ -1,13 +1,14 @@
|
||||
# Amnezia Web PRO Deploy
|
||||
|
||||
Публичный установщик для **Amnezia Web PRO** на VPS. Репозиторий нужен, чтобы пользователи ставили панель одной командой без доступа к private GHCR image и без ошибки `403 Forbidden`.
|
||||
Приватный установщик **Amnezia Web PRO** на VPS. Доступ к репозиториям выдаётся подписчикам Boosty.
|
||||
|
||||
По умолчанию установка идёт из открытого source repo:
|
||||
По умолчанию установка идёт из private source repo:
|
||||
|
||||
- source: [`andrey271192/amnezia_web-PRO_test`](https://github.com/andrey271192/amnezia_web-PRO_test);
|
||||
- source: `andrey271192/amnezia_web-PRO_test`;
|
||||
- текущий релиз: `v1.5.2`;
|
||||
- old GHCR image больше не используется по умолчанию;
|
||||
- legacy GHCR mode оставлен только вручную через `USE_GHCR=1`.
|
||||
- нужен `GITHUB_TOKEN` с доступом к private repo.
|
||||
|
||||
## Что делает установщик
|
||||
|
||||
@@ -17,21 +18,28 @@
|
||||
- создаёт `.env`;
|
||||
- собирает и запускает Docker Compose stack;
|
||||
- поддерживает явный первый пароль admin через `ADMIN_PASSWORD`;
|
||||
- не требует GHCR PAT для обычной установки.
|
||||
- не требует GHCR PAT для обычной установки;
|
||||
- требует GitHub token для доступа к private source.
|
||||
|
||||
## Быстрая установка
|
||||
|
||||
На VPS от root:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh | sudo 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
|
||||
curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh \
|
||||
| sudo ADMIN_PASSWORD='СЛОЖНЫЙ_ПАРОЛЬ' 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` скачает и запустит рабочий установщик:
|
||||
@@ -40,6 +48,8 @@ curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy
|
||||
https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO_test/main/install.sh
|
||||
```
|
||||
|
||||
Если `GITHUB_TOKEN` не передан, private GitHub вернёт `404` или `403`. Это нормально: repo закрыт.
|
||||
|
||||
## Почему больше не GHCR
|
||||
|
||||
Старый сценарий тянул private image:
|
||||
@@ -54,7 +64,7 @@ ghcr.io/andrey271192/amnezia-admin-pro:v1.0.0
|
||||
unexpected status ... 403 Forbidden
|
||||
```
|
||||
|
||||
Это не ошибка VPS и не ошибка Docker. Это отказ GitHub Container Registry. Чтобы не ловить эту ошибку у подписчиков, обычная установка теперь идёт из GitHub source.
|
||||
Это не ошибка VPS и не ошибка Docker. Это отказ GitHub Container Registry. Чтобы не ловить эту ошибку у подписчиков, обычная установка теперь идёт из private GitHub source.
|
||||
|
||||
Предупреждение Docker:
|
||||
|
||||
@@ -69,7 +79,10 @@ WARNING! Your credentials are stored unencrypted in '/root/.docker/config.json'
|
||||
Оставлен только для ручного использования, если у вас реально есть доступ к package:
|
||||
|
||||
```bash
|
||||
USE_GHCR=1 curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh | sudo -E 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
|
||||
```
|
||||
|
||||
или:
|
||||
@@ -90,10 +103,13 @@ USE_GHCR=1 sudo -E bash scripts/install.sh
|
||||
|
||||
Причина: старый GHCR-сценарий пытается скачать private image, а у token нет доступа к package.
|
||||
|
||||
Решение: используйте обычную установку без GHCR:
|
||||
Решение: используйте обычную private source установку без GHCR:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh | sudo 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 всё равно падает
|
||||
@@ -135,7 +151,11 @@ docker compose version
|
||||
Укажите другой порт при установке основного проекта:
|
||||
|
||||
```bash
|
||||
NGINX_HTTP_PORT=8081 curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO_test/main/install.sh | sudo -E 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
|
||||
```
|
||||
|
||||
### Не входит в панель после переустановки
|
||||
@@ -143,8 +163,11 @@ NGINX_HTTP_PORT=8081 curl -fsSL https://raw.githubusercontent.com/andrey271192/a
|
||||
Задайте новый пароль admin явно:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO_test/main/install.sh \
|
||||
| sudo ADMIN_PASSWORD='НОВЫЙ_ПАРОЛЬ' 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
|
||||
```
|
||||
|
||||
### Нужна полная переустановка
|
||||
@@ -152,9 +175,13 @@ curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO_test/m
|
||||
Удалите панель с данными и поставьте заново:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO_test/main/uninstall.sh \
|
||||
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 https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh | sudo bash
|
||||
curl -fsSL -H "Authorization: Bearer ${GITHUB_TOKEN}" \
|
||||
https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main/quick-install.sh \
|
||||
| sudo -E bash
|
||||
```
|
||||
|
||||
## Удаление
|
||||
@@ -162,13 +189,18 @@ curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy
|
||||
Обычная остановка панели:
|
||||
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO_test/main/uninstall.sh | sudo 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
|
||||
curl -fsSL https://raw.githubusercontent.com/andrey271192/amnezia_web-PRO_test/main/uninstall.sh \
|
||||
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
|
||||
```
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# One-command installer kept for old links. Default path now installs from the
|
||||
# open source repo, not the private GHCR image, so subscribers do not hit 403.
|
||||
# One-command installer kept for subscriber links. Default path installs from
|
||||
# the private source repo using GITHUB_TOKEN, not the legacy GHCR image.
|
||||
set -euo pipefail
|
||||
|
||||
RAW_BASE="${RAW_BASE:-https://raw.githubusercontent.com/andrey271192/amnezia-web-pro-deploy/main}"
|
||||
@@ -8,7 +8,8 @@ SOURCE_INSTALL_URL="${SOURCE_INSTALL_URL:-https://raw.githubusercontent.com/andr
|
||||
|
||||
need_root() {
|
||||
if [[ "${EUID:-$(id -u)}" -ne 0 ]]; then
|
||||
echo "Запустите: curl -fsSL ${RAW_BASE}/quick-install.sh | sudo bash"
|
||||
echo "Запустите с GITHUB_TOKEN:"
|
||||
echo "curl -fsSL -H \"Authorization: Bearer \${GITHUB_TOKEN}\" ${RAW_BASE}/quick-install.sh | sudo -E bash"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
@@ -20,17 +21,29 @@ need_cmd() {
|
||||
}
|
||||
}
|
||||
|
||||
curl_auth_args() {
|
||||
if [[ -n "${GITHUB_TOKEN:-}" ]]; then
|
||||
printf '%s\n' -H "Authorization: Bearer ${GITHUB_TOKEN}"
|
||||
fi
|
||||
}
|
||||
|
||||
need_root
|
||||
need_cmd curl
|
||||
|
||||
if [[ "${USE_GHCR:-0}" != "1" ]]; then
|
||||
echo "→ GHCR-установка отключена: старый private image часто даёт 403 Forbidden."
|
||||
echo "→ Ставлю Amnezia Web PRO из GitHub: ${SOURCE_INSTALL_URL}"
|
||||
echo "→ Ставлю Amnezia Web PRO из private GitHub source: ${SOURCE_INSTALL_URL}"
|
||||
echo "→ Для старого GHCR-сценария запустите: USE_GHCR=1 curl ... | sudo -E bash"
|
||||
if [[ -z "${GITHUB_TOKEN:-}" ]]; then
|
||||
echo "Нужен GITHUB_TOKEN с доступом к private repo andrey271192/amnezia_web-PRO_test."
|
||||
echo "Пример: export GITHUB_TOKEN='ТОКЕН_ИЗ_BOOSTY'"
|
||||
exit 1
|
||||
fi
|
||||
echo ""
|
||||
tmp="$(mktemp)"
|
||||
trap 'rm -f "$tmp"' EXIT
|
||||
curl -fsSL "${SOURCE_INSTALL_URL}" -o "$tmp"
|
||||
mapfile -t _curl_auth < <(curl_auth_args)
|
||||
curl -fsSL "${_curl_auth[@]}" "${SOURCE_INSTALL_URL}" -o "$tmp"
|
||||
exec bash "$tmp"
|
||||
fi
|
||||
|
||||
@@ -57,7 +70,8 @@ trim() {
|
||||
|
||||
if ! docker compose version >/dev/null 2>&1; then
|
||||
_lib="$(mktemp)"
|
||||
if ! curl -fsSL "${RAW_BASE}/scripts/lib-compose-v2.sh" -o "${_lib}"; then
|
||||
mapfile -t _curl_auth < <(curl_auth_args)
|
||||
if ! curl -fsSL "${_curl_auth[@]}" "${RAW_BASE}/scripts/lib-compose-v2.sh" -o "${_lib}"; then
|
||||
echo "Не удалось скачать вспомогательный файл Compose v2 (${RAW_BASE}/scripts/lib-compose-v2.sh)." >&2
|
||||
rm -f "${_lib}"
|
||||
exit 1
|
||||
@@ -87,7 +101,8 @@ remove_free_amnezia_web_panel() {
|
||||
remove_free_amnezia_web_panel
|
||||
|
||||
echo "→ Получаю актуальный тег образа..."
|
||||
IMAGE_TAG="$(trim "$(curl -fsSL "${RAW_BASE}/PRO_IMAGE_TAG")")"
|
||||
mapfile -t _curl_auth < <(curl_auth_args)
|
||||
IMAGE_TAG="$(trim "$(curl -fsSL "${_curl_auth[@]}" "${RAW_BASE}/PRO_IMAGE_TAG")")"
|
||||
if [[ -z "${IMAGE_TAG}" ]]; then
|
||||
echo "Не удалось прочитать PRO_IMAGE_TAG с GitHub."
|
||||
exit 1
|
||||
|
||||
Reference in New Issue
Block a user