rename core-server

This commit is contained in:
PxlLoewe
2025-06-29 01:41:01 -07:00
parent 4d55e2aa97
commit c0e488b3fd
21 changed files with 39 additions and 59 deletions

View File

@@ -16,7 +16,7 @@ COPY . .
RUN ls -lh RUN ls -lh
RUN turbo prune discord-server --docker RUN turbo prune core-server --docker
FROM base AS installer FROM base AS installer
RUN apk update RUN apk update
@@ -47,4 +47,4 @@ COPY --from=installer --chown=nextjs:nodejs /usr/app/ ./
# Expose the application port # Expose the application port
EXPOSE 3003 EXPOSE 3003
CMD ["pnpm", "--dir", "apps/discord-server", "run", "start"] CMD ["pnpm", "--dir", "apps/core-server", "run", "start"]

View File

@@ -4,18 +4,6 @@ import promClient from "prom-client";
export const promRegister = new promClient.Registry(); export const promRegister = new promClient.Registry();
promClient.collectDefaultMetrics({ register: promRegister }); promClient.collectDefaultMetrics({ register: promRegister });
export const socketConnections = new promClient.Gauge({
name: "socket_connections",
help: "Number of active socket connections",
registers: [promRegister],
});
export const aircraftPatches = new promClient.Counter({
name: "aircraft_patches",
help: "Counts patch requests for aircrafts",
registers: [promRegister],
});
export const connectedPilots = new promClient.Gauge({ export const connectedPilots = new promClient.Gauge({
name: "connected_pilots", name: "connected_pilots",
help: "Counts connected pilots", help: "Counts connected pilots",
@@ -44,7 +32,5 @@ export const connectedDispatcher = new promClient.Gauge({
}, },
}); });
promRegister.registerMetric(socketConnections);
promRegister.registerMetric(aircraftPatches);
promRegister.registerMetric(connectedPilots); promRegister.registerMetric(connectedPilots);
promRegister.registerMetric(connectedDispatcher); promRegister.registerMetric(connectedDispatcher);

View File

@@ -1,5 +1,5 @@
{ {
"name": "discord-server", "name": "core-server",
"exports": { "exports": {
"helpers": "./helper" "helpers": "./helper"
}, },
@@ -28,6 +28,7 @@
"express": "^5.1.0", "express": "^5.1.0",
"node-cron": "^4.1.0", "node-cron": "^4.1.0",
"nodemon": "^3.1.10", "nodemon": "^3.1.10",
"prom-client": "^15.1.3",
"react": "^19.1.0", "react": "^19.1.0",
"tsx": "^4.19.4" "tsx": "^4.19.4"
} }

View File

@@ -2,11 +2,13 @@ import { Router } from "express";
import memberRouter from "./member"; import memberRouter from "./member";
import helperRouter from "./helper"; import helperRouter from "./helper";
import reportRouter from "./report"; import reportRouter from "./report";
import { metricsRouter } from "routes/metrics";
const router: Router = Router(); const router: Router = Router();
router.use("/member", memberRouter); router.use("/member", memberRouter);
router.use("/helper", helperRouter); router.use("/helper", helperRouter);
router.use("/report", reportRouter); router.use("/report", reportRouter);
router.use("/metrics", metricsRouter);
export default router; export default router;

View File

@@ -1,7 +1,7 @@
DISPATCH_SERVER_PORT=3002 DISPATCH_SERVER_PORT=3002
REDIS_HOST=localhost REDIS_HOST=localhost
REDIS_PORT=6379 REDIS_PORT=6379
DISCORD_SERVER_URL=http://discord-server DISCORD_SERVER_URL=http://core-server
DISPATCH_APP_TOKEN=dispatch DISPATCH_APP_TOKEN=dispatch
LIVEKIT_API_KEY=APIAnsGdtdYp2Ho LIVEKIT_API_KEY=APIAnsGdtdYp2Ho
LIVEKIT_API_SECRET=tdPjVsYUx8ddC7K9NvdmVAeLRF9GeADD6Fedm1x63fWC LIVEKIT_API_SECRET=tdPjVsYUx8ddC7K9NvdmVAeLRF9GeADD6Fedm1x63fWC

View File

@@ -14,7 +14,6 @@ import cookieParser from "cookie-parser";
import cors from "cors"; import cors from "cors";
import { authMiddleware } from "modules/expressMiddleware"; import { authMiddleware } from "modules/expressMiddleware";
import "modules/chron"; import "modules/chron";
import { socketConnections } from "modules/prometheus";
const app = express(); const app = express();
const server = createServer(app); const server = createServer(app);
@@ -26,10 +25,6 @@ export const io = new Server(server, {
io.use(jwtMiddleware); io.use(jwtMiddleware);
io.on("connection", (socket) => { io.on("connection", (socket) => {
socketConnections.inc();
socket.on("disconnect", () => {
socketConnections.dec();
});
socket.on("connect-dispatch", handleConnectDispatch(socket, io)); socket.on("connect-dispatch", handleConnectDispatch(socket, io));
socket.on("connect-pilot", handleConnectPilot(socket, io)); socket.on("connect-pilot", handleConnectPilot(socket, io));
socket.on("connect-desktop", handleConnectDesktop(socket, io)); socket.on("connect-desktop", handleConnectDesktop(socket, io));

View File

@@ -4,7 +4,6 @@ import missionRouter from "./mission";
import statusRouter from "./status"; import statusRouter from "./status";
import aircraftsRouter from "./aircraft"; import aircraftsRouter from "./aircraft";
import reportRouter from "./report"; import reportRouter from "./report";
import { metricsRouter } from "routes/metrics";
const router: Router = Router(); const router: Router = Router();
@@ -13,6 +12,5 @@ router.use("/mission", missionRouter);
router.use("/status", statusRouter); router.use("/status", statusRouter);
router.use("/aircrafts", aircraftsRouter); router.use("/aircrafts", aircraftsRouter);
router.use("/report", reportRouter); router.use("/report", reportRouter);
router.use("/metrics", metricsRouter);
export default router; export default router;

View File

@@ -3,7 +3,7 @@ networks:
driver: bridge driver: bridge
postgres_network: postgres_network:
driver: bridge driver: bridge
discord_network: core_network:
driver: bridge driver: bridge
redis_network: redis_network:
driver: bridge driver: bridge
@@ -37,7 +37,7 @@ services:
env_file: env_file:
- .env.prod - .env.prod
networks: networks:
- discord_network - core_network
- postgres_network - postgres_network
- traefik - traefik
@@ -56,7 +56,7 @@ services:
env_file: env_file:
- .env.prod - .env.prod
networks: networks:
- discord_network - core_network
- postgres_network - postgres_network
- traefik - traefik
depends_on: depends_on:
@@ -109,7 +109,7 @@ services:
- "traefik.http.services.dispatch-server.loadBalancer.sticky.cookie.httpOnly=true" - "traefik.http.services.dispatch-server.loadBalancer.sticky.cookie.httpOnly=true"
- "traefik.http.services.dispatch-server.loadbalancer.server.port=3000" - "traefik.http.services.dispatch-server.loadbalancer.server.port=3000"
networks: networks:
- discord_network - core_network
- postgres_network - postgres_network
- redis_network - redis_network
- traefik - traefik
@@ -118,7 +118,20 @@ services:
condition: service_healthy condition: service_healthy
redis: redis:
condition: service_healthy condition: service_healthy
cadvisor:
image: gcr.io/cadvisor/cadvisor:latest
container_name: cadvisor
ports:
- "8080:8080"
volumes:
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
networks:
- traefik
- core_network
restart: unless-stopped
prometheus: prometheus:
image: prom/prometheus:latest image: prom/prometheus:latest
container_name: prometheus container_name: prometheus
@@ -131,11 +144,12 @@ services:
- "--config.file=/etc/prometheus/prometheus.yml" - "--config.file=/etc/prometheus/prometheus.yml"
networks: networks:
- traefik - traefik
- core_network
discord-server: core-server:
build: build:
context: . context: .
dockerfile: ./apps/discord-server/Dockerfile dockerfile: ./apps/core-server/Dockerfile
env_file: env_file:
- .env.prod - .env.prod
deploy: deploy:
@@ -144,7 +158,7 @@ services:
- "traefik.enable=false" - "traefik.enable=false"
networks: networks:
- postgres_network - postgres_network
- discord_network - core_network
docs: docs:
build: build:

View File

@@ -2,28 +2,9 @@ global:
scrape_interval: 40s scrape_interval: 40s
scrape_configs: scrape_configs:
- job_name: "docker-containers" - job_name: core-server
metrics_path: /metrics static_configs:
docker_sd_configs: - targets: ["core-server"]
- host: unix:///var/run/docker.sock - job_name: cadvisor
role: container static_configs:
relabel_configs: - targets: ["cadvisor:8080"]
# Nur Container mit Label prometheus.scrape=true
- source_labels: [__meta_docker_container_label_prometheus_scrape]
regex: "true"
action: keep
# Nur Container mit geöffnetem Port 3000 berücksichtigen
- source_labels: [__meta_docker_container_port_private]
regex: "3000"
action: keep
# Zieladresse auf Port 3000 setzen
- source_labels: [__address__]
regex: "(.*):\\d+"
target_label: __address__
replacement: "${1}:3000"
# Container-Name als Job-Label
- source_labels: [__meta_docker_container_name]
target_label: container

5
pnpm-lock.yaml generated
View File

@@ -18,7 +18,7 @@ importers:
specifier: ^5.8.3 specifier: ^5.8.3
version: 5.8.3 version: 5.8.3
apps/discord-server: apps/core-server:
dependencies: dependencies:
axios: axios:
specifier: ^1.9.0 specifier: ^1.9.0
@@ -44,6 +44,9 @@ importers:
nodemon: nodemon:
specifier: ^3.1.10 specifier: ^3.1.10
version: 3.1.10 version: 3.1.10
prom-client:
specifier: ^15.1.3
version: 15.1.3
react: react:
specifier: ^19.1.0 specifier: ^19.1.0
version: 19.1.0 version: 19.1.0