Lexiflux в Docker
Установка
Вы всегда можете использовать эту волшебную команду для запуска Lexiflux в Docker:
docker start lexiflux || docker run -d -p 6100:8000 --name lexiflux andgineer/lexiflux
Если вы хотите узнать подробности, читайте ниже. Но вам не обязательно - волшебная команда выше это всё, что вам нужно.
Запуск Docker контейнера Lexiflux
Первая часть команды docker start lexiflux пытается запустить контейнер с именем lexiflux.
На самом деле это всё, что вам нужно после первоначального создания контейнера.
Создание Docker контейнера Lexiflux
Если первая часть команды не удалась, вторая часть команды
docker run -d -p 6100:8000 --name lexiflux andgineer/lexiflux
загружает образ andgineer/lexiflux из Docker Hub,
создает новый контейнер с именем lexiflux и открывает порт 6100 на вашей хост-машине.
Ключи для AI
Введите свои API-ключи на странице AI Keys в Lexiflux (смотрите раздел Ключи).
Они хранятся в контейнере вместе с вашими книгами. Ключи зашифрованы секретом, который контейнер
создаёт при первом запуске и хранит там же. Чтобы задать свой секрет, добавьте
-e DJANGO_SECRET_KEY=... к команде, которая создаёт контейнер; если потом его поменять, введите
свои ключи заново.
Можно также задать контейнеру собственные ключи. Каждый из них используется у тех, кто не ввёл
этот ключ сам: если вы ввели только свой ключ OpenAI, для Groq всё равно используется ключ
контейнера.
Запишите их в файл, по одному ИМЯ=значение в строке, например .env:
GEMINI_API_KEY=...
GROQ_API_KEY=...
OPENAI_API_KEY=...
и добавьте --env-file .env к команде, которая создаёт контейнер:
docker run -d -p 6100:8000 --env-file .env --name lexiflux andgineer/lexiflux
Такие ключи задаются при создании контейнера. В контейнере хранятся и ваши книги, поэтому чтобы
поменять их у существующего контейнера, сделайте резервную копию и
восстановите её, добавив --env-file .env к команде docker run.
Конфигурация
Разрешенные хосты
По умолчанию Docker контейнер разрешает подключения с любого имени хоста (*). Если вам нужно ограничить доступ к определенным именам хостов, вы можете использовать переменную окружения LEXIFLUX_ALLOWED_HOSTS:
docker run -d -p 6100:8000 -e LEXIFLUX_ALLOWED_HOSTS="localhost,example.com" --name lexiflux andgineer/lexiflux
Значение должно быть списком имен хостов, разделенных запятыми. Это заменит настройку по умолчанию *.
Остановка Docker контейнера Lexiflux
Для остановки контейнера вы можете использовать
docker stop lexiflux
Обновления
Для обновления вы можете использовать
docker exec -it lexiflux ./manage update
docker restart lexiflux
Но имейте в виду, что, как и с любым обновлением, оно может что-то сломать. Поэтому лучше сделать резервную копию перед обновлением.
Резервное копирование
Чтобы создать архив с полной резервной копией вашего Docker контейнера Lexiflux.
Архив содержит и ваши API-ключи, введённые на странице AI Keys и переданные контейнеру через
--env-file, поэтому не передавайте его другим.
Введите в терминале:
docker commit lexiflux lexiflux_backup
docker save lexiflux_backup | gzip > lexiflux_backup.tar.gz
В командной строке введите:
docker commit lexiflux lexiflux_backup
docker save lexiflux_backup -o lexiflux_backup.tar
Восстановление
Чтобы удалить текущий контейнер и создать новый из архива, созданного на этапе резервного копирования.
Помните, вы потеряете все свои данные в текущем контейнере.
Предупреждение
Еще раз: все ваши книги и прогресс чтения в текущем контейнере будут потеряны. Мы восстанавливаем состояние, которое вы сохранили на этапе резервного копирования.
Введите в терминале:
docker stop lexiflux
docker rm lexiflux
gunzip -c lexiflux_backup.tar.gz | docker load
docker run -d -p 6100:8000 --name lexiflux lexiflux_backup
В командной строке введите:
docker stop lexiflux
docker rm lexiflux
docker load -i lexiflux_backup.tar
docker run -d -p 6100:8000 --name lexiflux lexiflux_backup