From 77d57fb35452ada7105f82e68b3b8bebcc205a51 Mon Sep 17 00:00:00 2001 From: Thibault Pouch Date: Thu, 12 Mar 2026 10:59:01 +0100 Subject: [PATCH 1/2] feat: update Dockerfiles to use Node 25-alpine and enhance nginx configuration for API proxying --- docker-compose.yml | 15 ++++++++------- nest-front/Dockerfile | 2 +- nest-intra/Dockerfile | 2 +- nest-intra/nginx.conf | 7 ++++++- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index bd32c5b..154f957 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,15 +19,10 @@ services: restart: unless-stopped ports: - "3000:3000" + env_file: + - ./nest-backend/.env environment: DATABASE_URL: postgresql://nest_user:nest_password@db:5432/nest_db - JWT_SECRET: ${JWT_SECRET:-change_me_in_production} - PORT: 3000 - ADMIN_USERNAME: ${ADMIN_USERNAME:-admin} - ADMIN_EMAIL: ${ADMIN_EMAIL:-admin@crowmate.fr} - ADMIN_PASSWORD: ${ADMIN_PASSWORD:-change_me} - FRONT_ORIGIN: ${FRONT_ORIGIN:-http://localhost:5173} - INTRA_ORIGIN: ${INTRA_ORIGIN:-http://localhost:5174} depends_on: db: condition: service_healthy @@ -39,12 +34,18 @@ services: restart: unless-stopped ports: - "5173:5173" + environment: + API_URL: http://api:3000 + depends_on: + - api intra: build: ./nest-intra restart: unless-stopped ports: - "5174:5174" + depends_on: + - api volumes: db_data: diff --git a/nest-front/Dockerfile b/nest-front/Dockerfile index 58348d6..e8b0c94 100644 --- a/nest-front/Dockerfile +++ b/nest-front/Dockerfile @@ -1,4 +1,4 @@ -FROM node:22-alpine AS build +FROM node:25-alpine AS build WORKDIR /app diff --git a/nest-intra/Dockerfile b/nest-intra/Dockerfile index e94f5ce..a3d24af 100644 --- a/nest-intra/Dockerfile +++ b/nest-intra/Dockerfile @@ -1,4 +1,4 @@ -FROM node:22-alpine AS build +FROM node:25-alpine AS build WORKDIR /app diff --git a/nest-intra/nginx.conf b/nest-intra/nginx.conf index 6385a07..bf22cad 100644 --- a/nest-intra/nginx.conf +++ b/nest-intra/nginx.conf @@ -3,10 +3,15 @@ server { root /usr/share/nginx/html; index index.html; + # Docker DNS; resolve API service name at request time. + resolver 127.0.0.11 ipv6=off valid=10s; + set $api_upstream http://api:3000; + location /api/ { - proxy_pass http://api:3000/api/; + proxy_pass $api_upstream/api/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location / { From 8e877c865106bf656c41e111c1ec702e3de888c7 Mon Sep 17 00:00:00 2001 From: Thibault Pouch Date: Thu, 12 Mar 2026 10:59:07 +0100 Subject: [PATCH 2/2] feat: add functionality toggle for Intranet Bugs and Moderation features with enable/disable buttons --- .../src/pages/intranet/IntranetBugs.tsx | 52 ++++++++++++++- .../src/pages/intranet/IntranetDashboard.tsx | 2 + .../src/pages/intranet/IntranetModeration.tsx | 65 +++++++++++++++++-- 3 files changed, 110 insertions(+), 9 deletions(-) diff --git a/nest-intra/src/pages/intranet/IntranetBugs.tsx b/nest-intra/src/pages/intranet/IntranetBugs.tsx index 12721a5..8894848 100644 --- a/nest-intra/src/pages/intranet/IntranetBugs.tsx +++ b/nest-intra/src/pages/intranet/IntranetBugs.tsx @@ -26,6 +26,7 @@ export default function IntranetBugs() { const [severityFilter, setSeverityFilter] = useState('all'); const [assignedFilter, setAssignedFilter] = useState('all'); const [noteText, setNoteText] = useState(''); + const [isEnabled, setIsEnabled] = useState(true); const openCount = bugs.filter((b) => b.status === 'open').length; const criticalCount = bugs.filter((b) => b.severity === 'critical').length; @@ -72,13 +73,60 @@ export default function IntranetBugs() { setNoteText(''); }, [noteText, user]); + if (!isEnabled) { + return ( +
+
+ INTRANET / BUG REPORTS +
+

FUNCTIONALITY DISABLED

+

Bug Reports feature is currently disabled

+ +
+ ); + } + return (
{/* Left panel */}
-
- INTRANET / BUG REPORTS +
+
+ INTRANET / BUG REPORTS +
+

BUG DASHBOARD

diff --git a/nest-intra/src/pages/intranet/IntranetDashboard.tsx b/nest-intra/src/pages/intranet/IntranetDashboard.tsx index 7110122..4e1053b 100644 --- a/nest-intra/src/pages/intranet/IntranetDashboard.tsx +++ b/nest-intra/src/pages/intranet/IntranetDashboard.tsx @@ -125,6 +125,8 @@ export default function IntranetDashboard() { + +
diff --git a/nest-intra/src/pages/intranet/IntranetModeration.tsx b/nest-intra/src/pages/intranet/IntranetModeration.tsx index 525b261..f51c3b2 100644 --- a/nest-intra/src/pages/intranet/IntranetModeration.tsx +++ b/nest-intra/src/pages/intranet/IntranetModeration.tsx @@ -8,6 +8,7 @@ export default function IntranetModeration() { const [selectedThreadId, setSelectedThreadId] = useState(null); const [search, setSearch] = useState(''); const [activeTab, setActiveTab] = useState<'threads' | 'replies'>('threads'); + const [isEnabled, setIsEnabled] = useState(true); const filteredThreads = useMemo(() => { if (!search.trim()) return threads; @@ -44,14 +45,62 @@ export default function IntranetModeration() { return (
-
-
- INTRANET / MODERATION + {!isEnabled ? ( +
+
+ INTRANET / MODERATION +
+

FUNCTIONALITY DISABLED

+

Forum Moderation feature is currently disabled

+ +
+ ) : ( +
+
+
+
+
+ INTRANET / MODERATION +
+

FORUM MODERATION

+

+ {threads.length} threads — {replies.length} replies +

+
+
-

FORUM MODERATION

-

- {threads.length} threads — {replies.length} replies -

{/* Tabs */} @@ -226,5 +275,7 @@ export default function IntranetModeration() {
)}
+ )} +
); }