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
|
IP ?= 192.168.1.195
|
||||||
REMOTE_USER ?= pi
|
REMOTE_USER ?= pi
|
||||||
REMOTE = $(REMOTE_USER)@$(IP)
|
REMOTE = $(REMOTE_USER)@$(IP)
|
||||||
|
SERVER = server
|
||||||
|
GATEWAY = lora-gateway
|
||||||
DEST ?= /home/$(REMOTE_USER)/projet-agreg
|
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'
|
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:
|
deploy-app:
|
||||||
@echo "Déploiement sur $(REMOTE):$(DEST)"
|
@echo "Déploiement sur $(REMOTE):$(DEST)"
|
||||||
ssh $(REMOTE) "mkdir -p $(DEST)"
|
ssh $(REMOTE) "mkdir -p $(DEST)"
|
||||||
rsync $(RSYNC_OPTS) app $(REMOTE):$(DEST)
|
rsync $(RSYNC_OPTS) $(SERVER) $(REMOTE):$(DEST)
|
||||||
@echo "Déploiement terminé"
|
@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"
|
@echo "Services redémarrés"
|
||||||
|
|
||||||
deploy-gw:
|
deploy-gw:
|
||||||
@echo "Déploiement sur $(REMOTE):$(DEST)"
|
@echo "Déploiement sur $(REMOTE):$(DEST)"
|
||||||
ssh $(REMOTE) "mkdir -p $(DEST)"
|
ssh $(REMOTE) "mkdir -p $(DEST)"
|
||||||
rsync $(RSYNC_OPTS) lora-gateway $(REMOTE):$(DEST)
|
rsync $(RSYNC_OPTS) $(GATEWAY) $(REMOTE):$(DEST)
|
||||||
@echo "Déploiement terminé"
|
@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"
|
@echo "Services redémarrés"
|
||||||
|
|
||||||
clean-app:
|
clean-app:
|
||||||
@echo "Nettoyage de l'app sur $(REMOTE):$(DEST)/app"
|
@echo "Nettoyage de l'app sur $(REMOTE):$(DEST)/$(SERVER)"
|
||||||
ssh $(REMOTE) "cd $(DEST)/app && docker compose down --volumes --remove-orphans || true"
|
ssh $(REMOTE) "cd $(DEST)/$(SERVER) && docker compose down --volumes --remove-orphans || true"
|
||||||
ssh $(REMOTE) "rm -rf $(DEST)/app"
|
ssh $(REMOTE) "rm -rf $(DEST)/$(SERVER)"
|
||||||
@echo "Nettoyage de l'application terminé"
|
@echo "Nettoyage de l'application terminé"
|
||||||
|
|
||||||
clean-gw:
|
clean-gw:
|
||||||
@echo "Nettoyage de la gateway sur $(REMOTE):$(DEST)/lora-gateway"
|
@echo "Nettoyage de la gateway sur $(REMOTE):$(DEST)/$(GATEWAY)"
|
||||||
ssh $(REMOTE) "cd $(DEST)/lora-gateway && docker compose down --volumes --remove-orphans || true"
|
ssh $(REMOTE) "cd $(DEST)/$(GATEWAY) && docker compose down --volumes --remove-orphans || true"
|
||||||
ssh $(REMOTE) "rm -rf $(DEST)/lora-gateway"
|
ssh $(REMOTE) "rm -rf $(DEST)/$(GATEWAY)"
|
||||||
@echo "Nettoyage de la gateway terminé"
|
@echo "Nettoyage de la gateway terminé"
|
||||||
|
|
||||||
clean-all: clean-app clean-gw
|
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
|
WORKDIR /app
|
||||||
COPY requirements.txt .
|
COPY requirements.txt .
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
COPY ./src/. /app/
|
COPY . .
|
||||||
CMD ["python", "main.py"]
|
CMD ["python", "consumer.py"]
|
||||||
|
|
@ -8,8 +8,8 @@ from paho.mqtt.enums import CallbackAPIVersion
|
||||||
from paho.mqtt.properties import Properties
|
from paho.mqtt.properties import Properties
|
||||||
from paho.mqtt.reasoncodes import ReasonCode
|
from paho.mqtt.reasoncodes import ReasonCode
|
||||||
|
|
||||||
from exceptions import MessageBrokerError, InfrastructureError
|
from domain.exceptions import MessageBrokerError, InfrastructureError
|
||||||
from entities import UplinkEvent
|
from domain.entities import UplinkEvent
|
||||||
from ports import MessageBroker
|
from ports import MessageBroker
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
@ -4,7 +4,7 @@ import time
|
||||||
import psycopg2
|
import psycopg2
|
||||||
from psycopg2.extensions import connection
|
from psycopg2.extensions import connection
|
||||||
from ports import DeviceRepository, ReadingRepository
|
from ports import DeviceRepository, ReadingRepository
|
||||||
from exceptions import DatabaseConnectionError, DatabaseError
|
from domain.exceptions import DatabaseConnectionError, DatabaseError
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from typing import Callable
|
from typing import Callable
|
||||||
|
|
||||||
from entities import UplinkEvent
|
from domain.entities import UplinkEvent
|
||||||
|
|
||||||
class MessageBroker(ABC):
|
class MessageBroker(ABC):
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
0
server/app/services/__init__.py
Normal file
0
server/app/services/__init__.py
Normal file
|
|
@ -1,6 +1,6 @@
|
||||||
import logging
|
import logging
|
||||||
from ports import DeviceRepository, ReadingRepository
|
from ports import DeviceRepository, ReadingRepository
|
||||||
from entities import UplinkEvent
|
from domain.entities import UplinkEvent
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
services:
|
services:
|
||||||
consumer:
|
consumer:
|
||||||
build: ./consumer
|
build: ./app
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- lora-gateway_mqtt
|
- lora-gateway_mqtt
|
||||||
|
|
@ -10,7 +10,7 @@ services:
|
||||||
image: postgres:18-alpine
|
image: postgres:18-alpine
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- ./consumer/initdb:/docker-entrypoint-initdb.d:ro
|
- ./initdb:/docker-entrypoint-initdb.d:ro
|
||||||
- db:/var/lib/postgresql
|
- db:/var/lib/postgresql
|
||||||
networks:
|
networks:
|
||||||
- database
|
- database
|
||||||
Loading…
Add table
Add a link
Reference in a new issue