Nederlands, English
Doneer aan ASK-Solutions (de IRADIS Foundation), Bekijk onze video's, Steun ons op Patreon
Aanmelden

Nocterra

Nocterra is een project van ASK-Solutions waarin een algemeen inzetbaar vrijesoftware-Content Management System wordt ontwikkeld voor snelle, toegankelijke, privacyvriendelijke en onderhoudbare websites.

Het CMS is gebouwd rond brongebaseerd publiceren, inspecteerbare bestanden, voorspelbare uitvoer en langdurige controle door de mensen die een site beheren. Een normale Nocterra-website kan worden gepubliceerd zonder publiek inlogscherm, onnodige databaseafhankelijkheid, bezoekerstracking, telemetrie, advertentiescripts, propriëtaire pagebuilder of pluginmarktplaats als noodzakelijke onderdelen van het publicatiemodel. Tegelijk kan een Nocterra-site rechtstreeks PHP bevatten voor dynamische functionaliteit. Daarnaast kan het CMS met extensies en add-ons worden uitgebreid voor gespecialiseerde toepassingen.

Waarom Nocterra bestaat

Het web maakt het mogelijk voor mensen en organisaties om te publiceren zonder toestemming van een grote softwareleverancier, uitgever of omroep. In de praktijk zijn veel websitetools juist de andere kant op gegaan: gehoste platforms, propriëtaire workflows, via de browser toegankelijke beheerbackends, telemetrie, vendor lock-in, subscription-only themes, propriëtaire pagebuilders en plugin-ecosystemen die op termijn kwetsbaar kunnen worden.

Die kwetsbaarheid is niet alleen technisch. Veel websites worden afhankelijk van commerciële marktplaatsen, betaalde add-ons, verlaten plugins, incompatibele thema’s, plotselinge abonnementswijzigingen of componenten die geen onderhoud meer krijgen. Wanneer een website regelmatig bijgewerkt moet worden om veilig en functioneel te blijven, kan een niet-onderhouden plugin of thema een stabiel upgradepad blokkeren en de site afhankelijk maken van een leverancier, een marktplaats of één specifieke maintainer.

Nocterra is vanuit een ander uitgangspunt gebouwd. Een website moet begrijpelijk, onderhoudbaar en overdraagbaar zijn. De inhoud en structuur moeten opgeslagen worden in bestanden die geback-upt, bekeken, bewerkt, geversioneerd en verplaatst kunnen worden. Het publicatiesysteem moet helpen snelle, toegankelijke en gestructureerde uitvoer te maken zonder dat elke site afhankelijk wordt van een extern platform, een voortdurend blootgesteld beheeroppervlak of een marktplaats van componenten van derden.

Het publicatiemodel

Nocterra is gebouwd rond een brongebaseerd publicatiemodel. Inhoud, structuur, configuratie, presentatielogica, extensies en add-ons worden bewaard in vormen die geïnspecteerd, geversioneerd, geback-upt, aangepast en verplaatst kunnen worden. De website die bezoekers zien wordt uit die bronnen gegenereerd, in plaats van opgesloten te zitten in een databasegestuurde beheerinterface, propriëtaire pagebuilder, marktplaatsthema of van abonnementen afhankelijke pluginstack.

Daarmee is Nocterra een algemeen inzetbaar CMS voor onderhoudbare publieke websites, praktijken, kleine bedrijven, redactionele websites, meertalige sites, documentatie, projectsites, organisatiesites en andere gestructureerde webpublicaties en maatwerk-webapplicaties. Het punt is niet een vaste lijst van ondersteunde sitetypen, maar een publicatiebenadering: houd de bron begrijpelijk, houd de controle bij de site-eigenaar en maak langetermijnonderhoud mogelijk zonder afhankelijkheid van een gesloten marktplaats of instabiel plugin-ecosysteem.

Het systeem ondersteunt ook meer functionaliteit via PHP-integratie, extensies en add-ons. Sommige functionaliteit hoort in de kern van het CMS. Sommige hoort in een extensie die kan worden geïnstalleerd wanneer dat nodig is. Grotere of meer gespecialiseerde functionaliteit kan als add-on worden ontwikkeld. Zo blijft Nocterra uitbreidbaar zonder het normale publicatiemodel te veranderen in een afhankelijkheid van een propriëtaire pluginmarktplaats.

Auteurswerk en deployment hoeven daarbij niet via een CMS-eigen publieke beheeromgeving te verlopen. Site-eigenaren kunnen hun eigen editor, besturingssysteem en workflow gebruiken en bestanden bijvoorbeeld via SSH, SCP, SFTP, rsync of WebDAV beheren en overbrengen. Nocterra probeert daarmee niet opnieuw een editor, gebruikersbeheer, bestandsoverdracht en authenticatieprotocol binnen één publieke webapplicatie te bouwen wanneer daarvoor al afzonderlijke, gevestigde gereedschappen bestaan.

Waarom Nocterra de AGPLv3 gebruikt

Nocterra is vanaf de eerste publieke release uitgebracht onder de GNU Affero General Public License versie 3. Dat was een bewuste keuze. Eerder publicatiewerk zoals Synergos was naar de GPLv3 gegaan, maar Nocterra werd vanaf het begin ontworpen met het netwerkdienstprobleem in gedachten: vrije software kan nog steeds gebruikt worden om praktische vrijheid te beperken wanneer gewijzigde versies alleen als gehoste diensten worden aangeboden.

De keuze voor vrije software sluit aan bij vragen die binnen ASK-Solutions al langer centraal staan rond kennis, vrijheid, afhankelijkheid en praktische zeggenschap. De vier essentiële vrijheden van vrije software — software kunnen uitvoeren, bestuderen, delen en wijzigen — geven aan zulke vragen een concrete betekenis binnen software. Voor ASK-Solutions is daarbij niet alleen van belang dat deze vrijheden juridisch bestaan, maar ook dat zij praktisch bruikbaar blijven.

Bij software die via een netwerk wordt gebruikt ontstaat daarbij een aanvullende vraag. Een partij kan vrije software wijzigen en uitsluitend als netwerkdienst aanbieden zonder de gewijzigde software zelf te verspreiden. Gebruikers kunnen dan praktisch afhankelijk worden van een gewijzigde versie die zij wel gebruiken, maar niet kunnen bestuderen of verder ontwikkelen.

De AGPLv3 sluit daar beter op aan dan de gewone GPL wanneer gewijzigde software als netwerkdienst wordt gebruikt. Wanneer gebruikers via een netwerk met zo’n gewijzigde versie communiceren, zorgt de licentie ervoor dat zij toegang kunnen krijgen tot de bijbehorende broncode van die gewijzigde versie.

Daarmee past de licentie bij de technische richting van Nocterra. Brongebaseerd publiceren, inspecteerbare configuratie, overdraagbare deployment en de AGPLv3 wijzen dezelfde kant op: praktische controle moet niet ongemerkt verschuiven naar degene die toevallig de server, hosting of netwerkdienst beheert.

Privacy, veiligheid en controle

Nocterra bevat geen bezoekerstracking, trackingcookies, telemetrie, advertentiescripts of externe analytics als onderdeel van het eigen model. Een normale Nocterra-website kan gepubliceerd worden zonder bezoekers eerst te vragen tracking te accepteren voordat zij een pagina kunnen lezen. Dat maakt privacy een normale ontwerpkeuze in plaats van een latere toevoeging.

Nocterra vermijdt ook een via de browser toegankelijke beheerbackend op de publieke website voor normaal publiceren. Het heeft geen publiek inlogscherm, online editor, databasebeheerpaneel of pluginmarktplaats nodig om gewone pagina’s te serveren. Omdat die onderdelen geen deel uitmaken van het normale model, vermijdt Nocterra verschillende veelvoorkomende aanvalspaden uit veel databasegestuurde CMS-installaties.

Controle gaat ook over overdraagbaarheid en upgradebaarheid. Een Nocterra-site hoort niet afhankelijk te zijn van een gesloten gehost platform, een subscription-only theme, een propriëtaire pagebuilder, een databasestructuur die maar één leverancier begrijpt of een set plugins van derden die mogelijk geen onderhoud meer krijgen of achterdeuren of verborgen telemetrie binnensmokkelen over u, uw wachtwoorden en uw bezoekers. Ontwerpen, sjablonen, inhoud, configuratie, extensies en add-ons moeten inspecteerbaar en onderhoudbaar blijven, zodat een site gerepareerd, verplaatst, geüpgraded en begrepen kan worden.

Dit betekent niet dat elke Nocterra-site automatisch veilig, toegankelijk of onafhankelijk is. Het betekent dat het systeem is ontworpen om zorgvuldige publicatiepraktijken te ondersteunen: duidelijke bronbestanden, voorspelbare uitvoer, gecontroleerde deployment, expliciete metadata, leesbare structuur, vrije software, minder verborgen afhankelijkheden en een onderhoudbaar extensiemodel.

Langdurige compatibiliteit en beheerst risico

De ontwikkeling van Nocterra begon in de periode waarin PHP 5.6 juist het einde van de officiële ondersteuning bereikte, terwijl die versie nog lange tijd in bestaande hostingomgevingen werd gebruikt. Nocterra werd vanaf het begin zo ontwikkeld dat het ook op zulke bestaande omgevingen kon functioneren. De eerste publieke release verscheen in juni 2019 en compatibiliteit met PHP 5.6 wordt nog steeds zoveel mogelijk behouden.

Daarachter ligt een bewuste ontwerpkeuze. Het einde van ondersteuning door een leverancier betekent niet automatisch dat technisch bruikbare apparatuur of software vervangen of van een netwerk verwijderd moet worden. Zoals ook oudere computers, besturingssystemen en andere techniek verantwoord operationeel en bereikbaar kunnen blijven, hangt het werkelijke risico af van wat een systeem doet, welke functies worden blootgesteld, welke gegevens en rechten ermee gemoeid zijn en hoe de omgeving is ingericht. De relevante vraag is daarom niet alleen hoe oud is dit systeem?, maar vooral hoe wordt het gebruikt en beheerst?

Nocterra houdt het eigen publieke aanvalsoppervlak daarom bewust klein. Het normale CMS-model bevat geen publiek auteursportaal, gebruikersregistratie, WYSIWYG-editor, uploadomgeving of CMS-eigen mechanisme voor het beheren van gebruikers en credentials. Code van een site, extensie of add-on komt uit de door de site-eigenaar beheerde bron. Vanuit het CMS zelf bestaat de publiek aangeboden invoer daardoor hoofdzakelijk uit webrequests en URL-verwerking, tenzij een site of add-on bewust aanvullende interactieve functionaliteit toevoegt.

Langdurige compatibiliteit en beveiliging zijn daarmee geen tegengestelde doelen. Door verantwoordelijkheid en publiek bereik bewust te begrenzen kan bestaande infrastructuur langer bruikbaar blijven zonder gebruikers onnodig in een voortdurende cyclus van upgrades en vervanging te dwingen.

Extensies en add-ons

Nocterra is niet beperkt tot een vaste kern. Elke pagina kan uitgebreid worden door PHP-code te integreren, en het CMS heeft ingebouwde ondersteuning voor extensies en add-ons. Extensies kunnen functionaliteit toevoegen terwijl ze deel blijven van het normale Nocterra-installatiemodel. Add-ons kunnen grotere of meer gespecialiseerde functies bieden wanneer dat technisch beter past.

Het verschil met veel plugin-gedreven systemen is dat Nocterra niet vertrouwt op een marktplaats-churnmodel waarin site-eigenaren worden geduwd richting terugkerende abonnementen, verlaten componenten, incompatibele thema’s of ondoorzichtige door leveranciers gecontroleerde updatepaden. Extensies en add-ons moeten het bredere vrije-softwareproject versterken, inspecteerbaar blijven en onderhoudbaar zijn zonder overdraagbaarheid of gebruikerscontrole te verzwakken.

Geschiedenis: van BackPage en Synergos naar Nocterra

Nocterra bouwt voort op ervaringen uit twee eerdere projecten van ASK-Solutions. BackPage, waarvan de eerste versie in 1998 verscheen, werkte met gestructureerde bronbestanden, algemeen beschikbare gereedschappen en gegenereerde website-uitvoer. Synergos onderzocht later bewust een interactiever model met een SQL-database, webgebaseerd beheer, WYSIWYG-bewerking, producten, bestellingen en betaalafhandeling.

Die ontwikkeling was geen eenvoudige reeks versies waarin ieder systeem alleen meer functies kreeg. Synergos liet zowel de mogelijkheden als de blijvende onderhouds- en beveiligingslast van een sterk geïntegreerde publieke beheeromgeving zien. Bij Nocterra werden de ervaringen uit beide projecten opnieuw afgewogen. Brongebaseerd publiceren kwam opnieuw centraal te staan, terwijl browsergebaseerd auteursbeheer, gebruikersbeheer, betaalafhandeling en webshoponderhoud geen noodzakelijke onderdelen van het normale CMS-model werden.

Na The Great Server Crash™, die enkele jaren eerder had plaatsgevonden, werd Synergos niet opnieuw opgebouwd zoals het daarvoor bestond. Zeer vroeg in 2019 werd vervolgens het afzonderlijke project Nocterra gestart. Daarbij werden bruikbare ideeën en ervaringen uit zowel BackPage als Synergos opnieuw afgewogen en gecombineerd in een andere technische richting. De eerste publieke release van Nocterra verscheen in juni 2019.

Relatie met ASK-Solutions

Nocterra is een project van ASK-Solutions. Het geeft een concrete technische uitwerking aan vragen rond kennis, vrijheid, afhankelijkheid en eigenaarschap: hoe kunnen mensen en organisaties informatie publiceren en systemen gebruiken zonder de praktische controle daarover onnodig over te dragen aan één leverancier, platform of technisch ecosysteem?

Daarom gaat Nocterra niet alleen over het genereren van webpagina’s. De keuze voor vrije software, begrijpelijke bronbestanden, overdraagbare sites, beperkte publieke beheerfunctionaliteit, langdurige compatibiliteit en inspecteerbare extensies en add-ons hangt samen met dezelfde vraag: kan een site-eigenaar het systeem blijven begrijpen, onderhouden, verplaatsen, aanpassen en gebruiken wanneer leveranciers, infrastructuur of omstandigheden veranderen?

Nocterra is bewust algemeen inzetbaar. De architectuur is geschikt voor uiteenlopende toepassingen, waaronder websites van organisaties en bedrijven, praktijken, documentatie, projecten, redactionele sites en maatwerk-webapplicaties. Dezelfde uitgangspunten rond onderhoudbaarheid, overdraagbaarheid, privacy, toegankelijkheid en praktische controle blijven daarbij van toepassing.

Waarheen verder?