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.
- Over de installatie, dankzij Docker eenvoudiger dan ooit
- Schematisch overzicht van de oplossing
- On-premise installatie
- Cloud installatie
- 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.
- Afspraakdata wordt ingelezen.
- Het opgeslagen model wordt opgehaald.
- Voorspellingen worden met python uitgevoerd.
- Voorspellingen worden teruggeschreven naar een database.
- De voorspelde noshows worden gecombineerd met contact informatie van de klant getoond in de webapp.
- De telefonist houdt bij of de klant herinnert is en de mogelijke andere uitkomsten worden ook vastgelegd.
- De vastgelegde gegevens van de telefonist worden teruggeschreven naar de database. Zodat de effectiviteit kan worden bepaald.
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.
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
- Pull de Docker image
docker pull ghcr.io/noshowsvoorspellen-nl/noshowsvoorspellen:1.0.0 - Bepaal of de webapp buiten het lokale netwerk toegankelijk moet zijn
Ik ondersteun twee
docker-composevoorbeeldbestanden. Als je wilt dat telefonisten van buitenaf kunnen inloggen, kies je simpelweg dat variant. - Pas het voorbeeld
.envbestand 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.envbestand.
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"
.env configuratiebestand.
Eén bestand configureert NoShowsVoorspellen.nl, zodat deze kan verbinden met jouw databases, lokaal of in de cloud.
- Maak of pas het
docker-compose.ymlbestand aan In onderstaand voorbeeld worden twee containers gestart: één voor de webapplicatie en één voor het dagelijks uitvoeren van voorspellingen. Beide gebruiken hetzelfde.envbestand 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
docker-compose.yml configuratie.
De map ./model/ bevat het AI-modelbestand dat door de voorspelcontainer wordt gebruikt.
- Start de containers
Binnen enkele seconden draaien de webapp en de voorspellingsservice.docker compose up -d - Automatiseer dagelijkse voorspellingen
Gebruik je eigen tools (cron, task scheduler, pipeline) of de
noshowsvoorspellen/schedulerimage 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
- Pull de Docker image Gebruik dezelfde image als bij on-premise.
- Kies je cloud service
De eenvoudigste manier is via Azure App Service of AWS Elastic Beanstalk met Docker Compose.
Upload het
docker-compose.ymlbestand en geef de environment variables mee via het portaal. - Verbind met je cloud database
Voeg in het
.envbestand 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.envbestand.
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 .envconfiguratiebestand. Eén bestand configureert NoShowsVoorspellen.nl, zodat deze kan verbinden met jouw databases, lokaal of in de cloud. - Start de containers
Dit gebeurt automatisch via de cloud service, of handmatig via:
docker compose up -d - 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
- Pull de Docker images
kubectl pull noshowsvoorspellen/enterprise:latest - Maak een Kubernetes deployment en service aan
- Configureer secrets en configmaps Hierin zet je de database-verbinding en datasetlocaties (vergelijkbaar met het .env-bestand).
- Implementeer een cronjob voor dagelijkse voorspellingen Deze job draait automatisch één keer per dag.
- 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?
Gratis, praktisch en volledig toegespitst op jouw situatie! Ook krijg je inzicht in hoeveel extra omzet je kunt genereren door no-shows te vermijden.