refacto: reorganize files to easily add an API service
This commit is contained in:
parent
5c480db410
commit
9c883a8eca
22 changed files with 26 additions and 23 deletions
22
Makefile
22
Makefile
|
|
@ -1,6 +1,8 @@
|
|||
IP ?= 192.168.1.195
|
||||
REMOTE_USER ?= pi
|
||||
REMOTE = $(REMOTE_USER)@$(IP)
|
||||
SERVER = server
|
||||
GATEWAY = lora-gateway
|
||||
DEST ?= /home/$(REMOTE_USER)/projet-agreg
|
||||
RSYNC_OPTS = -arvz --delete --exclude='__pycache__' --exclude='*.pyc' --exclude='.env' --exclude='.venv' --exclude='Makefile' --exclude='.git' --exclude='.vscode' --exclude='.gitignore'
|
||||
|
||||
|
|
@ -11,29 +13,29 @@ deploy-all: deploy-gw deploy-app
|
|||
deploy-app:
|
||||
@echo "Déploiement sur $(REMOTE):$(DEST)"
|
||||
ssh $(REMOTE) "mkdir -p $(DEST)"
|
||||
rsync $(RSYNC_OPTS) app $(REMOTE):$(DEST)
|
||||
rsync $(RSYNC_OPTS) $(SERVER) $(REMOTE):$(DEST)
|
||||
@echo "Déploiement terminé"
|
||||
ssh $(REMOTE) "cd $(DEST)/app && docker compose up -d --build"
|
||||
ssh $(REMOTE) "cd $(DEST)/$(SERVER) && docker compose up -d --build"
|
||||
@echo "Services redémarrés"
|
||||
|
||||
deploy-gw:
|
||||
@echo "Déploiement sur $(REMOTE):$(DEST)"
|
||||
ssh $(REMOTE) "mkdir -p $(DEST)"
|
||||
rsync $(RSYNC_OPTS) lora-gateway $(REMOTE):$(DEST)
|
||||
rsync $(RSYNC_OPTS) $(GATEWAY) $(REMOTE):$(DEST)
|
||||
@echo "Déploiement terminé"
|
||||
ssh $(REMOTE) "cd $(DEST)/lora-gateway && docker compose up -d"
|
||||
ssh $(REMOTE) "cd $(DEST)/$(GATEWAY) && docker compose up -d"
|
||||
@echo "Services redémarrés"
|
||||
|
||||
clean-app:
|
||||
@echo "Nettoyage de l'app sur $(REMOTE):$(DEST)/app"
|
||||
ssh $(REMOTE) "cd $(DEST)/app && docker compose down --volumes --remove-orphans || true"
|
||||
ssh $(REMOTE) "rm -rf $(DEST)/app"
|
||||
@echo "Nettoyage de l'app sur $(REMOTE):$(DEST)/$(SERVER)"
|
||||
ssh $(REMOTE) "cd $(DEST)/$(SERVER) && docker compose down --volumes --remove-orphans || true"
|
||||
ssh $(REMOTE) "rm -rf $(DEST)/$(SERVER)"
|
||||
@echo "Nettoyage de l'application terminé"
|
||||
|
||||
clean-gw:
|
||||
@echo "Nettoyage de la gateway sur $(REMOTE):$(DEST)/lora-gateway"
|
||||
ssh $(REMOTE) "cd $(DEST)/lora-gateway && docker compose down --volumes --remove-orphans || true"
|
||||
ssh $(REMOTE) "rm -rf $(DEST)/lora-gateway"
|
||||
@echo "Nettoyage de la gateway sur $(REMOTE):$(DEST)/$(GATEWAY)"
|
||||
ssh $(REMOTE) "cd $(DEST)/$(GATEWAY) && docker compose down --volumes --remove-orphans || true"
|
||||
ssh $(REMOTE) "rm -rf $(DEST)/$(GATEWAY)"
|
||||
@echo "Nettoyage de la gateway terminé"
|
||||
|
||||
clean-all: clean-app clean-gw
|
||||
|
|
|
|||
1
server/app/.dockerignore
Normal file
1
server/app/.dockerignore
Normal file
|
|
@ -0,0 +1 @@
|
|||
Dockerfile
|
||||
|
|
@ -2,5 +2,5 @@ FROM python:3.13-slim
|
|||
WORKDIR /app
|
||||
COPY requirements.txt .
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
COPY ./src/. /app/
|
||||
CMD ["python", "main.py"]
|
||||
COPY . .
|
||||
CMD ["python", "consumer.py"]
|
||||
|
|
@ -8,8 +8,8 @@ from paho.mqtt.enums import CallbackAPIVersion
|
|||
from paho.mqtt.properties import Properties
|
||||
from paho.mqtt.reasoncodes import ReasonCode
|
||||
|
||||
from exceptions import MessageBrokerError, InfrastructureError
|
||||
from entities import UplinkEvent
|
||||
from domain.exceptions import MessageBrokerError, InfrastructureError
|
||||
from domain.entities import UplinkEvent
|
||||
from ports import MessageBroker
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
|
@ -4,7 +4,7 @@ import time
|
|||
import psycopg2
|
||||
from psycopg2.extensions import connection
|
||||
from ports import DeviceRepository, ReadingRepository
|
||||
from exceptions import DatabaseConnectionError, DatabaseError
|
||||
from domain.exceptions import DatabaseConnectionError, DatabaseError
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
from abc import ABC, abstractmethod
|
||||
from typing import Callable
|
||||
|
||||
from entities import UplinkEvent
|
||||
from domain.entities import UplinkEvent
|
||||
|
||||
class MessageBroker(ABC):
|
||||
@abstractmethod
|
||||
0
server/app/services/__init__.py
Normal file
0
server/app/services/__init__.py
Normal file
|
|
@ -1,6 +1,6 @@
|
|||
import logging
|
||||
from ports import DeviceRepository, ReadingRepository
|
||||
from entities import UplinkEvent
|
||||
from domain.entities import UplinkEvent
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
services:
|
||||
consumer:
|
||||
build: ./consumer
|
||||
build: ./app
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- lora-gateway_mqtt
|
||||
|
|
@ -10,7 +10,7 @@ services:
|
|||
image: postgres:18-alpine
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./consumer/initdb:/docker-entrypoint-initdb.d:ro
|
||||
- ./initdb:/docker-entrypoint-initdb.d:ro
|
||||
- db:/var/lib/postgresql
|
||||
networks:
|
||||
- database
|
||||
Loading…
Add table
Add a link
Reference in a new issue