rename core-server
This commit is contained in:
@@ -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"]
|
||||||
@@ -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);
|
||||||
@@ -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"
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
@@ -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
|
||||||
@@ -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));
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
5
pnpm-lock.yaml
generated
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user