Полная инструкция по установке Amnezia-Web-Panel (РАБОЧАЯ ВЕРСИЯ) v2

Download the latest version of the modification

Полная инструкция по установке Amnezia-Web-Panel (РАБОЧАЯ ВЕРСИЯ) v2

Два подхода к сборке

Подход Когда использовать
Docker Hub автоматическая сборка Публичный репозиторий, не хотите вручную собирать на сервере
Прямая сборка на сервере из Git Приватный репозиторий, полный контроль над процессом


Подход 1: Прямая сборка на сервере из вашего Git

Самый простой способ — собирать образ прямо на сервере из вашего репозитория.

# На сервере
cd ~
git clone https://git.your-domain.com/your-username/Amnezia-Web-Panel.git
cd Amnezia-Web-Panel

# Собираем образ
sudo docker build -t amnezia-panel:custom .

# Запускаем
cd ~/amnezia-panel
docker compose down
docker compose up -d

Подход 2: Сборка с приватным репозиторием (SSH)

Если ваш Git-сервер требует аутентификацию, используйте SSH-ключи и BuildKit .

Dockerfile (адаптированный)

# syntax=docker/dockerfile:experimental
FROM python:3.11-slim

# Устанавливаем зависимости для Git over SSH
RUN apt-get update && apt-get install -y \
    git openssh-client \
    && rm -rf /var/lib/apt/lists/*

# Настраиваем SSH для github.com/вашего Git-сервера
RUN mkdir -p -m 0700 ~/.ssh && \
    ssh-keyscan github.com >> ~/.ssh/known_hosts

# Клонируем репозиторий через SSH (ключи передаются при сборке)
RUN --mount=type=ssh \
    git clone git@github.com:your-org/Amnezia-Web-Panel.git /app

# Остальная часть сборки...
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

Команда сборки с пробросом SSH-агента

# Включаем BuildKit
export DOCKER_BUILDKIT=1

# Собираем с пробросом SSH
docker build --ssh default -t amnezia-panel:custom .

Docker Compose сборка (альтернатива)

services:
  amnezia-panel:
    build:
      context: .
      dockerfile: Dockerfile
      ssh:
        - default
    image: amnezia-panel:custom

Подход 3: Автоматическая сборка на вашем Git-сервере (CI/CD)

Самый профессиональный подход — настроить GitLab CI или Gitea Actions.

stages:
  - build
  - deploy

build:
  stage: build
  script:
    - docker build -t $CI_REGISTRY/amnezia-panel:$CI_COMMIT_SHA .
    - docker push $CI_REGISTRY/amnezia-panel:$CI_COMMIT_SHA
  only:
    - main

deploy:
  stage: deploy
  script:
    - ssh root@your-server "docker pull $CI_REGISTRY/amnezia-panel:$CI_COMMIT_SHA && cd /root/amnezia-panel && docker compose up -d"

На сервере используете образ прямо из вашего registry:

services:
  amnezia-panel:
    image: your-git-server.com:5050/your-username/amnezia-panel:latest
    # ... остальные настройки

Подход 4: Копирование исходников через volume (без пересборки)

Если хотите быстро тестировать изменения без пересборки образа:

services:
  amnezia-panel:
    image: amnezia-panel:base
    volumes:
      - /path/to/your/git/repo:/app
    # ... остальное

Что я рекомендую для вашего случая

Учитывая, что:

  • У вас есть свой Git-сервер

  • Вы хотите быстро вносить изменения

  • Панель не требует частых пересборок ядра

# 1. На сервере один раз клонируем ваш репозиторий
git clone https://git.your-domain.com/your-username/Amnezia-Web-Panel.git /opt/amnezia-panel-src

# 2. В docker-compose.yml монтируем исходники
volumes:
  - /opt/amnezia-panel-src:/app

# 3. При любом изменении кода просто перезапускаем контейнер
docker compose restart amnezia-panel

Это не требует пересборки образа при каждом изменении кода — просто git pull на сервере и перезапуск контейнера.

Download Files

Downloads

No comments yet.

Добавить комментарий
или
регистрация Я забыл свой пароль
Оцените работу движка
Статистика