Compare commits
4 commits
3f43b63981
...
35fa903135
Author | SHA1 | Date | |
---|---|---|---|
35fa903135 | |||
a60a49f6cc | |||
f4ccb02a48 | |||
fdc1460481 |
8 changed files with 87 additions and 20 deletions
13
core/Dockerfile.dev
Normal file
13
core/Dockerfile.dev
Normal file
|
@ -0,0 +1,13 @@
|
|||
FROM python:3.11-bookworm
|
||||
LABEL authors="lagertonne"
|
||||
|
||||
ENV PYTHONUNBUFFERED 1
|
||||
RUN mkdir /code
|
||||
WORKDIR /code
|
||||
COPY requirements.dev.txt /code/
|
||||
COPY requirements.prod.txt /code/
|
||||
RUN apt update && apt install -y mariadb-client
|
||||
RUN pip install -r requirements.dev.txt
|
||||
RUN pip install -r requirements.prod.txt
|
||||
RUN pip install mysqlclient
|
||||
COPY . /code/
|
8
core/core/metrics.py
Normal file
8
core/core/metrics.py
Normal file
|
@ -0,0 +1,8 @@
|
|||
from prometheus_client import Counter, Gauge
|
||||
from django_prometheus.middleware import (
|
||||
PrometheusAfterMiddleware,
|
||||
)
|
||||
|
||||
class AppMetricsAfterMiddleware(PrometheusAfterMiddleware):
|
||||
def register_metric(self, metric_cls, name, documentation, labelnames=(), **kwargs):
|
||||
return super().register_metric(metric_cls, name, documentation, labelnames=labelnames, **kwargs)
|
|
@ -50,6 +50,7 @@ INSTALLED_APPS = [
|
|||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'django_extensions',
|
||||
'django_prometheus',
|
||||
'rest_framework',
|
||||
'knox',
|
||||
'drf_yasg',
|
||||
|
@ -85,6 +86,7 @@ SWAGGER_SETTINGS = {
|
|||
}
|
||||
|
||||
MIDDLEWARE = [
|
||||
'django_prometheus.middleware.PrometheusBeforeMiddleware',
|
||||
'django.middleware.security.SecurityMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
|
@ -92,6 +94,7 @@ MIDDLEWARE = [
|
|||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
'django_prometheus.middleware.PrometheusAfterMiddleware',
|
||||
]
|
||||
|
||||
ROOT_URLCONF = 'core.urls'
|
||||
|
@ -210,4 +213,6 @@ CHANNEL_LAYERS = {
|
|||
|
||||
}
|
||||
|
||||
PROMETHEUS_METRIC_NAMESPACE = 'c3lf'
|
||||
|
||||
TEST_RUNNER = 'core.test_runner.FastTestRunner'
|
||||
|
|
|
@ -18,6 +18,7 @@ from django.contrib import admin
|
|||
from django.urls import path, include
|
||||
|
||||
from .version import get_info
|
||||
from .metrics import CustomMetrics
|
||||
|
||||
urlpatterns = [
|
||||
path('djangoadmin/', admin.site.urls),
|
||||
|
@ -32,4 +33,5 @@ urlpatterns = [
|
|||
path('api/2/', include('notify_sessions.api_v2')),
|
||||
path('api/2/', include('authentication.api_v2')),
|
||||
path('api/', get_info),
|
||||
path('', include('django_prometheus.urls')),
|
||||
]
|
||||
|
|
|
@ -41,3 +41,5 @@ urllib3==2.1.0
|
|||
uvicorn==0.24.0.post1
|
||||
watchfiles==0.21.0
|
||||
websockets==12.0
|
||||
django-prometheus==2.3.1
|
||||
prometheus_client==0.21.0
|
||||
|
|
31
docker-compose.dev.yml
Normal file
31
docker-compose.dev.yml
Normal file
|
@ -0,0 +1,31 @@
|
|||
services:
|
||||
core:
|
||||
build:
|
||||
context: ./core
|
||||
dockerfile: Dockerfile.dev
|
||||
command: python manage.py runserver 0.0.0.0:8000
|
||||
#environment:
|
||||
# - DATABASE_URL
|
||||
volumes:
|
||||
- ./core:/code
|
||||
ports:
|
||||
- "8000:8000"
|
||||
|
||||
frontend:
|
||||
build:
|
||||
context: ./web
|
||||
dockerfile: Dockerfile.dev
|
||||
command: npm run serve
|
||||
volumes:
|
||||
- ./web:/web:ro
|
||||
- /web/node_modules
|
||||
ports:
|
||||
- "8080:8080"
|
||||
|
||||
db:
|
||||
image: mariadb
|
||||
environment:
|
||||
MARIADB_RANDOM_ROOT_PASSWORD: true
|
||||
MARIADB_DATABASE: system3
|
||||
MARIADB_USER: system3
|
||||
MARIADB_PASSWORD: system3
|
6
web/Dockerfile.dev
Normal file
6
web/Dockerfile.dev
Normal file
|
@ -0,0 +1,6 @@
|
|||
FROM docker.io/node:22
|
||||
|
||||
RUN mkdir /web
|
||||
WORKDIR /web
|
||||
COPY package.json /web/
|
||||
RUN npm install
|
|
@ -7,25 +7,25 @@ module.exports = {
|
|||
"Access-Control-Allow-Headers": "*",
|
||||
"Access-Control-Allow-Methods": "*"
|
||||
},
|
||||
proxy: {
|
||||
'^/media/2': {
|
||||
target: 'https://staging.c3lf.de/',
|
||||
changeOrigin: true
|
||||
},
|
||||
'^/api/2': {
|
||||
target: 'https://staging.c3lf.de/',
|
||||
changeOrigin: true,
|
||||
},
|
||||
'^/api/1': {
|
||||
target: 'https://staging.c3lf.de/',
|
||||
changeOrigin: true,
|
||||
},
|
||||
'^/ws/2': {
|
||||
target: 'http://127.0.0.1:8082/',
|
||||
//proxy: {
|
||||
// '^/media/2': {
|
||||
// target: 'https://staging.c3lf.de/',
|
||||
// changeOrigin: true
|
||||
// },
|
||||
// '^/api/2': {
|
||||
// target: 'https://staging.c3lf.de/',
|
||||
// changeOrigin: true,
|
||||
ws: true,
|
||||
logLevel: 'debug',
|
||||
},
|
||||
}
|
||||
// },
|
||||
// '^/api/1': {
|
||||
// target: 'https://staging.c3lf.de/',
|
||||
// changeOrigin: true,
|
||||
// },
|
||||
// '^/ws/2': {
|
||||
// target: 'http://127.0.0.1:8082/',
|
||||
// //changeOrigin: true,
|
||||
// ws: true,
|
||||
// logLevel: 'debug',
|
||||
// },
|
||||
//}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue