easypanel docker guithub

EasyPanel – een aangename verrassing binnen de server management tools

Auteur: Danny Holstein

Enige tijd geleden heb ik een online cursus Docker en Docker-compose gevolgd. Wel waren er nog een tweetal vragen: Hoe zijn Docker containers gereed te maken voor een productie-omgeving op internet? En hoe kan dit op een eenvoudige en goedkope manier worden bereikt?

Voor een productie-omgeving biedt Docker vele tools, zo zijn onder andere Docker images naar hub.docker.com te pushen. Ook zijn er op internet andere services en diensten die dit mogelijk maken. Een nadeel is dat hier vaak hoge tarieven voor worden gerekend.

Een alternatief is om een Linux-server te huren en daar zowel Docker als Docker-compose op te installeren. Daarnaast kan de code worden geplaatst op GitHub, GitLab of een andere repository. Het voordeel hiervan is dat de daaraan verbonden kosten een stuk lager zijn. Maar het nadeel is dat er veel Linux-commando’s in de terminal getypt moeten worden en eveneens is het aanmaken en beheren van SSH-keys complex.

Tijdens de zoektocht naar een makkelijkere manier om Docker containers in een productie-omgeving uit te voeren, is BEE-2B uitgekomen op EasyPanel en is dit uitgeprobeerd voor onze applicaties. EasyPanel biedt een gebruiksvriendelijk controlepaneel dat zowel de complexiteit als bovenstaande nadelen wegneemt.

Installatie van EasyPanel

Om EasyPanel te kunnen gebruiken is er een Linux VPS-server nodig met minimaal 2GB aan RAM- geheugen. Er zijn meerdere aanbieders op internet die deze servers verhuren. BEE-2B heeft voor Hetzner.com gekozen die goedkope en kwalitatief goede servers verhuurd.

Wanneer eenmaal een account is aangemaakt op Hetzner.com, is het vrij eenvoudig om een Linux VPS-server (met Ubuntu 22.0.4) in te stellen. Er zijn slechts een aantal commando’s nodig in de terminal om EasyPanel te installeren. Een goed artikel daarover (in het Engels) is te vinden via de link:

https://www.bitdoze.com/easypanel-modern-server-control-panel/

 

EasyPanel, projecten, templates en meer

Na installatie is er in te loggen op EasyPanel via: <ip_adres_van_de_VPS_server>:3000

Rechts bovenaan is er een knop om over te schakelen op dark mode. Het controlepaneel toont onder andere hoeveel processor-, geheugen- en schijf-gebruik er is.

Bij gratis gebruik is er wel een limiet van maximaal 3 projecten. Wanneer er een license (licentie) is gekocht dan is het aantal projecten onbeperkt en kunnen er meerdere gebruikers worden toegevoegd. Met een license is ook de geavanceerde monitor beschikbaar.

easypanel admin

EasyPanel biedt veel kant-en-klare templates, niet alleen voor databases zoals: MySQL, MariaDB, PostgresSQL, maar ook voor Identity and Access Management (IAM) tools zoals Keycloak. Er zijn verder templates voor cloud platformen zoals Owncloud en NextCloud.

Naast templates kunnen ook direct Docker images met eigen instellingen worden gebruikt. Omdat EasyPanel zelf gebaseerd is op Docker, kan er vanuit een repository inclusief Dockerfile een Docker container worden gebouwd.

Om dit uit te testen heb ik zelf een simpele ‘Book applicatie’ gemaakt die gebruikt maakt van: een PostgreSQL database, een dotnet WebAPI en een Angular 18 frontend.

De combinatie EasyPanel en Azure DevOps Repositories werkt niet!

Zoals hier boven besproken, is het mogelijk om een repository te gebruiken inclusief Dockerfile, om zodoende een Docker container te bouwen. Wel is er een access token nodig zodat EasyPanel de code uit de repository kan ophalen en gebruiken. De documentatie van EasyPanel biedt hiervoor duidelijke instructies en dit alles is eenvoudig in te stellen.

Wat niet werkt dat is de combinatie EasyPanel en de repositories van Azure DevOps. EasyPanel (alsook Linux distro’s) gebruikt voor zijn SSH-keys het modernere Ed25519 beveiligingsalgoritme. Maar Azure DevOps heeft pas de ondersteuning met het oudere en minder veilige rsa-algoritme in februari 2024 beëindigd. Hier zijn twee andere algoritmen voor in de plaats gekomen, maar niet het algoritme dat nodig is voor EasyPanel.

Om dit probleem te omzeilen is, kan er uitgeweken worden naar GitHub, GitLab of een andere repository die het  modernere Ed25519 beveiligingsalgoritme voor de SSH-keys wel ondersteund. BEE-2B heeft gekozen voor GitHub.

De ‘Book-applicatie’ om EasyPanel uit te testen

Een voordeel is het kant-en-klare template om een PostgreSQL database te maken. Dit is met een aantal muisklikken eenvoudig te regelen. Daarnaast zijn er andere templates voor andere databases en services. Zie de afbeelding hier boven en onder.

Omdat de applicaties van BEE-2B gebruikmaken van SQL Server, moest de code worden aangepast, in het bijzonder de database-provider. Voor de rest deden zich geen grote problemen voor. In de repository is er wel een Dockerfile nodig om de Docker container te kunnen bouwen. In EasyPanel wordt de dotnet WebAPI als App toegevoegd.

Hetzelfde geldt voor de Angular 18 applicatie. Deze wordt in EasyPanel eveneens als App toegevoegd. Met eenmaal de Dockerfile en de nginx configuratie op de juiste plaats, is op een eenvoudige manier de applicatie online te zetten.

De menu’s in EasyPanel zijn duidelijk en het is hiermee makkelijk om de code vanuit een GitHub repository op te halen. Daarnaast zijn er de opties om de code direct te uploaden als ZIP-bestand, direct een Docker image te gebruiken en andere opties. Zie de afbeelding hieronder.

Met alles op de juiste plaats, heeft EasyPanel een eenvoudig menu om de Docker container te maken, namelijk: de groene ‘Deploy’ knop. Daarnaast zijn er knoppen om een Docker container opnieuw te maken (een force rebuild). Wanneer het nodig is, dan kan er ook naar de terminal worden gegaan.

Wanneer de applicatie is gebouwd, dan kan deze worden bekeken in een tijdelijk domein dat gebruik maakt van HTTPS. EasyPanel zorgt automatisch voor de SSL-certificaten (via Let’s Encrypt) en dit is dan ook een ander groot voordeel van EasyPanel.

Het resultaat van het onderzoek naar EasyPanel is een ‘example-book-project’ waarbij ieder deel van de applicatie in zijn eigen Docker container wordt uitgevoerd. Afhankelijk van de behoeften van een project, kan deze Docker swarm zo groot worden gemaakt als het RAM-geheugen van de VPS-Server toelaat.

Andere voordelen van EasyPanel

Wanneer er wordt gewerkt met Docker Desktop dan is er snel te merken dat dit de nodige schijfruimte inneemt. EasyPanel heeft standaard een ‘Daily Docker Cleanup’ aan staan in de instellingen, waarbij alle ongebruikte Docker images automatisch worden opgeschoond en vele gigabytes kunnen vrijkomen. Het voordeel is dat een handmatige opschoning (in Docker jargon een system prune) niet nodig is.

Ook is EasyPanel zelf heel eenvoudig te upgraden. Wanneer er een nieuwe versie is, dan verschijnt linksboven een knop om EasyPanel te updaten. Op dit moment van schrijven is er keuze uit meer dan 250 kant-en-klare templates en dit aantal zal in de toekomst alleen maar toenemen.

Positieve conclusie

BEE-2B is zeer positief over het gebruiksgemak en de mogelijkheden van EasyPanel. Het controlepaneel is duidelijk, overzichtelijk en zaken wijzen zichzelf uit. De technieken die wij gebruiken, zoals een database met een dotnet WebAPI en Angular frontend, zijn met EasyPanel eenvoudig en snel online te zetten.

Uiteraard hangt er aan een license van EasyPanel en het huren van een Linux VPS-server nog wel een prijskaartje. Maar is dit aanzienlijk goedkoper dan bijvoorbeeld de CI/CD-omgeving van Azure DevOps. Een voordeel van EasyPanel is dat met de gratis versie (maximaal 3 projecten) al heel ver is te komen.

Het werken met GitHub repositories en het gebruik van Docker containers sluit bovendien beter aan op de vraag van de huidige IT-arbeidsmarkt.

Leave a Reply

*