diff --git a/Dockerfile b/Dockerfile
index 193b26c..f813495 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"]
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/README.md b/README.md
index 3e1d4c4..ff458a0 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,11 @@
# BlocNote
-Bloc-notes Markdown en ligne, rapide et sans inscription.
+Bloc-notes Markdown en ligne, rapide, sans inscription et pensé pour l'auto-hébergement.
-## Site public
+## Site
- Production: https://blocnote.arthurp.fr
+- Contact: https://contact.arthurp.fr ou contact@arthurp.fr
## Stack technique
@@ -13,24 +14,24 @@ Bloc-notes Markdown en ligne, rapide et sans inscription.
- TypeScript
- ESLint
-## Fonctionnalites
+## Fonctionnalités
-- Edition Markdown avec apercu en temps reel
+- Édition Markdown avec aperçu en temps réel
- Sauvegarde automatique des notes
- Recherche et tri des notes
-- Notes epinglees
+- Notes épinglées
- Export d'une note
- Mode clair / sombre
- Raccourcis clavier
## Lancement local
-Pre-requis:
+Prérequis:
- Node.js 22+
- npm
-Installation et demarrage:
+Installation et démarrage:
```bash
npm ci
@@ -39,25 +40,18 @@ npm run dev
Application disponible sur http://localhost:3000
-## Scripts
+## Docker
+
+Deux services sont fournis via [docker-compose.yml](docker-compose.yml):
+
+- blocnote-dev pour le développement sur le port 3000
+- blocnote-prod pour l'exécution de production sur le port 3016
```bash
-npm run dev # mode developpement
-npm run lint # verification lint
-npm run build # build production
-npm run start # lancer le build production
+docker compose --profile dev up
+docker compose --profile prod up -d
```
## Variables d'environnement
-Le projet peut utiliser:
-
- NEXT_PUBLIC_SITE_URL (exemple: https://blocnote.arthurp.fr)
-
-## Docker
-
-Un environnement Docker est disponible via [docker-compose.yml](docker-compose.yml).
-
-```bash
-docker compose up -d
-```
diff --git a/app/components/SiteFooter.tsx b/app/components/SiteFooter.tsx
new file mode 100644
index 0000000..414afb2
--- /dev/null
+++ b/app/components/SiteFooter.tsx
@@ -0,0 +1,93 @@
+import Link from "next/link";
+
+const navigationLinks = [
+ { href: "/", label: "Accueil" },
+ { href: "/mentions-legales", label: "Mentions légales" },
+ { href: "/confidentialite", label: "Confidentialité" },
+];
+
+const contactLinks = [
+ { href: "https://contact.arthurp.fr", label: "contact.arthurp.fr", external: true },
+ { href: "mailto:contact@arthurp.fr", label: "contact@arthurp.fr", external: true },
+];
+
+export default function SiteFooter() {
+ const year = new Date().getFullYear();
+
+ return (
+
+ );
+}
\ No newline at end of file
diff --git a/app/confidentialite/page.tsx b/app/confidentialite/page.tsx
new file mode 100644
index 0000000..7cb0c11
--- /dev/null
+++ b/app/confidentialite/page.tsx
@@ -0,0 +1,56 @@
+import type { Metadata } from "next";
+import Link from "next/link";
+
+const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || "https://blocnote.arthurp.fr";
+
+export const metadata: Metadata = {
+ title: "Confidentialité",
+ description: "Politique de confidentialité de BlocNote.",
+ alternates: {
+ canonical: `${siteUrl}/confidentialite`,
+ },
+};
+
+export default function ConfidentialitePage() {
+ return (
+
+
+ Vie privée
+
Confidentialité
+
+ BlocNote est conçu pour garder les notes localement dans le navigateur et éviter la collecte de données inutile.
+
+
+
+
+
+
Stockage des notes
+
+ Les notes sont enregistrées dans le navigateur via localStorage. Elles ne sont pas envoyées à un serveur BlocNote pour la synchronisation.
+
+
+
+
+
Données collectées
+
+ L'application n'exige pas de compte utilisateur. Les contenus créés restent sous le contrôle direct de la personne qui utilise le site.
+