From f8e9a528e2c32b2488796c72e37d13ccb729dabb Mon Sep 17 00:00:00 2001 From: "Nikita Tyukalov, ASUS, Linux" Date: Sat, 29 Aug 2026 20:06:53 +0300 Subject: [PATCH] Added Dockerfile and related manual --- .dockerignore | 9 +++++++++ .gitignore | 1 + Dockerfile | 16 ++++++++++++++++ README.md | 36 ++++++++++++++++++++++++------------ 4 files changed, 50 insertions(+), 12 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..f947e11 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +.venv/ +session_storage/ +__pycache__/ +runtime/ +*.swp +*.swo +*.vscode +*.json +*.sqlite \ No newline at end of file diff --git a/.gitignore b/.gitignore index ab5eb8f..f947e11 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .venv/ session_storage/ __pycache__/ +runtime/ *.swp *.swo *.vscode diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1835e6e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.12-slim + +RUN apt-get update && apt-get install --no-install-recommends -y libolm3 libolm-dev git && rm -rf /var/lib/apt/lists/* + +WORKDIR /usr/src/app + +COPY requirements.txt ./ +RUN pip install --no-cache-dir -r requirements.txt + +COPY . . + +WORKDIR /runtime +RUN chown -R 1000:1000 /usr/src /runtime + +USER 1000:1000 +CMD [ "python", "/usr/src/app/main.py" ] \ No newline at end of file diff --git a/README.md b/README.md index a52d861..1444ee3 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,30 @@ Раньше был бот с таким же функционалом, но для Telegram. Telegram больше не в почёте, и теперь у меня всё в локальном Matrix, поэтому бот тоже перенесён сюда. -## Подготовка окружения +## Для запуска рекомендуется `docker` + +1. Соберите образ: +```bash +sudo docker build -t csonac . +``` +2. Выполните первый запуск в интерактивном режиме +```bash +sudo mkdir runtime +sudo chown 1000:1000 runtime +sudo docker run -v ./runtime:/runtime -ti csonac:latest +``` +3. В папке `runtime` появится файл `config.json`. Внесите туда нужные настройки +4. Запустите ещё раз в интерактивном режиме, чтобы авторизоваться +```bash +sudo docker run -v ./runtime:/runtime -ti csonac:latest +``` +5. Дальше можно запускать контейнер в фоне +```bash +sudo docker run -p 127.0.0.1:4980:4980 -v ./runtime:/runtime --detach csonac:latest +``` +> Рекомендуется запускать контейнер при помощи `docker compose`. + +## Запуск без `docker` 1. Клонируйте репозиторий и перейдите в его директорию ```bash @@ -26,17 +49,6 @@ python main.py python main.py ``` -## Запуск - -Для запуска приложения вы можете либо активировать `venv`, либо просто использовать полный путь до интерпретатора Python: -```bash -~/2026-matrix-downloader/.venv/bin/python main.py -``` -```bash -. .venv/bin/activate -python main.py -``` - ## Как работает бот Для каждой службы (канала уведомлений) создаётся своя собственная комната и в