Add health check endpoint and update Docker Compose configuration
- Add HealthCheckView to authapp - Update authapp/urls.py to include health check - Update docker-compose.yml for backend services - Add frontend service to docker-compose.yml - Add external config for frontend
This commit is contained in:
@@ -1,9 +1,10 @@
|
|||||||
from django.urls import path
|
from django.urls import path
|
||||||
from .views import CustomAuthToken, RegenerateTokenView, VerifyTokenView, get_csrf_token
|
from .views import CustomAuthToken, RegenerateTokenView, VerifyTokenView, get_csrf_token, HealthCheckView
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('login/', CustomAuthToken.as_view(), name='login'),
|
path('login/', CustomAuthToken.as_view(), name='login'),
|
||||||
path('regenerate-token/', RegenerateTokenView.as_view(), name='regenerate-token'),
|
path('regenerate-token/', RegenerateTokenView.as_view(), name='regenerate-token'),
|
||||||
path('verify-token/', VerifyTokenView.as_view(), name='verify-token'),
|
path('verify-token/', VerifyTokenView.as_view(), name='verify-token'),
|
||||||
path('get-csrf-token/', get_csrf_token, name='get-csrf-token'),
|
path('get-csrf-token/', get_csrf_token, name='get-csrf-token'),
|
||||||
|
path('health/', HealthCheckView.as_view(), name='health-check'),
|
||||||
]
|
]
|
||||||
|
@@ -4,7 +4,7 @@ from rest_framework.authtoken.views import ObtainAuthToken
|
|||||||
from rest_framework.authtoken.models import Token
|
from rest_framework.authtoken.models import Token
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from .serializers import UserSerializer
|
from .serializers import UserSerializer
|
||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated, AllowAny
|
||||||
from rest_framework import status
|
from rest_framework import status
|
||||||
|
|
||||||
from django.http import JsonResponse
|
from django.http import JsonResponse
|
||||||
@@ -42,3 +42,7 @@ class VerifyTokenView(APIView):
|
|||||||
}, status=status.HTTP_200_OK)
|
}, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
|
||||||
|
class HealthCheckView(APIView):
|
||||||
|
permission_classes = [AllowAny]
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
return Response({"status": "healthy"})
|
@@ -1,46 +1,69 @@
|
|||||||
version: '3.8'
|
version: '3.8'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
frontend:
|
|
||||||
image: registry.resk-u.ch/clerc/clerc-frontend:latest
|
|
||||||
networks:
|
|
||||||
- main-swarm-network
|
|
||||||
ports:
|
|
||||||
- "3000:3000"
|
|
||||||
volumes:
|
|
||||||
- /home/prod/reskreen-frontend/.env:/app/frontend-app/.env
|
|
||||||
labels:
|
|
||||||
- shepherd.enable=true
|
|
||||||
- node.labels.reskreen-ready=true
|
|
||||||
|
|
||||||
backend:
|
backend:
|
||||||
image: registry.resk-u.ch/clerc/reskreen:latest
|
image: registry.resk-u.ch/clerc/reskreen:latest
|
||||||
networks:
|
|
||||||
- main-swarm-network
|
|
||||||
ports:
|
|
||||||
- "8081:8080"
|
|
||||||
volumes:
|
|
||||||
- reskreen-data:/app/config
|
|
||||||
labels:
|
labels:
|
||||||
- shepherd.enable=true
|
node.labels.reskreen-ready: 'true'
|
||||||
- node.labels.reskreen-ready=true
|
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- reskreen-data:/app/config
|
||||||
|
networks:
|
||||||
|
- main-swarm-network
|
||||||
|
logging:
|
||||||
|
driver: json-file
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- node.labels.reskreen-ready==true
|
||||||
backend-cron:
|
backend-cron:
|
||||||
image: registry.resk-u.ch/clerc/reskreen:latest
|
image: registry.resk-u.ch/clerc/reskreen:latest
|
||||||
command: /app/start_crond.sh
|
command:
|
||||||
volumes:
|
- /app/start_crond.sh
|
||||||
- reskreen-data:/app/config
|
|
||||||
labels:
|
labels:
|
||||||
- shepherd.enable=true
|
node.labels.reskreen-ready: 'true'
|
||||||
- node.labels.reskreen-ready=true
|
volumes:
|
||||||
|
- reskreen-data:/app/config
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
logging:
|
||||||
|
driver: json-file
|
||||||
|
frontend:
|
||||||
|
image: registry.resk-u.ch/clerc/clerc-frontend:latest
|
||||||
|
labels:
|
||||||
|
node.labels.reskreen-ready: 'true'
|
||||||
|
|
||||||
|
networks:
|
||||||
|
- main-swarm-network
|
||||||
|
configs:
|
||||||
|
-
|
||||||
|
source: env-reskreen-frontend
|
||||||
|
target: /app/frontend-app/.env
|
||||||
|
logging:
|
||||||
|
driver: json-file
|
||||||
|
deploy:
|
||||||
|
update_config:
|
||||||
|
delay: 10s
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
max_attempts: 3
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- node.labels.reskreen-ready==true
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
driver: overlay
|
||||||
|
main-swarm-network:
|
||||||
|
external: true
|
||||||
volumes:
|
volumes:
|
||||||
reskreen-data:
|
reskreen-data:
|
||||||
driver: local
|
driver: local
|
||||||
driver_opts:
|
driver_opts:
|
||||||
type: none
|
|
||||||
device: /home/prod/Reskreen
|
device: /home/prod/Reskreen
|
||||||
o: bind
|
o: bind
|
||||||
networks:
|
type: none
|
||||||
main-swarm-network:
|
configs:
|
||||||
external: true
|
env-reskreen-frontend:
|
||||||
|
external: true
|
||||||
|
Reference in New Issue
Block a user