From 269c67ace25de199cad708bc098a45c5a78cfc5d Mon Sep 17 00:00:00 2001 From: ordinarthur <@arthurbarre.js@gmail.com> Date: Tue, 5 May 2026 18:52:34 +0200 Subject: [PATCH] add landing v3 --- .claude/deploy-memory.md | 52 ++++++++++++++++++ .dockerignore | 5 +- CLAUDE.md | 20 ++++++- Dockerfile | 6 +- {public => landing}/apple-touch-icon.png | Bin {assets => landing/assets}/logo.png | Bin {public => landing}/favicon-96x96.png | Bin {public => landing}/favicon.ico | Bin {public => landing}/favicon.svg | 0 {public => landing}/index.html | 11 ++-- {public => landing}/site.webmanifest | 0 .../web-app-manifest-192x192.png | Bin .../web-app-manifest-512x512.png | Bin 13 files changed, 81 insertions(+), 13 deletions(-) create mode 100644 .claude/deploy-memory.md rename {public => landing}/apple-touch-icon.png (100%) rename {assets => landing/assets}/logo.png (100%) rename {public => landing}/favicon-96x96.png (100%) rename {public => landing}/favicon.ico (100%) rename {public => landing}/favicon.svg (100%) rename {public => landing}/index.html (99%) rename {public => landing}/site.webmanifest (100%) rename {public => landing}/web-app-manifest-192x192.png (100%) rename {public => landing}/web-app-manifest-512x512.png (100%) diff --git a/.claude/deploy-memory.md b/.claude/deploy-memory.md new file mode 100644 index 0000000..bf47dd5 --- /dev/null +++ b/.claude/deploy-memory.md @@ -0,0 +1,52 @@ +# Deploy memory — rubis + +## Infra +- Namespace : `rubis` +- Deployment : `rubis` +- Container : `rubis` +- NodePort : `30109` +- Image : `git.arthurbarre.fr/ordinarthur/rubis` +- Domaine : https://rubis.arthurbarre.fr (sous-domaine **temporaire** — domaine définitif pas encore acheté) +- Manifests : `k3s/` (namespace.yml, deployment.yml, service.yml) +- Route Traefik : `~/dev/perso/proxmox/ansible/roles/traefik/templates/rubis.yml.j2` +- Repo Gitea : https://git.arthurbarre.fr/ordinarthur/rubis (remote `gitea`) + +## Mise à jour (à suivre pour les prochains /deploy) + +1. **Voie normale — push git, le CI build + rollout auto** : + ```bash + git push gitea main + ``` + +2. **Voie manuelle** (si Docker Desktop tourne sur le Mac) : + ```bash + TAG=$(git rev-parse --short HEAD) + docker build --platform linux/amd64 -t git.arthurbarre.fr/ordinarthur/rubis:$TAG . + docker push git.arthurbarre.fr/ordinarthur/rubis:$TAG + kubectl --kubeconfig ~/dev/perso/proxmox/k3s/kubeconfig.yaml \ + -n rubis set image deploy/rubis rubis=git.arthurbarre.fr/ordinarthur/rubis:$TAG + kubectl --kubeconfig ~/dev/perso/proxmox/k3s/kubeconfig.yaml \ + -n rubis rollout status deploy/rubis + ``` + +3. Si changement route/domaine : `cd ~/dev/perso/proxmox/ansible && ansible-playbook playbooks/gateway.yml` + +4. Vérif : `curl -I https://rubis.arthurbarre.fr` + +## Quand le domaine définitif sera acheté + +1. Créer le record A chez OVH (ou autre registrar) : `` → `51.38.62.199` +2. Modifier la rule du fichier `~/dev/perso/proxmox/ansible/roles/traefik/templates/rubis.yml.j2` : + `Host(\`\`)` +3. Relancer le playbook `gateway.yml` +4. (Optionnel) supprimer le record DNS `rubis.arthurbarre.fr` si plus utilisé + +## Stack +Landing statique, servie par **nginx:1.27-alpine** (Dockerfile à la racine, sert `public/`). +Le rebuild est rapide (pas de bundler). + +## Déjà fait — NE PAS refaire +Dockerfile, manifests K3s, route Traefik (`rubis.yml.j2` + tâche dans `tasks/main.yml`), +DNS OVH (A record `rubis.arthurbarre.fr` id 5413044152), repo Gitea + secrets CI +(`KUBECONFIG`, `REGISTRY_PASSWORD`), namespace + secret registry K3s. +Les prochains `/deploy` font uniquement build + rollout via push git. diff --git a/.dockerignore b/.dockerignore index 0ff64b2..230f4d6 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,7 +3,8 @@ .claude .DS_Store docs/ -assets/ -landing.html +public/ *.md k3s/ +Dockerfile +.dockerignore diff --git a/CLAUDE.md b/CLAUDE.md index 73dff78..26267f9 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -118,21 +118,35 @@ Ce qu'on sait : TypeScript, le reste à formaliser (framework, DB, OCR provider, | Fichier | Rôle | |---|---| | `/CLAUDE.md` (ce fichier) | Contexte top-level, toujours en tête | -| `/landing.html` | Landing page brand-applied, prête à déployer (waitlist V1) | +| `/landing/index.html` | Landing page brand-applied, déployée (waitlist V1) | +| `/landing/favicon.{svg,ico,png}` | Set complet de favicons + apple-touch-icon | +| `/landing/site.webmanifest` | Manifest PWA (theme `#9F1239`, background `#FAF7F2`) | +| `/landing/assets/logo.png` | Logo Rubis original (généré, source pour les favicons) | | `/docs/produit.md` | Spec produit détaillée (features, flows, IN/OUT V1) | | `/docs/marque.md` | Référence marque écrite (palette, typo, voix, do/don't) | | `/docs/decisions.md` | Log de décisions avec rationale (format ADR-light) | | `/docs/wireframes-mvp.html` | Wireframes low-fi des 13 écrans MVP | | `/docs/brand-identity.html` | Présentation visuelle de la marque (4 logos, applications) | | `/docs/munitions-marketing.md` | Stats marché, concurrents, positionnement, copy | +| `/Dockerfile` | Build nginx-alpine servant `/landing/` sur port 80 | +| `/k3s/` | Manifests Kubernetes (namespace, deployment, service) | +| `/.claude/deploy-memory.md` | Procédure de déploiement (Gitea CI ou manuel) | + +## Déploiement + +- **Image** : `git.arthurbarre.fr/ordinarthur/rubis:latest` +- **Domaine actuel** (temporaire) : https://rubis.arthurbarre.fr +- **Build** : `COPY landing/` → nginx servi sur port 80 +- Voir `.claude/deploy-memory.md` pour la procédure complète. ## Questions ouvertes -- **Stack technique** à formaliser +- **Stack technique app produit** à formaliser (la landing tourne en static nginx, mais le SaaS lui-même reste à scoper) - **Conversion 1 rubis = 10 min** validée mais à confirmer en user testing après MVP - **Wordmark "rubis" avec gem-i** (direction C) à monter en complément du logo A à un moment - **Provider OCR** à benchmarker (Mindee, Document AI, Textract, Tesseract) -- **Endpoint waitlist** à câbler dans `landing.html` (Resend, Formspree, ou API perso) +- **Endpoint waitlist** à câbler dans `/landing/index.html` (Resend, Formspree, ou API perso) +- **Domaine définitif** à acheter (le sous-domaine actuel est temporaire) --- diff --git a/Dockerfile b/Dockerfile index 4c187e0..f78c6a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,14 @@ FROM nginx:1.27-alpine -COPY public/ /usr/share/nginx/html/ +COPY landing/ /usr/share/nginx/html/ RUN printf 'server {\n\ - listen 80;\n\ + listen 80;\n\x server_name _;\n\ root /usr/share/nginx/html;\n\ index index.html;\n\ \n\ - location / {\n\ + location / {\n\x try_files $uri $uri/ /index.html;\n\ }\n\ \n\ diff --git a/public/apple-touch-icon.png b/landing/apple-touch-icon.png similarity index 100% rename from public/apple-touch-icon.png rename to landing/apple-touch-icon.png diff --git a/assets/logo.png b/landing/assets/logo.png similarity index 100% rename from assets/logo.png rename to landing/assets/logo.png diff --git a/public/favicon-96x96.png b/landing/favicon-96x96.png similarity index 100% rename from public/favicon-96x96.png rename to landing/favicon-96x96.png diff --git a/public/favicon.ico b/landing/favicon.ico similarity index 100% rename from public/favicon.ico rename to landing/favicon.ico diff --git a/public/favicon.svg b/landing/favicon.svg similarity index 100% rename from public/favicon.svg rename to landing/favicon.svg diff --git a/public/index.html b/landing/index.html similarity index 99% rename from public/index.html rename to landing/index.html index 42c3198..4df1b19 100644 --- a/public/index.html +++ b/landing/index.html @@ -2409,12 +2409,13 @@ Plan Business 49 €/mois -
Pour les équipes 5+, avec onboarding humain
-

Vous êtes plusieurs dans la boîte ? Business ajoute le multi-utilisateurs, votre adresse - compta@votre-entreprise.fr, et — V2 — le SMS de relance. On cale aussi un onboarding - sur-mesure ensemble. +

Pour les équipes
+

Vous pouvez générer autant de relances actives que vous voulez. +
+ Vous avez la possibilité d'avoir 5 utilisateurs. +

- Caler 30 min avec Arthur + Démarrer Business diff --git a/public/site.webmanifest b/landing/site.webmanifest similarity index 100% rename from public/site.webmanifest rename to landing/site.webmanifest diff --git a/public/web-app-manifest-192x192.png b/landing/web-app-manifest-192x192.png similarity index 100% rename from public/web-app-manifest-192x192.png rename to landing/web-app-manifest-192x192.png diff --git a/public/web-app-manifest-512x512.png b/landing/web-app-manifest-512x512.png similarity index 100% rename from public/web-app-manifest-512x512.png rename to landing/web-app-manifest-512x512.png