mirror of
https://github.com/arthur-pbty/contact.git
synced 2026-06-03 15:07:21 +02:00
master
Co-authored-by: Copilot <copilot@github.com>
Contact ArthurP
Page de contact centralisee pour les projets ArthurP avec stockage PostgreSQL et espace admin.
Site officiel: https://contact.arthurp.fr
Stack
- Next.js 16 (App Router)
- React 19
- Tailwind CSS 4
- API route
app/api/contact/route.ts - Validation partagee avec Zod
- PostgreSQL (stockage des messages)
- Notifications via Nodemailer et Discord webhook (optionnel)
- Dashboard admin avec authentification par cookie de session
Sites supportes
- arthurp.fr
- links.arthurp.fr
- qcu.arthurp.fr
- qrcode.arthurp.fr
- lazybot.arthurp.fr
- learn.arthurp.fr
- sudoku.arthurp.fr
- reducelink.arthurp.fr
- clock.arthurp.fr
- form.arthurp.fr
- pomodoro.arthurp.fr
- visio.arthurp.fr
- doudou.arthurp.fr
- portfolio.arthurp.fr
- moon.arthurp.fr
- calculatrice.arthurp.fr
- chrono.arthurp.fr
- blocnote.arthurp.fr
- imprimersudoku.arthurp.fr
Variables d'environnement
Copier .env.example vers .env puis completer:
cp .env.example .env
Variables principales:
CONTACT_TO_EMAILadresse recevant les messagesCONTACT_FROM_EMAILexpediteur techniqueSMTP_HOST,SMTP_PORT,SMTP_USER,SMTP_PASSpour l'envoi emailDISCORD_WEBHOOK_URL(optionnel)DATABASE_URLURL PostgreSQLADMIN_USERNAME,ADMIN_PASSWORDcredentials adminADMIN_SESSION_SECRETsecret de signature de session admin
Lancement en local
npm install
npm run dev
Accessible sur http://localhost:3000.
Dashboard admin: http://localhost:3000/admin
Exemples de liens:
http://localhost:3000?project=lazybothttp://localhost:3000?project=qrcode
Docker
Le projet fournit un Dockerfile multi-stage + Compose avec profils dev et prod.
Developpement (hot reload + PostgreSQL)
docker compose --profile dev up --build
Production (app + PostgreSQL)
docker compose --profile prod up --build -d
Le build production utilise output: "standalone" pour une image plus propre et legere.
Pages legales
/mentions-legales/politique-confidentialite/cgu/cookies
Verification qualite
npm run lint
npm run build
Securite deja en place
- Validation client + serveur
- Honeypot anti-spam
- Limitation de requetes basique par IP
- Secrets conserves via variables d'environnement
- Session admin en cookie HttpOnly
Description
Languages
TypeScript
96.7%
CSS
1.7%
Dockerfile
0.8%
JavaScript
0.8%