diff --git a/Dockerfile b/Dockerfile index 193b26c..124b2b3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,34 +1,26 @@ -# === Étape 1 : Build === -FROM node:20-alpine AS builder - +FROM node:22-alpine AS base WORKDIR /app +ENV NEXT_TELEMETRY_DISABLED=1 -# Copier les fichiers de dépendances pour profiter du cache Docker -COPY package*.json ./ - -# Installer uniquement ce qu'il faut pour le build +FROM base AS deps +COPY package.json package-lock.json ./ RUN npm ci -# Copier tout le code +FROM deps AS dev COPY . . +EXPOSE 3000 +CMD ["npm", "run", "dev", "--", "--hostname", "0.0.0.0", "--port", "3000"] -# Build Next.js pour la production +FROM deps AS builder +COPY . . RUN npm run build -# === Étape 2 : Runner léger === -FROM node:20-alpine AS runner - -WORKDIR /app - -# Copier uniquement ce qui est nécessaire pour la prod -COPY --from=builder /app/package*.json ./ -COPY --from=builder /app/node_modules ./node_modules -COPY --from=builder /app/.next ./.next -COPY --from=builder /app/public ./public - -# Mode production +FROM base AS runner ENV NODE_ENV=production +ENV HOSTNAME=0.0.0.0 +ENV PORT=3000 +COPY --from=builder /app/.next/standalone ./ +COPY --from=builder /app/.next/static ./.next/static +COPY --from=builder /app/public ./public EXPOSE 3000 - -# Lancer le serveur Next.js -CMD ["npm", "start"] \ No newline at end of file +CMD ["node", "server.js"] \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..e73322f --- /dev/null +++ b/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2026 Arthur + +Licence pour tous les projets Arthur + +1. Définition +Cette licence définit les droits et obligations concernant l'utilisation, la modification et la redistribution du code fourni par l'auteur. + +2. Autorisation d'utilisation +Vous êtes libre d'utiliser ce code pour vos projets personnels ou commerciaux. L'utilisation doit inclure une mention de l'auteur d’une manière libre (ex: "inspiré de ArthurP"). + +3. Modification +Vous pouvez modifier, adapter ou améliorer le code pour vos besoins. Les modifications doivent être identifiées comme telles et ne doivent pas être présentées comme l'original. + +4. Redistribution +- Le code original **ne peut pas être redistribué tel quel**. +- Les versions modifiées peuvent être partagées, sous réserve de mentionner l'auteur original. + +5. Usage commercial +L’usage commercial des versions modifiées est autorisé. Vous pouvez générer des revenus avec votre version modifiée. + +6. Attribution +L'auteur original doit être cité d’une manière libre, mais visible, sur tout projet utilisant ce code ou ses dérivés. + +7. Responsabilité +Le code est fourni "tel quel", sans garantie d’aucune sorte. L’auteur décline toute responsabilité pour tout dommage direct ou indirect résultant de l’utilisation du code. \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index a47d63b..dc071f9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,31 @@ services: - web: - build: . + hub-dev: + profiles: ["dev"] + build: + context: . + target: dev + container_name: hub-dev ports: - "3000:3000" volumes: - - ./:/app + - .:/app - /app/node_modules + - /app/.next environment: - - NODE_ENV=development - command: npm run dev \ No newline at end of file + NEXT_TELEMETRY_DISABLED: "1" + NODE_ENV: development + + hub-prod: + profiles: ["prod"] + build: + context: . + target: runner + container_name: hub-prod + restart: unless-stopped + ports: + - "3000:3000" + env_file: + - .env + environment: + NEXT_TELEMETRY_DISABLED: "1" + NODE_ENV: production \ No newline at end of file diff --git a/src/app/layout.tsx b/src/app/layout.tsx index cbb92e8..f8cf741 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -65,13 +65,41 @@ export default function RootLayout({