docker network

This commit is contained in:
PxlLoewe
2025-06-26 22:19:27 -07:00
parent 4068fdb807
commit dee7f4702d
7 changed files with 48 additions and 54 deletions

View File

@@ -1,6 +1,6 @@
import { prisma } from "@repo/db"; import { prisma } from "@repo/db";
import { eventCompleted } from "@repo/shared-components";
import { Router } from "express"; import { Router } from "express";
import { eventCompleted } from "helper/events";
import { handleParticipantEnrolled, handleParticipantFinished } from "modules/event"; import { handleParticipantEnrolled, handleParticipantFinished } from "modules/event";
import { getMoodleCourseCompletionStatus } from "modules/moodle"; import { getMoodleCourseCompletionStatus } from "modules/moodle";

View File

@@ -2,7 +2,7 @@ import { getServerSession } from "../../api/auth/[...nextauth]/auth";
import { prisma } from "@repo/db"; import { prisma } from "@repo/db";
import { EventCard } from "../events/_components/item"; import { EventCard } from "../events/_components/item";
import { RocketIcon } from "lucide-react"; import { RocketIcon } from "lucide-react";
import { eventCompleted } from "../../../helper/events"; import { eventCompleted } from "@repo/shared-components";
const page = async () => { const page = async () => {
const session = await getServerSession(); const session = await getServerSession();

View File

@@ -11,7 +11,8 @@ import { zodResolver } from "@hookform/resolvers/zod";
import { Select } from "../../../_components/ui/Select"; import { Select } from "../../../_components/ui/Select";
import toast from "react-hot-toast"; import toast from "react-hot-toast";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
import { eventCompleted, handleParticipantEnrolled } from "../../../../helper/events"; import { handleParticipantEnrolled } from "../../../../helper/events";
import { eventCompleted } from "@repo/shared-components";
interface ModalBtnProps { interface ModalBtnProps {
title: string; title: string;

View File

@@ -1,6 +1,5 @@
import { Event, EventAppointment, Participant, Prisma } from "@repo/db"; import { Event, EventAppointment, Participant, Prisma } from "@repo/db";
import axios from "axios"; import axios from "axios";
import { da } from "date-fns/locale";
export const getEvents = async (filter: Prisma.EventWhereInput) => { export const getEvents = async (filter: Prisma.EventWhereInput) => {
const { data } = await axios.get< const { data } = await axios.get<
@@ -19,13 +18,6 @@ export const getEvents = async (filter: Prisma.EventWhereInput) => {
return data; return data;
}; };
export const eventCompleted = (event: Event, participant?: Participant) => {
if (!participant) return false;
if (event.finisherMoodleCourseId && !participant.finisherMoodleCurseCompleted) return false;
if (event.hasPresenceEvents && !participant.attended) return false;
return true;
};
export const handleParticipantFinished = async (participantId: string) => export const handleParticipantFinished = async (participantId: string) =>
axios.post(`${process.env.NEXT_PUBLIC_HUB_SERVER_URL}/event/handle-participant-finished`, { axios.post(`${process.env.NEXT_PUBLIC_HUB_SERVER_URL}/event/handle-participant-finished`, {
participantId, participantId,

View File

@@ -1,30 +1,30 @@
services: services:
traefik: #traefik:
image: traefik:v3.4 # image: traefik:v3.4
command: # command:
- "--api.dashboard=true" # Dashboard aktivieren (nicht für Produktion) # - "--api.dashboard=true" # Dashboard aktivieren (nicht für Produktion)
- "--api.insecure=true" # Unsicheres Dashboard (nur für Entwicklung) # - "--api.insecure=true" # Unsicheres Dashboard (nur für Entwicklung)
- "--providers.docker=true" # - "--providers.docker=true"
- "--providers.docker.exposedbydefault=false" # - "--providers.docker.exposedbydefault=false"
- "--providers.docker.useBindPortIP=true" # - "--providers.docker.useBindPortIP=true"
- "--entrypoints.web.address=:80" # - "--entrypoints.web.address=:80"
- --entrypoints.web.http.redirections.entryPoint.to=websecure # - --entrypoints.web.http.redirections.entryPoint.to=websecure
- --entrypoints.web.http.redirections.entryPoint.scheme=https # - --entrypoints.web.http.redirections.entryPoint.scheme=https
- --entrypoints.web.http.redirections.entrypoint.permanent=true # - --entrypoints.web.http.redirections.entrypoint.permanent=true
- "--entrypoints.websecure.address=:443" # - "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.le.acme.httpchallenge=true" # - "--certificatesresolvers.le.acme.httpchallenge=true"
- "--certificatesresolvers.le.acme.httpchallenge.entrypoint=web" # - "--certificatesresolvers.le.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.le.acme.email=johannesambre@gmail.com" # - "--certificatesresolvers.le.acme.email=johannesambre@gmail.com"
- "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json" # - "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
ports: # ports:
- "443:443" # HTTPS-Zugang # - "443:443" # HTTPS-Zugang
- "80:80" # HTTP-Zugang # - "80:80" # HTTP-Zugang
- "8080:8080" # Traefik Dashboard # - "8080:8080" # Traefik Dashboard
volumes: # volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro" # - "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./letsencrypt:/letsencrypt" # - "./letsencrypt:/letsencrypt"
networks: # networks:
- traefik_network # - traefik
portainer: portainer:
image: portainer/portainer-ce:latest image: portainer/portainer-ce:latest
@@ -48,7 +48,7 @@ services:
- "traefik.http.routers.portainer-edge.service=portainer-edge" - "traefik.http.routers.portainer-edge.service=portainer-edge"
- "traefik.http.routers.portainer-edge.tls.certresolver=le" - "traefik.http.routers.portainer-edge.tls.certresolver=le"
networks: networks:
- traefik_network - traefik
# Dispatch Service # Dispatch Service
dispatch: dispatch:
@@ -71,14 +71,14 @@ services:
- "traefik.http.routers.dispatch.entrypoints=websecure" - "traefik.http.routers.dispatch.entrypoints=websecure"
- "traefik.http.routers.dispatch.tls.certresolver=le" - "traefik.http.routers.dispatch.tls.certresolver=le"
- "traefik.http.services.dispatch.loadbalancer.server.port=3000" - "traefik.http.services.dispatch.loadbalancer.server.port=3000"
- "traefik.docker.network=var-monorepo_traefik_network" - "traefik.docker.network=var-monorepo_traefik"
environment: environment:
- NEXTAUTH_URL=${AUTH_DISPATCH_URL} - NEXTAUTH_URL=${AUTH_DISPATCH_URL}
- NEXTAUTH_SECRET=${AUTH_DISPATCH_SECRET} - NEXTAUTH_SECRET=${AUTH_DISPATCH_SECRET}
networks: networks:
- postgres_network - postgres_network
- traefik_network - traefik
dispatch-server: dispatch-server:
build: build:
context: . context: .
@@ -95,12 +95,12 @@ services:
- "traefik.http.services.dispatch-server.loadBalancer.sticky.cookie.name=server_id" - "traefik.http.services.dispatch-server.loadBalancer.sticky.cookie.name=server_id"
- "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"
- "traefik.docker.network=var-monorepo_traefik_network" - "traefik.docker.network=var-monorepo_traefik"
networks: networks:
- discord_network - discord_network
- postgres_network - postgres_network
- redis_network - redis_network
- traefik_network - traefik
depends_on: depends_on:
postgres: postgres:
condition: service_healthy condition: service_healthy
@@ -136,7 +136,7 @@ services:
- "traefik.http.routers.hub.entrypoints=websecure" - "traefik.http.routers.hub.entrypoints=websecure"
- "traefik.http.routers.hub.tls.certresolver=le" - "traefik.http.routers.hub.tls.certresolver=le"
- "traefik.http.services.hub.loadbalancer.server.port=3000" - "traefik.http.services.hub.loadbalancer.server.port=3000"
- "traefik.docker.network=var-monorepo_traefik_network" - "traefik.docker.network=var-monorepo_traefik"
environment: environment:
- NEXTAUTH_URL=${AUTH_HUB_URL} - NEXTAUTH_URL=${AUTH_HUB_URL}
- NEXTAUTH_SECRET=${AUTH_HUB_SECRET} - NEXTAUTH_SECRET=${AUTH_HUB_SECRET}
@@ -145,7 +145,7 @@ services:
networks: networks:
- discord_network - discord_network
- postgres_network - postgres_network
- traefik_network - traefik
hub-server: hub-server:
build: build:
context: . context: .
@@ -157,14 +157,14 @@ services:
- "traefik.http.routers.hub-server.entrypoints=websecure" - "traefik.http.routers.hub-server.entrypoints=websecure"
- "traefik.http.routers.hub-server.tls.certresolver=le" - "traefik.http.routers.hub-server.tls.certresolver=le"
- "traefik.http.services.hub-server.loadbalancer.server.port=3000" - "traefik.http.services.hub-server.loadbalancer.server.port=3000"
- "traefik.docker.network=var-monorepo_traefik_network" - "traefik.docker.network=var-monorepo_traefik"
env_file: env_file:
- .env.prod - .env.prod
networks: networks:
- discord_network - discord_network
- postgres_network - postgres_network
- traefik_network - traefik
depends_on: depends_on:
postgres: postgres:
condition: service_healthy condition: service_healthy
@@ -179,9 +179,9 @@ services:
- "traefik.http.routers.docs.entrypoints=websecure" - "traefik.http.routers.docs.entrypoints=websecure"
- "traefik.http.routers.docs.tls.certresolver=le" - "traefik.http.routers.docs.tls.certresolver=le"
- "traefik.http.services.docs.loadbalancer.server.port=80" - "traefik.http.services.docs.loadbalancer.server.port=80"
- "traefik.docker.network=var-monorepo_traefik_network" - "traefik.docker.network=var-monorepo_traefik"
networks: networks:
- traefik_network - traefik
postgres: postgres:
image: postgres:13 image: postgres:13
container_name: postgres container_name: postgres
@@ -261,23 +261,23 @@ services:
# - "traefik.http.routers.moodle.entrypoints=websecure" # - "traefik.http.routers.moodle.entrypoints=websecure"
# - "traefik.http.routers.moodle.tls.certresolver=le" # - "traefik.http.routers.moodle.tls.certresolver=le"
# - "traefik.http.services.moodle.loadbalancer.server.port=8080" # - "traefik.http.services.moodle.loadbalancer.server.port=8080"
# - "traefik.docker.network=var-monorepo_traefik_network" # - "traefik.docker.network=var-monorepo_traefik"
# networks: # networks:
# - moodle_db_network # - moodle_db_network
# - traefik_network # - traefik
# volumes: # volumes:
# - moodle_data:/bitnami/moodle # - moodle_data:/bitnami/moodle
# - moodle_moodledata:/bitnami/moodledata # - moodle_moodledata:/bitnami/moodledata
# networks: # networks:
# - postgres_network # - postgres_network
# - traefik_network # - traefik
# Für den Zugriff auf den Host # Für den Zugriff auf den Host
livekit: livekit:
image: livekit/livekit-server image: livekit/livekit-server
command: --config /etc/livekit.yaml --node-ip 37.221.196.140 command: --config /etc/livekit.yaml --node-ip 37.221.196.140
restart: unless-stopped restart: unless-stopped
networks: networks:
- traefik_network - traefik
ports: ports:
- "7881:7881" - "7881:7881"
- "7882:7882/udp" - "7882:7882/udp"
@@ -303,8 +303,8 @@ networks:
driver: bridge driver: bridge
redis_network: redis_network:
driver: bridge driver: bridge
traefik_network: traefik:
driver: bridge external: true
moodle_db_network: moodle_db_network:
driver: bridge driver: bridge

View File

@@ -1 +1,2 @@
export * from "./cn"; export * from "./cn";
export * from "./event";