- PHP 99.4%
- JavaScript 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| admin | ||
| app | ||
| assets | ||
| storage | ||
| templates | ||
| .gitattributes | ||
| .gitignore | ||
| .htaccess | ||
| config.php | ||
| index.php | ||
| informatie.php | ||
| install.php | ||
| README.md | ||
| SECURITY.md | ||
Flint-Stone website + maatwerk-CMS
Een compacte, zelfstandige PHP/SQLite-website voor flint-stone.nl. WordPress, Composer en een externe database zijn niet nodig.
Opslaan op Forgejo
Deze map is voorbereid als zelfstandig Git-project. Lokale databases, installatiesloten, logbestanden en geheimen worden via .gitignore uitgesloten.
Maak eerst een leeg project aan op je Forgejo-server. Voer daarna vanuit deze projectmap uit:
git remote add origin https://JOUW-FORGEJO-SERVER/JOUW-NAAM/flintstone-website.git
git push -u origin main
Vervang de voorbeeld-URL door de kloon-URL die Forgejo toont. De meegeleverde workflow controleert PHP-bestanden wanneer Forgejo Actions en een runner met label docker beschikbaar zijn. Zonder Actions blijft de website gewoon bruikbaar.
Vereisten
- PHP 8.1 of nieuwer
- Extensies: PDO, pdo_sqlite, mbstring
- Apache met
mod_rewriteaanbevolen (Nginx werkt ook) - HTTPS op de uiteindelijke website
Installatie
- Upload de inhoud van deze map naar de webroot van flint-stone.nl.
- Zorg dat PHP kan schrijven in
storage/(bij veel hostingpartijen is dit automatisch goed; anders maprechten 750 of 770). - Open
https://flint-stone.nl/install.php. - Kies een beheerdersnaam en een uniek wachtwoord van minimaal 12 tekens.
- Log in via
https://flint-stone.nl/admin/. - Controleer bij Instellingen telefoon, adres, openingstijden en melding.
De installer maakt storage/site.sqlite en storage/installed.lock. Daarna weigert install.php een tweede installatie. Verwijder install.php na een geslaagde installatie voor extra hardening.
Nginx
Apache-beveiliging staat in .htaccess. Voeg bij Nginx minimaal dit toe:
location ~ ^/(app|storage|templates)/ { deny all; }
location = /config.php { deny all; }
location ~ /\. { deny all; }
Laat PHP-bestanden op de normale manier door FastCGI afhandelen en zet de documentroot op deze projectmap.
Beheer
- Gerechten: toevoegen, wijzigen, verbergen, verwijderen en volgorde aanpassen.
- Categorieën: toevoegen, wijzigen, verbergen, verwijderen en volgorde aanpassen.
- Informatie: titel en tekst van de informatiepagina.
- Instellingen: bedrijfsnaam, telefoon, adres, openingstijden en tijdelijke melding.
- Account: beheerdersnaam en wachtwoord wijzigen.
Bedragen worden als centen opgeslagen, zodat afrondingsfouten worden voorkomen. Verwijderen van een categorie lukt alleen als deze leeg is.
Back-up en herstel
Maak regelmatig een kopie van storage/site.sqlite. Zet de site tijdens herstel kort in onderhoud, vervang het databasebestand door de back-up en controleer de schrijfrechten. Kopieer het databasebestand niet terwijl een beheerder wijzigingen opslaat.
Veiligheid
De site gebruikt gehashte wachtwoorden, sessievernieuwing, CSRF-bescherming, prepared statements, output-escaping, beveiligingsheaders, een installatieslot en tijdelijke blokkering na mislukte logins. De mappen met code, templates en database zijn via Apache afgeschermd. Gebruik altijd HTTPS en houd PHP actueel.