No description
  • PHP 99.4%
  • JavaScript 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Bas f873d60bab
Some checks failed
PHP-controle / php-syntax (push) Has been cancelled
Vernieuw informatiepagina en beheer algemene teksten
2026-08-09 22:35:06 +02:00
.forgejo/workflows Eerste versie Flintstone website en CMS 2026-08-09 09:07:04 +02:00
admin Vernieuw informatiepagina en beheer algemene teksten 2026-08-09 22:35:06 +02:00
app Vernieuw informatiepagina en beheer algemene teksten 2026-08-09 22:35:06 +02:00
assets Vernieuw informatiepagina en beheer algemene teksten 2026-08-09 22:35:06 +02:00
storage Eerste versie Flintstone website en CMS 2026-08-09 09:07:04 +02:00
templates Vernieuw informatiepagina en beheer algemene teksten 2026-08-09 22:35:06 +02:00
.gitattributes Eerste versie Flintstone website en CMS 2026-08-09 09:07:04 +02:00
.gitignore Eerste versie Flintstone website en CMS 2026-08-09 09:07:04 +02:00
.htaccess Eerste versie Flintstone website en CMS 2026-08-09 09:07:04 +02:00
config.php Eerste versie Flintstone website en CMS 2026-08-09 09:07:04 +02:00
index.php Vernieuw informatiepagina en beheer algemene teksten 2026-08-09 22:35:06 +02:00
informatie.php Vernieuw informatiepagina en beheer algemene teksten 2026-08-09 22:35:06 +02:00
install.php Vernieuw informatiepagina en beheer algemene teksten 2026-08-09 22:35:06 +02:00
README.md Eerste versie Flintstone website en CMS 2026-08-09 09:07:04 +02:00
SECURITY.md Eerste versie Flintstone website en CMS 2026-08-09 09:07:04 +02:00

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_rewrite aanbevolen (Nginx werkt ook)
  • HTTPS op de uiteindelijke website

Installatie

  1. Upload de inhoud van deze map naar de webroot van flint-stone.nl.
  2. Zorg dat PHP kan schrijven in storage/ (bij veel hostingpartijen is dit automatisch goed; anders maprechten 750 of 770).
  3. Open https://flint-stone.nl/install.php.
  4. Kies een beheerdersnaam en een uniek wachtwoord van minimaal 12 tekens.
  5. Log in via https://flint-stone.nl/admin/.
  6. 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.