Hoe het werkt

Van build naar live URL

Drie stappen aan de oppervlakte. Daaronder valideert, sandboxt en routeert Shippers je app voordat deze ooit live gaat.

1

Maak een app aan

Geef je app een naam en kies een framework — WebforJ (WAR of JAR), Spring Boot (JAR) of Node.js. De naam wordt onderdeel van de slug van je app, gecontroleerd tegen een gereserveerde lijst zodat je nooit per ongeluk iets als www of admin kunt claimen.

2

Upload je build

Sleep je .war of .jar-bestand naar binnen. Shippers streamt het naar schijf binnen het opslagquotum van je account, controleert of de bestandsextensie overeenkomt met het opgegeven apptype, en verifieert dat de eerste bytes een echte zip-signature zijn — een WAR of JAR is onder de motorkap een zip.

3

Shippers valideert en bouwt

Het archief wordt veilig uitgepakt (beschermd tegen zip-slip padtrucs) in een tijdelijke map. Bij een WAR controleert Shippers of er een WEB-INF/ map bestaat. Bij een JAR controleert het op een BOOT-INF/classes/ map en een Start-Class-manifestvermelding — en detecteert het welke JDK-versie je gecompileerde classes nodig hebben.

4

Een gesandboxte container start

Je content wordt gekopieerd naar een afgeschermde container — ingetrokken capabilities, geen host-netwerktoegang, harde limieten voor CPU/geheugen/processen — en pas daarna stopt Shippers wat er voorheen voor deze app draaide, zodat een slechte upload nooit een werkende deployment platlegt voordat de nieuwe bevestigd werkbaar is.

5

Krijg een live URL

Traefik pakt automatisch de routeringslabels van de container op en je app is bereikbaar op yourapp.shippers.cloud — meestal binnen een minuut terwijl Tomcat of de JVM opstart.

Twee deployengines, één workflow

Wat er na de upload gebeurt verschilt per apptype — dit is wat elke engine daadwerkelijk doet.

WAR

Java-webapps (WebforJ)

  1. 1

    Vereiste JDK detecteren

    Shippers leest de versies van je gecompileerde .class-bestanden om een Tomcat-image met een compatibele JDK te kiezen — geen pom.xml-parsing nodig.

  2. 2

    Opstarten binnen Tomcat

    Je WAR wordt gedeployed als de rootcontext van de app, zodat deze bereikbaar is op het kale subdomein in plaats van een subpad.

  3. 3

    Bevestigen dat het echt is gestart

    Shippers wacht tot de poort van Tomcat opent en scant opstartlogs op ernstige fouten voordat de deployment als geslaagd wordt gemarkeerd.

JAR

Spring Boot-jars (Spring Boot, WebforJ)

  1. 1

    De Spring Boot-jar valideren

    Shippers controleert op een BOOT-INF/classes/-vermelding en een Start-Class-manifestheader — de markeringen die Maven's of Gradle's Spring Boot-repackagestap altijd produceert.

  2. 2

    Draaien met java -jar

    Shippers kiest een JDK-image die past bij je gecompileerde classes en draait de jar direct — geen applicatieserver nodig.

  3. 3

    Bevestigen dat het echt is gestart

    Shippers wacht tot de poort van de app opent en scant opstartlogs op een mislukte applicatiecontext voordat de deployment als geslaagd wordt beschouwd.

Gebouwd voor niet-vertrouwde uploads

Shippers is een hostingprovider voor code van vreemden, dus isolatie is geen bijzaak.

Elke container draait met harde limieten voor CPU, geheugen en processen, ingetrokken Linux-capabilities en geen host-netwerktoegang — standaard geïsoleerd, niet via configuratie.

Archiefextractie is zip-slip-veilig, zodat een gemanipuleerd pad in een upload nooit buiten zijn eigen deploymentmap kan komen.

Probeer het met je eigen build

Maak een gratis account en krijg in minder dan een minuut een live URL.