Installatiehandleiding

De software van NoShowsVoorspellen.nl is ontworpen om eenvoudig te installeren. Of je nu on-premise werkt, in de cloud of met Kubernetes, binnen enkele stappen is alles operationeel.

  1. Over de installatie, dankzij Docker eenvoudiger dan ooit
  2. Schematisch overzicht van de oplossing
  3. On-premise installatie
  4. Cloud installatie
  5. Cloud Kubernetes installatie

Video van de installatie

Over de installatie, dankzij Docker eenvoudiger dan ooit

De software van NoShowsVoorspellen.nl wordt geleverd als Docker image. Dat betekent dat alles, van het AI-model tot de webapplicatie en eventueel de scheduler, al volledig is voorgeconfigureerd. Je hoeft alleen Docker en Docker Compose te installeren op je server of cloudomgeving, de image te downloaden en te starten. Vaak is dit op cloudomgevingen al standaard aanwezig. Vervolgens krijg je een licentiesleutel om de software te activeren.

Alle benodigde componenten, zoals Python, libraries en afhankelijkheden, zijn ingebouwd in de container. Hierdoor is de installatie consistent, veilig en volledig platformonafhankelijk. En dit voorkomt een belangrijk pijnpunt. Ik heb namelijk ervaren dat lang niet alle organisaties bekend zijn met Python-omgevingen of het installeren van de benodigde libraries en afhankelijkheden. En dat is precies waar Docker bij helpt. Met Docker is de installatie een kwestie van enkele commando's uitvoeren, zonder gedoe met dependencies of onbekende software.

Voordelen van werken met Docker

  • Eenvoudige installatie: binnen enkele minuten operationeel, zonder handmatige setup.
  • Consistente werking: dezelfde container draait op elke omgeving zonder compatibiliteitsproblemen.
  • Automatische updates: verbeteringen aan het AI-model of de webapp worden eenvoudig uitgerold via een update aan image.
  • Platformonafhankelijk: werkt naadloos op Linux en in cloudomgevingen zoals Azure of AWS.
  • Snelle herstart: containers kunnen in seconden worden opgestart of vervangen, zonder downtime.
Hoewel Docker ook op Windows werkt via WSL2, adviseer ik voor productieomgevingen een Linux-server. Dit kan eenvoudig met bijvoorbeeld een Ubuntu-server en zelfs een beelink mini-pc met ubuntu is voldoende. Linux werkt rechtstreeks met Docker samen en levert daardoor de beste stabiliteit en prestaties.

Onderstaande secties leggen de verschillende installatieopties uit. Of je nu on-premise, in de cloud of via Kubernetes werkt, de installatie blijft eenvoudig en uniform.

Schematische weergave van de oplossing

Onderstaand een schematische weergave van de applicatie. In dit voorbeeld gaan we uit van on premise SQL databases en een on premise linux server. De architectuur blijft voor een cloud oplossing met bijvoorbeeld azure redelijk vergelijkbaar. De SQL databases zijn dan vervangen door Azure databases en Azure web services in plaats van een linux server. Zoals eerder aangegeven hoeft door het gebruik van docker, enkel docker en de docker image geïnstalleerd te worden. Python en andere dependencies zijn onderdeel van de image en daardoor werkt het geheel eenvoudig.

  1. Afspraakdata wordt ingelezen.
  2. Het opgeslagen model wordt opgehaald.
  3. Voorspellingen worden met python uitgevoerd.
  4. Voorspellingen worden teruggeschreven naar een database.
  5. De voorspelde noshows worden gecombineerd met contact informatie van de klant getoond in de webapp.
  6. De telefonist houdt bij of de klant herinnert is en de mogelijke andere uitkomsten worden ook vastgelegd.
  7. De vastgelegde gegevens van de telefonist worden teruggeschreven naar de database. Zodat de effectiviteit kan worden bepaald.
Architectuur van de applicatie op een on-premise omgeving. Voor een cloud omgeving met bijvoorbeeld azure, zijn de SQL databases te vervangen door Azure databases en Azure web services in plaats van een linux server.

De voorspellingen worden getoond in de webapp en telefonisten kunnen starten met het telefonisch herinneren van klanten. De uitkomsten van het telefonisch herinneren houden ze in de web app bij. Eventuele bijzonderheden kunnen ook worden genoteerd. Voor een andere organisatie zijn deze klanten met bijzonderheden naar de desbetreffende afdelingen gemaild, zodat zij verder contact met de klant opnamen. Onderstaand is de webapp getoond.

Eerder heb ik organisaties geholpen met enkel het voorspellen van no shows en moesten zij zelf een webapp ontwikkelen. Dit bleek vaak lastig omdat weinig organisaties deze expertise bezitten. Zonder webapp is het lastig om gestructureerd de voorspelde no shows telefonisch te herinneren. Daarom is dit nu onderdeel van de enterprise oplossing.

De webapp waarin aangegeven wordt of de klant bereikt is en eventuele bijzonderheden worden genoteerd.

On-premise installatie

De on-premise installatie is ideaal voor organisaties die zelf een server in beheer hebben of dit willen blijven doen. De software werkt naadloos met Microsoft SQL Server, PostgreSQL of andere gangbare databases.

Hardware & OS

Een Linux-server (bijv. Ubuntu) volstaat. Een compacte Beelink mini-pc is vaak al krachtig genoeg. Je kunt de server kopen of huren bij een hostingprovider.

Installatiestappen

  1. Pull de Docker image
    docker pull ghcr.io/noshowsvoorspellen-nl/noshowsvoorspellen:1.0.0
  2. Bepaal of de webapp buiten het lokale netwerk toegankelijk moet zijn Ik ondersteun twee docker-compose voorbeeldbestanden. Als je wilt dat telefonisten van buitenaf kunnen inloggen, kies je simpelweg dat variant.
  3. Pas het voorbeeld .env bestand aan Vul je databaseverbinding, datasetlocaties en andere instellingen in. Er wordt een voorbeeldbestand meegeleverd om dit makkelijk te maken. Onderstaand zie je een voorbeeld van een .env bestand.
    In dit voorbeeld is de database on-premise. Zowel ODBC 17 als 18 drivers worden ondersteund. Verder is het mogelijk om uit een andere database locatie te lezen en te schrijven. Dit is handig voor het scheiden van klantdata en voorspellingsdata.
# Het configuratiebestand (.env) voor NoShowsVoorspellen.nl
# Database configuratie voor voorspellingen en webapp
DB_LOCATION=onprem             # opties: onprem | azure | aws 
SERVER_WRITE=Servernaam
DATABASE_WRITE=Databasenaam
USERNAME_WRITE=***gebruikersnaam***
PASSWORD_WRITE=***wachtwoord***
DRIVER_WRITE="ODBC Driver 18 for SQL Server"

# Database configuratie voor klantdata (alleen-lezen)
DB_LOCATION=onprem             # opties: onprem | azure | aws 
SERVER_READ=Servernaam
DATABASE_READ=Databasenaam
USERNAME_READ=***gebruikersnaam***
PASSWORD_READ=***wachtwoord***
DRIVER_READ="ODBC Driver 17 for SQL Server"
Voorbeeld van het .env configuratiebestand. Eén bestand configureert NoShowsVoorspellen.nl, zodat deze kan verbinden met jouw databases, lokaal of in de cloud.
  1. Maak of pas het docker-compose.yml bestand aan In onderstaand voorbeeld worden twee containers gestart: één voor de webapplicatie en één voor het dagelijks uitvoeren van voorspellingen. Beide gebruiken hetzelfde .env bestand voor hun instellingen.
version: '3.8'

services:
  voorspel:
    image: noshowsvoorspellen/noshowsvoorspellen:1.0.0
    container_name: voorspel-container
    command: python main_voorspel.py
    env_file:
      - .env
    volumes:
      - .locatie_ai_model_op_server:/app/models/noshow_model.joblib
    restart: "no"

  webapp:
    image: noshowsvoorspellen/noshowsvoorspellen:1.0.0
    container_name: noshow-webapp
    command: uvicorn main:app --host 0.0.0.0 --port 8000
    env_file:
      - .env
    ports:
      - "8000:8000"
    restart: always
Voorbeeld van een minimale docker-compose.yml configuratie. De map ./model/ bevat het AI-modelbestand dat door de voorspelcontainer wordt gebruikt.
  1. Start de containers
    docker compose up -d
    Binnen enkele seconden draaien de webapp en de voorspellingsservice.
  2. Automatiseer dagelijkse voorspellingen Gebruik je eigen tools (cron, task scheduler, pipeline) of de noshowsvoorspellen/scheduler image Configureer deze opnieuwe met compose en laat hem dagelijks draaien.
Binnen 30 minuten is de installatie meestal afgerond. Geen complexe setup of afhankelijkheden nodig — alles draait in Docker.

Cloud installatie (Azure / AWS / Google Cloud)

Wil je liever volledig in de cloud draaien? Dat kan net zo eenvoudig. De applicatie werkt met Azure SQL Database, AWS RDS of Google Cloud SQL.

Installatiestappen

  1. Pull de Docker image Gebruik dezelfde image als bij on-premise.
  2. Kies je cloud service De eenvoudigste manier is via Azure App Service of AWS Elastic Beanstalk met Docker Compose. Upload het docker-compose.yml bestand en geef de environment variables mee via het portaal.
  3. Verbind met je cloud database Voeg in het .env bestand je connection string toe van Azure SQL of RDS. Er wordt een voorbeeldbestand meegeleverd om dit makkelijk te maken. Onderstaand zie je een voorbeeld van een .env bestand.
    In dit voorbeeld is de database in de azure cloud. ODBC 17 en 18 drivers zijn ondersteund. Verder is het mogelijk om uit een andere database locatie te lezen en te schrijven. Dit is handig voor het scheiden van klantdata en voorspellingsdata.
    
    # Het configuratiebestand (.env) voor NoShowsVoorspellen.nl
    # Database configuratie voor voorspellingen en webapp
    DB_LOCATION=azure             # opties: onprem | azure | aws
    SERVER_WRITE=Servernaam
    DATABASE_WRITE=Databasenaam
    USERNAME_WRITE=***gebruikersnaam***
    PASSWORD_WRITE=***wachtwoord***
    DRIVER_WRITE="ODBC Driver 18 for SQL Server"
    
    # Database configuratie voor klantdata (alleen-lezen)
    DB_LOCATION=azure            # opties: onprem | azure | aws 
    SERVER_READ=Servernaam
    DATABASE_READ=Databasenaam
    USERNAME_READ=***gebruikersnaam***
    PASSWORD_READ=***wachtwoord***
    DRIVER_READ="ODBC Driver 18 for SQL Server"
    
    Voorbeeld van het .env configuratiebestand. Eén bestand configureert NoShowsVoorspellen.nl, zodat deze kan verbinden met jouw databases, lokaal of in de cloud.
  4. Start de containers Dit gebeurt automatisch via de cloud service, of handmatig via:
    docker compose up -d
  5. Dagelijkse voorspellingen Gebruik Azure Logic Apps, AWS Lambda of de meegeleverde scheduler image om de voorspellingen dagelijks uit te voeren.

Cloud Kubernetes installatie

Voor grotere organisaties of DevOps-omgevingen kan de oplossing eenvoudig op Kubernetes draaien.

Overzicht

  • 1 pod voor de webapp
  • 1 pod voor de voorspellingsservice
  • (optioneel) 1 job voor het dagelijks uitvoeren van voorspellingen

Installatiestappen

  1. Pull de Docker images
    kubectl pull noshowsvoorspellen/enterprise:latest
  2. Maak een Kubernetes deployment en service aan
  3. Configureer secrets en configmaps Hierin zet je de database-verbinding en datasetlocaties (vergelijkbaar met het .env-bestand).
  4. Implementeer een cronjob voor dagelijkse voorspellingen Deze job draait automatisch één keer per dag.
  5. Controleer de status
    kubectl get pods
Dankzij de containerarchitectuur zijn alle varianten identiek in functionaliteit. Alleen de infrastructuur verschilt — de installatie blijft eenvoudig.

Neem de eerste stap naar het verminderen van no-shows!

Wil je weten hoe je no-shows in jouw organisatie kunt voorspellen en vermijden met behulp van AI?

Vraag kennismaking aan

Gratis, praktisch en volledig toegespitst op jouw situatie! Ook krijg je inzicht in hoeveel extra omzet je kunt genereren door no-shows te vermijden.