Add SEO optimization
- Add meta tags (keywords, author, robots, canonical) - Add Open Graph tags for social sharing - Add Twitter card meta tags - Add hreflang tags for EN/FR language alternates - Add Schema.org structured data (JSON-LD) - Create sitemap.xml - Create robots.txt - Add workflow documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
131
doc/deployment-guide.md
Normal file
131
doc/deployment-guide.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# Atomaste - Guide de Déploiement
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
c:\Users\antoi\WEBtomaste\ <-- SOURCE (Master)
|
||||
|
|
||||
| deploy-hostinger.bat
|
||||
v
|
||||
atomaste.ca <-- PRODUCTION (Hostinger)
|
||||
```
|
||||
|
||||
**Workflow:** Tu modifies les fichiers localement, puis tu déploies sur Hostinger.
|
||||
|
||||
---
|
||||
|
||||
## Fichiers du site
|
||||
|
||||
| Fichier | Description |
|
||||
|---------|-------------|
|
||||
| `index.html` | Page d'accueil (anglais) |
|
||||
| `fr.html` | Page d'accueil (français) |
|
||||
| `.htaccess` | Configuration serveur Apache |
|
||||
| `Media/` | Images et logos |
|
||||
|
||||
### Fichiers Media utilisés:
|
||||
- `Atomaste_logo_A.svg` - Favicon
|
||||
- `Atomaste_light_grey_Logo.svg` - Logo header/footer
|
||||
- `Site_1_8.png` - Photo Antoine
|
||||
|
||||
---
|
||||
|
||||
## Déploiement
|
||||
|
||||
### Option 1: Script automatique (recommandé)
|
||||
|
||||
Double-clique sur:
|
||||
```
|
||||
deploy-hostinger.bat
|
||||
```
|
||||
|
||||
Ce script upload automatiquement tous les fichiers nécessaires.
|
||||
|
||||
### Option 2: Commandes manuelles (curl)
|
||||
|
||||
```bash
|
||||
# Upload un fichier spécifique
|
||||
curl -u "u878837096:hey@claudeLeta12" -T "index.html" "ftp://145.223.77.209/domains/atomaste.ca/public_html/"
|
||||
|
||||
# Upload une image
|
||||
curl -u "u878837096:hey@claudeLeta12" -T "Media/MonImage.png" "ftp://145.223.77.209/domains/atomaste.ca/public_html/Media/"
|
||||
```
|
||||
|
||||
### Option 3: Demander à Claude
|
||||
|
||||
Dis simplement: "deploy to hostinger" ou "push to production"
|
||||
|
||||
---
|
||||
|
||||
## Accès FTP Hostinger
|
||||
|
||||
| Paramètre | Valeur |
|
||||
|-----------|--------|
|
||||
| Host | `ftp://145.223.77.209` |
|
||||
| Username | `u878837096` |
|
||||
| Password | `hey@claudeLeta12` |
|
||||
| Port | `21` |
|
||||
| Remote Path | `/domains/atomaste.ca/public_html` |
|
||||
|
||||
**Note:** Ces credentials sont aussi dans `deploy-hostinger.bat` et `deploy-hostinger.ps1`
|
||||
|
||||
---
|
||||
|
||||
## Structure sur le serveur Hostinger
|
||||
|
||||
```
|
||||
/domains/atomaste.ca/public_html/
|
||||
├── index.html
|
||||
├── fr.html
|
||||
├── .htaccess
|
||||
└── Media/
|
||||
├── Atomaste_logo_A.svg
|
||||
├── Atomaste_light_grey_Logo.svg
|
||||
└── Site_1_8.png
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Ajouter une nouvelle image
|
||||
|
||||
1. Place l'image dans `Media/` localement
|
||||
2. Référence-la dans ton HTML: `<img src="Media/nom-image.png">`
|
||||
3. Upload avec:
|
||||
```bash
|
||||
curl -u "u878837096:hey@claudeLeta12" -T "Media/nom-image.png" "ftp://145.223.77.209/domains/atomaste.ca/public_html/Media/"
|
||||
```
|
||||
4. Ou ajoute la ligne dans `deploy-hostinger.bat`
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Le site ne se met pas à jour
|
||||
- Fais un hard refresh: `Ctrl+Shift+R`
|
||||
- Ouvre en navigation privée
|
||||
- Vérifie que l'upload a réussi (pas de "FAILED")
|
||||
|
||||
### Erreur 550 (File unavailable)
|
||||
- Le dossier n'existe pas sur le serveur
|
||||
- Utilise `--ftp-create-dirs` avec curl
|
||||
|
||||
### L'ancien site WordPress apparaît
|
||||
- Le `.htaccess` a été écrasé par WordPress
|
||||
- Re-upload le `.htaccess` local
|
||||
|
||||
---
|
||||
|
||||
## URLs
|
||||
|
||||
- **Production:** https://atomaste.ca
|
||||
- **Français:** https://atomaste.ca/fr.html
|
||||
- **LinkedIn:** https://www.linkedin.com/company/atomaste/
|
||||
|
||||
---
|
||||
|
||||
## Serveur de développement local (optionnel)
|
||||
|
||||
Tu as aussi un serveur dev sur Dalidou:
|
||||
```
|
||||
deploy-to-dalidou.bat --> http://192.168.86.50:8090
|
||||
```
|
||||
53
doc/workflow.md
Normal file
53
doc/workflow.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Atomaste Website Workflow
|
||||
|
||||
## Source of Truth
|
||||
|
||||
**Master Location**: `C:\Users\antoi\WEBtomaste` (Windows)
|
||||
|
||||
This is your primary working directory. All edits should be made here.
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
WEBtomaste (Windows - MASTER)
|
||||
|
|
||||
+---> Gitea: http://192.168.86.50:3000/Antoine/WEBtomaste.git (version control)
|
||||
|
|
||||
+---> Syncthing ---> Dalidou:/srv/atomaste-dev (auto-sync for dev testing)
|
||||
|
|
||||
+---> Hostinger (production - manual deploy)
|
||||
```
|
||||
|
||||
## Development Workflow
|
||||
|
||||
1. **Edit files** in `C:\Users\antoi\WEBtomaste`
|
||||
2. **Changes auto-sync** to Dalidou via Syncthing
|
||||
3. **Test** at `http://192.168.86.50:8090`
|
||||
4. **Commit & push** to Gitea when ready:
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "Your message"
|
||||
git push origin main
|
||||
```
|
||||
5. **Deploy to Hostinger** when production-ready
|
||||
|
||||
## Key Files
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `index.html` | English website |
|
||||
| `fr.html` | French website |
|
||||
| `Media/Atomaste_light_grey_Logo.svg` | Main logo |
|
||||
| `Media/Atomaste_logo_A.svg` | Favicon |
|
||||
| `deploy.bat` | Deploy to Dalidou dev server |
|
||||
|
||||
## Remotes
|
||||
|
||||
- **Gitea**: `http://192.168.86.50:3000/Antoine/WEBtomaste.git`
|
||||
- **Dev Server**: `http://192.168.86.50:8090`
|
||||
|
||||
## Syncthing Configuration
|
||||
|
||||
- Folder: `atomaste-dev`
|
||||
- Type: `sendonly` (Windows -> Dalidou only)
|
||||
- Path on Dalidou: `/srv/atomaste-dev`
|
||||
50
fr.html
50
fr.html
@@ -5,7 +5,55 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ATOMASTE | Services d'optimisation structurelle et analyse par éléments finis</title>
|
||||
<meta name="description" content="Atomaste - Services experts en optimisation structurelle et analyse par éléments finis. Simulation multi-physique, optimisation paramétrique et solutions d'ingénierie avancées.">
|
||||
<meta name="keywords" content="optimisation structurelle, éléments finis, simulation, services ingénierie, optimisation topologique, multi-physique, CAE, conception optimisée, Montréal, Québec, Canada">
|
||||
<meta name="author" content="Atomaste">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="canonical" href="https://atomaste.com/fr.html">
|
||||
|
||||
<!-- Open Graph / Facebook -->
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://atomaste.com/fr.html">
|
||||
<meta property="og:title" content="ATOMASTE | Services d'optimisation structurelle et analyse par éléments finis">
|
||||
<meta property="og:description" content="Services experts en optimisation structurelle et analyse par éléments finis. Simulation multi-physique, optimisation paramétrique et solutions d'ingénierie avancées.">
|
||||
<meta property="og:image" content="https://atomaste.com/Media/Atomaste_light_grey_Logo.svg">
|
||||
<meta property="og:locale" content="fr_CA">
|
||||
<meta property="og:locale:alternate" content="en_CA">
|
||||
|
||||
<!-- Twitter -->
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="ATOMASTE | Services d'optimisation structurelle et analyse par éléments finis">
|
||||
<meta name="twitter:description" content="Services experts en optimisation structurelle et analyse par éléments finis. Simulation multi-physique, optimisation paramétrique et solutions d'ingénierie avancées.">
|
||||
<meta name="twitter:image" content="https://atomaste.com/Media/Atomaste_light_grey_Logo.svg">
|
||||
|
||||
<!-- Language alternates for SEO -->
|
||||
<link rel="alternate" hreflang="en" href="https://atomaste.com/">
|
||||
<link rel="alternate" hreflang="fr" href="https://atomaste.com/fr.html">
|
||||
<link rel="alternate" hreflang="x-default" href="https://atomaste.com/">
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="Media/Atomaste_logo_A.svg?v=2">
|
||||
|
||||
<!-- Structured Data for SEO -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "ProfessionalService",
|
||||
"name": "Atomaste",
|
||||
"description": "Services experts en optimisation structurelle et analyse par éléments finis. Simulation multi-physique, optimisation paramétrique et solutions d'ingénierie avancées.",
|
||||
"url": "https://atomaste.com/fr.html",
|
||||
"logo": "https://atomaste.com/Media/Atomaste_light_grey_Logo.svg",
|
||||
"image": "https://atomaste.com/Media/Atomaste_light_grey_Logo.svg",
|
||||
"areaServed": ["Canada", "États-Unis", "Amérique du Nord"],
|
||||
"serviceType": ["Optimisation structurelle", "Analyse par éléments finis", "Simulation multi-physique", "Optimisation topologique", "Consultation en ingénierie"],
|
||||
"knowsAbout": ["FEA", "CAE", "Analyse structurelle", "Optimisation de conception", "Simulation"],
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"addressLocality": "Montréal",
|
||||
"addressRegion": "Québec",
|
||||
"addressCountry": "CA"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script src="https://unpkg.com/lucide@latest"></script>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
@@ -1070,7 +1118,7 @@ body {
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-center gap-8">
|
||||
<a href="https://linkedin.com" class="text-gray-500 hover:text-cyan-400 transition-colors flex items-center gap-2">
|
||||
<a href="https://www.linkedin.com/company/atomaste/" target="_blank" class="text-gray-500 hover:text-cyan-400 transition-colors flex items-center gap-2">
|
||||
<i data-lucide="linkedin" class="w-5 h-5"></i>
|
||||
LinkedIn
|
||||
</a>
|
||||
|
||||
50
index.html
50
index.html
@@ -5,7 +5,55 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ATOMASTE | Structural Optimization & FEA Engineering Services</title>
|
||||
<meta name="description" content="Atomaste - Expert structural optimization and finite element analysis services. Multi-physics simulation, parametric optimization, and advanced engineering solutions.">
|
||||
<meta name="keywords" content="structural optimization, FEA, finite element analysis, simulation, engineering services, topology optimization, multi-physics, CAE, design optimization, Montreal, Quebec, Canada">
|
||||
<meta name="author" content="Atomaste">
|
||||
<meta name="robots" content="index, follow">
|
||||
<link rel="canonical" href="https://atomaste.com/">
|
||||
|
||||
<!-- Open Graph / Facebook -->
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://atomaste.com/">
|
||||
<meta property="og:title" content="ATOMASTE | Structural Optimization & FEA Engineering Services">
|
||||
<meta property="og:description" content="Expert structural optimization and finite element analysis services. Multi-physics simulation, parametric optimization, and advanced engineering solutions.">
|
||||
<meta property="og:image" content="https://atomaste.com/Media/Atomaste_light_grey_Logo.svg">
|
||||
<meta property="og:locale" content="en_CA">
|
||||
<meta property="og:locale:alternate" content="fr_CA">
|
||||
|
||||
<!-- Twitter -->
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="ATOMASTE | Structural Optimization & FEA Engineering Services">
|
||||
<meta name="twitter:description" content="Expert structural optimization and finite element analysis services. Multi-physics simulation, parametric optimization, and advanced engineering solutions.">
|
||||
<meta name="twitter:image" content="https://atomaste.com/Media/Atomaste_light_grey_Logo.svg">
|
||||
|
||||
<!-- Language alternates for SEO -->
|
||||
<link rel="alternate" hreflang="en" href="https://atomaste.com/">
|
||||
<link rel="alternate" hreflang="fr" href="https://atomaste.com/fr.html">
|
||||
<link rel="alternate" hreflang="x-default" href="https://atomaste.com/">
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="Media/Atomaste_logo_A.svg?v=2">
|
||||
|
||||
<!-- Structured Data for SEO -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "ProfessionalService",
|
||||
"name": "Atomaste",
|
||||
"description": "Expert structural optimization and finite element analysis services. Multi-physics simulation, parametric optimization, and advanced engineering solutions.",
|
||||
"url": "https://atomaste.com",
|
||||
"logo": "https://atomaste.com/Media/Atomaste_light_grey_Logo.svg",
|
||||
"image": "https://atomaste.com/Media/Atomaste_light_grey_Logo.svg",
|
||||
"areaServed": ["Canada", "United States", "North America"],
|
||||
"serviceType": ["Structural Optimization", "Finite Element Analysis", "Multi-physics Simulation", "Topology Optimization", "Engineering Consulting"],
|
||||
"knowsAbout": ["FEA", "CAE", "Structural Analysis", "Design Optimization", "Simulation"],
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"addressLocality": "Montreal",
|
||||
"addressRegion": "Quebec",
|
||||
"addressCountry": "CA"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script src="https://unpkg.com/lucide@latest"></script>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
@@ -1194,7 +1242,7 @@ body {
|
||||
</div>
|
||||
|
||||
<div class="flex items-center justify-center gap-8">
|
||||
<a href="https://linkedin.com" class="text-gray-500 hover:text-cyan-400 transition-colors flex items-center gap-2">
|
||||
<a href="https://www.linkedin.com/company/atomaste/" target="_blank" class="text-gray-500 hover:text-cyan-400 transition-colors flex items-center gap-2">
|
||||
<i data-lucide="linkedin" class="w-5 h-5"></i>
|
||||
LinkedIn
|
||||
</a>
|
||||
|
||||
6
robots.txt
Normal file
6
robots.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
# Atomaste robots.txt
|
||||
User-agent: *
|
||||
Allow: /
|
||||
|
||||
# Sitemap location
|
||||
Sitemap: https://atomaste.com/sitemap.xml
|
||||
20
sitemap.xml
Normal file
20
sitemap.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
<url>
|
||||
<loc>https://atomaste.com/</loc>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://atomaste.com/"/>
|
||||
<xhtml:link rel="alternate" hreflang="fr" href="https://atomaste.com/fr.html"/>
|
||||
<lastmod>2026-01-02</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://atomaste.com/fr.html</loc>
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://atomaste.com/"/>
|
||||
<xhtml:link rel="alternate" hreflang="fr" href="https://atomaste.com/fr.html"/>
|
||||
<lastmod>2026-01-02</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
</urlset>
|
||||
Reference in New Issue
Block a user