chore: initial commit (website)

This commit is contained in:
debian 2025-09-29 08:24:59 +00:00 committed by 4NK Dev
commit 0dfaff3d8b
34 changed files with 4426 additions and 0 deletions

48
.gitignore vendored Normal file
View File

@ -0,0 +1,48 @@
# Dependencies
node_modules/
.pnpm-store/
.bun/
# Builds
build/
dist/
.next/
.out/
.vercel/
.cache/
.tmp/
.temp/
# Logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
*.log
# Env
.env
.env.*
*.local
# Coverage
coverage/
# Editors/IDE
.idea/
.vscode/
# OS
.DS_Store
Thumbs.db
# Python
__pycache__/
.venv/
venv/
# Misc
*.swp
*.swo
*.orig

26
404.html Normal file
View File

@ -0,0 +1,26 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Page not found - 4NK</title>
<link rel="stylesheet" href="styles.css">
<link rel="icon" type="image/png" href="favicon.png">
</head>
<body>
<div class="background-pattern"></div>
<div class="container" style="min-height: 100vh; display: flex; align-items: center; justify-content: center; text-align: center;">
<div>
<h1 style="font-size: 6rem; color: var(--primary-orange); margin-bottom: 1rem;">404</h1>
<h2 style="font-size: 2rem; color: var(--text-light); margin-bottom: 2rem;">Page not found</h2>
<p style="color: var(--text-gray); margin-bottom: 3rem; font-size: 1.2rem;">
The page you are looking for doesnt exist or has been moved.
</p>
<a href="/" class="btn btn-primary" style="text-decoration: none;">
Back to home
</a>
</div>
</div>
</body>
</html>

131
README.md Normal file
View File

@ -0,0 +1,131 @@
# Site 4NK - The self-custodial cloud infrastructure
## Description
Site web moderne pour 4NK, une infrastructure révolutionnaire qui redéfinit la sécurité et la décentralisation. Le site met en valeur l'identité visuelle de la marque avec un design sombre et des effets de glow orange/jaune.
## Caractéristiques
### Design
- **Thème sombre** avec fond noir et effets de glow
- **Logos SVG** animés avec effets de lumière
- **Typographie moderne** utilisant la police Inter
- **Design responsive** pour mobile et desktop
- **Animations fluides** et effets de parallaxe
### Sections
1. **Header** - Navigation fixe avec logo animé
2. **Hero** - Section principale avec logo grand format et titre
3. **Services** - Présentation des services avec icônes animées
4. **À propos** - Description de l'entreprise avec logo showcase
5. **Contact** - Formulaire de contact interactif
6. **Footer** - Liens et informations de bas de page
### Effets visuels
- **Glow effects** sur les logos et éléments interactifs
- **Particules flottantes** en arrière-plan
- **Animations CSS** et JavaScript
- **Curseur personnalisé** avec effet de glow
- **Transitions fluides** entre les sections
## Structure des fichiers
```
website/
├── index.html # Structure HTML principale
├── styles.css # Styles CSS avec animations
├── script.js # JavaScript pour interactions
└── README.md # Documentation
```
## Installation et utilisation
### Prérequis
- Serveur web local (Python, Node.js, ou autre)
- Navigateur moderne supportant CSS3 et JavaScript
### Lancement local
1. **Avec Python** (recommandé) :
```bash
cd /home/debian/website
python3 -m http.server 8080
```
2. **Accès** :
Ouvrir http://localhost:8080 dans votre navigateur
### Alternative avec Node.js
```bash
npx serve /home/debian/website -p 8080
```
## Personnalisation
### Couleurs
Les couleurs principales sont définies dans les variables CSS :
- `--primary-orange: #FF6B35`
- `--secondary-orange: #FF8E53`
- `--accent-orange: #FFA500`
- `--gold: #FFD700`
### Logos
Les logos sont créés en SVG avec des gradients et filtres pour les effets de glow. Ils peuvent être facilement modifiés dans le code HTML.
### Animations
Les animations sont contrôlées par CSS et JavaScript. Les durées et effets peuvent être ajustés dans les fichiers respectifs.
## Compatibilité
- **Navigateurs** : Chrome, Firefox, Safari, Edge (versions récentes)
- **Responsive** : Mobile, tablette, desktop
- **Technologies** : HTML5, CSS3, JavaScript ES6+
## Performance
- **Optimisé** pour le chargement rapide
- **Images SVG** pour une qualité vectorielle
- **CSS minifiable** pour la production
- **JavaScript modulaire** et optimisé
## Développement
### Structure du code
- **HTML sémantique** avec sections bien définies
- **CSS organisé** avec variables et animations
- **JavaScript modulaire** avec gestion d'événements
### Améliorations possibles
- Ajout d'un système de build (Webpack, Vite)
- Optimisation des performances
- Tests automatisés
- Intégration CI/CD
## Licence
Projet développé pour 4NK - Tous droits réservés.
---
**Note** : Ce site a été créé pour mettre en valeur l'identité visuelle de 4NK avec un design moderne et des effets visuels impressionnants.
## Configuration et scripts (backend mailer)
- **Backend**: Node/Express + Nodemailer dans `server/`
- **Endpoint**: POST `/contact` (proxy via nginx)
- **Config nginx**: `conf/4nk.network.conf`
- **Docs nginx**: `conf/README.md`
- **Scripts**: `scripts/reload-nginx.sh`, `scripts/test-contact.sh`, `scripts/install-mailer.sh`
- **Systemd example**: `conf/4nk-mailer.service.example`
### Variables d'environnement (charger via systemd)
- `SERVER_PORT` (defaut: 3001)
- `SMTP_HOST` (defaut: 127.0.0.1)
- `SMTP_PORT` (defaut: 25)
- `SMTP_SECURE` (defaut: false)
- `SMTP_TLS_REJECT_UNAUTHORIZED` (defaut: false)
- `SMTP_FROM` (defaut: no-reply@4nk.network)
- `SMTP_TO` (defaut: nicolas.cantu@4nk.network)
Placez ces variables dans `/etc/default/4nk-mailer` et pointez `EnvironmentFile` depuis `conf/4nk-mailer.service.example`.

141
about_more.html Normal file
View File

@ -0,0 +1,141 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>4NK — About more</title>
<link rel="icon" type="image/png" href="/favicon.png">
<link rel="stylesheet" href="/styles.css">
<style>
.page { max-width: 960px; margin: 4rem auto; padding: 0 1rem; }
h1, h2, h3 { margin: 1.5rem 0 .5rem; }
.lead { opacity: .9; }
.section { margin: 2rem 0; }
ul { padding-left: 1.2rem; }
.header-actions { margin: 1.5rem 0 2rem; display: flex; gap: .75rem; }
.manifesto-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: stretch; }
.manifesto-figure { align-self: start; }
.manifesto-img { height: 100%; width: auto; max-width: 100%; object-fit: contain; border-radius: 8px; box-shadow: 0 10px 30px rgba(255,107,53,.15); }
@media (max-width: 768px) {
.manifesto-grid { grid-template-columns: 1fr; }
.manifesto-img { width: 100%; height: auto; }
}
</style>
</head>
<body>
<div class="page">
<h1>4NK — SelfCustodial Cloud OS</h1>
<p class="lead">Safer, simpler, sovereign, and inexpensive.</p>
<div class="header-actions">
<a class="btn btn-secondary" href="/">Back to homepage</a>
</div>
<div class="section">
<h2>Whats the problem?</h2>
<p>The cloud market is dominated by permissioned and vulnerable thirdparty solutions. Users pay increasingly high rent to someone to manage their identities and access their own data, while facing hacks, ransoms and surveillance. Digital sovereignty is a wellunderstood requirement, yet everyone pays the price of simplicity at their own expense. Every time we click “accept,” we reinforce economic, security, and policy dependency. What if the solution was in our own hands?</p>
</div>
<div class="section">
<h2>How to fix this? — Manifesto</h2>
<div class="manifesto-grid">
<div class="manifesto-figure">
<img src="/img/Clipboard%20-%2026%20septembre%202025%2013_46.png" alt="4NK illustration" class="manifesto-img">
</div>
<div>
<p>We want to own and manage our logins, sharing, payments, messages, and identity without passing through central servers or leaking metadata. We want to handle it all directly on and from our devices.</p>
<ul>
<li>No CAPEX, no data centers required</li>
<li>Each user is a building block of the infrastructure</li>
<li>Every flow is a cryptographic proof</li>
<li>Every action is a verifiable validation</li>
</ul>
<p>We want digital sovereignty to be a technical reality, not a thirdparty promise.</p>
</div>
</div>
</div>
<div class="section">
<h2>Introducing the SelfCustodial Cloud OS</h2>
<p>An app to rebuild the web—upright:</p>
<ul>
<li><b>Identity</b>: users own and manage their keys</li>
<li><b>Security</b>: distributed and fully encrypted storage</li>
<li><b>Infrastructureless</b>: leverage existing underused devices (laptops, servers)</li>
<li><b>Network layer</b>: distributed and open; islands of nodes</li>
<li><b>Proofs at every step</b>: verifiable and anchored in Bitcoin</li>
<li><b>Thirdparty dependencies</b>: none</li>
<li><b>Opensource</b></li>
</ul>
<p>No blockchain and no token: a clientside infrastructure that extends Bitcoins properties for everyday use.</p>
</div>
<div class="section">
<h2>What can we do with it?</h2>
<ul>
<li><b>Personal sovereignty</b>: secure document storage and sharing; “100% local” LLM on user content</li>
<li><b>Collaborative</b>: P2P secure messaging (no central server, no metadata leakage); secure document workflows (encrypted storage and sharing, simple identity management, timestamped proofs at every step); discovery and publishing of “contracts”; payment layer</li>
</ul>
</div>
<div class="section">
<h2>Bitcoin under the hood</h2>
<ul>
<li>Secure messaging with an embedded Bitcoin wallet in the browser using silent payments for secure and metadataless messaging</li>
<li>Log in with one scan: native Lightning support (no Stripe, no PayPal)</li>
<li>Records and actions are timestamped on Bitcoin L1 (a few bytes/day)</li>
</ul>
</div>
<div class="section">
<h2>How it works</h2>
<p>Supersimple user experience:</p>
<ul>
<li>Lightweight background app turns existing, oftenidle equipment into a node</li>
<li>100% browserbased UX to interact with the node, locally or remotely, for owners and invitees</li>
<li>Log in with one scan, 2FA options, multisig, including phone enrollment</li>
<li>Secure messaging layer with no metadata leakage</li>
<li>“Chatfirst” experience (roadmap)</li>
</ul>
<h3>Networks</h3>
<ul>
<li>Every user is a building block of the new infrastructure</li>
<li>Professional islands and optin to larger networks (forming Layer 2s)</li>
<li>Scaleout, small or large</li>
</ul>
</div>
<div class="section">
<h2>Disrupting a huge market</h2>
<p>The cloud and collaborative market is dominated by GAFAMs, a TAM of $250B. “Undertheradar” SAM is about $80M. Beyond 2030 ambition: $35B (≈2% of the market).</p>
</div>
<div class="section">
<h2>Status</h2>
<ul>
<li>Main software development: done</li>
<li>$500K revenue from paid POC customers over the last 24 months</li>
<li>Pipeline: 510 prospects from SMBs to Tier1 operators (Orange, Docaposte), sales cycle evolving</li>
<li>Preproduction whitelabel service targeted to French Notaries</li>
<li>Soon to launch: DOCV.fr (B2C2B freemium)</li>
</ul>
</div>
<div class="section">
<h2>Whats next?</h2>
<p>Preseries round: raise $500K from strategic, supportive partners.</p>
<p><b>Key objectives</b> include GTM kickoff (sales/marketing, PLG motion), professioncentric deployments (notaries, lawyers, family offices, local public branches, health), whitelabel distribution (convert Tier1/2 POCs), opportunistic SMB workflows, feature iteration toward PMF and international reach, and reaching breakeven with $1M ARR to enter Series A in under 15 months.</p>
<p><b>$100M ARR in 5 years is feasible.</b></p>
</div>
<div class="section">
<h2>Who we are</h2>
<p>4NK and its ecosystem. Tomorrows winners dont wait for the next hack — contact us today for a demo.</p>
<p>
<a class="btn btn-primary" href="mailto:contact@4nk.network">Request a demo</a>
<a class="btn btn-secondary" href="/">Back to homepage</a>
</p>
</div>
</div>
<script src="/script.js"></script>
</body>
</html>

View File

@ -0,0 +1,23 @@
[Unit]
Description=4NK Website Mailer (Express/Nodemailer)
After=network.target
[Service]
Type=simple
WorkingDirectory=/home/debian/website/server
ExecStart=/usr/bin/node index.js
Restart=always
RestartSec=2
Environment=NODE_ENV=production
# Optional: external environment file
# Create /etc/default/4nk-mailer and uncomment the next line
# EnvironmentFile=/etc/default/4nk-mailer
NoNewPrivileges=true
ProtectSystem=full
ProtectHome=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target

74
conf/4nk.network.conf Normal file
View File

@ -0,0 +1,74 @@
# Configuration nginx pour 4nk.network
# Redirection HTTP vers HTTPS et service du site statique
events {
worker_connections 1024;
}
http {
# Redirection HTTP vers HTTPS pour 4nk.network
server {
listen 80;
server_name 4nk.network www.4nk.network;
# Redirection permanente vers HTTPS
return 301 https://$server_name$request_uri;
}
# Configuration HTTPS pour 4nk.network
server {
listen 443 ssl;
http2 on;
server_name 4nk.network www.4nk.network;
# Configuration SSL (certificats auto-signés temporaires)
ssl_certificate /etc/ssl/4nk.network/fullchain.pem;
ssl_certificate_key /etc/ssl/4nk.network/privkey.pem;
# Configuration SSL moderne
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# Headers de sécurité
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Frame-Options DENY always;
add_header X-Content-Type-Options nosniff always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
# Configuration du site
root /home/debian/website;
index index.html;
# Gestion des fichiers statiques
location / {
try_files $uri $uri/ =404;
# Cache pour les fichiers statiques
location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
# Gestion des erreurs
error_page 404 /404.html;
# Proxy pour l'API de contact
location /contact {
proxy_pass http://127.0.0.1:3001;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Logs
access_log /var/log/nginx/4nk.network.access.log;
error_log /var/log/nginx/4nk.network.error.log;
}
}

179
conf/README.md Normal file
View File

@ -0,0 +1,179 @@
# Configuration nginx pour 4nk.network
## Configuration actuelle
Le site 4nk.network est configuré avec nginx pour servir le site statique avec les fonctionnalités suivantes :
### ✅ Fonctionnalités implémentées
- **Redirection HTTP → HTTPS** : Toutes les requêtes HTTP sont automatiquement redirigées vers HTTPS
- **Certificats SSL** : Certificats auto-signés temporaires (en attente de configuration DNS)
- **Headers de sécurité** : HSTS, X-Frame-Options, X-Content-Type-Options, etc.
- **HTTP/2** : Support du protocole HTTP/2 pour de meilleures performances
- **Cache optimisé** : Cache des fichiers statiques (CSS, JS, images) pour 1 an
- **Logs** : Logs d'accès et d'erreur spécifiques au domaine
- **Proxy /contact** : Requêtes POST du formulaire vers le backend local `127.0.0.1:3001`
### 📁 Fichiers de configuration
- `4nk.network.conf` : Configuration nginx principale
- `letsencrypt-setup.sh` : Script pour migrer vers Let's Encrypt
- `README.md` : Cette documentation
- `4nk-mailer.service.example` : Exemple d'unité systemd pour le backend mailer
## 🚀 Prochaines étapes
### 1. Configuration DNS
Pour activer les certificats Let's Encrypt, vous devez configurer le DNS :
```bash
# Enregistrements DNS requis
4nk.network. A [IP_DU_SERVEUR]
www.4nk.network. A [IP_DU_SERVEUR]
```
### 2. Migration vers Let's Encrypt
Une fois le DNS configuré, exécutez le script de migration :
```bash
sudo /home/debian/website/conf/letsencrypt-setup.sh
```
Ce script va :
- Vérifier que le DNS pointe vers ce serveur
- Générer les certificats Let's Encrypt
- Mettre à jour la configuration nginx
- Configurer le renouvellement automatique
### 3. Test de la configuration
```bash
# Test de la redirection HTTP → HTTPS
curl -I http://4nk.network
# Test de l'accès HTTPS
curl -I https://4nk.network
# Test du proxy /contact (attend 400 si champs manquants)
curl -i -X POST https://4nk.network/contact -H 'content-type: application/json' -d '{"name":"","email":"","message":""}'
# Test des headers de sécurité
curl -I https://4nk.network | grep -E "(Strict-Transport-Security|X-Frame-Options)"
```
## 🔧 Gestion de la configuration
### Redémarrage de nginx
```bash
# Test de la configuration
sudo nginx -t
# Rechargement de la configuration
sudo systemctl reload nginx
# Redémarrage complet
sudo systemctl restart nginx
```
### Vérification des certificats
```bash
# Certificats auto-signés actuels
sudo openssl x509 -in /etc/ssl/4nk.network/fullchain.pem -text -noout
# Certificats Let's Encrypt (après migration)
sudo certbot certificates
```
### Logs
```bash
# Logs d'accès
sudo tail -f /var/log/nginx/4nk.network.access.log
# Logs d'erreur
sudo tail -f /var/log/nginx/4nk.network.error.log
## Backend mailer (Express + Nodemailer)
- Service HTTP local: `http://127.0.0.1:3001`
- Endpoints: `POST /contact`, `GET /health`
- Code: `/home/debian/website/server/index.js`
### Variables d'environnement supportées
- `SERVER_PORT` (defaut: 3001)
- `SMTP_HOST` (defaut: 127.0.0.1)
- `SMTP_PORT` (defaut: 25)
- `SMTP_SECURE` (defaut: false)
- `SMTP_TLS_REJECT_UNAUTHORIZED` (defaut: false)
- `SMTP_FROM` (defaut: no-reply@4nk.network)
- `SMTP_TO` (defaut: nicolas.cantu@4nk.network)
Vous pouvez utiliser un fichier d'environnement chargé par systemd via `EnvironmentFile`.
### Exemple d'unité systemd
Voir `conf/4nk-mailer.service.example` et adaptez le chemin de `EnvironmentFile` si besoin.
```
## 📊 Monitoring
### Vérification du statut
```bash
# Statut nginx
sudo systemctl status nginx
# Test de connectivité
curl -I https://4nk.network
# Vérification SSL
openssl s_client -connect 4nk.network:443 -servername 4nk.network
```
### Renouvellement des certificats
Les certificats Let's Encrypt sont automatiquement renouvelés via cron :
```bash
# Vérifier la tâche cron
crontab -l | grep certbot
# Renouvellement manuel
sudo certbot renew --dry-run
```
## 🛡️ Sécurité
### Headers de sécurité configurés
- `Strict-Transport-Security` : Force HTTPS pendant 1 an
- `X-Frame-Options: DENY` : Empêche le clickjacking
- `X-Content-Type-Options: nosniff` : Empêche le MIME sniffing
- `X-XSS-Protection` : Protection XSS
- `Referrer-Policy` : Contrôle des référents
### Configuration SSL
- Protocoles : TLSv1.2 et TLSv1.3
- Ciphers modernes et sécurisés
- Session cache optimisé
- Prefer server ciphers désactivé
## 📝 Notes importantes
1. **DNS requis** : Les certificats Let's Encrypt nécessitent que le domaine pointe vers ce serveur
2. **Ports ouverts** : Assurez-vous que les ports 80 et 443 sont ouverts
3. **Sauvegarde** : La configuration actuelle est sauvegardée avant migration
4. **Renouvellement** : Les certificats Let's Encrypt expirent tous les 90 jours
## 🔗 Liens utiles
- [Documentation nginx](https://nginx.org/en/docs/)
- [Let's Encrypt](https://letsencrypt.org/)
- [Certbot](https://certbot.eff.org/)
- [SSL Labs Test](https://www.ssllabs.com/ssltest/)

126
conf/letsencrypt-setup.sh Executable file
View File

@ -0,0 +1,126 @@
#!/bin/bash
# Script pour configurer Let's Encrypt pour 4nk.network
# À exécuter une fois que le DNS est configuré
set -e
DOMAIN="4nk.network"
EMAIL="admin@4nk.network"
NGINX_CONF="/etc/nginx/sites-available/4nk.network.conf"
BACKUP_CONF="/etc/nginx/sites-available/4nk.network.conf.backup"
echo "🔧 Configuration Let's Encrypt pour $DOMAIN"
echo "=============================================="
# Vérifier que le domaine pointe vers ce serveur (prise en charge IPv4/IPv6)
echo "📡 Vérification DNS (A/AAAA) et IP publique (v4/v6)..."
# Récupère les enregistrements DNS A et AAAA
DOMAIN_IPV4S=$(dig +short A $DOMAIN | tr '\n' ' ' | sed 's/ *$//')
DOMAIN_IPV6S=$(dig +short AAAA $DOMAIN | tr '\n' ' ' | sed 's/ *$//')
# Récupère les IP publiques du serveur (si existantes)
SERVER_IPV4=$(curl -4 -s https://api.ipify.org || true)
SERVER_IPV6=$(curl -6 -s https://api64.ipify.org || true)
echo " Domaine A: ${DOMAIN_IPV4S:-none}"
echo " Domaine AAAA: ${DOMAIN_IPV6S:-none}"
echo " Serveur v4: ${SERVER_IPV4:-none}"
echo " Serveur v6: ${SERVER_IPV6:-none}"
DNS_OK=false
# Correspondance IPv4 si disponible
if [ -n "$SERVER_IPV4" ] && echo "$DOMAIN_IPV4S" | grep -q "\b$SERVER_IPV4\b"; then
DNS_OK=true
fi
# Correspondance IPv6 si disponible
if [ -n "$SERVER_IPV6" ] && echo "$DOMAIN_IPV6S" | grep -q "\b$SERVER_IPV6\b"; then
DNS_OK=true
fi
if [ "$DNS_OK" != true ]; then
echo "❌ Erreur: Le domaine $DOMAIN ne pointe pas vers l'IP publique de ce serveur"
echo " Vérifiez les enregistrements DNS A et/ou AAAA selon votre connectivité."
exit 1
fi
echo "✅ DNS configuré correctement (A/AAAA)"
# Sauvegarder la configuration actuelle
echo "💾 Sauvegarde de la configuration nginx..."
sudo cp "$NGINX_CONF" "$BACKUP_CONF"
# Créer une configuration temporaire pour certbot
echo "🔧 Création de la configuration temporaire..."
sudo tee /tmp/4nk.network-temp.conf > /dev/null <<EOF
# Configuration nginx temporaire pour certbot
server {
listen 80;
server_name $DOMAIN www.$DOMAIN;
root /home/debian/website;
index index.html;
location / {
try_files \$uri \$uri/ =404;
}
}
EOF
# Remplacer la configuration nginx
sudo cp /tmp/4nk.network-temp.conf "$NGINX_CONF"
sudo nginx -t
sudo systemctl reload nginx
# Générer les certificats Let's Encrypt
echo "🔐 Génération des certificats Let's Encrypt..."
sudo certbot --nginx -d $DOMAIN -d www.$DOMAIN --non-interactive --agree-tos --email $EMAIL
# Vérifier que les certificats ont été générés
if [ -f "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" ]; then
echo "✅ Certificats Let's Encrypt générés avec succès"
# Mettre à jour la configuration nginx avec les vrais certificats
echo "🔧 Mise à jour de la configuration nginx..."
sudo sed -i "s|/etc/ssl/$DOMAIN/fullchain.pem|/etc/letsencrypt/live/$DOMAIN/fullchain.pem|g" "$NGINX_CONF"
sudo sed -i "s|/etc/ssl/$DOMAIN/privkey.pem|/etc/letsencrypt/live/$DOMAIN/privkey.pem|g" "$NGINX_CONF"
sudo sed -i "s|# Configuration SSL (certificats auto-signés temporaires)|# Configuration SSL (Let's Encrypt)|g" "$NGINX_CONF"
sudo nginx -t
sudo systemctl reload nginx
echo "🎉 Configuration terminée avec succès !"
echo " Site accessible sur: https://$DOMAIN"
echo " Redirection HTTP vers HTTPS activée"
echo " Certificats SSL valides et sécurisés"
# Configurer le renouvellement automatique (cron si disponible, sinon systemd timer de certbot)
echo "🔄 Configuration du renouvellement automatique..."
if command -v crontab >/dev/null 2>&1; then
(crontab -l 2>/dev/null; echo "0 12 * * * /usr/bin/certbot renew --quiet") | crontab -
echo " Cron installé pour le renouvellement quotidien."
else
echo " 'crontab' indisponible. Certbot a déjà installé un timer systemd (recommandé)."
echo " Vous pouvez vérifier via: systemctl list-timers | grep certbot"
fi
else
echo "❌ Erreur lors de la génération des certificats"
echo "🔄 Restauration de la configuration de sauvegarde..."
sudo cp "$BACKUP_CONF" "$NGINX_CONF"
sudo systemctl reload nginx
exit 1
fi
echo ""
echo "📋 Résumé de la configuration:"
echo " - Domaine: $DOMAIN et www.$DOMAIN"
echo " - Redirection HTTP → HTTPS"
echo " - Certificats SSL Let's Encrypt"
echo " - Headers de sécurité activés"
echo " - Renouvellement automatique configuré"
echo ""
echo "🌐 Testez votre site: https://$DOMAIN"

BIN
docs/4NK PITCH V0.1.pdf Normal file

Binary file not shown.

75
docs/custordian_killer.md Normal file
View File

@ -0,0 +1,75 @@
4NK: the self-custodial cloud infrastructure
For fifteen years, Bitcoin has proven that a decentralized network can secure value without any trusted intermediary. Every block, every signature, every verification is performed by the users themselves. No need for a centralized custodian: everyone can verify, everyone can hold.
But outside of payments, the digital world still relies everywhere on trusted third parties:
centralized clouds and servers,
messaging platforms,
digital identity services,
storage solutions.
These custodians capture data, impose costs, and create points of failure. They are the equivalent of banks before Bitcoin: convenient, but vulnerable and intrusive.
4NK: Bitcoin beyond payment
4NK is a client-side infrastructure layer that extends Bitcoins native properties to everyday digital uses:
The resilience of a distributed proof network → every flow becomes verifiable, without relying on a server.
Money as a universal mechanism → reliable remuneration for security.
Cryptography as identity → public keys extended into digital identities.
How does it work?
Encrypted messaging: based on non-interactive secret sharing derived from Silent Payments. Each message generates a unique, encrypted, and untraceable secret, with no third party involved.
Off-chain contracts: signed by Bitcoin wallets, validated by peers, and linked to a layer-2 oracle (Signet) regularly anchored on the Bitcoin mainnet.
Distributed storage: files kept locally between stakeholders or in a mesh network, never in cleartext, never in a public cloud.
Payments in one scan: native Lightning integration, no Stripe, no PayPal.
Everything is operated client-side (Client-Side Validation). No custodian.
Custodian-killer
Just as Bitcoin killed the need for a central bank to hold and transfer value, 4NK kills the need for digital custodians to identify, exchange, store, and contract.
This is not a new blockchain. This is not a token. It is the natural extension of Bitcoin:
distributed proofs as a foundation,
money as a universal rail,
public keys as digital identities,
secret sharing as sovereign messaging.
4NK is not a theory
Notaries: legal acts anchored on a proof layer over Bitcoin.
SMEs: sovereign document management, serverless messaging.
Public bodies: integrations underway with operators.
Healthcare: POC in deployment.
Every time, the model is the same: replace a custodian with Bitcoin + client-side.
The result
Making Bitcoin not only the currency of trust, but also the universal infrastructure layer of the digital world:
Simpler login: four words + multisignature across devices.
Simpler payments: compatible with all Bitcoin rails + integrated Silent Payment wallet (web & mobile).
Cheaper, no CAPEX: more users = more resources.
Cheaper, no infrastructure: less tooling, less supervision, less complexity.
More secure: encryption directly by user identities, redundancy included.
More resilient: no central point, no centralized rights management.
Fully verifiable cryptographically via the anchoring layer.
Everything is a contract: compliance with agreements, norms, and standards is cryptographically enforced between final parties, where the proof system is also the payment system.
As fast as needed: there is always a route to deliver the information.
Our focus
Local AI experiences integrated into a “Chat First” UX, replacing legacy workflows.
Effective support, separate from core development.
Our ambition
To make Bitcoin not only the currency of trust, but also the universal infrastructure layer of the internet:
identity,
messaging,
contracts,
storage.
An internet where the user is sovereign, verification is local, and custodians belong permanently to the past.
4NK: the self-custodial cloud infrastructure.

721
docs/manifest.md Normal file
View File

@ -0,0 +1,721 @@
4NK : Manifeste d'une troisième voie pour un web souverain, sobre et vérifiable
4NK : le web plus simple, moins cher, plus fiable et souverain.
Synthèse
Aujourdhui, notre internet vit une crise structurelle. Dun côté, le Web2 a apporté la simplicité dusage mais repose sur une architecture centralisée qui fuit les données par défaut. Chaque interaction génère des métadonnées captées et exploitées par des plateformes privées. Cela a conduit à un internet exploité, où lutilisateur a perdu toute maîtrise de ses informations. Résultat : 9 Français sur 10 ont déjà vu leurs données personnelles circuler sur le dark web. De lautre, les États ont tenté de réagir par la fragmentation : clouds souverains, règles nationales, blockchains publiques nationales. Mais cela produit une balkanisation du réseau : des internets fermés, surveillés, incompatibles, qui ne restaurent pas la confiance.
Le Web3, censé être lalternative, a échoué. Il a voulu tout décentraliser, créant de nouvelles complexités : wallets, tokens, frais de transactions, dépendance à quelques blockchains dominantes. Le Web5, initié par Jack Dorsey, a eu lintuition juste : combiner la simplicité du Web2 et la résilience cryptographique du Web3. Mais il est resté limité par sa dépendance Bitcoin comme unique rail monétaire forcé.
Cest dans ce contexte quapparaît 4NK. 4NK nest pas une couche marketing, ni une énième blockchain. Cest une infrastructure distribuée, sobre et vérifiable : une troisième voie.
Nos principes sont clairs :
Relais neutres en mesh : ils ne contrôlent rien, ne stockent rien, ne surveillent rien. Ils ne font que synchroniser et répliquer des preuves cryptographiques.
Souveraineté de lutilisateur : les clés, les données, les identités restent exclusivement sous contrôle des utilisateurs.
Vérifiabilité universelle : chaque action est ancrée et traçable cryptographiquement, sans dépendre dun tiers.
Sobriété numérique : aucune infrastructure lourde, aucun cloud étranger, pas de CAPEX supplémentaires. La résilience découle de la distribution, pas de la duplication énergivore.
Concrètement, lexpérience reste identique au Web2 : même simplicité, même fluidité. Mais sous le capot, plus de fuites structurelles, plus de dépendance aux plateformes ou aux États. 4NK permet de :
sécuriser la messagerie, les documents et n'importe quel flux numérique,
ancrer et horodater de façon immuable des preuves,
gérer une identité numérique souveraine et portable,
simplifier les paiements et interactions,
assurer la conformité réglementaire sans exposition massive de données.
En résumé, 4NK brise le plafond de verre de la cybersécurité. Là où les infrastructures centralisées finissent toujours par fuir malgré les audits et certifications, 4NK rend la fuite impossible par design. Cest une infrastructure de résilience, où lutilisateur est souverain, où la confiance repose sur des preuves, et où linternet retrouve son universalité sans être exploité ni fragmenté.
4NK, cest la troisième voie : un web souverain, simple, sobre et vérifiable.
4NK déploie sa technologie par étapes : dabord auprès des professions réglementées et secteurs critiques (notariat, logistique, santé), puis via des modules isolés distribués par intégrateurs et opérateurs pour atteindre PME et collectivités. À horizon 2027-2030, lambition est une extension européenne, fondée sur un modèle distribué « sans infrastructure », alliant souveraineté, sobriété et conformité réglementaire accessible à tous les services numériques, partout, en open source.
Un internet exploité et fragmenté : entre asymétrie économique et cloisonnement politique
Une promesse originelle détournée
Linternet est né dune ambition claire : relier des réseaux hétérogènes pour permettre la circulation libre et universelle de linformation. Il devait constituer un espace neutre, distribué par nature, favorisant la coopération scientifique, la communication entre individus et, à terme, linnovation sociale et économique.
Or, trente ans après, ce projet initial a été profondément altéré. Le réseau mondial se trouve aujourdhui piégé dans une double impasse : dun côté, son exploitation par des infrastructures privées qui en font un outil de captation et de surveillance ; de lautre, son cloisonnement progressif par les États qui tentent de le fragmenter pour en reprendre le contrôle. Ce double mouvement a transformé le web en un espace structurellement insécure, où lutilisateur na ni maîtrise réelle de ses données, ni garantie de neutralité.
Lexploitation structurelle du Web2
Le Web2, tel que nous le connaissons, repose sur une architecture client-serveur qui place les données des utilisateurs au cœur de plateformes centralisées. Cette conception a apporté une simplicité dusage et une accessibilité sans précédent : réseaux sociaux, moteurs de recherche, commerce en ligne, services de cloud.
Cependant, cette commodité est indissociable dun problème de design : le Web2 a été pensé pour fuir les données par défaut. Chaque interaction connexion, recherche, message, clic génère des flux dinformations qui, loin dêtre limités à laction souhaitée, produisent une masse de métadonnées invisibles. Ces traces révèlent des comportements, des profils, des préférences, et sont ensuite exploitées pour générer des modèles économiques fondés sur la publicité ciblée, la recommandation algorithmique et la revente de données.
Lutilisateur perd alors la maîtrise de ce quil révèle au monde. Cette asymétrie informationnelle alimente la puissance économique des grandes plateformes, qui transforment ces données en confort dusage (personnalisation, fluidité), mais aussi en intelligence artificielle “imbattable”, entraînée par les comportements collectifs de milliards dindividus.
Conséquences économiques et sociétales
Cette exploitation systématique ne relève pas seulement de latteinte à la vie privée : elle engendre des conséquences économiques et sociales majeures, déjà visibles dans plusieurs secteurs.
Fermeture de sociétés fragilisées : de nombreuses entreprises ont dû cesser leur activité après une fuite massive de données ou une cyberattaque, révélant labsence de maîtrise comme une cause directe de faillite.
Dégradation manifeste de la confiance : des observatoires comme bonjourlafuite.eu.org recensent quotidiennement les fuites massives de données. Chaque mois, ce sont des millions de comptes compromis, alimentant un climat général de défiance.
Pillage industriel invisible : la captation de données stratégiques (brevets, secrets industriels, données R&D) constitue une forme de spoliation silencieuse. Elle fragilise la compétitivité nationale et les chaînes de valeur, sans que les victimes en aient immédiatement conscience.
Complexification de lexpérience utilisateur : les utilisateurs sont confrontés à une prolifération de logins, de mots de passe et de procédures dauthentification de plus en plus lourdes. Ce paradoxe est frappant : le Web2 promettait simplicité et immédiateté, il produit désormais friction et surcharge cognitive.
Pertes de revenus liées au paiement : les systèmes centralisés de paiement en ligne, coûteux et opaques, freinent les transactions, provoquent des abandons dachat et créent une dépendance aux intermédiaires financiers.
Crise de lidentification numérique : limpossible identification fluide, ou à linverse des procédures si complexes quelles découragent lusage, détruit progressivement la confiance dans les services numériques.
Ces conséquences ne sont pas marginales. Elles touchent directement la société dans son ensemble. Neuf Français sur dix ont déjà vu leurs données didentité circuler sur le dark web, conséquence directe de fuites dans des bases centralisées. Ce chiffre, souvent rappelé dans les rapports de cybersécurité, illustre lampleur dune fragilité systémique : tant que les données restent concentrées, elles constituent une cible unique et donc inévitablement compromise.
La fragmentation étatique : lautre impasse
Face à ces dérives, les États ont tenté de réagir en érigeant des barrières numériques. Sous couvert de souveraineté, ils imposent des régulations de localisation des données, développent des clouds dits “de confiance” ou établissent des infrastructures nationales prétendument neutres.
Cette stratégie aboutit cependant à une balkanisation du réseau. Chaque territoire impose ses propres règles daccès, ses systèmes dauthentification, ses formats propriétaires. Luniversalité originelle du web est remplacée par un archipel dinternets fragmentés, parfois incompatibles, toujours surveillés.
Le cas de la blockchain Archipel, fermée après quelques années dexpérimentation, illustre ce paradoxe. Pensée comme un outil de souveraineté numérique, elle sest révélée incohérente dans son principe : un État, par nature centralisateur, ne peut piloter une infrastructure décentralisée sans la vider de son sens.
Un double échec structurel
Le bilan est clair :
Le Web2 produit un internet exploité, dont la valeur est captée par des infrastructures privées, au détriment des utilisateurs et des économies nationales.
Les tentatives de reprise en main étatique produisent un internet dystopique et fragmenté, où lautonomie promise se transforme en nouvelles dépendances.
Ce double échec crée un plafond de verre : malgré les audits, les certifications, les réglementations et les meilleures pratiques, les données continuent de fuir, la confiance continue de se dégrader et la résilience reste hors datteinte.
Ce constat fonde la nécessité dune refonte de linfrastructure elle-même. Ce nest pas lajout de couches réglementaires ni la simple amélioration des pratiques qui suffira. Seule une architecture différente, pensée pour restaurer la souveraineté de lutilisateur tout en préservant la simplicité dusage, peut briser ce plafond de verre.
Lidentité numérique : clé de voûte de la sécurité et des usages souverains
Lidentité comme pivot du numérique contemporain
Dans linfrastructure numérique actuelle, lidentité est devenue la clé de voûte de tous les usages : se connecter, signer, payer, accéder à des services, échanger des données. Sans identité robuste et maîtrisée, aucune souveraineté numérique nest possible.
Or, cest précisément ce point névralgique qui concentre aujourdhui les antagonismes :
Les plateformes du Web2 ont transformé lidentité en identifiant publicitaire. Les comptes Google, Apple ou Facebook servent d“identité universelle”, mais au prix dune captation totale des usages et dun suivi omniprésent.
Le Web3 a voulu rendre lidentité programmable par les blockchains, mais il la réduite à une simple clé publique exposée, souvent réutilisée partout, produisant une traçabilité excessive et une exposition de la vie privée.
Les États cherchent à imposer des identités numériques centralisées (cartes didentité électroniques, login public universel), mais ce modèle concentre le pouvoir et fait peser un risque systémique : un seul centre peut contrôler, surveiller ou bloquer les usages de millions dindividus.
Ainsi, la centralité de lidentité rend visibles trois risques majeurs : la surveillance (quand lidentité est contrôlée par lÉtat), la captation économique (quand elle est détenue par des plateformes privées) et la traçabilité excessive (quand elle est réduite à une clé unique dans les blockchains).
Les limites et contradictions actuelles
Larchitecture actuelle de lidentité numérique nest pas seulement imparfaite : elle est dangereuse. La concentration des données didentité dans de grands registres quils soient publics ou privés engendre des fuites massives qui mettent directement en danger les populations. Ces bases centralisées, souvent administrées par des institutions censées protéger les citoyens, deviennent les cibles privilégiées des cybercriminels.
Les conséquences ne sont pas seulement économiques (fraude, usurpation, pillage industriel) mais physiques : des personnes sont exposées à des risques de mutilations, de séquestrations ou dattaques ciblées lorsque leurs informations sensibles (adresses, biométries, données médicales) circulent sur le dark web. Or, ces fuites ne sont pas accidentelles : elles sont structurellement inévitables tant que lidentité repose sur des registres centraux.
Cette fragilisation des citoyens contraste avec linefficacité manifeste des dispositifs de surveillance qui la justifient. Ainsi, les mécanismes de lutte contre le blanchiment (AML), qui imposent une collecte massive de données personnelles, ne produisent que des résultats marginaux : seuls 0,02 % des flux illicites mondiaux sont effectivement affectés par ces dispositifs. En dautres termes, les citoyens subissent une surveillance invasive et risquée pour un bénéfice dérisoire en matière de sécurité financière réelle.
À cette logique sajoute une dérive croissante : la généralisation du contrôle dâge systématisé sur les services numériques. Sous prétexte de protéger les mineurs, des millions dutilisateurs y compris des enfants sont contraints de fournir leurs identités numériques pour accéder à des contenus. Cette pratique engendre la constitution de bases didentités numériques denfants, hautement sensibles et extrêmement dangereuses. La création de telles bases expose une population vulnérable à des risques majeurs en cas de fuite, sans que le bénéfice pour la protection réelle de lenfance soit démontré.
Ces contradictions révèlent limpasse : plus lidentité numérique est centralisée et collectée massivement, plus elle devient une menace pour les citoyens, tout en produisant des résultats dérisoires dans la lutte contre la criminalité et les abus.
La tension est manifeste : plus lidentité numérique devient un outil universel, plus elle se transforme en point unique de vulnérabilité.
Les conséquences économiques et sociales dun internet vulnérable
Un coût systémique croissant
Linsécurité structurelle du Web2 fuites de données, dépendance aux plateformes, fragilité des infrastructures centralisées engendre un coût massif, souvent sous-estimé. Selon les estimations de lOCDE et de lENISA, les cyberattaques et fuites de données coûtent déjà plusieurs points de PIB par an aux économies avancées. Mais ces chiffres globaux masquent une réalité plus fine : ce ne sont pas seulement les “attaques” qui coûtent cher, mais le design même du réseau qui rend ces pertes inévitables.
Les entreprises : faillites, pillage et perte de compétitivité
Faillites liées aux fuites de données : de nombreuses PME et ETI ferment leurs portes à la suite dune compromission massive. Laccès aux comptes clients, la perte de données stratégiques ou la fuite de secrets industriels peuvent suffire à détruire la confiance et la viabilité dune entreprise.
Pillage industriel invisible : les fuites ne concernent pas seulement des données personnelles. Plans, brevets, prototypes, informations financières circulent discrètement sur des marchés parallèles. La spoliation de propriété intellectuelle est rarement médiatisée, mais elle constitue une hémorragie silencieuse pour la compétitivité nationale.
Surcoûts de conformité et de sécurité : pour compenser la vulnérabilité de leurs infrastructures, les entreprises investissent dans des audits, certifications, couches défensives. Ces coûts croissants ne créent pas de valeur ajoutée, mais deviennent un poste budgétaire incompressible.
Les citoyens : perte de confiance et surcharge cognitive
Données massivement exposées : neuf Français sur dix ont déjà vu leurs données didentité personnelles figurer sur le dark web. Ce chiffre illustre non pas des incidents isolés, mais une fuite structurelle des bases centralisées.
Défiance envers le numérique : confrontés à des messages permanents dalerte (“votre mot de passe a été compromis”), les citoyens perdent confiance. Lusage du numérique devient une source danxiété.
Surcharge cognitive liée à lidentification : logins multiples, mots de passe complexes, authentification multi-facteurs. Lexpérience est devenue laborieuse, éloignant la promesse initiale de simplicité.
Exclusion numérique : certains publics (personnes âgées, petites entreprises sans DSI) renoncent à certains services faute de maîtriser les procédures complexes.
Les États : fragmentation et perte de souveraineté
Balkanisation du réseau : pour répondre à linsécurité, les États érigent des murs numériques (clouds nationaux, obligations de localisation). Cela produit des réseaux fragmentés, incompatibles avec luniversalité initiale du web.
Perte de légitimité : chaque nouvelle fuite dans des bases administratives fragilise la confiance des citoyens envers lÉtat comme garant de la sécurité numérique.
Souveraineté illusoire : les clouds nationaux restent dépendants de couches logicielles et matérielles étrangères, ce qui limite leur autonomie réelle.
Un cercle vicieux
Lensemble de ces conséquences alimente un cercle vicieux :
Plus les fuites se multiplient, plus les utilisateurs perdent confiance.
Plus la confiance se dégrade, plus les acteurs multiplient les couches défensives et réglementaires.
Plus les couches se multiplient, plus lexpérience utilisateur se complexifie et plus les coûts augmentent.
Et malgré tout, les fuites continuent, car le problème est architectural et non opérationnel.
En dautres termes : tant que linfrastructure repose sur la centralisation, les pertes sont inévitables.
4NK comme levier de sortie
Les conséquences économiques et sociales de linternet vulnérable ne peuvent être contenues par des ajustements incrémentaux. Elles appellent une refonte du socle technique.
Pour les entreprises, 4NK offre une architecture où la fuite structurelle est impossible, réduisant les risques de faillite et de spoliation.
Pour les citoyens, il garantit une expérience simple (identique au Web2), tout en redonnant la souveraineté sur lidentité et les données.
Pour les États, il propose une alternative à la fragmentation : une infrastructure distribuée, neutre, où ils peuvent être un acteur parmi dautres, mais jamais un centre de contrôle exclusif.
Le Web3 : une décentralisation illusoire et contre-productive
Genèse et promesse du Web3
Le terme Web3 est apparu au milieu des années 2010, dans le sillage du succès des blockchains publiques comme Bitcoin et Ethereum. Il se présentait comme une révolution : un “nouveau web” dans lequel lutilisateur retrouverait enfin la maîtrise de ses données et de ses interactions, grâce à des architectures distribuées.
La promesse était séduisante :
se libérer de lemprise des plateformes centralisées du Web2,
remplacer les services classiques par des applications décentralisées (dApps),
redonner à chacun la capacité de posséder et de monétiser ses données,
créer un écosystème où la confiance némane plus dun tiers mais du code.
Pour ses promoteurs, le Web3 représentait donc le chaînon manquant : un web qui ne serait plus capté par des géants privés, ni fragmenté par des États, mais auto-régulé par ses participants.
Lerreur de conception : vouloir tout décentraliser
Cette ambition reposait sur une hypothèse implicite : la décentralisation totale serait non seulement possible, mais désirable. Chaque processus, chaque donnée, chaque fonction du web devait être porté par une blockchain, validé par un consensus, et inscrit dans un registre immuable.
Or, cette hypothèse se révèle être une erreur de design.
Impossibilité technique : tout ne peut pas être inscrit dans une blockchain. Le stockage massif de données, la gestion dapplications complexes, ou même la simple indexation des contenus deviennent vite insoutenables en termes de performance et de coûts.
Non-sens fonctionnel : tout ne gagne pas à être décentralisé. Certaines tâches (ex. : calcul intensif, traitement local, routage de contenu) sont plus efficaces lorsquelles sont traitées de manière distribuée mais non “chaînée”.
Surcharge économique : chaque opération devenait une transaction soumise à des frais (“gas fees”). Au lieu de libérer les utilisateurs, le Web3 a créé une barrière financière imprévisible et parfois prohibitive.
Complexité dusage : wallets, clés privées, tokens multiples. La promesse de simplicité du Web2 a été remplacée par une expérience réservée à une minorité dinitiés.
En voulant tout décentraliser, le Web3 a abouti à linverse de sa promesse : il a recentralisé autour de quelques blockchains dominantes (Ethereum, Binance Smart Chain), tout en créant une dépendance aux intermédiaires (exchanges, wallets custodians) chargés de gérer la complexité pour lutilisateur.
La décentralisation : moyen ou finalité ?
Lerreur fondamentale du Web3 est davoir confondu moyen et finalité.
La finalité nest pas la décentralisation pour elle-même. Cest la résilience : la capacité dun service numérique à continuer de fonctionner malgré les pannes, les attaques ou les pressions politiques et économiques.
Le moyen, parfois, est la décentralisation. Distribuer les fonctions critiques sur plusieurs nœuds, réduire les points uniques de défaillance, éviter la dépendance à un seul acteur.
Mais vouloir “tout décentraliser” revient à créer une usine à gaz, qui perd son sens et son efficacité. Ce qui doit être décentralisé, ce sont les infrastructures critiques : celles qui assurent la sécurité, la souveraineté et la vérifiabilité des données. Le reste peut et doit conserver des logiques de simplicité et defficacité.
Une innovation détournée de son but
Cette confusion a entraîné le Web3 dans une dérive : la multiplication des tokens et des blockchains privées. Chaque projet prétendait incarner une nouvelle couche du web, mais finissait par créer son propre écosystème clos, déconnecté des autres, et centré sur la valorisation spéculative de son jeton.
Ainsi, au lieu de libérer les utilisateurs, le Web3 a créé de nouvelles dépendances :
dépendance aux plateformes déchange pour convertir ou sécuriser les tokens,
dépendance à des protocoles énergivores et coûteux,
dépendance à des gouvernances opaques, souvent concentrées entre quelques investisseurs initiaux.
En dautres termes, le Web3 a produit une illusion de décentralisation, tout en reproduisant, sous une autre forme, les asymétries de pouvoir quil prétendait combattre.
Leçons du Web3
De lexpérience du Web3, deux leçons majeures doivent être retenues :
La décentralisation est un outil, pas un horizon. Elle doit être appliquée là où elle augmente la résilience et la confiance, et non généralisée par dogme.
La simplicité dusage est non négociable. Un modèle qui complexifie lexpérience utilisateur est condamné à rester marginal, quel que soit son intérêt théorique.
Cest sur ce constat que dautres propositions ont émergé, dont le Web5, qui se présente comme une tentative de synthèse entre la simplicité du Web2 et la résilience du Web3.
Le Web5, une provocation assumée
En 2022, Jack Dorsey fondateur de Twitter et PDG de Square (rebaptisé Block) a surpris le monde numérique en annonçant le lancement du Web5. Le choix du nom était en lui-même une provocation. En sautant directement du Web3 au Web5, Dorsey envoyait un message : les labels “Web3” et “Web4” ne sont que des artifices marketing, déconnectés des véritables enjeux architecturaux du web.
En réalité, le terme “Web3” avait déjà été détourné de son usage historique. Dans la littérature académique, le Web3 désignait le “Web sémantique”, proposé par Tim Berners-Lee, et non pas une vague de blockchains et de tokens. Dorsey a donc volontairement ironisé sur cette dérive, en affirmant que son Web5 nétait pas une nouvelle génération mais “une somme : Web2 + Web3”.
Une synthèse : simplicité du Web2, résilience du Web3
Le Web5 se définit avant tout comme une synthèse :
le Web2, pour la simplicité et lexpérience utilisateur fluide. Lidée est de ne pas bouleverser lusage quotidien : les interfaces, les parcours et la convivialité restent identiques.
le Web3, pour la résilience et la souveraineté, mais appliquées de manière ciblée : les données et processus deviennent vérifiables, ancrés dans des mécanismes cryptographiques, et distribués entre pairs.
La proposition est donc de combiner le meilleur des deux mondes : un web simple et familier, mais souverain et vérifiable par conception.
Une architecture en mesh : les relais neutres
Sur le plan technique, le Web5 repose sur une architecture en mesh, cest-à-dire un réseau de relais interconnectés.
Ces relais servent de points de rencontre et de transmission.
Contrairement aux clouds, ils nont aucun pouvoir : ils ne contrôlent pas, ne stockent pas durablement et naccèdent pas aux données.
Leur fonction est limitée à la synchronisation des utilisateurs et à la réplication des preuves cryptographiques.
Cette neutralité repose sur des standards émergents :
DID (Decentralized Identifiers), pour identifier de manière autonome chaque utilisateur, organisation ou service.
VC (Verifiable Credentials), pour attester et vérifier des attributs (identité, droits, certifications) sans dépendre dun tiers central.
En combinant ces briques, le Web5 construit un modèle où lutilisateur reste souverain de bout en bout : il détient ses identités, contrôle ses données et interagit via des relais neutres.
Le rôle de Square/Block : Bitcoin comme horizon
Le projet nétait pas seulement technologique. Il servait aussi une stratégie dentreprise. Square, devenue Block, sest développée sur la base des paiements numériques. Lambition implicite du Web5 était de positionner Bitcoin comme le rail monétaire du nouvel internet.
Dans cette vision, lidentité (DID), les données (VC) et les transactions se rejoignaient dans une architecture où Bitcoin devenait linfrastructure de règlement universelle. Cette orientation a donné au projet une puissance symbolique, mais aussi une limite : en étant trop frontalement associé à Bitcoin, il sest coupé dune adoption plus large, notamment en Europe, où la régulation (MiCA, AML5) impose des contraintes fortes aux crypto-actifs.
Forces et limites du Web5
Forces :
Une critique lucide des impasses du Web2 (captation des données) et du Web3 (illusion de décentralisation totale).
Une architecture pragmatique : relais en mesh, neutres par conception.
Ladoption de standards ouverts (DID, VC) en cohérence avec les travaux académiques sur lidentité décentralisée.
Une vision claire : combiner simplicité et souveraineté.
Limites :
Une dépendance stratégique à Bitcoin, qui restreint luniversalité de la proposition.
Une initiative trop liée à un acteur privé (Block), ce qui a suscité la méfiance de communautés plus ouvertes.
Une difficulté à dépasser le stade de lexpérimentation, faute dun écosystème élargi.
Conclusion : un jalon plus quune fin
Le Web5 doit être compris non comme une “nouvelle génération” du web, mais comme un jalon.
Il a permis de redéfinir la décentralisation non comme une fin mais comme un moyen.
Il a rappelé que la simplicité dusage reste essentielle.
Il a montré la viabilité darchitectures de relais neutres, où linfrastructure na plus de pouvoir sur la donnée.
Cependant, son ancrage trop étroit à Bitcoin et à la stratégie de Square a limité son adoption. Le Web5 nest donc pas laboutissement, mais une étape qui prépare le terrain à dautres propositions, comme 4NK, qui reprennent ses intuitions tout en les émancipant de leurs contraintes.
Solid et Tim Berners-Lee : le rêve contrarié du W3C
Lorigine : du Web sémantique au Web3 académique
Avant que le terme “Web3” ne soit accaparé par lunivers des blockchains et des tokens, il désignait dans les travaux académiques une évolution du web vers plus de sens et dinteropérabilité : le Web sémantique. Tim Berners-Lee, inventeur du web, défendait lidée que les données publiées en ligne devaient être liées et interprétables par les machines, grâce à des standards universels. Lobjectif nétait pas la décentralisation pour elle-même, mais la construction dun web où les applications pouvaient collaborer, interagir et partager de linformation sans barrières.
Le projet Solid sinscrit dans cette filiation. Il reprend lidée que lutilisateur doit redevenir le centre de gravité du web, mais en y ajoutant une dimension politique et éthique : la souveraineté des données personnelles.
Lambition : pods personnels et souveraineté des données
Solid propose un modèle simple mais puissant :
chaque utilisateur possède un espace de données personnel appelé pod (personal online datastore),
il choisit qui peut lire, écrire ou utiliser ces données,
les applications ne “possèdent” plus les données, elles y accèdent temporairement avec le consentement de lutilisateur.
Pour rendre ce modèle viable, Solid sappuie sur des briques techniques issues de la recherche en identité numérique :
les DID (Decentralized Identifiers), permettant à chacun de posséder un identifiant numérique autonome, non dépendant dun fournisseur central,
les VC (Verifiable Credentials), permettant de prouver une information (âge, diplôme, statut) sans révéler lensemble des données personnelles associées.
Ce cadre ouvrait la voie à un web radicalement différent : un écosystème où les données ne sont plus extraites par les plateformes, mais prêtées temporairement par lutilisateur, qui en conserve le contrôle intégral.
Le rôle du W3C : vers un standard universel
Pour donner à Solid une légitimité mondiale, Berners-Lee a placé le projet sous légide du W3C (World Wide Web Consortium), organisme quil avait fondé et qui définit depuis trente ans les standards du web (HTML, CSS, HTTP).
Lidée était claire : faire de Solid et de ses protocoles (pods, DID, VC) de nouveaux standards universels, adoptés par les navigateurs, intégrés dans les applications, et capables de simposer face aux modèles propriétaires.
Si le pari avait réussi, le web aurait pu basculer vers une ère où chaque individu contrôlait réellement son identité numérique et ses données personnelles, dans un cadre ouvert, neutre et interopérable.
Les biais et les freins : GAFAM, États et neutralisation des protocoles
Mais lambition sest heurtée à des forces politiques et économiques considérables.
Les GAFAM (Google, Apple, Facebook, Amazon, Microsoft) ont pesé de tout leur poids au sein du W3C. Leur modèle repose précisément sur la centralisation et lexploitation des données. Adopter Solid et ses protocoles aurait fragilisé leur modèle économique.
Les États ont également exercé une influence. Un standard mondial didentité décentralisée risquait de priver les gouvernements de leur capacité de contrôle sur les identités numériques et les infrastructures critiques.
Le W3C lui-même a montré ses limites : son processus de consensus, censé garantir louverture, sest révélé vulnérable aux intérêts économiques dominants.
Résultat : les protocoles DID et VC, pourtant conçus pour être des piliers dun web souverain, ont été bridés dans leur adoption. Au lieu dêtre pleinement intégrés comme socle du web, ils sont restés confinés à des projets expérimentaux ou à des consortiums restreints.
Héritage : un rêve affaibli mais fondateur
Solid na pas disparu, mais son impact est resté marginal. Les pods personnels nont pas trouvé de déploiement massif, et lidée dune identité universelle, neutre et décentralisée, na pas franchi le seuil critique.
Pourtant, son héritage est majeur. Solid a mis sur la table trois principes essentiels :
La donnée comme bien personnel, et non comme ressource exploitée.
Lidentité comme infrastructure, fondée sur des standards ouverts.
Le web comme commun, où les standards doivent primer sur les plateformes.
Ces principes irriguent aujourdhui les réflexions autour de lidentité décentralisée, des infrastructures souveraines et des alternatives aux clouds centralisés. Ils constituent un point dancrage pour les projets qui, comme 4NK, veulent conjuguer souveraineté, résilience et simplicité.
Archipel : lillusion des blockchains étatiques
Contexte et ambitions
Au milieu des années 2010, la France a cherché à se positionner sur le terrain de la souveraineté numérique. Consciente des risques liés à la dépendance aux GAFAM et aux clouds étrangers, lAgence nationale de la sécurité des systèmes dinformation (ANSSI) et des acteurs publics comme Docapost (filiale du groupe La Poste) ont exploré la possibilité de créer une blockchain souveraine.
Cest ainsi quest née linitiative Archipel. Présentée comme une infrastructure de confiance, Archipel devait fournir aux administrations, aux entreprises et aux collectivités un cadre sécurisé pour ancrer des documents, certifier des transactions et développer de nouveaux services numériques publics.
Lobjectif affiché était double :
garantir que les données sensibles ne transitent pas par des blockchains étrangères (Ethereum, Bitcoin),
affirmer une autonomie française face aux géants technologiques.
Une blockchain étatique
Archipel se présentait comme une blockchain “publique et souveraine”. Elle devait être exploitée par des nœuds répartis entre acteurs publics et partenaires institutionnels, afin de fournir une décentralisation “de confiance”.
En pratique, il sagissait dun compromis : une infrastructure distribuée, mais sous contrôle étatique. Le modèle se voulait un mélange entre :
la transparence et la traçabilité des blockchains publiques,
la gouvernance centralisée dune infrastructure publique nationale.
Le non-sens structurel
Cest précisément ce compromis qui a révélé un non-sens structurel. Une blockchain tire sa résilience et sa légitimité du fait quaucun acteur ne peut en contrôler le fonctionnement. Cest labsence de centre qui crée la confiance.
Or, dans le cas dArchipel :
lÉtat définissait les règles,
lÉtat contrôlait les opérateurs de nœuds,
lÉtat pouvait, en théorie, orienter ou censurer les usages.
Cette contradiction revenait à vider la blockchain de son essence. Archipel nétait pas une décentralisation, mais une recentralisation maquillée. LÉtat, par nature centralisateur, ne peut piloter une infrastructure réellement distribuée sans en détruire le principe même.
Larrêt du projet
Après quelques années dexpérimentation, Archipel a été arrêté. Les raisons avancées étaient multiples :
coûts élevés de maintenance,
faible adoption par les entreprises et collectivités,
difficulté à rivaliser avec les blockchains publiques mondiales déjà massivement adoptées,
absence de modèle économique viable.
Mais la véritable cause tenait à son incohérence de conception : Archipel prétendait être décentralisé, tout en restant sous contrôle dun centre. Cette contradiction a condamné le projet dès son origine.
Enseignements
Léchec dArchipel illustre une leçon fondamentale :
La décentralisation ne peut pas être décrétée par un État.
Lorsquelle est pilotée par une autorité centrale, elle perd sa raison dêtre et devient une infrastructure hybride, coûteuse, inefficace et non crédible.
Cet échec ne doit cependant pas masquer limportance de la question de la souveraineté. Archipel a montré quil existe un besoin réel dinfrastructures de confiance, capables de garantir la sécurité et la résilience. Mais il a aussi montré que la souveraineté ne peut pas être confondue avec la centralisation nationale.
Cest précisément ce que des projets comme 4NK cherchent à résoudre : proposer une infrastructure réellement distribuée, où lÉtat, comme tout autre acteur, peut être un nœud parmi dautres, mais jamais le centre unique de contrôle.
4NK : une infrastructure souveraine, simple et vérifiable
Philosophie générale
4NK naît dun constat : linternet actuel est prisonnier de deux modèles qui se révèlent insoutenables.
Le premier, celui du Web2, a démontré la puissance de lexpérience utilisateur fluide et universelle, mais il repose sur un vice de conception : il fuit les données par défaut et les livre à des plateformes privées qui en tirent une puissance économique et algorithmique colossale.
Le second, celui du Web3, a montré lintérêt des mécanismes cryptographiques distribués, mais a échoué à les rendre pertinents, en voulant tout décentraliser. La décentralisation est devenue un but, alors quelle nest quun moyen.
Le Web5, proposé par Jack Dorsey, a eu lintuition juste dune synthèse : simplicité dusage et souveraineté par des relais en mesh. Mais ce projet est resté dépendant dune stratégie dentreprise (Square/Block), centrée sur Bitcoin comme rail de paiement mondial.
Les expériences institutionnelles, comme Solid (Tim Berners-Lee, W3C) ou Archipel (blockchain française), ont échoué : le premier, biaisé par le poids des GAFAM et des États dans la normalisation ; le second, pris dans le non-sens dune “décentralisation” pilotée par un État centralisateur.
Dans ce contexte, 4NK se définit comme une troisième voie : une infrastructure conçue pour être neutre, distribuée, vérifiable et sobre, où lutilisateur conserve la simplicité du Web2 tout en bénéficiant de la résilience et de la souveraineté promises mais jamais réalisées par le Web3 et ses dérivés.
Principes architecturaux
4NK repose sur une conception claire et minimaliste :
Relais neutres en mesh : linfrastructure se compose de relais interconnectés qui ne contrôlent rien. Contrairement aux clouds, ils nont ni accès ni pouvoir sur les données. Leur fonction unique est la synchronisation et la réplication des preuves cryptographiques.
Utilisateurs souverains : les clés cryptographiques demeurent exclusivement sous le contrôle des utilisateurs. Les données, processus et identités ne peuvent être validés quà travers leur consentement.
Vérifiabilité universelle : chaque action, donnée ou transaction est ancrée et traçable de manière cryptographique. La confiance ne repose plus sur un opérateur tiers, mais sur une preuve vérifiable par tous.
Sobriété numérique : linfrastructure ne nécessite aucun CAPEX supplémentaire, ne déploie pas de centres massifs et ne repose pas sur des clouds étrangers. La résilience est obtenue par la distribution, non par la duplication énergivore.
Expérience utilisateur : continuité du Web2
La conception de 4NK part dun principe cardinal : lutilisateur ne doit pas être confronté à une complexité nouvelle.
Lexpérience reste identique au Web2 : les applications fonctionnent avec fluidité, ergonomie et simplicité.
La gestion des clés, des relais et des preuves cryptographiques est invisible.
Lutilisateur final ne “voit” pas linfrastructure, il en bénéficie.
En ce sens, 4NK ne demande pas de rupture culturelle ou cognitive : il offre la même immédiateté que les services centralisés, mais sans leurs vulnérabilités.
Sécurité et vérifiabilité
La sécurité de 4NK ne repose pas sur la confiance déclarée mais sur des garanties cryptographiques :
Chiffrement intégral : aucune donnée ne transite en clair.
Ancrages distribués : les preuves sont inscrites dans un réseau distribué, et répliquées entre pairs pour empêcher toute falsification.
Absence de fuites par design : contrairement au Web2, où chaque action révèle des métadonnées, larchitecture 4NK est construite pour ne rien exposer qui puisse être exploité sans consentement.
Traçabilité universelle : la vérification est possible sans dépendre dun serveur ou dun opérateur spécifique.
Ce modèle brise le “plafond de verre” qui limite les architectures actuelles : malgré audits et certifications, un système centralisé finira toujours par fuir. Avec 4NK, la fuite est structurellement empêchée.
Une infrastructure de résilience
4NK applique la décentralisation là où elle est utile : dans linfrastructure même.
Les relais en mesh remplacent les points uniques de défaillance.
Les services fonctionnent même si certains nœuds disparaissent.
La souveraineté ne dépend plus dune plateforme ou dun État, mais dune architecture distribuée par conception.
Cette orientation redéfinit la finalité : non pas décentraliser pour décentraliser, mais construire des services numériques résilients.
La troisième voie
En somme, 4NK sinscrit dans une filiation mais aussi dans une rupture :
avec le Web2, il conserve la simplicité dusage mais élimine la fuite des données,
avec le Web3, il conserve la vérifiabilité cryptographique mais rejette la décentralisation totale comme horizon,
avec le Web5, il reprend larchitecture mesh mais sans dépendre dun modèle économique particulier,
avec Solid, il reprend lidée de souveraineté des données, mais sans laisser le W3C ou les GAFAM en brider lambition,
contre Archipel, il refuse lillusion dune décentralisation pilotée par un centre étatique.
4NK incarne ainsi une infrastructure de confiance réellement distribuée, où lutilisateur est souverain, où linfrastructure est neutre, et où la confiance se démontre cryptographiquement, sans dépendre daucune autorité centrale.
Le plafond de verre des infrastructures actuelles et comment 4NK le brise
Le “plafond de verre” de la cybersécurité
Depuis deux décennies, les organisations investissent massivement dans la cybersécurité : audits, certifications ISO, conformité RGPD, solutions de monitoring, pare-feu de nouvelle génération, segmentation des réseaux, cloud de confiance. Pourtant, les fuites de données et les compromissions continuent de se multiplier. Chaque nouvelle amélioration semble retarder léchéance, sans jamais résoudre le problème.
Ce phénomène peut être décrit comme un plafond de verre : un seuil structurel au-delà duquel la sécurité ne progresse plus, même avec les meilleures pratiques.
Les limites des architectures centralisées
Ce plafond de verre nest pas dû à la mauvaise volonté des acteurs ni au manque doutils. Il provient directement de larchitecture même des infrastructures numériques actuelles.
Concentration des données : en centralisant les informations dans quelques silos (clouds, serveurs centraux, bases de données consolidées), on crée des cibles uniques, attractives et vulnérables.
Surface dattaque élargie : plus une plateforme centralise dusages, plus elle concentre de points dentrée pour les attaquants.
Asymétrie de contrôle : lutilisateur na pas la maîtrise effective de ce qui est collecté ou révélé. Même sans attaque, linfrastructure fuit “par design”.
Complexité croissante : pour compenser, on multiplie couches de sécurité, authentifications fortes, audits, ce qui dégrade lexpérience utilisateur et augmente les coûts.
En dautres termes, le Web2 est structurellement vulnérable, car il repose sur une logique de concentration.
Conséquences visibles et invisibles
Les conséquences de ce plafond de verre sont multiples :
Fuites massives : 9 Français sur 10 ont déjà vu leurs données personnelles apparaître sur le dark web.
Pertes économiques : fermetures dentreprises, spoliation industrielle invisible, abandons de paiement en ligne liés à la complexité des procédures.
Perte de confiance : les utilisateurs multiplient les stratégies de contournement (adresses jetables, refus dauthentification, évitement des services numériques).
Poids financier croissant : les dépenses de cybersécurité explosent, mais sans amélioration proportionnelle du niveau de protection.
Ce constat alimente une forme de désillusion collective : la cybersécurité classique ne parvient plus à rassurer ni à protéger durablement.
Vers une identité vérifiable et confidentielle
Pour sortir de cette impasse, lidentité numérique doit répondre simultanément à trois exigences :
Vérifiabilité : tout acteur doit pouvoir vérifier lauthenticité dune identité ou dun attribut (âge, statut, diplôme) sans dépendre dun tiers central.
Confidentialité : les données ne doivent pas être révélées au-delà de ce qui est strictement nécessaire.
Souveraineté : lutilisateur doit rester le seul maître de son identité, sans dépendre ni dune plateforme privée, ni dun État, ni dun registre centralisé.
Une inspiration cryptographique : les adresses silent payment de Bitcoin
Linnovation de Bitcoin ne réside pas seulement dans sa monnaie, mais dans sa cryptographie appliquée aux usages distribués. Parmi ces principes, les adresses dites silent payment offrent une piste précieuse : elles permettent de recevoir un paiement unique sans réutiliser une adresse publique visible.
En dérivant ce principe, il est possible de concevoir une identité confidentielle et vérifiable :
Chaque usage (connexion, signature, échange de document) génère une adresse dérivée unique, qui ne permet pas de relier directement les différentes actions dun utilisateur.
Lidentité maîtresse reste secrète et souveraine, détenue uniquement par lutilisateur.
Les contreparties reçoivent des preuves ponctuelles (credentials vérifiables), limitées au contexte et non réutilisables ailleurs.
Ce mécanisme permet déviter le piège du Web3 (réutilisation dune clé publique traçable) tout en garantissant linteropérabilité et la vérifiabilité cryptographique.
Lidentité comme socle souverain de 4NK
Dans larchitecture 4NK, lidentité numérique devient ainsi le point de départ de tous les usages :
Chaque utilisateur possède une identité cryptographique auto-souveraine.
Les relais du réseau ne voient jamais lidentité complète, seulement des preuves contextuelles.
Les processus métiers (contrats, documents, paiements, signatures) sappuient sur ces identités souveraines, réduisant les fuites et supprimant la dépendance à des registres externes.
Ce modèle établit lidentité comme un bien commun : ni une ressource commerciale pour les plateformes, ni un outil de contrôle pour les États, mais un droit fondamental cryptographiquement garanti.
Comment 4NK brise ce plafond
La proposition de 4NK est de changer larchitecture pour dépasser ce seuil.
Pas de centre, pas de cible unique : linfrastructure repose sur des relais en mesh qui ne stockent ni ne contrôlent les données. Lattaque systémique devient impossible.
Vérifiabilité par conception : chaque action est ancrée et prouvée cryptographiquement. La confiance nest plus déclarative mais démontrable.
Aucune fuite structurelle : contrairement au Web2, aucune métadonnée nest exposée par défaut. Les données circulent uniquement avec le consentement de lutilisateur.
Simplicité maintenue : au lieu de complexifier lexpérience, linfrastructure reste invisible. Lutilisateur bénéficie dune sécurité maximale sans effort supplémentaire.
Sobriété : la résilience est obtenue par la distribution, non par la duplication énergivore ni par laccumulation de couches défensives.
Ainsi, 4NK ne promet pas une sécurité “meilleure” que celle des clouds centralisés, mais une sécurité dun autre ordre : structurelle, démontrable, non dépendante dun tiers.
Conclusion
Le plafond de verre des infrastructures actuelles ne peut être franchi par des ajustements incrémentaux. Il ne sagit pas daméliorer les clouds ou de renforcer les audits, mais de changer de paradigme.
En concevant une infrastructure neutre, distribuée et vérifiable, 4NK propose une rupture : un internet où la sécurité nest plus un service ajouté, mais une propriété intrinsèque de larchitecture.
Vers une économie de la confiance vérifiable : dépasser la capture financière et la centralisation
Le financement des infrastructures du Web2 : de la technique au produit financier
Le Web2 sest construit sur un modèle dinfrastructures massives : datacenters, réseaux mondiaux, plateformes logicielles intégrées. Au départ, ces infrastructures avaient une logique essentiellement technique : offrir aux entreprises et aux particuliers des services accessibles, mutualiser les coûts et accélérer linnovation.
Mais très rapidement, ce modèle sest transformé en produit financier. Les clouds publics et les grandes plateformes numériques ne sont pas de simples opérateurs techniques : ce sont des instruments dinvestissement.
Les CAPEX massifs nécessaires à la construction de datacenters sont financés par des fonds dinvestissement et amortis par des abonnements récurrents.
Les OPEX récurrents (consommation électrique, maintenance, sécurité) sont répercutés aux clients sous la forme de frais opaques : stockage, egress, niveaux de service.
La souveraineté numérique devient un actif privatisé : les infrastructures appartiennent à des acteurs globaux dont les décisions sont guidées par la rentabilité actionnariale.
Ainsi, le modèle du Web2 repose sur une logique de rente permanente. Les utilisateurs et les entreprises ne cessent de payer pour accéder à leurs propres données. Les coûts ne reflètent plus seulement la technique, mais la stratégie financière des investisseurs. La souveraineté est donc captée, non par les États ni par les citoyens, mais par les marchés.
Le Web3 et la centralisation des blockchains de Venture Capital
Le Web3 a prétendu rompre avec cette logique en proposant la décentralisation des infrastructures par la blockchain. Mais en pratique, il a reproduit les mêmes asymétries de pouvoir, sous une nouvelle forme.
La quasi-totalité des blockchains dites “publiques” Ethereum, Solana, Polygon, Avalanche sont en réalité des blockchains de Venture Capital. Leur développement a été financé par des levées de fonds, et leur gouvernance repose sur la concentration des jetons entre quelques investisseurs institutionnels.
Contrôle de fait par les investisseurs : les fonds qui ont financé ces projets possèdent une part significative de la supply de tokens, et donc la majorité des droits de vote.
Infrastructure recentralisée : malgré le discours de décentralisation, une poignée de validateurs concentre la majorité des transactions, souvent opérés par des acteurs spécialisés liés aux mêmes fonds.
Illusion de lindépendance : la gouvernance on-chain se veut collective, mais elle reflète les intérêts financiers des bailleurs plutôt que la souveraineté des utilisateurs.
En dautres termes, le Web3 a remplacé la dépendance aux hyperscalers par une dépendance aux investisseurs privés. Seule une blockchain échappe à ce schéma : Bitcoin, née sans financement initial ni levée de fonds, qui reste la seule infrastructure numérique dampleur mondiale indépendante du capital-risque.
Les initiatives étatiques : la souveraineté décrétée
Face à ces dérives, plusieurs États ont tenté de créer leurs propres infrastructures dites “souveraines”, comme Archipel en France ou Alastria en Espagne. Mais ces projets se sont heurtés à un paradoxe :
des budgets publics massifs engagés en CAPEX pour construire des infrastructures nationales,
une centralisation étatique qui contredit la logique même de la décentralisation,
une faible adoption : les entreprises et collectivités restent méfiantes face à des systèmes imposés, coûteux et sous-utilisés.
Ces initiatives démontrent que la souveraineté ne peut pas être décrétée par le haut. Elle doit être inscrite dans larchitecture elle-même, sinon elle se réduit à une nouvelle forme de dépendance.
Le modèle 4NK : neutralité, sobriété et confiance vérifiable
4NK se distingue de ces modèles par une approche radicalement différente. Plutôt que de transformer linfrastructure en produit financier (Web2), ou en actif spéculatif (Web3), ou en projet budgétaire (États), 4NK conçoit linfrastructure comme un commun technique neutre :
Pas de CAPEX côté client : 4NK sappuie sur les équipements existants, sans déploiement de datacenters supplémentaires.
Pas de rente spéculative : il ne crée pas de jeton gouverné par des investisseurs.
Pas de dépendance étatique : lÉtat peut être un nœud parmi dautres, mais jamais le centre de contrôle.
Des relais neutres : ils ne voient ni ne contrôlent les données, leur seul rôle est la synchronisation cryptographique entre pairs.
Vérifiabilité par conception : la confiance ne dépend pas dune promesse ni dune réglementation, mais dune preuve cryptographique accessible à tous.
En dautres termes, 4NK transforme léconomie numérique : là où les modèles antérieurs reposent sur la dette (financière, énergétique, organisationnelle), 4NK fonde une économie de la preuve sobre, distribuée et indépendante des investisseurs.
Lénergie : de linflation à la sobriété structurelle
Léconomie des infrastructures numériques ne se mesure pas seulement en argent : elle se mesure aussi en énergie. Les modèles dominants ont montré leurs limites.
Web2 Datacenters énergivores : les clouds et plateformes centralisées sappuient sur dimmenses datacenters, nécessitant alimentation continue, refroidissement industriel et redondances massives. Chaque nouveau service se traduit par une croissance exponentielle de la consommation, même lorsque lon tente de “verdir” artificiellement ces infrastructures par de la compensation.
Web3 Inflation énergétique et duplication : les blockchains de preuve de travail comme Bitcoin, et plus encore les blockchains hybrides ou de preuve denjeu, reproduisent une logique de duplication coûteuse. Dans beaucoup de cas, chaque opération est traitée comme un événement à part entière, multipliant inutilement les écritures, donc la consommation. Même les blockchains dites “sobres” restent dépendantes dune réplication intégrale de létat, énergivore par construction.
Initiatives publiques CAPEX lourds et inefficacité énergétique : les blockchains financées par des budgets publics (Archipel, Alastria) ont souvent consisté à recréer des serveurs dédiés, sans bénéfice de mutualisation ni de maillage mondial. Résultat : un coût énergétique non négligeable pour une résilience limitée.
4NK Sobriété par conception : larchitecture de 4NK prend le contre-pied des modèles énergivores. Plutôt que de multiplier des centres de données massifs, elle sappuie sur les équipements existants — postes utilisateurs et serveurs déjà déployés — pour distribuer la résilience. Pas de duplication industrielle inutile, pas de refroidissement mécanique permanent, pas de fermes de calcul. La consommation énergétique marginale est quasi nulle et la résilience découle du maillage naturel du réseau. Surtout, 4NK exploite Bitcoin non pas comme un système de paiement (même si cela reste possible), mais comme un socle dancrage de preuves. La sécurité de Bitcoin est mutualisée : une seule transaction peut servir de racine cryptographique pour certifier un arbre complet de données. Ainsi, des milliards dancrages — documents, identités, processus — peuvent être sécurisés par une unique inscription, bénéficiant de la puissance de calcul colossale du réseau. Le coût énergétique naugmente pas avec le nombre dancrages : il reste constant et se répartit sur lensemble des usages, ce qui fait de cette approche une forme de sobriété structurelle, inscrite dans la conception même de 4NK.
Cette propriété fait de Bitcoin une assise unique : la dépense énergétique massive quil mobilise nest pas dupliquée par chaque utilisateur, elle est partagée et amortie collectivement. En combinant ce socle avec une architecture distribuée sobre (relais en mesh, sans duplication inutile), 4NK parvient à garantir une sécurité maximale avec une empreinte minimale.
Conclusion : sortir de la capture financière et énergétique
Lhistoire récente du numérique révèle une trajectoire claire :
Le Web2 a transformé linfrastructure en produit financier, capté par les fonds dinvestissement et les plateformes, au prix dune dépendance économique et dune consommation énergétique exponentielle.
Le Web3 a prétendu décentraliser, mais la plupart de ses blockchains se sont recentralisées entre les mains du capital-risque, reproduisant les mêmes asymétries de pouvoir, aggravées par une spéculation permanente.
Les initiatives publiques ont échoué à incarner la souveraineté, car une décentralisation décrétée par lÉtat se réduit à une centralisation coûteuse et inefficace.
Sur le plan énergétique, ces modèles entretiennent une inflation continue : datacenters toujours plus massifs, blockchains spéculatives, projets publics redondants.
Dans ce paysage, 4NK introduit une rupture. Son architecture distribue la résilience sur les équipements existants, sans créer de centres énergivores ni de CAPEX lourds. Sa sobriété est une propriété intrinsèque, et non un argument marketing. Surtout, en exploitant Bitcoin comme socle dancrage, 4NK bénéficie dune sécurité mutualisée : une seule transaction peut certifier des milliards dancrages, sans coût énergétique supplémentaire, en héritant de la puissance de calcul colossale du réseau.
Ainsi, là où les infrastructures antérieures reposent sur la capture financière et énergétique, 4NK propose une économie de la preuve : neutre, distribuée, vérifiable, sobre. La souveraineté ne sachète pas, ne se décrète pas, ne se spécule pas : elle se démontre cryptographiquement, et devient une propriété collective du réseau.
Mise en œuvre opérationnelle de 4NK
Principes darchitecture
Larchitecture réseau de 4NK vise à garantir trois propriétés : isolation, résilience, vérifiabilité. Contrairement aux clouds centralisés, où toutes les données transitent par des serveurs propriétaires, 4NK distribue les composants critiques sur les équipements des utilisateurs et les connecte via des relais neutres.
Cette approche repose sur plusieurs zones logiques :
Zone utilisateur : accès par navigateur ou client, sans modification majeure de lexpérience (similaire au Web2) et il réplique la data entre strictement les partie prenantes de ces échanges en directe (pc, téléphones, serveurs strictement ciblés) chiffé par ses clés de ses identité qu'il a lui meme généré (transparent).
Zone relais (mesh) : points de passage cryptographiques qui assurent la transmission mais nont aucun accès aux données.
Zone applicative distribuée : services métiers (API, stockage chiffré, oracles) fonctionnant sur des conteneurs isolés.
Zone blockchain : interaction limitée à Bitcoin pour lancrage de preuves, via des nœuds dédiés qui ne sont pas exposés publiquement.
Les relais neutres : cœur de la résilience
Le relais est un composant central de 4NK. Il assure trois fonctions :
synchronisation entre pairs (partage des ancrages et preuves),
résilience par redondance naturelle (si un relais disparaît, un autre prend le relais),
neutralité : aucun relais ne peut lire ni modifier les données, car tout est chiffré bout en bout.
La neutralité est garantie par design : le relais transporte uniquement des flux chiffrés et des hachages cryptographiques, sans jamais accéder aux contenus.
Intégration des identités souveraines
Chaque utilisateur possède une identité cryptographique souveraine, dérivée dun système proche des silent payments de Bitcoin :
chaque usage (connexion, signature, partage) génère une clé dérivée unique, impossible à relier à lidentité maîtresse,
les relais et services ne reçoivent que des preuves ponctuelles, limitées au contexte,
les identités sont vérifiables (via DID/VC) mais confidentielles, sans exposition massive ni base centralisée.
Ce mécanisme supprime la vulnérabilité des bases didentités centralisées et réduit le risque systémique.
Ancrage sur Bitcoin
4NK sappuie sur Bitcoin non pour gérer des paiements, mais pour ancrer des preuves cryptographiques.
Une seule transaction Bitcoin peut servir de racine cryptographique à un arbre entier de données.
Des milliards dancrages documents, identités, processus peuvent ainsi être certifiés par cette unique inscription.
Le coût énergétique reste constant, car il est mutualisé sur lensemble des usages, bénéficiant de la puissance de calcul colossale du réseau Bitcoin.
Cet ancrage confère à 4NK une sécurité de niveau mondial, indépendante de tout acteur privé ou étatique.
Sécurité et isolation des flux
Les spécifications réseau de 4NK renforcent cette logique :
seuls les ports nécessaires sont exposés publiquement (reverse proxy),
les services critiques (relay, oracle, nœud Bitcoin) sont isolés sur des réseaux dédiés, inaccessibles de lextérieur,
le chiffrement systématique garantit quaucun flux nest exploitable par un intermédiaire.
Ainsi, même si une partie du réseau est compromise, lattaquant ne peut ni accéder aux données ni falsifier les ancrages.
Gouvernance distribuée
La gouvernance de 4NK nest pas centralisée :
chaque organisation ou utilisateur est un nœud,
les relais sont interchangeables et peuvent être opérés par nimporte quel acteur,
aucun acteur unique (ni plateforme privée, ni État, ni consortium) ne peut imposer une décision ou contrôler linfrastructure.
Cette gouvernance distribuée nempêche pas la régulation : elle garantit simplement que la souveraineté de linfrastructure est inscrite dans le design, et ne dépend pas dune promesse politique ou contractuelle.
4NK n'a aucun serveur ni aucune partie prenante dans les infrastructures et services (sauf engagement contractuel explicite et spécifique pour les besoins d'un projet).
Stratégie de déploiement : une migration progressive vers le Web souverain
Un principe : migrer par les usages, non par la contrainte
Les révolutions techniques échouent lorsquelles demandent à tous les utilisateurs de changer brutalement leurs pratiques. La force de 4NK est doffrir une migration indolore, en commençant par des services concrets, déjà familiers, mais portés par une infrastructure nouvelle. La stratégie repose sur un principe simple : apporter immédiatement de la valeur métier, tout en préparant une transformation structurelle.
Première étape : la gestion documentaire souveraine (Docv)
Le premier cas dusage est la GED souveraine. Docv permet aux entreprises, professions réglementées et collectivités de gérer, archiver et certifier leurs documents sans dépendre de serveurs centralisés.
Valeur immédiate : conformité réglementaire (RGPD, NIS2, NF 461), archivage probatoire, confidentialité renforcée.
Différenciation : “infrastructure sans infrastructure” Docv fonctionne sur les équipements existants, sans CAPEX supplémentaire.
Impact stratégique : démontrer que la migration peut se faire par services, sans rupture dusage ni complexité pour lutilisateur.
Docv constitue donc la porte dentrée vers lécosystème 4NK.
Deuxième étape : messageries chiffrées et communications souveraines
La communication constitue le deuxième pilier. Les messageries actuelles (WhatsApp, Gmail, Teams) reposent toutes sur des serveurs centraux. Même lorsquelles sont chiffrées de bout en bout, la métadonnée (qui parle à qui, quand, où) reste exploitée par les opérateurs.
Lapproche 4NK consiste à déployer des messageries chiffrées souveraines, reposant sur les relais neutres du réseau :
aucun serveur central ne détient lhistorique,
chaque utilisateur reste souverain de ses clés,
les messages sont synchronisés par le maillage 4NK, sans possibilité danalyse de trafic par une plateforme.
Cette étape élargit lusage de 4NK au-delà du document : elle installe la confiance dans la communication quotidienne.
Troisième étape : traçabilité distribuée et probatoire
Une fois les documents et les communications sécurisés, la stratégie sétend aux chaînes de valeur : logistique, industrie, santé.
Chaque événement (facture, bon de livraison, mesure médicale, transaction administrative) est ancré dans le réseau.
La preuve est vérifiable par tout acteur, sans dépendance à une base centrale.
La traçabilité devient distribuée et probatoire, et non plus déclarative.
Ce déploiement répond à des besoins critiques, renforcés par les réglementations (facturation électronique 2026, traçabilité sanitaire, audits ISO).
Quatrième étape : moyens de connexion et didentification innovants
Aujourdhui, lun des points de friction majeurs du Web est lauthentification : mots de passe multiples, bases de données compromises, complexité croissante.
Larchitecture 4NK introduit des moyens de login souverains :
identités auto-souveraines (DID) vérifiables,
dérivées cryptographiques inspirées des silent payments de Bitcoin, qui génèrent une adresse unique par usage, impossible à relier à lidentité maîtresse,
authentification fluide, sans mot de passe, et sans collecte centralisée didentifiants.
Ce modèle permet à la fois la simplicité du Web2 et la souveraineté cryptographique : chaque utilisateur contrôle son identité et choisit ce quil révèle.
Cinquième étape : paiements intégrés et décentralisés
Le dernier levier de migration est celui du paiement. Le Web actuel repose sur des systèmes centralisés (Visa, Mastercard, Stripe, PayPal), coûteux, opaques et soumis à des régulations hétérogènes.
4NK propose des paiements désintermédiés, intégrés dans son infrastructure :
micropaiements fluides pour accéder à des services numériques,
règlement pair à pair sans dépendance à un processeur central,
ancrage sur Bitcoin pour bénéficier de la sécurité mutualisée, sans imposer son usage direct à lutilisateur.
Lobjectif nest pas dimposer une monnaie, mais de rendre les paiements invisibles, sûrs et universellement vérifiables, comme le reste de linfrastructure.
Une trajectoire de migration progressive
Cette stratégie suit un chemin clair :
Docv (GED) sécuriser les documents.
Messageries chiffrées sécuriser les communications.
Traçabilité distribuée sécuriser les chaînes de valeur.
Identités souveraines sécuriser la connexion et laccès.
Paiements intégrés sécuriser les transactions économiques.
Impacts macro-économiques et sociétaux dune migration vers un web souverain
Un enjeu de compétitivité industrielle
Le numérique centralisé actuel fragilise directement la compétitivité des entreprises :
Pillage industriel invisible : les données circulant par les clouds étrangers alimentent des concurrents mondiaux, capables de copier innovations, stratégies et procédés.
Coût croissant de la conformité : audits, certifications et sécurisations ajoutées sur des infrastructures centralisées gonflent les coûts sans supprimer les vulnérabilités.
Dépendance technologique : les entreprises européennes bâtissent leurs services sur des plateformes américaines ou asiatiques, perdant ainsi leur autonomie stratégique.
Avec 4NK, la souveraineté structurelle des infrastructures supprime ces dépendances. Les données restent sous contrôle des utilisateurs, vérifiables mais inaccessibles à des tiers. Les coûts de sécurité deviennent prévisibles et soutenables. Linnovation ne fuit plus par défaut : elle peut être monétisée et valorisée localement.
Un levier pour lemploi et lécosystème numérique
Le modèle du cloud et des blockchains de VC concentre la valeur dans quelques hubs (Silicon Valley, Asie). Les entreprises utilisatrices deviennent captives, mais la richesse créée ne reste pas sur le territoire.
Un modèle distribué comme 4NK réinjecte la valeur dans les tissus locaux :
emplois de proximité : intégration, accompagnement, formation des entreprises et collectivités, plutôt que gestion de datacenters lointains ;
écosystème diversifié : chaque acteur (collectivité, PME, administration) peut devenir opérateur de relais, acteur de confiance, fournisseur de services complémentaires ;
soutien à la filière européenne : interopérabilité avec les standards ouverts et indépendance face aux fonds de capital-risque étrangers.
Ainsi, la migration vers 4NK crée un effet multiplicateur économique : moins de fuite de capitaux, plus de valeur retenue localement.
Une réponse aux crises de confiance sociétales
Aujourdhui, la défiance vis-à-vis du numérique saccroît :
9 Français sur 10 ont déjà vu leurs données circuler sur le dark web ;
les contrôles didentité massifs exposent les citoyens à des risques physiques (fraudes, séquestrations, usurpations) ;
les dispositifs de lutte contre le blanchiment (AML), très intrusifs, nont dimpact que sur 0,02 % des flux illicites.
La conséquence est une perte de confiance généralisée : les citoyens hésitent à utiliser les services numériques, et les institutions peinent à légitimer leurs politiques.
Avec 4NK, la confiance est vérifiable :
lidentité devient auto-souveraine et confidentielle,
aucune base centralisée ne peut être massivement compromise,
chaque usage produit une preuve locale, réutilisable sans divulgation excessive.
Ce modèle restaure une confiance structurelle, non par des promesses ou par la coercition, mais par la cryptographie.
Sobriété et résilience collective
Le numérique actuel repose sur une dette énergétique croissante : datacenters massifs, duplication inutile des données, blockchains énergivores. Cette trajectoire est incompatible avec les objectifs de sobriété et de résilience écologique.
4NK, au contraire, introduit une sobriété par conception :
réutilisation des équipements existants,
absence de duplication industrielle,
sécurité mutualisée via Bitcoin (une transaction ancre des milliards dusages).
Ainsi, la transition numérique peut enfin se concilier avec les impératifs écologiques.
Risques et limites de 4NK
Si larchitecture 4NK apporte une rupture en matière de sécurité, de souveraineté et de sobriété, elle nest pas exempte de défis ni de limites :
Maturité et adoption : comme toute innovation structurelle, son efficacité dépend dune masse critique dutilisateurs et de relais. La période de transition peut générer une coexistence complexe avec les infrastructures traditionnelles.
Responsabilisation des utilisateurs : en redonnant aux individus et aux organisations la maîtrise de leurs clés et de leurs identités, 4NK supprime les points de défaillance centralisés mais introduit un besoin déducation et daccompagnement. Sans bonnes pratiques, la souveraineté peut devenir vulnérabilité.
Interopérabilité réglementaire : la conformité avec certains cadres légaux (AML, KYC, eIDAS, etc.) suppose un dialogue constant avec les régulateurs, afin déviter que les institutions exigent des modèles centralisés incompatibles avec lapproche distribuée.
Dépendance partielle au socle Bitcoin : bien que lancrage soit mutualisé et énergétiquement stable, il existe une dépendance indirecte à la résilience du réseau Bitcoin lui-même.
Résistance des acteurs établis : les clouds, plateformes et blockchains de VC disposent de moyens financiers et politiques considérables pour freiner ladoption dun modèle qui réduit leur rente.
Ces limites ne remettent pas en cause la pertinence de 4NK, mais elles imposent une stratégie de déploiement réaliste, progressive et accompagnée, ainsi quun effort pédagogique majeur.
Conclusion : un choix de société et de raison
La migration progressive vers une infrastructure distribuée, neutre et vérifiable nest pas une option technique secondaire : cest un choix de société et de raison.
Rester prisonnier du modèle actuel clouds centralisés, blockchains de Venture Capital, initiatives étatiques lourdes signifie accepter un internet moins sûr (fuites structurelles), plus coûteux (rente financière et énergétique), plus complexe (multiplication des couches de sécurité, logins et conformités), et moins souverain (captation par des acteurs privés ou centralisation politique).
Adopter 4NK, au contraire, cest choisir un modèle plus sécurisé (par design, sans bases centralisées à compromettre), moins cher (pas de CAPEX massifs, coûts dexploitation stables, réduction du coût attendu des fuites), parfois plus simple (expérience identique au Web2, sans complexité de gestion pour lutilisateur), et plus souverain (aucune capture par le capital-risque ou par un État centralisateur, une souveraineté garantie par la cryptographie).
En ce sens, 4NK nest pas seulement une innovation technologique, mais une alternative rationnelle : une infrastructure qui répond simultanément aux exigences de sécurité, de coût, de simplicité et de souveraineté, et qui incarne une nouvelle économie politique du numérique une économie de la preuve et de la confiance vérifiable.

165
docs/manifest_en.md Normal file
View File

@ -0,0 +1,165 @@
4NK: A third way for a sovereign, frugal, and verifiable web
4NK: a web that is simpler, cheaper, more reliable, and sovereign.
Summary
Today, the internet faces a structural crisis. On one side, Web2 brought ease of use but rests on a centralized architecture that leaks data by default. Every interaction generates metadata captured and exploited by private platforms. This has led to an exploited internet, where users have lost control of their information. On the other side, States tried to react with fragmentation: sovereign clouds, national rules, national public blockchains. But that produces a balkanized network: closed, monitored, incompatible internets that do not restore trust.
Web3, supposed to be the alternative, failed. It tried to decentralize everything, creating new complexities: wallets, tokens, transaction fees, dependence on a few dominant blockchains. Web5, initiated by Jack Dorsey, had the right intuition: combine the simplicity of Web2 and the cryptographic resilience of Web3. But it remained limited by its reliance on Bitcoin as a forced, single monetary rail.
This is the context in which 4NK appears. 4NK is not a marketing layer nor yet another blockchain. It is a distributed, frugal, and verifiable infrastructure: a third way.
Our principles are clear:
- Neutral mesh relays: they control nothing, store nothing, surveil nothing. They only synchronize and replicate cryptographic proofs.
- User sovereignty: keys, data, identities remain exclusively under users control.
- Universal verifiability: every action is anchored and cryptographically traceable, without relying on a third party.
- Digital frugality: no heavy infrastructure, no foreign cloud, no extra CAPEX. Resilience comes from distribution, not energyhungry duplication.
Concretely, the experience stays identical to Web2: same simplicity, same fluidity. Under the hood, no structural leaks, no dependence on platforms or States. 4NK enables:
- securing messaging, documents, and any digital flow,
- immutable anchoring and timestamping of proofs,
- sovereign and portable digital identity,
- simpler payments and interactions,
- regulatory compliance without massive data exposure.
In short, 4NK breaks the cybersecurity glass ceiling. Where centralized infrastructures inevitably leak despite audits and certifications, 4NK makes leakage impossible by design. It is an infrastructure of resilience, where the user is sovereign, where trust rests on proofs, and where the internet regains its universality without being exploited or fragmented.
4NK, the third way: a sovereign, simple, frugal, and verifiable web.
Rollout plan
4NK deploys its technology in stages: first to regulated professions and critical sectors (notaries, logistics, health), then through isolated modules distributed by integrators and operators to reach SMEs and municipalities. By 20272030, the ambition is a European expansion based on a “noinfrastructure” distributed model, combining sovereignty, frugality, and accessible regulatory compliance for all digital services, everywhere, in open source.
An exploited and fragmented internet: between economic asymmetry and political partition
The original promise diverted
The internet was born from a clear ambition: connect heterogeneous networks to enable free and universal circulation of information. It was meant to be a neutral, inherently distributed space that encouraged scientific cooperation, communication between individuals, and ultimately social and economic innovation.
Thirty years on, that original project has been deeply altered. The global network is trapped in a double deadend: on one side, exploitation by private infrastructures that turn it into a tool for capture and surveillance; on the other, its progressive partition by States trying to fragment it to regain control. This dual movement has transformed the web into a structurally insecure space where the user has neither real control of their data nor any guarantee of neutrality.
Structural exploitation of Web2
Web2 relies on a clientserver architecture that places user data at the heart of centralized platforms. This brought unprecedented ease of use and accessibility. However, this convenience is inseparable from a design flaw: Web2 was made to leak data by default. Each interaction generates flows of information that produce a mass of invisible metadata. These traces reveal behaviors, profiles, and preferences and are exploited to fuel business models based on targeted advertising, algorithmic recommendation, and data resale.
Economic and societal consequences
- Company closures caused by massive leaks or cyberattacks
- Visible degradation of trust: daily lists of massive breaches
- Invisible industrial pillage of strategic data
- User experience complexity: multiple logins, passwords, heavy 2FA
- Revenue loss in payments: costly centralized rails
- Digital identity crisis
State fragmentation: the other deadend
Sovereign clouds, localization rules, “trusted” infrastructures produce a balkanized network: incompatible, closed, and surveilled internets that replace universality with archipelagos.
A structural double failure
- Web2 yields an exploited internet where value is captured by private infrastructures
- State attempts produce dystopian, fragmented internet
Identity as the keystone of sovereign uses
Identity has become the keystone of all uses: login, sign, pay, access services, exchange data. Without robust, usercontrolled identity, no digital sovereignty is possible.
Current limits and contradictions
- Centralized identity registries inevitably leak
- Surveillance mechanisms are invasive and inefficient
- Expanding ageverification builds highly sensitive databases of childrens identities
A rising systemic cost: insecurity, dependence, fragile infrastructures
- Business bankruptcies caused by compromise
- Invisible pillage of intellectual property
- Compliance and security cost inflation without added value
- Citizens: distrust, cognitive overload, digital exclusion
- States: balkanization and illusory sovereignty
The vicious circle: more leaks → less trust → more defensive layers → more complexity and costs → leaks continue
4NK as a way out: change the infrastructure itself
- For businesses: make structural leakage impossible
- For citizens: Web2like simplicity with sovereign identity and data
- For States: an alternative to fragmentation with a neutral distributed infrastructure
Why Web3 failed (and what to keep)
- You cannot put everything on a blockchain; not everything benefits from decentralization
- Gas fees create economic friction; UX becomes complex
- Recentralization around a few dominant chains and custodial intermediaries
- Decentralization is a means, not an end. The end is resilience
Web5 and Solid taught valuable lessons but were constrained by governance, politics, or an overly narrow strategic alignment. 4NK learns from these paths while avoiding their limits.
4NK: sovereign, simple, verifiable infrastructure
Architectural principles:
- Neutral mesh relays that control nothing and only synchronize proofs
- Sovereign users: keys remain exclusively with users
- Universal verifiability: every action is anchored and traceable
- Frugal by design: no extra CAPEX, no foreign clouds
User experience: continuity of Web2
- Keep UX identical to Web2 while making the infrastructure invisible
Security and verifiability
- Endtoend encryption, distributed anchoring, no metadata leakage by design, universal traceability
A resilience infrastructure
- Remove single points of failure; services continue even as some nodes disappear
The “third way” in practice
- Keep Web2 simplicity, remove data leakage
- Keep Web3s cryptographic verifiability, reject “decentralize everything”
- Mesh relay architecture without private capture or state control
Breaking the glass ceiling
Centralization concentrates data, expands attack surface, and forces endless defensive layers. 4NK replaces declared trust with provable trust and eliminates structural leakage by design while maintaining simplicity and frugality.
Economy of verifiable trust
- Web2: infrastructure turned into financial product (rents)
- Web3: tokencentric, VCdominated blockchains
- State projects: costly, controlled, weakly adopted
- 4NK: neutral common infrastructure, no CAPEX clientside, no token rent, no state control, proofs by design
Energy sobriety
- Reuse existing equipment; no industrial duplication
- Use Bitcoin as a shared anchoring layer: one transaction can certify billions of anchors via Merkle aggregation; cost does not scale with usage
Operational implementation
Zones:
- User zone (browser/client)
- Relay zone (mesh)
- Distributed application zone
- Bitcoin anchoring zone
Relays: synchronize anchors, provide redundancy, remain blind by design
Sovereign identities
- Derivation peruse (inspired by silent payments) → unlinkability
- Verifiable yet confidential credentials
Anchoring on Bitcoin
- One Bitcoin transaction as cryptographic root for entire data trees → global security without peruse energy inflation
Security and isolation
- Minimal exposure (reverse proxy), isolated critical services, systematic encryption
Distributed governance
- Any organization/user can run nodes; no single actor can impose decisions
Deployment strategy (progressive migration)
1) Sovereign document management (Docv)
2) Encrypted messaging and sovereign communications
3) Distributed, probative traceability across value chains
4) Innovative identity and login methods (passwordless, derived addresses)
5) Integrated, decentralized payments (micropayments, P2P, Bitcoinanchored)
Macroeconomic and societal impacts
- Industrial competitiveness: end of data pillage, predictable security costs, local value capture
- Jobs and ecosystem: local integration and support, diversified operators, European independence
- Restoring trust: verifiable identity, no massive registries, proofs without overexposure
- Ecological sobriety: minimal marginal energy through distribution and shared Bitcoin anchoring
Risks and limits
- Maturity and adoption thresholds
- Responsibility shift to users for key management (needs education)
- Regulatory interoperability (dialogue to avoid forced centralization)
- Indirect dependence on Bitcoins resilience
- Resistance from entrenched actors
Conclusion
Migrating to a distributed, neutral, and verifiable infrastructure is not a secondary technical option: it is a rational societal choice. 4NK offers an infrastructure where security is a property of the architecture itself—provable, sovereign, frugal—making the internet simpler, cheaper, and more trustworthy.

85
docs/power_again.md Normal file
View File

@ -0,0 +1,85 @@
Tribune : la solution française pour reprendre le contrôle avec un numérique souverain et sobre
4NK : le web plus simple, moins cher, plus fiable et souverain.
Introduction
Les cyberattaques sont devenues lune des premières causes darrêt dactivité pour les organisations européennes. Chaque semaine, des entreprises, des collectivités et des institutions de toutes tailles se retrouvent paralysées par des ransomwares. Pourtant, toutes avaient investi massivement dans des infrastructures réputées fiables : clouds publics internationaux, clouds souverains, API mutualisées, services managés.
Le constat est implacable : les architectures hypercentralisées ne garantissent plus ni sécurité, ni souveraineté, ni fiabilité.
Selon lENISA, plus de 60 % des incidents majeurs en Europe en 2022 concernaient des fournisseurs de services cloud ou API tiers, dont la compromission affectait en cascade des milliers de clients. Le site bonjourlafuite.eu.org, qui recense quotidiennement les fuites de données, illustre lampleur du phénomène : Microsoft 365, Google Workspace, OVH, mais aussi des clouds régionaux ou des API didentité nationale ont été victimes dexfiltrations massives.
Le problème nest pas seulement américain. Il est structurel : tout cloud, toute API centralisée concentre les risques, attire les attaques et ouvre la voie à la surveillance. Les failles techniques se doublent dingérences politiques et commerciales. Ainsi, le Cloud Act américain (2018) oblige tout prestataire US à fournir les données quil héberge, y compris celles des Européens, tandis que larrêt Schrems II de la CJUE (2020) a confirmé lincompatibilité de ces pratiques avec le RGPD. Mais en parallèle, des prestataires européens ont eux aussi été critiqués pour leurs failles, leur dépendance cachée à des technologies non-européennes, ou leur incapacité à garantir une traçabilité transparente.
Un numérique devenu invérifiable et manipulé
La crise est aussi épistémologique. Avec lessor de lIA générative, distinguer un vrai document dun faux devient quasiment impossible. Contrats falsifiés, identités usurpées, deepfakes indétectables : chaque donnée peut être altérée en quelques secondes.
Parallèlement, le modèle économique dominant repose sur la captation et lexploitation systématique des données. Les plateformes et certains États utilisent la surveillance de masse pour manipuler les comportements, orienter les décisions ou imposer des scores sociaux et économiques. La souveraineté numérique de lEurope, et même la légitimité de ses institutions, se trouvent compromises.
La rupture apportée par 4NK : décentralisation et sobriété
La réponse ne réside pas dans « plus de cloud » ou « plus dAPI », mais dans moins de dépendance, plus de contrôle, et davantage de sobriété.
Cest lapproche de 4NK, qui développe une infrastructure Web 5.0, conçue pour briser les verrous de la centralisation grâce à plusieurs innovations radicales :
Décentralisation des droits
Les accès et permissions ne sont plus gérés par un serveur maître mais répartis entre les appareils des utilisateurs. Les règles sont publiées, signées et vérifiées en pair-à-pair. Aucun administrateur central ne peut altérer ou détourner les droits.
Stockage sans cloud ni API centralisée
Les fichiers ne passent jamais par un point unique de contrôle. Ils sont chiffrés, stockés localement ou dans un réseau distribué temporaire, puis validés côté client. Aucun service externe, aucune API propriétaire, aucun SPOF (single point of failure).
Validation côté client
Chaque transaction, identité ou document est vérifié directement par lappareil de lutilisateur grâce à un SDK cryptographique. Ce nest pas une « confiance en tiers » mais une preuve vérifiable en un clic. Contrairement au Web 3.0 dépendant de blockchains coûteuses, il sagit ici dune validation légère et universelle, intégrable partout.
Cartographie souveraine des données
Chaque utilisateur définit lui-même une carte de ses données :
quelles données existent,
qui peut y accéder,
selon quelles règles,
avec quelle durée de validité.
Ces règles sont inscrites cryptographiquement dans le protocole, et ne peuvent être ni modifiées ni contournées par les infrastructures. Les serveurs et réseaux ne voient ni le contenu, ni les métadonnées, ni même les relations entre utilisateurs : ils ne transportent que des flux chiffrés, validés côté client.
Dans ce modèle, les infrastructures nont aucun pouvoir : elles relaient et stockent temporairement, sans jamais accéder aux clés, aux règles, ni aux usages. Lintégralité du pouvoir normatif est déplacée vers les utilisateurs, qui deviennent les véritables régulateurs de leurs données.
Simplification radicale
Connexion sans mot de passe : appairage par clé cryptographique, sans gestion didentifiants centralisés.
Paiement désintermédié : facturation en jetons probatoires, ancrés sur Bitcoin, sans intermédiaires bancaires lourds.
Vérification instantanée : document, signature, transaction tout peut être prouvé par son hash, immédiatement vérifiable par nimporte qui.
Comparaison avec les clouds centralisés
Contenu de larticle
Vers une domination inévitable
Cette rupture crée un nouveau territoire numérique :
moins cher,
plus simple,
plus sûr,
juridiquement souverain,
écologiquement sobre.
À terme, les géants actuels, prisonniers de leur modèle centralisé, ne pourront rivaliser. Leur sécurité reste fragile, leur coût élevé, leur gouvernance opaque. Lhistoire nous enseigne quaucun modèle centralisé ne résiste longtemps à larrivée dune alternative distribuée : le Minitel a cédé face au Web, et demain, le cloud centralisé cédera face au Web 5.0 souverain et vérifiable.
Une alternative existe déjà
Face à ce constat, il serait facile de croire quun tel modèle nest quune utopie théorique. Pourtant, la solution existe, elle est française, et elle sera ouverte en open source dès la fin de lannée : il sagit de 4NK.
Construit depuis plusieurs années sur une base technologique radicalement différente des clouds et API centralisées, 4NK propose dès aujourdhui un premier produit opérationnel : Docv, une GED souveraine et sobre déjà adoptée par les notaires et des PME de la logistique. Ces premières intégrations métiers prouvent que le modèle fonctionne, quil répond à des besoins critiques, et quil peut être déployé sans complexité, sur les équipements existants.
Une stratégie de déploiement massif
Une technologie, aussi radicale soit-elle, ne transforme le monde que lorsquelle se déploie largement. La vision de 4NK repose sur une stratégie progressive mais massive : commencer par des cas dusage probants, démontrer leur robustesse, puis généraliser lapproche.
Via l'intégration chez les éditeurs phares, les syndicats et les groupements de professionnels, les TPE, PME et collectivités locales accèdent à cette souveraineté numérique par la voie la plus immédiate : la gestion électronique de documents (GED) pour sécuriser l'ensemble des flux métier. Dans ce cadre, la technologie 4NK assure à moindre coût la confidentialité, lintégrité et la traçabilité des dossiers sensibles : marchés publics, factures, contrats, délibérations ou archives. Là où les solutions cloud classiques exposent les données à des failles, des dépendances tarifaires ou des ingérences, la GED souveraine fondée sur 4NK permet à chaque organisation, même modeste, de retrouver la maîtrise totale de ses flux.
Les grands comptes bénéficient, eux, dune suite plus large doutils et de services développés par des intégrateurs et éditeurs partenaires sappuyant sur 4NK comme socle. Ces solutions couvrent un spectre complet : messageries chiffrées en mesh, stockage distribué, gestion décentralisée des identités et des droits, intégration doracles dancrage probatoires, et bientôt intelligence artificielle locale, exécutée sans exposition des données à des clouds externes. Autrement dit, la sécurité, la confidentialité et la souveraineté ne sont pas des options mais des caractéristiques natives de ces environnements.
Et fin septembre un SaaS grand public et professionnel, ouvrant un accès simplifié à cet espace numérique souverain, sobre et interopérable, sans CAPEX ni complexité dintégration.
Ainsi, la stratégie nest pas de répliquer le modèle des clouds dominants en créant une infrastructure centralisée de plus, mais au contraire de tisser un réseau distribué dusages concrets, où chaque acteur quil soit une petite entreprise, une collectivité ou un grand groupe devient un nœud souverain du Web 5.0. Les messageries chiffrées, les espaces documentaires probatoires et les IA locales ne sont pas des add-ons, mais des composantes natives, garanties par la cryptographie et vérifiables en un clic.
Ce maillage progressif crée un écosystème où la confiance ne dépend plus dun prestataire mais dune preuve distribuée. Une fois établi, il ouvre un territoire numérique où lEurope peut enfin conjuguer sécurité, indépendance et sobriété.
Conclusion
Il est temps pour lEurope de reprendre le contrôle. Les dérives documentées espionnage, fuites massives, dépendance aux clouds et API centralisées montrent que notre modèle actuel est insoutenable.
Les solutions distribuées existent. Elles sont plus sûres, plus sobres, plus simples. Elles offrent une cartographie des données où seul lutilisateur définit les règles, et où les infrastructures nont aucun pouvoir.
Le choix est clair : continuer à subir un numérique invérifiable, énergivore et sous tutelle, ou construire un numérique souverain et sobre, fondé sur la cryptographie distribuée, la vérifiabilité universelle et la souveraineté individuelle des données.

144
docs/storage_story.md Normal file
View File

@ -0,0 +1,144 @@
Comment 4NK s'incrit dans lhistoire et lavenir du stockage des données : vers une distribution et une ouverture sans captation
4NK : le web plus simple, moins cher, plus fiable et souverain.
Introduction
Lhistoire du stockage des données est celle dun long mouvement dabstraction : à chaque rupture technique, la complexité sefface derrière une expérience plus simple et plus fluide. Les systèmes de fichiers ont rendu les données manipulables, les formats universels les ont rendues partageables, les bases relationnelles les ont rendues interrogeables, et le big data les a rendues exploitables à léchelle planétaire. Chaque étape a donc été à la fois invisible dans son infrastructure et révolutionnaire dans ses usages, consacrant de nouveaux géants capables dexploiter cette asymétrie.
Ainsi, si lon observe bien une tendance générale vers plus de distribution et plus douverture, elle est demeurée incomplète : louverture concernait surtout les formats et linteropérabilité, la distribution servait principalement à la scalabilité. Ni la sécurité intrinsèque des données, ni la souveraineté sur les métadonnées nont réellement accompagné cette progression.
Pourtant, cette histoire linéaire et triomphante dissimule aussi des zones dombre. Deux dimensions majeures sont longtemps restées les parents pauvres de lévolution du stockage :
La sécurité : si les données ont gagné en accessibilité et en rapidité, leur intégrité et leur protection nont pas suivi le même rythme. Les premiers systèmes de fichiers offraient des mécanismes rudimentaires de permissions, les bases relationnelles introduisaient le contrôle daccès, mais la sécurisation systématique — cryptographie native, auditabilité, résilience face aux attaques — est restée secondaire face à la priorité donnée à la performance et à la commodité.
La protection contre la captation des métadonnées : plus encore que les données elles-mêmes, ce sont leurs traces — qui a accédé, quand, depuis où, dans quel contexte — qui ont été exploitées massivement par les plateformes. Or, ces métadonnées nont jamais bénéficié du même soin : invisibles pour lutilisateur, elles sont devenues une ressource stratégique pour la publicité, la surveillance et la concentration de pouvoir.
Cela s'explique par plusieurs raison :
Techniquement, les priorités étaient ailleurs (performance, scalabilité, simplicité dusage) ; et le chiffrement de la donnée stockée, vue comme une fin en soi ;
Economiquement, les modèles daffaires des acteurs dominants reposaient justement sur la collecte et lexploitation des métadonnées ;
Politiquement et sociétalement, ni les usagers ni les régulateurs nont exigé tôt une protection structurelle, laissant la captation devenir la norme; la militariation, l'espionnage et le contrôle aussi, par ce biais.
Mais les limites de ces manquements sont réelles et plus criantes encore aujourd'hui :
Limites techniques Sur le plan technique, la nécessité croissante de sécurisation devient paradoxalement un frein à lefficacité et à la concentration. La multiplication des protocoles de protection et des vérifications détourne une part importante des ressources humaines et computationnelles. Les attaques ciblant la supply chain démontrent que les vulnérabilités ne résident plus seulement dans les systèmes centraux mais dans lensemble de lécosystème interconnecté, rendant la protection exhaustive quasiment impossible. Les fuites répétées de données, quelles proviennent de négligences internes ou dexfiltrations organisées, accentuent la perte de confiance. À cela sajoute un phénomène récent deffacement ou dindisponibilité croissante des données sur le web, réduisant la capacité de vérification et daccumulation de connaissances.
Limites économiques Sur le plan économique, lévolution actuelle se heurte à lexplosion des coûts énergétiques nécessaires au fonctionnement des infrastructures numériques à grande échelle. Le déploiement massif de centres de données, dIA et de réseaux engendre une consommation délectricité difficilement soutenable. Les coûts matériels suivent la même dynamique, avec une dépendance accrue à des composants critiques (semi-conducteurs, terres rares) dont lapprovisionnement reste limité et vulnérable. Enfin, les failles de sécurité ont un impact budgétaire considérable : vols, interruptions de service, rançongiciels et réparations se traduisent en pertes directes mais aussi en investissements croissants dans une sécurité toujours imparfaite.
Limites politiques Sur le plan politique, la souveraineté numérique devient un enjeu central, mais la fragmentation mondiale complique lémergence de normes stables et partagées. Les infrastructures critiques et les données se trouvent ainsi soumises à des législations contradictoires et à des rivalités de puissance. Ce contexte nourrit des dérives dystopiques, allant de la surveillance de masse aux manipulations informationnelles, fragilisant la liberté et la confiance publiques. Parallèlement, labsence de mécanismes fiables de certification des preuves numériques rend incertain le fonctionnement des institutions, quil sagisse de justice, de régulation ou de gouvernance internationale. Larticulation entre innovation, protection des libertés et stabilité institutionnelle demeure ainsi profondément précaire.Le "Cloud" est une expression tout à fait manifeste de dépocession des supports physiques vers non pas des nuages mais des géant de l'industie numérique.
Cest ce déficit historique sur la sécurité et la protection de la captation des métadonnées qui rend aujourdhui nécessaire une approche nouvelle : replacer lidentité et la validation côté client au cœur du cycle de vie de la donnée, pour intégrer la sécurité et la souveraineté dès larchitecture et physiquement opérée hors cloud, hors éditeurs, pour par les utilisateurs, souverains entre eux, depuis leurs ressources inutilisées.
Voici donc une petite retrospective
1960-1980 Les systèmes de fichiers hiérarchiques qui ont permis à IBM, Microsoft et Apple de démocratiser linformatique
Technique : introduction des systèmes FAT (1977), HFS (1985) et ext (1992). Organisation hiérarchique des fichiers et masquage de la gestion bas niveau.
Usage : les utilisateurs manipulent pour la première fois directement leurs fichiers et dossiers, avec une interface accessible.
Business : IBM reste dominant sur le mainframe, Microsoft étend son pouvoir via MS-DOS, Apple innove avec une ergonomie graphique.
Ouverture / distribution : cette étape reste très centralisée (chaque machine isole son système de fichiers), mais elle ouvre la voie à une standardisation minimale et à lidée que la donnée est manipulable par tous.
Sécurité : permissions rudimentaires par utilisateur, mais absence de chiffrement systématique ; les données restent exposées aux accès locaux non autorisés.
Captation des métadonnées : pratiquement inexistante, car les journaux dactivité sont limités et peu exploités ; lusage reste local.
Captation des supports physiques : forte dépendance aux disques et bandes magnétiques propriétaires, qui enferment lutilisateur dans un écosystème matériel.
1980-1995 Les formats propriétaires intégrés aux logiciels qui ont consolidé la domination de Microsoft avec Office
Technique : formats binaires fermés, spécifiques à chaque logiciel.
Usage : expérience fluide pour lutilisateur mais enfermement dans des silos non interopérables.
Business : Microsoft triomphe avec Office, en sappuyant sur Windows comme environnement dominant.
Ouverture / distribution : régression forte. Louverture disparaît, la donnée est captive, et la distribution reste inexistante.
Sécurité : aucune garantie dintégrité ou de confidentialité ; les fichiers peuvent être copiés ou modifiés sans vérification.
Captation des métadonnées : invisibles pour lutilisateur, mais déjà exploitées par les logiciels via les en-têtes ou informations cachées (auteur, historique dédition).
Captation des supports physiques : standardisation autour du PC IBM et de Windows, qui enferme la donnée dans un couple matériel/logiciel dominant.
1990-2000 Les formats portables et universels qui ont rendu Adobe incontournable avec le PDF
Technique : apparition de formats lisibles partout (JPEG, PDF, XML). Spécifications publiques et interopérabilité.
Usage : documents facilement partageables entre machines, indépendamment du logiciel dorigine.
Business : Adobe devient incontournable, Microsoft profite de louverture partielle de sa suite, et le Web sappuie sur ces formats pour croître.
Ouverture / distribution : progression majeure. Les formats universels permettent pour la première fois une circulation large des données entre systèmes hétérogènes.
Sécurité : premiers mécanismes de chiffrement intégrés (mot de passe dans PDF), mais contournables et rarement utilisés.
Captation des métadonnées : les fichiers embarquent des métadonnées invisibles (auteur, date, géolocalisation parfois), que les utilisateurs ignorent et que certains acteurs exploitent.
Captation des supports physiques : toujours concentrée sur les disques locaux et serveurs centralisés ; léchange reste dépendant du support (CD-ROM, disquette, réseau limité).
1970-2000 Les bases relationnelles qui ont fait émerger Oracle comme référence de la gestion de données
Technique : invention du modèle relationnel (1970), naissance des SGBDR commerciaux (Oracle 1979, IBM DB2 1983, SQL Server 1989). Standardisation du langage SQL.
Usage : applications métiers fiables, requêtes rapides et cohérentes pour des millions denregistrements.
Business : Oracle, IBM et Microsoft bâtissent leur domination sur léconomie de linformation.
Ouverture / distribution : louverture progresse par la standardisation (SQL), mais la distribution reste limitée : les bases relationnelles sont centralisées dans des serveurs uniques.
Sécurité : contrôle daccès granulaire par utilisateur, mais peu de chiffrement natif des données stockées.
Captation des métadonnées : journaux de transactions et traces daccès détaillées, nécessaires pour laudit, mais susceptibles dêtre exploitées par les administrateurs.
Captation des supports physiques : dépendance forte aux infrastructures propriétaires (serveurs Unix, bases propriétaires), qui conditionnent lévolutivité.
2000-2010 HDFS et le traitement big data qui ont fait émerger Google avec une nouvelle recherche planétaire
Technique : Google conçoit GFS (2003), MapReduce (2004), Bigtable (2006) ; Hadoop (2006) popularise le modèle. Les données sont découpées, répliquées et traitées en parallèle.
Usage : recherche instantanée, flux en temps réel, personnalisation de masse.
Business : Google prend une avance décisive ; Amazon et Facebook simposent aussi en exploitant le big data.
Ouverture / distribution : forte progression. Les données sont massivement distribuées entre serveurs, mais la gouvernance reste fermée et centralisée par quelques acteurs.
Sécurité : chiffrement partiel, souvent absent des premiers clusters ; priorité donnée à la vitesse plutôt quà la confidentialité.
Captation des métadonnées : cœur du modèle : logs, clics, temps de lecture, localisation et connexions deviennent une ressource stratégique.
Captation des supports physiques : les infrastructures reposent sur des data centers centralisés gigantesques, verrouillés par les géants du Web.
2010-2020 Les bases en graphe qui ont permis à Facebook et LinkedIn de dominer la mise en relation
Technique : graphes orientés nœuds/arêtes, capables de représenter des milliards de relations.
Usage : suggestions damis, recommandations de produits, graphes de connaissances.
Business : Facebook, LinkedIn et Google consolident leur domination.
Ouverture / distribution : ouverture fonctionnelle (les relations sont mieux exposées et exploitables), mais centralisation accrue : les graphes appartiennent à des plateformes fermées.
Sécurité : centralisation des droits daccès et protection interne, mais pas de chiffrement natif des graphes.
Captation des métadonnées : poussée à lextrême : chaque interaction, relation ou clic devient une ressource pour les algorithmes de recommandation.
Captation des supports physiques : dépendance accrue aux fermes de serveurs dédiées aux graphes massifs, concentrées dans les data centers des plateformes.
2025-2040 Les formats sémantiques distribués de 4NK qui inaugurent une nouvelle souveraineté des données
Technique : larchitecture de 4NK repose sur l'identité propre et portable de chacun et de ses droits, un stockage distribué, une messageries associées aux données, des contrats associés aux données vérifié par tous par cryptographie, fondé sur les ressources inutilisées des utilisateurs. Chaque nœud authentifie, vérifie, chiffre, ancre, relaie, et stocke la donnée. Les échanges se font par adressage cryptographique, garantissant lauthenticité sans dépendance à un serveur central, sans cloud, sans dépendance éditeur.
Usage : login en 1 scan , paiement en 1 scan, data off line, "tout véfifiable" lutilisateur dispose dun accès fluide et universel à ses données, vérifiées et protégées, tout en gardant le contrôle exclusif sur leur circulation. Loptimisation locale permet dexploiter lIA directement sur des données fiables, sans exposition ni fuite vers des clouds externes.
Business : ce modèle dépasse les limites actuelles des clouds centralisés, dont la valeur repose sur la captation des données et des métadonnées. 4NK ouvre la voie à une économie distribuée et souveraine : linfrastructure est partagée et auto-scalable 0 CAPEX, les coûts sont réduits par la mutualisation, et les utilisateurs deviennent co-acteurs de lécosystème pour démultiplier les coopérations à travers le monde, et Bitcoin est à la fois le réseau de preuves finales et de paiement.
Ouverture / distribution : progression décisive. Les formats sémantiques universels assurent compatibilité avec les standards présents et futurs ; la distribution se fait nativement entre pairs, sans concentration dans des data centers, ni la dépendance à leurs régulations.
Sécurité : chaque fragment est chiffré, signé et vérifiable par validation côté client. Lintégrité, la confidentialité et la provenance sont garanties dès la conception, sans dépendre dun tiers de confiance.
Captation des métadonnées : éliminée par conception. Les traces dusage ne sont pas centralisées ni monétisées, les relais sont anonymes et fongibles, depuis des adresses "masquées" échangeant sans interraction des secrets, et les usages restent sous le contrôle exclusif de lutilisateur, qui décide de leur partage.
Captation des supports physiques : neutralisée par la mutualisation. Linfrastructure ne repose pas sur quelques data centers vulnérables mais sur une multitude de terminaux distribués, résilients et diversifiés.
Conclusion
Lhistoire du stockage met en lumière une constante : à chaque cycle, la complexité technique sefface derrière une promesse de simplicité, tandis que la gouvernance reste concentrée entre les mains de quelques acteurs dominants.
Si louverture des formats et la distribution des architectures ont élargi les usages, elles nont jamais résolu les angles morts fondamentaux que sont la sécurité intrinsèque et la protection des métadonnées.
Ces limites apparaissent désormais comme des verrous majeurs, tant sur le plan technique que sur les plans économique et politique.
La véritable rupture ne peut donc venir uniquement dun nouveau palier de performance, mais dune transformation organisationnelle et architecturale : replacer lidentité et la validation du côté des utilisateurs, intégrer la souveraineté et la sécurité au cœur des infrastructures, et mutualiser les ressources disponibles hors des logiques centralisées.
Ce nest quà cette condition quil sera possible de dépasser le cycle historique de concentration et de dépendance, pour ouvrir la voie à un stockage réellement distribué, fiable et souverain. C'est pour cela que 4NK existe.

65
docs/talk.md Normal file
View File

@ -0,0 +1,65 @@
Avec lessor des outils en ligne, nous avons tous, en entreprise et chez soi, des ressources sous-exploitées.
💻 Pensez un instant à votre ordinateur, à votre smartphone.
Chaque jour, ces machines passent la majeure partie de leur temps en veille, attendant votre prochaine action. Pourtant, elles contiennent une puissance de calcul, de stockage et de sécurité immense.
➡️ Cest comme si nous laissions nos voitures tourner au ralenti dans le garage, sans jamais vraiment utiliser leur moteur.
📡 En parallèle, que faisons-nous ?
* Nous louons, à prix fort, la puissance de serveurs, détenus par quelques acteurs américains.
* Nous leur confions nos documents, nos conversations, nos identités numériques, nos paiements.
Et chaque fois que nous nous connectons, chaque fois que nous cliquons sur « accepter », nous renforçons cette dépendance :
* Dépendance économique
* Dépendance sécuritaire
* Dépendance politique
⚠️ Mais ces infrastructures centralisées montrent leurs limites :
* Multiplication des fuites de données
* Explosion des cyberattaques
* Coûts croissants
* Règles imposées de lextérieur, parfois extraterritoriales
Risque de balkanisation dInternet
* Pertes liées à la complexité du login et du paiement
➡️ Les dystopies ne sont plus des fictions : elles se dessinent dans nos usages quotidiens.
❓ Alors posons une question simple : et si la solution nétait pas “ailleurs”, mais déjà entre nos mains ?
Et si la souveraineté numérique, la sécurité et la simplicité venaient non pas de toujours plus de datacenters, mais de ce que nous avons déjà, sous-exploité, sur nos propres terminaux ?
☁️✨ Cest ce que nous appelons le cloud serverless client side.
Un modèle où :
* Le login, le partage, le paiement, la messagerie et lidentité ne passent plus par des serveurs centraux,
* Mais sont opérés directement sur vos appareils.
👉 Pas de CAPEX, pas de datacenters.
👉 Chaque utilisateur devient une brique de linfrastructure.
👉 Chaque flux est une preuve cryptographique, chaque action une validation vérifiable.
🚀 Ce nest pas une utopie lointaine.
Avec 4NK, cette vision se matérialise déjà par :
* Une GED probatoire pour les professions réglementées,
* Une messagerie souveraine et chiffrée,
* Une identité numérique portable.
Dans 2-3 ans, 4NK ce sera l'implémentation "bas niveau" virtualisée, une révolution des OS en noeuds actifs et souverain d'Internet.
➡️ Les premières pierres dun Internet où la souveraineté est une propriété technique, et non une promesse politique.
🎯 Le véritable enjeu est simple :
👉 Voulons-nous continuer à dépendre dinfrastructures fragiles, coûteuses et centralisées ?
👉 Ou voulons-nous bâtir un numérique européen où la liberté, la confiance et la simplicité ne sont plus négociables ?
💡 Je crois que la réponse est déjà en nous, dans les ressources que nous possédons et que nous nexploitons pas encore.
Le choix, est clair :
* Subir le numérique qui vient, ou
* Inventer celui que nous voulons.

BIN
favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
img/infra.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

BIN
img/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

182
index.html Normal file
View File

@ -0,0 +1,182 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>4NK - The self-custodial cloud infrastructure</title>
<link rel="icon" type="image/png" href="favicon.png">
<link rel="stylesheet" href="styles.css">
<link rel="canonical" href="https://4nk.network/">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
</head>
<body>
<div class="background-pattern"></div>
<header class="header">
<nav class="nav">
<div class="nav-logo">
<div class="logo-container">
<img src="img/logo.png" alt="4NK Logo" class="logo-img">
</div>
</div>
<div class="nav-menu">
<a href="#home" class="nav-link">Home</a>
<a href="#services" class="nav-link">Services</a>
<a href="#about" class="nav-link">About</a>
<a href="#contact" class="nav-link">Contact</a>
</div>
</nav>
</header>
<main>
<section id="home" class="hero">
<div class="hero-content">
<div class="hero-logo">
<img src="/img/infra.png" alt="4NK Hero Logo" class="hero-logo-img">
</div>
<div class="hero-text">
<h1 class="hero-title">
<span class="brand-name">4NK</span>
<span class="brand-subtitle">Infrastructure</span>
<span class="brand-tagline">custodian-killer</span>
</h1>
<p class="hero-description">
A revolutionary infrastructure redefining security and decentralization.
Our cutting-edge technology removes intermediaries and puts control in your hands.
</p>
<div class="hero-buttons">
<button class="btn btn-primary">Discover</button>
<a class="btn btn-secondary" href="/about_more.html">Learn more</a>
</div>
</div>
</div>
</section>
<section id="services" class="services">
<div class="container">
<h2 class="section-title">Our Services</h2>
<div class="services-grid">
<div class="service-card">
<div class="service-icon">
<svg viewBox="0 0 100 100" class="service-svg">
<circle cx="50" cy="50" r="40" fill="none" stroke="url(#heroGradient)" stroke-width="3" filter="url(#heroGlow)"/>
<path d="M30 50 L45 65 L70 35" fill="none" stroke="url(#heroGradient)" stroke-width="3" filter="url(#heroGlow)"/>
</svg>
</div>
<h3>Decentralized Security</h3>
<p>Secure infrastructure with no single point of failure</p>
</div>
<div class="service-card">
<div class="service-icon">
<svg viewBox="0 0 100 100" class="service-svg">
<rect x="20" y="30" width="60" height="40" fill="none" stroke="url(#heroGradient)" stroke-width="3" filter="url(#heroGlow)"/>
<path d="M40 50 L50 60 L60 50" fill="none" stroke="url(#heroGradient)" stroke-width="3" filter="url(#heroGlow)"/>
</svg>
</div>
<h3>Resilient Storage</h3>
<p>Distributed and cryptographically secured storage solutions</p>
</div>
<div class="service-card">
<div class="service-icon">
<svg viewBox="0 0 100 100" class="service-svg">
<path d="M50 20 L70 40 L70 70 L30 70 L30 40 Z" fill="none" stroke="url(#heroGradient)" stroke-width="3" filter="url(#heroGlow)"/>
<circle cx="50" cy="45" r="5" fill="url(#heroGradient)" filter="url(#heroGlow)"/>
</svg>
</div>
<h3>Self-custodial cloud infrastructure</h3>
<p>Eliminating intermediaries for full control</p>
</div>
</div>
</div>
</section>
<section id="about" class="about">
<div class="container">
<div class="about-content">
<div class="about-text">
<h2>About 4NK</h2>
<p>
4NK represents a new era of technology infrastructure.
Our self-custodial cloud infrastructure approach revolutionizes how we think about
security, decentralization, and data control.
</p>
<p>
With our cutting-edge technology, we eliminate traditional points of failure
and create a resilient, transparent ecosystem entirely under your control.
</p>
</div>
<div class="about-visual">
<div class="logo-showcase">
<img src="/img/infra.png" alt="4NK Showcase Logo" class="showcase-logo-img">
</div>
</div>
</div>
</div>
</section>
<section id="contact" class="contact">
<div class="container">
<h2 class="section-title">Contact</h2>
<div class="contact-content">
<div class="contact-info">
<h3>Get in touch</h3>
<p>Ready to revolutionize your infrastructure? Contact us to discover how 4NK can transform your approach to security and decentralization.</p>
</div>
<div class="contact-form">
<form>
<div class="form-group">
<input type="text" placeholder="Name" required>
</div>
<div class="form-group">
<input type="email" placeholder="Email" required>
</div>
<div class="form-group">
<textarea placeholder="Message" rows="5" required></textarea>
</div>
<button type="submit" class="btn btn-primary">Send</button>
</form>
</div>
</div>
</div>
</section>
</main>
<footer class="footer">
<div class="container">
<div class="footer-content">
<div class="footer-logo">
<div class="footer-logo-container">
<img src="img/logo.png" alt="4NK Footer Logo" class="footer-logo-img">
</div>
<div class="footer-text">
<span class="brand-name">4NK</span>
<span class="brand-subtitle">The self-custodial cloud infrastructure</span>
</div>
</div>
<div class="footer-links">
<a href="#home">Home</a>
<a href="#services">Services</a>
<a href="#about">About</a>
<a href="#contact">Contact</a>
<a href="/powered_by_bitcoin.html">Powered by Bitcoin</a>
<a href="/manifest_en.html">Manifest</a>
<a href="https://git.4nkweb.com" target="_blank" rel="noopener">git.4nkweb.com</a>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2024 4NK. All rights reserved.</p>
</div>
</div>
</footer>
<script src="script.js"></script>
</body>
</html>

115
manifest_en.html Normal file
View File

@ -0,0 +1,115 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>4NK — Manifest</title>
<link rel="icon" type="image/png" href="/favicon.png">
<link rel="stylesheet" href="/styles.css">
<style>
.page { max-width: 980px; margin: 4rem auto; padding: 0 1rem; }
.header-actions { margin: 1.5rem 0 2rem; display: flex; gap: .75rem; }
.section { margin: 2rem 0; }
ul { padding-left: 1.2rem; }
</style>
</head>
<body>
<div class="page">
<h1>4NK — Manifest</h1>
<div class="header-actions">
<a class="btn btn-secondary" href="/">Back to homepage</a>
</div>
<div class="section">
<h2>A third way for a sovereign, frugal, and verifiable web</h2>
<p>4NK proposes a web that is simpler, cheaper, more reliable, and sovereign.</p>
<p>Today, the internet faces a structural crisis. Web2 brought ease of use but relies on centralized architectures that leak data by default. States reacted with fragmentation (sovereign clouds, national rules), producing balkanized, incompatible networks that do not restore trust. Web3 tried to decentralize everything and created new complexities; Web5 had the right intuition but remained constrained by a single monetary rail. 4NK is neither marketing nor another blockchain. It is a distributed, frugal, and verifiable infrastructure: a third way.</p>
</div>
<div class="section">
<h2>Principles</h2>
<ul>
<li><b>Neutral mesh relays</b>: control nothing, store nothing, surveil nothing; they only synchronize and replicate cryptographic proofs.</li>
<li><b>User sovereignty</b>: keys, data, and identities remain exclusively under users control.</li>
<li><b>Universal verifiability</b>: every action is anchored and cryptographically traceable without relying on a third party.</li>
<li><b>Digital frugality</b>: no heavy infrastructure or foreign clouds; resilience comes from distribution, not energyhungry duplication.</li>
</ul>
<p>Experience remains Web2like—same simplicity and fluidity—without structural leaks or platform dependency. 4NK secures messaging and documents, anchors proofs immutably, enables sovereign identity, simplifies payments, and satisfies compliance without massive data exposure.</p>
</div>
<div class="section">
<h2>Bitcoin beyond payments</h2>
<ul>
<li>Encrypted messaging with permessage secrets (inspired by silent payments), no third party involved.</li>
<li>Offchain contracts signed by wallets, validated by peers, linked to a layer2 oracle anchored on Bitcoin.</li>
<li>Distributed storage: data remains with stakeholders or in a mesh, never in cleartext on public clouds.</li>
<li>Onescan payments: native Lightning integration, no Stripe or PayPal.</li>
</ul>
<p>Everything runs clientside (ClientSide Validation). No custodians.</p>
</div>
<div class="section">
<h2>Why not Web3 or “state blockchains”?</h2>
<ul>
<li>Not everything should be on a blockchain; gas fees add friction and UX complexity.</li>
<li>Most “public” chains are VCdominated; decentralization often recentralizes around a few actors.</li>
<li>State “sovereign blockchains” are centralization in disguise and see weak adoption.</li>
</ul>
<p>Decentralization is a means, not an end. The end is resilience. 4NK applies distribution where it matters: the infrastructure itself.</p>
</div>
<div class="section">
<h2>Architecture</h2>
<ul>
<li><b>Zones</b>: user (browser/client), relay (mesh), distributed application services, Bitcoin anchoring.</li>
<li><b>Relays</b>: synchronize anchors, provide redundancy, remain blind by design.</li>
<li><b>Sovereign identities</b>: peruse key derivation for unlinkability; verifiable yet confidential credentials.</li>
<li><b>Anchoring</b>: one Bitcoin transaction acts as a cryptographic root for entire trees (Merkle aggregation) → global security without peruse energy inflation.</li>
<li><b>Security</b>: minimal exposure via reverse proxies; isolation of critical services; systematic endtoend encryption.</li>
<li><b>Governance</b>: any organization or user can operate nodes; no single actor can impose decisions.</li>
</ul>
</div>
<div class="section">
<h2>UX continuity and energy efficiency</h2>
<p>4NK keeps the Web2 user experience while making the infrastructure invisible. It reuses existing equipment and avoids industrial duplication. Bitcoin provides a shared anchoring layer: a single transaction can certify billions of anchors—cost does not scale with usage.</p>
</div>
<div class="section">
<h2>Deployment strategy</h2>
<ol>
<li>Sovereign document management (Docv)</li>
<li>Encrypted messaging and sovereign communications</li>
<li>Distributed, probative traceability across value chains</li>
<li>Innovative identity and login methods (passwordless, derived addresses)</li>
<li>Integrated, decentralized payments (micropayments, P2P, Bitcoinanchored)</li>
</ol>
</div>
<div class="section">
<h2>Impacts</h2>
<ul>
<li><b>Industrial competitiveness</b>: ends data pillage; predictable security costs; local value capture.</li>
<li><b>Jobs and ecosystem</b>: local integration and support; diversified operators; European independence.</li>
<li><b>Trust</b>: verifiable identity; no massive registries; proofs without overexposure.</li>
<li><b>Ecology</b>: minimal marginal energy thanks to distribution and shared Bitcoin anchoring.</li>
</ul>
</div>
<div class="section">
<h2>Risks and limits</h2>
<ul>
<li>Maturity and adoption thresholds; education for key management.</li>
<li>Regulatory interoperability to avoid forced centralization.</li>
<li>Indirect dependence on Bitcoins resilience; resistance from entrenched actors.</li>
</ul>
</div>
<div class="section">
<h2>Conclusion</h2>
<p>Migrating to a distributed, neutral, and verifiable infrastructure is a rational societal choice. 4NK makes security a property of the architecture itself—provable, sovereign, and frugal—so the internet becomes simpler, cheaper, and more trustworthy.</p>
</div>
</div>
<script src="/script.js"></script>
</body>
</html>

109
powered_by_bitcoin.html Normal file
View File

@ -0,0 +1,109 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>4NK — Powered by Bitcoin</title>
<link rel="icon" type="image/png" href="/favicon.png">
<link rel="stylesheet" href="/styles.css">
<style>
.page { max-width: 960px; margin: 4rem auto; padding: 0 1rem; }
h1, h2, h3 { margin: 1.5rem 0 .5rem; }
.section { margin: 1.25rem 0; }
ul { padding-left: 1.2rem; }
.header-actions { margin: 1.5rem 0 2rem; display: flex; gap: .75rem; }
</style>
</head>
<body>
<div class="page">
<h1>Powered by Bitcoin</h1>
<div class="header-actions">
<a class="btn btn-secondary" href="/">Back to homepage</a>
</div>
<h2>4NK: the self-custodial cloud infrastructure</h2>
<p>For fifteen years, Bitcoin has proven that a decentralized network can secure value without any trusted intermediary. Every block, every signature, every verification is performed by the users themselves. No need for a centralized custodian: everyone can verify, everyone can hold.</p>
<p>But outside of payments, the digital world still relies everywhere on trusted third parties:</p>
<ul>
<li>centralized clouds and servers,</li>
<li>messaging platforms,</li>
<li>digital identity services,</li>
<li>storage solutions.</li>
</ul>
<p>These custodians capture data, impose costs, and create points of failure. They are the equivalent of banks before Bitcoin: convenient, but vulnerable and intrusive.</p>
<h2>4NK: Bitcoin beyond payments</h2>
<p>4NK is a client-side infrastructure layer that extends Bitcoins native properties to everyday digital uses:</p>
<ul>
<li>The resilience of a distributed proof network → every flow becomes verifiable, without relying on a server.</li>
<li>Money as a universal mechanism → reliable remuneration for security.</li>
<li>Cryptography as identity → public keys extended into digital identities.</li>
</ul>
<h2>How does it work?</h2>
<ul>
<li>Encrypted messaging: based on non-interactive secret sharing derived from silent payments. Each message generates a unique, encrypted, and untraceable secret, with no third party involved.</li>
<li>Off-chain contracts: signed by Bitcoin wallets, validated by peers, and linked to a layer-2 oracle (Signet) regularly anchored on the Bitcoin mainnet.</li>
<li>Distributed storage: files kept locally between stakeholders or in a mesh network, never in cleartext, never in a public cloud.</li>
<li>Payments in one scan: native Lightning integration, no Stripe, no PayPal.</li>
</ul>
<p>Everything is operated client-side (Client-Side Validation). No custodian.</p>
<h2>Custodian-killer</h2>
<p>Just as Bitcoin killed the need for a central bank to hold and transfer value, 4NK kills the need for digital custodians to identify, exchange, store, and contract.</p>
<p>This is not a new blockchain. This is not a token. It is the natural extension of Bitcoin:</p>
<ul>
<li>distributed proofs as a foundation,</li>
<li>money as a universal rail,</li>
<li>public keys as digital identities,</li>
<li>secret sharing as sovereign messaging.</li>
</ul>
<h2>4NK is not a theory</h2>
<ul>
<li>Notaries: legal acts anchored on a proof layer over Bitcoin.</li>
<li>SMEs: sovereign document management, serverless messaging.</li>
<li>Public bodies: integrations underway with operators.</li>
<li>Healthcare: POC in deployment.</li>
</ul>
<p>Every time, the model is the same: replace a custodian with Bitcoin + client-side.</p>
<h2>The result</h2>
<p>Making Bitcoin not only the currency of trust, but also the universal infrastructure layer of the digital world:</p>
<ul>
<li>Simpler login: four words + multisignature across devices.</li>
<li>Simpler payments: compatible with all Bitcoin rails + integrated Silent Payment wallet (web & mobile).</li>
<li>Cheaper, no CAPEX: more users = more resources.</li>
<li>Cheaper, no infrastructure: less tooling, less supervision, less complexity.</li>
<li>More secure: encryption directly by user identities, redundancy included.</li>
<li>More resilient: no central point, no centralized rights management.</li>
<li>Fully verifiable cryptographically via the anchoring layer.</li>
<li>Everything is a contract: compliance with agreements, norms, and standards is cryptographically enforced between final parties, where the proof system is also the payment system.</li>
<li>As fast as needed: there is always a route to deliver information.</li>
</ul>
<h2>Our focus</h2>
<ul>
<li>Local AI experiences integrated into a “Chat First” UX, replacing legacy workflows.</li>
<li>Effective support, separate from core development.</li>
</ul>
<h2>Our ambition</h2>
<p>To make Bitcoin not only the currency of trust, but also the universal infrastructure layer of the internet:</p>
<ul>
<li>identity,</li>
<li>messaging,</li>
<li>contracts,</li>
<li>storage.</li>
</ul>
<p>An internet where the user is sovereign, verification is local, and custodians belong permanently to the past.</p>
<p><b>4NK: the self-custodial cloud infrastructure.</b></p>
<hr style="margin: 2rem 0; opacity:.2;">
<p>
Looking for more context? Read the full <a href="/manifest_en.html">Manifest</a>.
</p>
</div>
<script src="/script.js"></script>
</body>
</html>

5
robots.txt Normal file
View File

@ -0,0 +1,5 @@
User-agent: *
Allow: /
Sitemap: https://4nkweb5.com/sitemap.xml

329
script.js Normal file
View File

@ -0,0 +1,329 @@
// Script principal pour le site 4NK
document.addEventListener('DOMContentLoaded', function() {
// Animation d'apparition des éléments au scroll
const observerOptions = {
threshold: 0.1,
rootMargin: '0px 0px -50px 0px'
};
const observer = new IntersectionObserver(function(entries) {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('fade-in-up');
}
});
}, observerOptions);
// Observer tous les éléments à animer
const animatedElements = document.querySelectorAll('.service-card, .about-text, .about-visual, .contact-info, .contact-form');
animatedElements.forEach(el => {
observer.observe(el);
});
// Navigation smooth scroll
const navLinks = document.querySelectorAll('.nav-link');
navLinks.forEach(link => {
link.addEventListener('click', function(e) {
e.preventDefault();
const targetId = this.getAttribute('href');
const targetSection = document.querySelector(targetId);
if (targetSection) {
const headerHeight = document.querySelector('.header').offsetHeight;
const targetPosition = targetSection.offsetTop - headerHeight;
window.scrollTo({
top: targetPosition,
behavior: 'smooth'
});
}
});
});
// Effet de parallaxe sur le logo principal
const heroLogo = document.querySelector('.hero-logo-img');
window.addEventListener('scroll', function() {
const scrolled = window.pageYOffset;
const rate = scrolled * -0.5;
if (heroLogo) {
heroLogo.style.transform = `translateY(${rate}px) rotate(${scrolled * 0.1}deg)`;
}
});
// Animation du header au scroll
const header = document.querySelector('.header');
window.addEventListener('scroll', function() {
if (window.scrollY > 100) {
header.style.background = 'rgba(10, 10, 10, 0.98)';
header.style.boxShadow = '0 2px 20px rgba(255, 107, 53, 0.1)';
} else {
header.style.background = 'rgba(10, 10, 10, 0.95)';
header.style.boxShadow = 'none';
}
});
// Effet de typing pour le titre principal
function typeWriter(element, text, speed = 100) {
let i = 0;
element.innerHTML = '';
function type() {
if (i < text.length) {
element.innerHTML += text.charAt(i);
i++;
setTimeout(type, speed);
}
}
type();
}
// Animation des icônes de services
const serviceIcons = document.querySelectorAll('.service-svg');
serviceIcons.forEach(icon => {
icon.addEventListener('mouseenter', function() {
this.style.animation = 'serviceIconPulse 1s ease-in-out infinite';
});
icon.addEventListener('mouseleave', function() {
this.style.animation = 'serviceIconPulse 3s ease-in-out infinite';
});
});
// Effet de particules flottantes
function createParticles() {
const particlesContainer = document.createElement('div');
particlesContainer.className = 'particles';
document.body.appendChild(particlesContainer);
for (let i = 0; i < 20; i++) {
const particle = document.createElement('div');
particle.className = 'particle';
particle.style.left = Math.random() * 100 + '%';
particle.style.animationDelay = Math.random() * 10 + 's';
particle.style.animationDuration = (Math.random() * 10 + 10) + 's';
particlesContainer.appendChild(particle);
}
}
// Créer les particules
createParticles();
// Effet de glow sur les boutons
const buttons = document.querySelectorAll('.btn');
buttons.forEach(button => {
button.addEventListener('mouseenter', function() {
this.style.boxShadow = '0 8px 25px rgba(255, 107, 53, 0.5), 0 0 20px rgba(255, 107, 53, 0.3)';
});
button.addEventListener('mouseleave', function() {
if (this.classList.contains('btn-primary')) {
this.style.boxShadow = '0 4px 15px rgba(255, 107, 53, 0.3)';
} else {
this.style.boxShadow = 'none';
}
});
});
// Gestion du formulaire de contact
const contactForm = document.querySelector('.contact-form form');
if (contactForm) {
contactForm.addEventListener('submit', async function(e) {
e.preventDefault();
const submitBtn = this.querySelector('.btn-primary');
const originalText = submitBtn.textContent;
submitBtn.textContent = 'Sending...';
submitBtn.disabled = true;
const name = this.querySelector('input[placeholder="Name"]').value.trim();
const email = this.querySelector('input[placeholder="Email"]').value.trim();
const message = this.querySelector('textarea[placeholder="Message"]').value.trim();
try {
const resp = await fetch('/contact', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name, email, message })
});
if (!resp.ok) throw new Error('Failed');
submitBtn.textContent = 'Message sent!';
submitBtn.style.background = '#4CAF50';
setTimeout(() => {
submitBtn.textContent = originalText;
submitBtn.disabled = false;
submitBtn.style.background = '';
this.reset();
}, 2000);
} catch (err) {
submitBtn.textContent = 'Send failed';
submitBtn.style.background = '#E53935';
setTimeout(() => {
submitBtn.textContent = originalText;
submitBtn.disabled = false;
submitBtn.style.background = '';
}, 2000);
}
});
}
// Effet de cursor personnalisé
const cursor = document.createElement('div');
cursor.className = 'custom-cursor';
cursor.style.cssText = `
position: fixed;
width: 20px;
height: 20px;
background: radial-gradient(circle, rgba(255, 107, 53, 0.8) 0%, transparent 70%);
border-radius: 50%;
pointer-events: none;
z-index: 9999;
transition: transform 0.1s ease;
display: none;
`;
document.body.appendChild(cursor);
// Suivi du curseur
document.addEventListener('mousemove', function(e) {
cursor.style.left = e.clientX - 10 + 'px';
cursor.style.top = e.clientY - 10 + 'px';
cursor.style.display = 'block';
});
// Cacher le curseur personnalisé quand on quitte la page
document.addEventListener('mouseleave', function() {
cursor.style.display = 'none';
});
// Effet de hover sur les liens
const links = document.querySelectorAll('a, .btn');
links.forEach(link => {
link.addEventListener('mouseenter', function() {
cursor.style.transform = 'scale(1.5)';
cursor.style.background = 'radial-gradient(circle, rgba(255, 215, 0, 0.8) 0%, transparent 70%)';
});
link.addEventListener('mouseleave', function() {
cursor.style.transform = 'scale(1)';
cursor.style.background = 'radial-gradient(circle, rgba(255, 107, 53, 0.8) 0%, transparent 70%)';
});
});
// Animation des logos images
const logos = document.querySelectorAll('.logo-img, .hero-logo-img, .showcase-logo-img, .footer-logo-img');
logos.forEach(logo => {
logo.addEventListener('mouseenter', function() {
this.style.filter = 'drop-shadow(0 0 20px var(--primary-orange)) drop-shadow(0 0 40px var(--accent-orange))';
});
logo.addEventListener('mouseleave', function() {
// Restaurer le filtre original selon le type de logo
if (this.classList.contains('hero-logo-img')) {
this.style.filter = 'drop-shadow(0 0 20px var(--primary-orange))';
} else if (this.classList.contains('showcase-logo-img')) {
this.style.filter = 'drop-shadow(0 0 15px var(--primary-orange))';
} else if (this.classList.contains('footer-logo-img')) {
this.style.filter = 'drop-shadow(0 0 8px var(--primary-orange))';
} else {
this.style.filter = 'drop-shadow(0 0 10px var(--primary-orange))';
}
});
});
// Effet de parallaxe sur les sections
const parallaxElements = document.querySelectorAll('.hero, .services, .about, .contact');
window.addEventListener('scroll', function() {
const scrolled = window.pageYOffset;
parallaxElements.forEach((element, index) => {
const rate = scrolled * -0.5;
const sectionOffset = element.offsetTop;
const sectionHeight = element.offsetHeight;
if (scrolled + window.innerHeight > sectionOffset && scrolled < sectionOffset + sectionHeight) {
element.style.transform = `translateY(${rate * 0.1}px)`;
}
});
});
// Animation des cartes de services au scroll
const serviceCards = document.querySelectorAll('.service-card');
const serviceObserver = new IntersectionObserver(function(entries) {
entries.forEach((entry, index) => {
if (entry.isIntersecting) {
setTimeout(() => {
entry.target.style.opacity = '1';
entry.target.style.transform = 'translateY(0)';
}, index * 200);
}
});
}, { threshold: 0.1 });
serviceCards.forEach(card => {
card.style.opacity = '0';
card.style.transform = 'translateY(50px)';
card.style.transition = 'all 0.6s ease';
serviceObserver.observe(card);
});
// Effet de glow sur le texte principal
const brandName = document.querySelector('.brand-name');
if (brandName) {
setInterval(() => {
const intensity = Math.random() * 0.5 + 0.5;
brandName.style.textShadow = `0 0 ${30 * intensity}px rgba(255, 107, 53, ${intensity}), 0 0 ${50 * intensity}px rgba(255, 165, 0, ${intensity * 0.5})`;
}, 1000);
}
// Animation de chargement initial
window.addEventListener('load', function() {
document.body.style.opacity = '0';
document.body.style.transition = 'opacity 1s ease';
setTimeout(() => {
document.body.style.opacity = '1';
}, 100);
});
// Gestion du menu mobile (si nécessaire)
const navToggle = document.createElement('button');
navToggle.className = 'nav-toggle';
navToggle.innerHTML = '☰';
navToggle.style.cssText = `
display: none;
background: none;
border: none;
color: var(--text-light);
font-size: 1.5rem;
cursor: pointer;
padding: 0.5rem;
`;
// Ajouter le toggle au nav si on est sur mobile
if (window.innerWidth <= 768) {
const nav = document.querySelector('.nav');
nav.appendChild(navToggle);
navToggle.addEventListener('click', function() {
const navMenu = document.querySelector('.nav-menu');
navMenu.style.display = navMenu.style.display === 'flex' ? 'none' : 'flex';
});
}
// Mise à jour du menu mobile au redimensionnement
window.addEventListener('resize', function() {
const navMenu = document.querySelector('.nav-menu');
if (window.innerWidth > 768) {
navMenu.style.display = 'flex';
navToggle.style.display = 'none';
} else {
navToggle.style.display = 'block';
navMenu.style.display = 'none';
}
});
console.log('Site 4NK chargé avec succès !');
});

20
scripts/install-mailer.sh Normal file
View File

@ -0,0 +1,20 @@
#!/bin/bash
set -euo pipefail
cd /home/debian/website/server
if ! command -v node >/dev/null 2>&1; then
echo "Node.js is required" >&2
exit 1
fi
printf "Installing dependencies...\n"
if [ -f package-lock.json ]; then
npm ci
else
npm install --no-fund --no-audit
fi
printf "Mailer ready in /home/debian/website/server\n"

11
scripts/reload-nginx.sh Normal file
View File

@ -0,0 +1,11 @@
#!/bin/bash
set -euo pipefail
printf "[1/2] Testing nginx config...\n"
sudo nginx -t | sed -u 's/^/[nginx-test] /'
printf "[2/2] Reloading nginx...\n"
sudo systemctl reload nginx
printf "Done.\n"

11
scripts/test-contact.sh Normal file
View File

@ -0,0 +1,11 @@
#!/bin/bash
set -euo pipefail
URL=${1:-https://4nk.network/contact}
printf "POST %s\n" "$URL"
curl -i -sS -X POST "$URL" \
-H 'content-type: application/json' \
--data '{"name":"Test User","email":"test@example.com","message":"Hello from script"}' | sed -u 's/^/[contact] /'

62
server/index.js Normal file
View File

@ -0,0 +1,62 @@
import express from 'express';
import helmet from 'helmet';
import nodemailer from 'nodemailer';
import process from 'process';
import 'dotenv/config';
const app = express();
const port = process.env.PORT ? Number(process.env.PORT) : (process.env.SERVER_PORT ? Number(process.env.SERVER_PORT) : 3001);
app.disable('x-powered-by');
app.use(helmet({ contentSecurityPolicy: false }));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
const smtpHost = process.env.SMTP_HOST || '127.0.0.1';
const smtpPort = process.env.SMTP_PORT ? Number(process.env.SMTP_PORT) : 25;
const smtpSecure = String(process.env.SMTP_SECURE || 'false').toLowerCase() === 'true';
const smtpRejectUnauthorized = String(process.env.SMTP_TLS_REJECT_UNAUTHORIZED || 'false').toLowerCase() === 'true';
const smtpUser = process.env.SMTP_USER;
const smtpPassword = process.env.SMTP_PASSWORD;
const mailTransport = nodemailer.createTransport({
host: smtpHost,
port: smtpPort,
secure: smtpSecure,
auth: smtpUser && smtpPassword ? {
user: smtpUser,
pass: smtpPassword
} : undefined,
tls: { rejectUnauthorized: smtpRejectUnauthorized }
});
app.post('/contact', async (req, res) => {
const name = String(req.body.name || '').trim();
const email = String(req.body.email || '').trim();
const message = String(req.body.message || '').trim();
if (!name || !email || !message) {
return res.status(400).json({ ok: false, error: 'Missing fields' });
}
try {
await mailTransport.verify();
await mailTransport.sendMail({
from: process.env.SMTP_FROM || 'no-reply@4nk.network',
to: process.env.SMTP_TO || 'nicolas.cantu@4nk.network',
subject: `[4NK Contact] ${name}`,
replyTo: email,
text: `From: ${name} <${email}>\n\n${message}`,
});
return res.json({ ok: true });
} catch (err) {
console.error('Mail send failed:', err);
return res.status(502).json({ ok: false, error: 'Mail delivery failed' });
}
});
app.get('/health', (req, res) => res.json({ ok: true }));
app.listen(port, '127.0.0.1', () => {
console.log(`Mailer listening on http://127.0.0.1:${port}`);
});

866
server/package-lock.json generated Normal file
View File

@ -0,0 +1,866 @@
{
"name": "4nk-website-mailer",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "4nk-website-mailer",
"version": "1.0.0",
"license": "MIT",
"dependencies": {
"dotenv": "^16.4.5",
"express": "^4.19.2",
"helmet": "^7.1.0",
"nodemailer": "^6.9.14"
}
},
"node_modules/accepts": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
"integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"license": "MIT",
"dependencies": {
"mime-types": "~2.1.34",
"negotiator": "0.6.3"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
"license": "MIT"
},
"node_modules/body-parser": {
"version": "1.20.3",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
"integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
"license": "MIT",
"dependencies": {
"bytes": "3.1.2",
"content-type": "~1.0.5",
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
"http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
"qs": "6.13.0",
"raw-body": "2.5.2",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
},
"engines": {
"node": ">= 0.8",
"npm": "1.2.8000 || >= 1.4.16"
}
},
"node_modules/bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/call-bind-apply-helpers": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
"integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/call-bound": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
"integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
"get-intrinsic": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/content-disposition": {
"version": "0.5.4",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
"integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
"license": "MIT",
"dependencies": {
"safe-buffer": "5.2.1"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/content-type": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cookie": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
"integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
"license": "MIT"
},
"node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/destroy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
"license": "MIT",
"engines": {
"node": ">= 0.8",
"npm": "1.2.8000 || >= 1.4.16"
}
},
"node_modules/dotenv": {
"version": "16.6.1",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz",
"integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==",
"license": "BSD-2-Clause",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://dotenvx.com"
}
},
"node_modules/dunder-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.1",
"es-errors": "^1.3.0",
"gopd": "^1.2.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
"license": "MIT"
},
"node_modules/encodeurl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
"integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/es-define-property": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
"integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-object-atoms": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
"integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
"license": "MIT"
},
"node_modules/etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/express": {
"version": "4.21.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
"integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
"license": "MIT",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.20.3",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.7.1",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"finalhandler": "1.3.1",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"merge-descriptors": "1.0.3",
"methods": "~1.1.2",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.12",
"proxy-addr": "~2.0.7",
"qs": "6.13.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "0.19.0",
"serve-static": "1.16.2",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
},
"engines": {
"node": ">= 0.10.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/express"
}
},
"node_modules/finalhandler": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
"integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
"license": "MIT",
"dependencies": {
"debug": "2.6.9",
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
"statuses": "2.0.1",
"unpipe": "~1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-intrinsic": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
"integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
"license": "MIT",
"dependencies": {
"call-bind-apply-helpers": "^1.0.2",
"es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.1.1",
"function-bind": "^1.1.2",
"get-proto": "^1.0.1",
"gopd": "^1.2.0",
"has-symbols": "^1.1.0",
"hasown": "^2.0.2",
"math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/get-proto": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
"integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
"license": "MIT",
"dependencies": {
"dunder-proto": "^1.0.1",
"es-object-atoms": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/gopd": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
"integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-symbols": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
"integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"license": "MIT",
"dependencies": {
"function-bind": "^1.1.2"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/helmet": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/helmet/-/helmet-7.2.0.tgz",
"integrity": "sha512-ZRiwvN089JfMXokizgqEPXsl2Guk094yExfoDXR0cBYWxtBbaSww/w+vT4WEJsBW2iTUi1GgZ6swmoug3Oy4Xw==",
"license": "MIT",
"engines": {
"node": ">=16.0.0"
}
},
"node_modules/http-errors": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"license": "MIT",
"dependencies": {
"depd": "2.0.0",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"toidentifier": "1.0.1"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"license": "MIT",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"license": "ISC"
},
"node_modules/ipaddr.js": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"license": "MIT",
"engines": {
"node": ">= 0.10"
}
},
"node_modules/math-intrinsics": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
"integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/merge-descriptors": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
"integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"license": "MIT",
"bin": {
"mime": "cli.js"
},
"engines": {
"node": ">=4"
}
},
"node_modules/mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"license": "MIT",
"dependencies": {
"mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"license": "MIT"
},
"node_modules/negotiator": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/nodemailer": {
"version": "6.10.1",
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.10.1.tgz",
"integrity": "sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==",
"license": "MIT-0",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/object-inspect": {
"version": "1.13.4",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
"integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
"license": "MIT",
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"license": "MIT",
"dependencies": {
"ee-first": "1.1.1"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/path-to-regexp": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
"integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
"license": "MIT"
},
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
"integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"license": "MIT",
"dependencies": {
"forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
},
"engines": {
"node": ">= 0.10"
}
},
"node_modules/qs": {
"version": "6.13.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
"integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
"license": "BSD-3-Clause",
"dependencies": {
"side-channel": "^1.0.6"
},
"engines": {
"node": ">=0.6"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
"license": "MIT",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/raw-body": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
"license": "MIT",
"dependencies": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
],
"license": "MIT"
},
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"license": "MIT"
},
"node_modules/send": {
"version": "0.19.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
"integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
"license": "MIT",
"dependencies": {
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"mime": "1.6.0",
"ms": "2.1.3",
"on-finished": "2.4.1",
"range-parser": "~1.2.1",
"statuses": "2.0.1"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/send/node_modules/encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/send/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
"license": "MIT"
},
"node_modules/serve-static": {
"version": "1.16.2",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
"integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
"license": "MIT",
"dependencies": {
"encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
"send": "0.19.0"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
"license": "ISC"
},
"node_modules/side-channel": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
"integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"object-inspect": "^1.13.3",
"side-channel-list": "^1.0.0",
"side-channel-map": "^1.0.1",
"side-channel-weakmap": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/side-channel-list": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
"integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
"object-inspect": "^1.13.3"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/side-channel-map": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
"integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.5",
"object-inspect": "^1.13.3"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/side-channel-weakmap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
"integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
"license": "MIT",
"dependencies": {
"call-bound": "^1.0.2",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.5",
"object-inspect": "^1.13.3",
"side-channel-map": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/statuses": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"license": "MIT",
"engines": {
"node": ">=0.6"
}
},
"node_modules/type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"license": "MIT",
"dependencies": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
"license": "MIT",
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
"license": "MIT",
"engines": {
"node": ">= 0.8"
}
}
}
}

1
server/package.json Normal file
View File

@ -0,0 +1 @@
{"name":"4nk-website-mailer","private":true,"type":"module","version":"1.0.0","main":"index.js","license":"MIT","dependencies":{"dotenv":"^16.4.5","express":"^4.19.2","helmet":"^7.1.0","nodemailer":"^6.9.14"},"scripts":{"start":"node index.js","dev":"node index.js"}}

9
sitemap.xml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://4nk.network/</loc>
<lastmod>2025-09-25</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
</urlset>

703
styles.css Normal file
View File

@ -0,0 +1,703 @@
/* Reset et base */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
font-family: 'Inter', sans-serif;
background-color: #0a0a0a;
color: #ffffff;
line-height: 1.6;
overflow-x: hidden;
}
/* Variables CSS */
:root {
--primary-orange: #FF6B35;
--secondary-orange: #FF8E53;
--accent-orange: #FFA500;
--gold: #FFD700;
--dark-bg: #0a0a0a;
--darker-bg: #050505;
--text-light: #ffffff;
--text-gray: #b0b0b0;
--border-color: #333333;
--glow-intensity: 3px;
}
/* Pattern de fond */
.background-pattern {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image:
radial-gradient(circle at 20% 20%, rgba(255, 107, 53, 0.03) 0%, transparent 50%),
radial-gradient(circle at 80% 80%, rgba(255, 165, 0, 0.03) 0%, transparent 50%),
radial-gradient(circle at 40% 60%, rgba(255, 215, 0, 0.02) 0%, transparent 50%);
z-index: -1;
}
/* Header et Navigation */
.header {
position: fixed;
top: 0;
left: 0;
width: 100%;
background: rgba(10, 10, 10, 0.95);
backdrop-filter: blur(10px);
border-bottom: 1px solid var(--border-color);
z-index: 1000;
transition: all 0.3s ease;
}
.nav {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 2rem;
max-width: 1200px;
margin: 0 auto;
}
.nav-logo {
display: flex;
align-items: center;
}
.logo-container {
width: 50px;
height: 50px;
display: flex;
align-items: center;
justify-content: center;
}
.logo-img {
width: 100%;
height: 100%;
object-fit: contain;
animation: logoGlow 3s ease-in-out infinite alternate;
filter: drop-shadow(0 0 10px var(--primary-orange));
}
@keyframes logoGlow {
0% { filter: drop-shadow(0 0 5px var(--primary-orange)); }
100% { filter: drop-shadow(0 0 15px var(--primary-orange)) drop-shadow(0 0 25px var(--accent-orange)); }
}
.nav-menu {
display: flex;
gap: 2rem;
}
.nav-link {
color: var(--text-light);
text-decoration: none;
font-weight: 500;
transition: all 0.3s ease;
position: relative;
}
.nav-link:hover {
color: var(--primary-orange);
text-shadow: 0 0 10px var(--primary-orange);
}
.nav-link::after {
content: '';
position: absolute;
bottom: -5px;
left: 0;
width: 0;
height: 2px;
background: var(--primary-orange);
transition: width 0.3s ease;
}
.nav-link:hover::after {
width: 100%;
}
/* Hero Section */
.hero {
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
padding: 2rem;
position: relative;
}
.hero-content {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4rem;
align-items: center;
max-width: 1200px;
width: 100%;
}
.hero-logo {
display: flex;
justify-content: center;
align-items: center;
}
.hero-logo-img {
width: 400px;
height: 400px;
object-fit: contain;
animation: heroLogoFloat 6s ease-in-out infinite;
filter: drop-shadow(0 0 20px var(--primary-orange));
}
@keyframes heroLogoFloat {
0%, 100% { transform: translateY(0px) rotate(0deg); }
50% { transform: translateY(-20px) rotate(2deg); }
}
.hero-text {
display: flex;
flex-direction: column;
gap: 1.5rem;
}
.hero-title {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.brand-name {
font-size: 4rem;
font-weight: 700;
background: linear-gradient(135deg, var(--primary-orange), var(--accent-orange), var(--gold));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
text-shadow: 0 0 30px rgba(255, 107, 53, 0.5);
animation: brandGlow 2s ease-in-out infinite alternate;
}
@keyframes brandGlow {
0% { text-shadow: 0 0 30px rgba(255, 107, 53, 0.5); }
100% { text-shadow: 0 0 50px rgba(255, 107, 53, 0.8), 0 0 70px rgba(255, 165, 0, 0.3); }
}
.brand-subtitle {
font-size: 2rem;
font-weight: 400;
color: var(--text-light);
opacity: 0.9;
}
.brand-tagline {
font-size: 1.5rem;
font-weight: 300;
color: var(--text-gray);
font-style: italic;
}
.hero-description {
font-size: 1.2rem;
color: var(--text-gray);
line-height: 1.8;
max-width: 500px;
}
.hero-buttons {
display: flex;
gap: 1rem;
margin-top: 1rem;
}
.btn {
padding: 1rem 2rem;
border: none;
border-radius: 8px;
font-size: 1rem;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
text-decoration: none;
display: inline-block;
text-align: center;
}
.btn-primary {
background: linear-gradient(135deg, var(--primary-orange), var(--secondary-orange));
color: white;
box-shadow: 0 4px 15px rgba(255, 107, 53, 0.3);
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(255, 107, 53, 0.5);
text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
}
.btn-secondary {
background: transparent;
color: var(--text-light);
border: 2px solid var(--primary-orange);
}
.btn-secondary:hover {
background: var(--primary-orange);
color: white;
transform: translateY(-2px);
box-shadow: 0 8px 25px rgba(255, 107, 53, 0.3);
}
/* Container */
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 2rem;
}
/* Sections */
.section-title {
font-size: 3rem;
font-weight: 700;
text-align: center;
margin-bottom: 3rem;
background: linear-gradient(135deg, var(--primary-orange), var(--accent-orange));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Services Section */
.services {
padding: 6rem 0;
background: linear-gradient(180deg, var(--dark-bg) 0%, var(--darker-bg) 100%);
}
.services-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
}
.service-card {
background: rgba(255, 255, 255, 0.02);
border: 1px solid var(--border-color);
border-radius: 16px;
padding: 2rem;
text-align: center;
transition: all 0.3s ease;
backdrop-filter: blur(10px);
}
.service-card:hover {
transform: translateY(-10px);
border-color: var(--primary-orange);
box-shadow: 0 20px 40px rgba(255, 107, 53, 0.1);
}
.service-icon {
width: 80px;
height: 80px;
margin: 0 auto 1.5rem;
display: flex;
align-items: center;
justify-content: center;
}
.service-svg {
width: 100%;
height: 100%;
animation: serviceIconPulse 3s ease-in-out infinite;
}
@keyframes serviceIconPulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.1); }
}
.service-card h3 {
font-size: 1.5rem;
font-weight: 600;
margin-bottom: 1rem;
color: var(--text-light);
}
.service-card p {
color: var(--text-gray);
line-height: 1.6;
}
/* About Section */
.about {
padding: 6rem 0;
}
.about-content {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4rem;
align-items: center;
}
.about-text h2 {
font-size: 2.5rem;
font-weight: 700;
margin-bottom: 2rem;
background: linear-gradient(135deg, var(--primary-orange), var(--accent-orange));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.about-text p {
font-size: 1.1rem;
color: var(--text-gray);
line-height: 1.8;
margin-bottom: 1.5rem;
}
.about-visual {
display: flex;
justify-content: center;
align-items: center;
}
.logo-showcase {
width: 300px;
height: 300px;
display: flex;
align-items: center;
justify-content: center;
}
.showcase-logo-img {
width: 100%;
height: 100%;
object-fit: contain;
animation: showcaseRotate 20s linear infinite;
filter: drop-shadow(0 0 15px var(--primary-orange));
}
@keyframes showcaseRotate {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/* Contact Section */
.contact {
padding: 6rem 0;
background: linear-gradient(180deg, var(--darker-bg) 0%, var(--dark-bg) 100%);
}
.contact-content {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4rem;
align-items: start;
}
.contact-info h3 {
font-size: 2rem;
font-weight: 600;
margin-bottom: 1.5rem;
color: var(--text-light);
}
.contact-info p {
font-size: 1.1rem;
color: var(--text-gray);
line-height: 1.8;
}
.contact-form {
background: rgba(255, 255, 255, 0.02);
border: 1px solid var(--border-color);
border-radius: 16px;
padding: 2rem;
backdrop-filter: blur(10px);
}
.form-group {
margin-bottom: 1.5rem;
}
.form-group input,
.form-group textarea {
width: 100%;
padding: 1rem;
background: rgba(255, 255, 255, 0.05);
border: 1px solid var(--border-color);
border-radius: 8px;
color: var(--text-light);
font-size: 1rem;
transition: all 0.3s ease;
}
.form-group input:focus,
.form-group textarea:focus {
outline: none;
border-color: var(--primary-orange);
box-shadow: 0 0 20px rgba(255, 107, 53, 0.2);
}
.form-group input::placeholder,
.form-group textarea::placeholder {
color: var(--text-gray);
}
/* Footer */
.footer {
background: var(--darker-bg);
border-top: 1px solid var(--border-color);
padding: 3rem 0 1rem;
}
.footer-content {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 2rem;
}
.footer-logo {
display: flex;
align-items: center;
gap: 1rem;
}
.footer-logo-container {
width: 40px;
height: 40px;
}
.footer-logo-img {
width: 100%;
height: 100%;
object-fit: contain;
animation: footerLogoGlow 4s ease-in-out infinite alternate;
filter: drop-shadow(0 0 8px var(--primary-orange));
}
@keyframes footerLogoGlow {
0% { filter: drop-shadow(0 0 3px var(--primary-orange)); }
100% { filter: drop-shadow(0 0 8px var(--primary-orange)) drop-shadow(0 0 15px var(--accent-orange)); }
}
.footer-text {
display: flex;
flex-direction: column;
}
.footer-text .brand-name {
font-size: 1.2rem;
font-weight: 700;
color: var(--primary-orange);
}
.footer-text .brand-subtitle {
font-size: 0.9rem;
color: var(--text-gray);
}
.footer-links {
display: flex;
gap: 2rem;
}
.footer-links a {
color: var(--text-gray);
text-decoration: none;
transition: color 0.3s ease;
}
.footer-links a:hover {
color: var(--primary-orange);
}
.footer-bottom {
text-align: center;
padding-top: 2rem;
border-top: 1px solid var(--border-color);
color: var(--text-gray);
}
/* Responsive Design */
@media (max-width: 768px) {
.nav {
padding: 1rem;
flex-direction: column;
gap: 1rem;
}
.nav-menu {
gap: 1rem;
}
.hero-content {
grid-template-columns: 1fr;
gap: 2rem;
text-align: center;
}
.hero-logo-img {
width: 250px;
height: 250px;
}
.brand-name {
font-size: 2.5rem;
}
.brand-subtitle {
font-size: 1.5rem;
}
.brand-tagline {
font-size: 1.2rem;
}
.hero-buttons {
justify-content: center;
flex-wrap: wrap;
}
.about-content {
grid-template-columns: 1fr;
gap: 2rem;
text-align: center;
}
.contact-content {
grid-template-columns: 1fr;
gap: 2rem;
}
.footer-content {
flex-direction: column;
gap: 2rem;
text-align: center;
}
.footer-links {
flex-wrap: wrap;
justify-content: center;
}
.services-grid {
grid-template-columns: 1fr;
}
.section-title {
font-size: 2rem;
}
}
@media (max-width: 480px) {
.container {
padding: 0 1rem;
}
.hero {
padding: 1rem;
}
.hero-logo-img {
width: 200px;
height: 200px;
}
.brand-name {
font-size: 2rem;
}
.btn {
padding: 0.8rem 1.5rem;
font-size: 0.9rem;
}
.service-card,
.contact-form {
padding: 1.5rem;
}
}
/* Animations d'apparition */
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.fade-in-up {
animation: fadeInUp 0.8s ease-out forwards;
}
/* Scrollbar personnalisée */
::-webkit-scrollbar {
width: 8px;
}
::-webkit-scrollbar-track {
background: var(--darker-bg);
}
::-webkit-scrollbar-thumb {
background: var(--primary-orange);
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: var(--secondary-orange);
}
/* Effets de particules (optionnel) */
.particles {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
z-index: -1;
}
.particle {
position: absolute;
width: 2px;
height: 2px;
background: var(--primary-orange);
border-radius: 50%;
opacity: 0.3;
animation: particleFloat 10s linear infinite;
}
@keyframes particleFloat {
0% {
transform: translateY(100vh) rotate(0deg);
opacity: 0;
}
10% {
opacity: 0.3;
}
90% {
opacity: 0.3;
}
100% {
transform: translateY(-100px) rotate(360deg);
opacity: 0;
}
}