Files

116 lines
5.0 KiB
Markdown

# AGENTS.md — eendoeserver (eendoe.nl & web03)
Instructies, architectuur, ontwerpregels en deploymentprocedures voor AI-agents en ontwikkelaars die werken binnen deze repository.
---
## 🎯 1. Overzicht & Doel
Deze repository (`eendoeserver`) beheert de bronbestanden, styling, documentatie en Apache 2.4 VirtualHost-configuraties voor de standalone productieserver **`web03`** (`eendoe.nl` en `bm4.nl`).
### Kerncomponenten:
* **`eendoe/`**: De publieke document root voor de website van Eendoe Services (`index.html`, assets, stylesheets, scripts).
* **`vhosts/`**: Apache VirtualHost configuraties geïncludeerd op de host via `Include /sites/vhosts/*.conf`.
---
## 🖥️ 2. Productieomgeving & Architectuur
* **Server**: Standalone Linux host `web03` (`eendoe.nl`).
* **SSH Toegang**: `bart@eendoe.nl` (authenticatie via SSH keys).
* **Webserver**: Apache 2.4 met HTTP/2 ondersteuning (`mod_ssl`, `mod_rewrite`, `mod_http2`).
* **Pad op productieserver**:
* Website document root: `/sites/eendoe/`
* Apache vhosts: `/sites/vhosts/`
* Debian package repository (zie ook `package-repo`): `/sites/repository/`
* **SSL/TLS**: Let's Encrypt certificaten via Certbot (`/etc/letsencrypt/`).
---
## 🎨 3. Ontwerpregels & Frontend Conventies
### ⚠️ Belangrijk: Behoud de authentieke stijl ("Minder AI, meer Elate")
De website is gebouwd op basis van het klassieke **Elate** template van FREEHTML5.co.
1. **Geen moderne AI/SaaS-saus**:
* Vermijd geforceerde glassmorphism, zwevende SaaS feature cards, zware box-shadows, gekleurde border-glows of overdadige gradient-knoppen.
* Houd interacties en layouts consistent met de bestaande rustige, zakelijke en minimalistische uitstraling.
2. **Typografie & Kleuren**:
* Basistekst: `#7f7f7f`, koppen: `#393e46`, achtergronden: `#f7f7f7` of `#ffffff`.
* Primaire themakleur: `#52d3aa` (turquoise / mintgroen).
3. **Framework & Bibliotheken**:
* **Bootstrap 3.3.5**: Gebruik native Bootstrap 3 componenten (bijv. modals voor popups, grid `col-md-*`, `col-sm-*`).
* **jQuery & Plugins**: `jquery.min.js`, `jquery.easing`, `jquery.stellar`, `jquery.waypoints`.
* **Iconen**: Icomoon (`icon-phone`, `icon-envelope`, `icon-home`, `icon-globe`, etc.).
4. **Taal & Toon**:
* Alle teksten op de website zijn in zakelijk, foutloos en bondig Nederlands.
---
## 🚀 4. Workflow & Deployment
### A. Wijzigingen aanbrengen & lokaal testen
* Pas bronbestanden aan binnen `eendoe/` (of `vhosts/` indien van toepassing).
* Valideer HTML-syntax en controleer dat er geen ongebalanceerde tags ontstaan.
* Zorg dat gecompileerde CSS (`css/style.css`) en SCSS (`sass/style.scss`) synchroon blijven.
### B. Committen en pushen (Git)
* Werk vanuit de submodule of clone:
```bash
git add <gewijzigde bestanden>
git commit -m "Korte beschrijving van de wijziging"
git push origin main
```
* Bij gebruik als submodule binnen de centrale `cluster` repository: werk daarna de submodule pointer in de root repository bij:
```bash
git -C .. add eendoeserver
git -C .. commit -m "Update eendoeserver submodule pointer"
git -C .. push origin main
```
### C. Deployen naar productie (`web03`)
De live website wordt direct geserveerd vanuit `/sites/eendoe/` op `eendoe.nl`. Deployment gebeurt via `rsync` over SSH:
```bash
# 1. Droogloop (optioneel, om te controleren wat er overgezet wordt):
rsync -n -avz eendoe/ bart@eendoe.nl:/sites/eendoe/
# 2. Live deploy van de website:
rsync -avz eendoe/ bart@eendoe.nl:/sites/eendoe/
# 3. Live verificatie:
curl -sI https://eendoe.nl | head -n 5
```
> [!NOTE]
> Gebruik **geen** `--delete` bij rsync op `/sites/eendoe/` zonder expliciete controle, om te voorkomen dat server-specifieke scripts (zoals `install-repo.sh` of submappen) onbedoeld worden verwijderd.
### D. VirtualHosts bijwerken (indien van toepassing)
Als configuraties in `vhosts/` zijn gewijzigd:
```bash
rsync -avz vhosts/ bart@eendoe.nl:/sites/vhosts/
ssh bart@eendoe.nl "sudo apache2ctl configtest && sudo systemctl reload apache2"
```
---
## 📋 5. Bestandsstructuur
```
eendoeserver/
├── AGENTS.md # Dit instructiebestand
├── README.md # Korte repo-beschrijving
├── eendoe/ # Document root
│ ├── index.html # Hoofdpagina eendoe.nl / bm4.nl
│ ├── css/ # Gecompileerde stylesheets (style.css, bootstrap.css)
│ ├── sass/ # SASS bronbestanden (style.scss)
│ ├── js/ # JavaScript (Bootstrap, jQuery, plugins, main.js)
│ ├── images/ # Afbeeldingen en logo's (work_*.jpg, contact.jpg)
│ ├── fonts/ # Icomoon en Glyphicons lettertypen
│ └── documents/ # PDF downloads (zoals algemene voorwaarden)
└── vhosts/ # Apache 2.4 configuraties
├── 20_eendoe.conf # HTTP vhost
├── 20_eendoe-le-ssl.conf # HTTPS vhost eendoe.nl / bm4.nl
└── 20_repository.conf # APT repository vhost
```