← Alle artikelen

Kantoren · 4 min

Van kantoor naar apps

Ons hele kantoor draait op één kleine server achter onze eigen Viaalink Relay: projectbeheer, inloggen, wachtwoorden, mail, statistieken, een lokaal AI-model. Hoe het in elkaar zit, waarom de Relay de webserver is, en waarom we er via apps van maken.

  • relay
  • cli
  • self-hosting
  • office
  • apps

TL;DR: Ons kantoor draait op één mini-pc met onze eigen Viaalink Relay ervoor. Elke dienst krijgt een HTTPS-adres onder ons domein, zonder dat er op de router van de machine die hem draait ook maar één poort open hoeft. Omdat de Relay de webserver is, verhuizen we een dienst in een paar minuten naar een andere machine, zonder DNS-wijziging en zonder nieuw certificaat. Nu brengen we deze apps samen als via apps, in een openbare repository.

Eén klein kastje, een heel kantoor

Alles wat we dagelijks gebruiken draait op één mini-pc op kantoor: een Ryzen AI 9 HX 470 met Radeon 890M-graphics en 58 GB geheugen, met Proxmox, dag en nacht aan. Daarop:

WatWaarvoor
Onze interne kantoorapplicatiesuite, met een eigen MCP-server en OAuth 2.1-loginPlannen, tickets en sessies, leesbaar voor AI-assistenten
AuthentikEén login voor alles
VaultwardenWachtwoorden, alleen via die login
GiteaPakketten en container-images
Redmine en ZammadIssues en de helpdesk
n8nAutomatiseringen tussen al het bovenstaande
UmamiWebsitestatistieken, zonder cookies
Postal en een mailserver die alleen verstuurtMail van elke app, via één gateway
FirecrawlEen eigen webcrawler
llama.cpp met Open WebUIEen lokaal AI-model (Gemma) op de ingebouwde grafische chip
De contentstudio van Digitale Kraamzorg (CMS, MCP-server en website) en de pijplijn achter vacaturesite nuttigwerk.nlWerk voor klanten, gebouwd en geserveerd vanaf hetzelfde kastje

Containers kunnen de grafische chip delen, dus het AI-model en het werk dat het nodig heeft draaien in containers in plaats van volledige virtuele machines.

Hoe een verzoek zijn app vindt

Onze Relay draait op een NAS op hetzelfde kantoor. Die beheert ons domein, het wildcardcertificaat en elke naam. De machine met de apps maakt zelf verbinding met de Relay; er komt niets binnen.

text

Elk project heeft een via.yaml. Een dienst met public: true krijgt een naam op de Relay; alles zonder die markering heeft helemaal geen route en is dus ook niet per ongeluk van buiten te bereiken. Als de machine opstart, publiceert hij zijn diensten vanzelf opnieuw. Voor iets snels publiceert via expose <poort> één enkele poort.

De Relay is de webserver

Dit is het deel dat vaak gemist wordt. In de meeste opstellingen is de machine die een app draait ook de plek van het certificaat, van de webserverconfiguratie en waar DNS naartoe wijst. Verhuis de app en alle drie verhuizen mee.

Met een Relay blijven alle drie op de Relay. De machine erachter draait alleen de app en houdt één verbinding open. Dat heeft twee gevolgen die we elke week gebruiken.

Een dienst verhuizen kost minuten

Op 31 oktober verhuisden we de contentstudio van Digitale Kraamzorg van een ontwikkelwerkplek naar een container op de kantoorserver. De stappen: stoppen met publiceren op de oude machine, een laatste databasedump, terugzetten op de nieuwe, de aantallen rijen vergelijken, dezelfde namen publiceren vanaf de nieuwe machine. Een paar minuten “niet gevonden”, daarna dezelfde pagina’s als voorheen. Geen DNS-record gewijzigd, geen certificaat uitgegeven, en de AI-assistenten die met de MCP-server praten bleven werken, omdat het adres nooit veranderde.

Eén les: zet de oude publicatie echt uit. Een vergeten ontwikkelkopie op de oude machine publiceerde later dezelfde namen opnieuw en nam de route terug.

Eén naam, meerdere machines

Een Relay kan meerdere machines dezelfde naam laten houden en verzoeken om de beurt over ze verdelen (round-robin). Een machine die steeds faalt krijgt minder verzoeken tot hij hersteld is. Wordt een dienst druk, of wil je een tweede exemplaar ergens anders, dan start je hem op een andere machine onder dezelfde naam. Voor wie hem gebruikt verandert er niets. Zet HTTP load balancer aan onder Network in het dashboard van de Relay; standaard staat die uit. Zie Relay-configuratie.

Via apps

Wat begon als ons eigen kantoor wordt een product. Onze interne kantoorapplicatiesuite bevat 66 verpakte apps, en die zetten we om naar via apps: elk een pakket met een eigen via.yaml, klaar om op je eigen machine te starten en via je eigen Relay te publiceren. Ze verhuizen naar een nieuwe openbare repository, viaalink/apps, met een appcatalogus op viaalink.com en installatie vanuit de Viaalink CLI. De suite waarop ons eigen kantoor draait blijft intern en installeert uit diezelfde catalogus. Zodra de repository open is, linken we hem hier.

Een Relay op je eigen NAS

Onze Relay draait op een NAS, en de jouwe kan dat ook. Het Viaalink Relay-pakket voor ASUSTOR ligt ter beoordeling bij App Central en het Synology-pakket bij Package Center, dus binnenkort zijn ze allebei te downloaden in hun appwinkels. Tot die tijd: Relay op ASUSTOR, en op Synology met Docker.

Alles hierboven werkt vandaag al met een Relay en de Viaalink CLI.

Lees de quick start

Contact

Een onderwerp voor ons?

Schrijf ons.