From 329abeeebdba66e9f9dcfecb88572db1b8f330fd Mon Sep 17 00:00:00 2001 From: protokey Date: Thu, 24 Sep 2026 13:19:45 +0400 Subject: [PATCH] chore: update --- .gitignore | 1 + Makefile | 56 ++++++++++++++++++++++++++++++++++++++++++++- docker-compose.yaml | 47 +++++++++++++++++++++++++++++++++---- 3 files changed, 98 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index b2badfc..844238b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ extra/ src/db.sqlite3 src/design/static_root/ __pycache__/ +wheels/ diff --git a/Makefile b/Makefile index af92129..3c832ca 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,55 @@ -.PHONY: dj_makemigrations dj_migrate dj_superuser dj_run dj_test +VENV := .venv +PYTHON := $(VENV)/bin/python +PIP := $(VENV)/bin/pip +WHEELS_DIR := wheels +REQUIREMENTS := requirements.txt + +MAKECMDGOALS_TARGETS := install freeze wheels sync sync-offline clean help +PKG := $(filter-out $(MAKECMDGOALS_TARGETS),$(MAKECMDGOALS)) + +.PHONY: install freeze wheels sync sync-offline clean help venv dj_makemigrations dj_migrate dj_superuser dj_run dj_test + +help: + @echo "make install [ ...] - установить пакет(ы) в $(VENV), обновить $(REQUIREMENTS), собрать wheel в $(WHEELS_DIR)/" + @echo "make sync - установить все пакеты из $(REQUIREMENTS) (из индекса)" + @echo "make sync-offline - установить все пакеты из $(REQUIREMENTS) только из $(WHEELS_DIR)/, без обращения к индексу" + @echo "make freeze - перезаписать $(REQUIREMENTS) текущим состоянием окружения" + @echo "make wheels - собрать wheel для всех пакетов из $(REQUIREMENTS)" + @echo "make clean - удалить $(WHEELS_DIR)/" + +venv: + @test -d $(VENV) || python3 -m venv $(VENV) + +install: venv +ifeq ($(strip $(PKG)),) + $(error Укажите пакет: make install , например make install redis) +endif + echo $(PKG) + $(PIP) install --upgrade $(PKG) + $(PIP) freeze > $(REQUIREMENTS) + @mkdir -p $(WHEELS_DIR) + $(PIP) wheel $(PKG) -w $(WHEELS_DIR) + @echo "Готово: $(PKG) установлен, $(REQUIREMENTS) обновлён, wheel-пакеты в $(WHEELS_DIR)/" + +sync: venv + $(PIP) install -r $(REQUIREMENTS) + +sync-offline: venv + $(PIP) install --no-index --find-links=$(WHEELS_DIR) -r $(REQUIREMENTS) + +freeze: venv + $(PIP) freeze > $(REQUIREMENTS) + +wheels: venv + @mkdir -p $(WHEELS_DIR) + $(PIP) wheel -r $(REQUIREMENTS) -w $(WHEELS_DIR) + +clean: + rm -rf $(WHEELS_DIR) + +# позволяет передавать имя пакета как аргумент: make install redis +%: + @: dj_makemigrations: cd src/ && ./manage.py makemigrations @@ -14,3 +65,6 @@ dj_run: dj_test: cd src/ && ./manage.py test + +dj_startapp: + cd src/ && ./manage.py startapp $(app) diff --git a/docker-compose.yaml b/docker-compose.yaml index 228eae6..26b927b 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,7 +1,7 @@ services: xui: # 3x-ui для тестирования api. Панель: http://127.0.0.1:2053 (по умолчанию admin/admin) - image: ghcr.io/mhsanaei/3x-ui:latest + image: docker.local/ghcr.io/mhsanaei/3x-ui:latest restart: unless-stopped environment: XRAY_VMESS_AEAD_FORCED: "false" @@ -9,8 +9,45 @@ services: ports: - "2053:2053" volumes: - - ./extra/xui/db/:/etc/x-ui/ - - ./extra/xui/cert/:/root/cert/ + - ./docker-services-data/xui/db/:/etc/x-ui/ + - ./docker-services-data/xui/cert/:/root/cert/ - # telegram: - # # TODO: настроить старт телеграм сервиса предоставляемый pyTelegramBotAPI + telegram: + image: docker.local/aiogram/telegram-bot-api:10.3 + environment: + TELEGRAM_API_ID: "" + TELEGRAM_API_HASH: "" + volumes: + - telegram-bot-api-data:/var/lib/telegram-bot-api + ports: + - "8081:8081" + + redis: + image: redis:latest + container_name: shop-redis + ports: + - "6379:6379" + volumes: + - redis_data:/data + + rabbitmq: + image: rabbitmq:latest + container_name: shop-rabbitmq + ports: + - "5672:5672" + - "15672:15672" + + postgres: + image: postgres:latest + container_name: shop-postgres + environment: + POSTGRES_DB: shop + POSTGRES_USER: shop + POSTGRES_PASSWORD: shop + ports: + - "5432:5432" + volumes: + - postgres_data:/var/lib/postgresql/data + +volumes: + telegram-bot-api-data: