ODTHAN

ODTHAN S.R.L. — Blog officiel

Blog d’entreprise bilingue (Français / Créole Haïtien) pour ODTHAN S.R.L., avec administration complète, SEO avancé, sécurité de base et design corporate (marine / or / blanc).

Construit avec Node.js + Express + EJS, sans base de données externe requise (les contenus sont stockés dans des fichiers JSON dans /data, facilement remplaçables par MySQL/PostgreSQL plus tard — voir plus bas).


1. Installation locale

git clone <votre-repo>
cd odthan-blog
npm install
cp .env.example .env

Ouvrez .env et remplissez au minimum :

Créez ensuite le compte administrateur (le mot de passe est haché, jamais stocké en clair) :

npm run create-admin

Démarrez le site :

npm start

Le site est disponible sur http://localhost:3000, l’administration sur http://localhost:3000/admin/login.


2. ⚠️ Sécurité avant publication — À FAIRE ABSOLUMENT

Le prompt d’origine contenait un identifiant et un mot de passe administrateur en clair. Ne les utilisez jamais tels quels et ne les committez jamais sur GitHub :

  1. Changez ADMIN_PASSWORD dans .env pour un mot de passe fort et unique avant de lancer npm run create-admin.
  2. Le fichier .env est déjà exclu par .gitignore — vérifiez qu’il n’apparaît jamais dans git status avant de pousser sur GitHub.
  3. Une fois le site en ligne, changez le mot de passe admin depuis Administration → Sécurité.
  4. Sur GitHub, dans les paramètres du dépôt, activez le secret scanning si le dépôt est public.

3. Déploiement sur GitHub

GitHub héberge le code source, mais GitHub Pages ne peut pas exécuter Node.js (c’est un hébergement statique). Pour un site avec espace admin fonctionnel, deux étapes :

Étape A — Pousser le code sur GitHub

git init
git add .
git commit -m "Initial commit — ODTHAN blog"
git branch -M main
git remote add origin https://github.com/<votre-compte>/odthan-blog.git
git push -u origin main

Étape B — Héberger l’application Node.js

Choisissez un hébergeur Node.js et connectez-le à votre dépôt GitHub (déploiement automatique à chaque push) :

Dans tous les cas, définissez les variables d’environnement du .env directement dans les paramètres de l’hébergeur (jamais dans le code).

Pointez ensuite votre nom de domaine (odthan.com) vers cet hébergement et activez le certificat SSL (automatique sur Render/Railway ; via Let’s Encrypt + Certbot sur un VPS).


4. Structure du projet

odthan-blog/
├── server.js              # Point d'entrée Express
├── routes/                 # Routes (site, blog, contact, admin)
├── views/                  # Templates EJS (public + admin)
├── public/                 # CSS, JS, images, favicons
├── config/
│   ├── locales/fr.json     # Traductions français
│   ├── locales/ht.json     # Traductions créole
│   └── store.js             # Accès aux données JSON
├── data/                    # "Base de données" JSON (articles, catégories, contacts)
├── middleware/              # i18n, auth admin, CSRF
└── scripts/create-admin.js  # Création sécurisée du compte admin

5. Utiliser l’administration

Rendez-vous sur /admin/login avec les identifiants créés à l’étape 1.

Le contenu des articles accepte du HTML simple (<p>, <h2>, <ul>, <img>…).


6. Sécurité déjà en place

Non inclus par défaut, à ajouter avant une mise en production sérieuse : authentification à deux facteurs (2FA) réelle (ex. speakeasy + envoi de code par email/SMS), sauvegardes automatiques programmées, et migration vers une vraie base de données (MySQL/PostgreSQL) si le volume de contenu grandit — la couche config/store.js est conçue pour être remplacée facilement sans toucher aux routes ni aux vues.


7. SEO déjà en place

Pensez à soumettre https://votredomaine.com/sitemap.xml à Google Search Console une fois le site en ligne.


8. Prochaines étapes suggérées