Journal-indexDockup / praktijknotitie
Note / self-host-convertx

ConvertX zelf hosten in 2026: uploads, JWT-secrets en resource-limieten

Host ConvertX zelf met de juiste poorten, persistente opslag, HTTPS, secrets, backups en controles voor upgrades. Leer hoe je problemen oplost wanneer een converter binary ontbreekt.

Er zijn twee versies van “ConvertX draaien”: er bestaat een container, of de service voert zijn echte taak uit. Alleen het tweede is relevant. Het bewijs bestaat hier uit het uploaden van verschillende representatieve indelingen, het converteren van elke indeling, het downloaden van de resultaten en het vergelijken van hashes of media-eigenschappen wanneer die deterministisch zijn.

ConvertX is hiervoor bedoeld: een browsergebaseerde service voor bestandsconversie. De deployment moet de onderdelen achter dit gedrag behouden; een poort, volume en certificaat zijn inputs, niet het resultaat.

Kies de kleinst werkbare ConvertX-topologie

Begin met de network namespace van ConvertX: de web listener gebruikt poort 3000, niet een hostpoort die je uit een laptop-tutorial hebt overgenomen. De lokale runtimevereisten zijn CPU, geheugen en tijdelijke schijfruimte die geschikt zijn voor de geselecteerde converters. Leg de verwachte capaciteit, het eigenaarschap en het failure mode vast in plaats van dit aan de image-defaults over te laten.

Nadat aan de vereiste is voldaan, voer je het volledige scenario uit — upload verschillende representatieve indelingen, converteer elke indeling, download de resultaten en vergelijk hashes of media-eigenschappen wanneer die deterministisch zijn. Leg logs en metingen vast voor CPU, geheugen, tijdelijke schijfruimte, bestandsgrootte en de converter binaries die voor elk indelingspaar worden aangeroepen. Dit bewijs vormt de eerste bekende goede architectuur en maakt latere verplaatsingen tussen Dockup compute en een gekoppelde server testbaar.

Houd interne en externe URL's goed uit elkaar

Vermijd tijdelijke en permanente publieke origins voor ConvertX. Publiceer de UI in plaats daarvan via HTTPS met weloverwogen uploadlimieten, laat de gekozen DNS-naam naar de platformroute wijzen en proxy uitsluitend naar poort 3000.

Voer deze actie uit vanaf buiten de host: upload verschillende representatieve indelingen, converteer elke indeling, download de resultaten en vergelijk hashes of media-eigenschappen wanneer die deterministisch zijn. Als ingress mislukt, behandelt de handleiding voor het oplossen van 502 Bad Gateway na een deployment fouten met poorten en listeners. Als ConvertX het request ontvangt maar een converter binary ontbreekt of de proxy een grote upload weigert, wijst het bewijs nu op een probleem buiten de proxy.

Containerinstellingen die je moet controleren

Start ConvertX op een manier die de route privé houdt totdat de bootstrap is voltooid.

docker run -d \
  --name convertx \
  --restart unless-stopped \
  -p 127.0.0.1:3000:3000 \
  -v convertx-data:/app/data \
  -e JWT_SECRET=replace-with-a-long-random-value \
  ghcr.io/c4illin/convertx:latest

Als het proces in een loop terechtkomt, vergelijk dan de verwachte user van de image met de eigenaar van elk gemount pad. Als het proces actief blijft, test je poort 3000 lokaal en ga je vervolgens direct door naar de workflow: upload verschillende representatieve indelingen, converteer elke indeling, download de resultaten en vergelijk hashes of media-eigenschappen wanneer die deterministisch zijn. Pin de imageversie pas nadat deze end-to-endcheck slaagt en leg de exacte configuratie naast de service vast.

Oefen de risicovolle wijziging aan ConvertX

Een inactieve health check zegt weinig over ConvertX. Houd CPU, geheugen, tijdelijke schijfruimte, bestandsgrootte en de converter binaries die voor elk indelingspaar worden aangeroepen in de gaten. Maak vervolgens een alert voor het symptoom dat gebruikers ervaren: het mislukken van de actie “verschillende representatieve indelingen uploaden, elke indeling converteren, de resultaten downloaden en hashes of media-eigenschappen vergelijken wanneer die deterministisch zijn”. Houd liveness lokaal en goedkoop; laat readiness migraties of initialisatie rapporteren zonder een restart storm te veroorzaken.

Het risicovolle onderdeel van een upgrade is dat image-releases converters kunnen toevoegen of verwijderen. Test daarom exact de format matrix waarvan gebruikers afhankelijk zijn. Lees de release notes, maak een snapshot van de state, deploy de doelversie tegen een herstelde kopie en herhaal de acceptatieactie. Als een converter binary ontbreekt of de proxy een grote upload weigert, koppel je het clientrequest aan de eerste relevante applicatielog in plaats van blind state te verwijderen of redirects toe te voegen.

Vijf controles die sterker zijn dan container health

Gebruik verkeer van de eerste gebruiker niet als acceptatietest voor ConvertX. Bereid ongevaarlijke voorbeelddata voor en voer de volledige actie uit: “verschillende representatieve indelingen uploaden, elke indeling converteren, de resultaten downloaden en hashes of media-eigenschappen vergelijken wanneer die deterministisch zijn”. Noteer de exacte publieke URL, het resultaat, de image reference en het loginterval dat bij de run hoort.

Vervang de container en herhaal dit zonder de data opnieuw op te bouwen. Herstel vervolgens op een lege host; de herstelvoorwaarde is dat accounts en instellingen terugkeren en dat de vaste format matrix binnen de gekozen limieten blijft werken. Observeer CPU, geheugen, tijdelijke schijfruimte, bestandsgrootte en de converter binaries die voor elk indelingspaar worden aangeroepen tijdens elke run. Definieer een alert rond verslechtering van de transactie, niet rond inactieve containermetrics.

Laat één laatste controle expres mislukken: dien ongevaarlijke input in die dicht bij de resource- of formatlimiet voor deze grens ligt: een converter binary ontbreekt of de proxy weigert een grote upload. Controleer of het resulterende ConvertX-bericht de relevante grens identificeert in plaats van dataverwijdering of een eindeloze restart te veroorzaken. Herstel de geldige toestand en bevestig dat dezelfde voorbeeldtransactie slaagt. Neem deze korte oefening op in de releasechecklist.

Vind elke persistente byte in ConvertX

De persistente recoveryset bestaat uit applicatiedata, accounts en eventuele bewaarde conversie-instellingen. Mount /app/data vóór de bootstrap, schrijf ongevaarlijke voorbeelddata en vervang de container om te bewijzen dat dit pad daadwerkelijk persistent is. Een volume beschermt data tegen het vervangen van een container, maar niet tegen verlies van de host, per ongeluk verwijderen of corruptie op applicatieniveau.

Maak backups die de databron begrijpen: gebruik waar nodig logical dumps voor live databases en kopieer bestanden uitsluitend vanuit een consistente toestand. Bewaar één encrypted kopie buiten de ConvertX-host. Het acceptatiecriterium voor een restore is specifiek: accounts en instellingen keren terug en de vaste format matrix blijft binnen de gekozen limieten werken. De handleiding voor backups die je daadwerkelijk hebt teruggezet legt uit waarom alleen een geslaagde job onvoldoende is.

Beperk de bevoegdheden van ConvertX

Controleer na de eerste login wat een anonieme bezoeker, gewone gebruiker en administrator elk kunnen doen. De ConvertX-fout die je moet vermijden, is het gebruik van een voorbeeld-JWT-secret of het aanbieden van onbeperkte publieke conversies. Het beoogde beleid is om een echt JWT-secret te gebruiken, login te verplichten en uploads te begrenzen voordat je onbetrouwbare bestanden van het internet accepteert.

Genereer JWT_SECRET als een lange, willekeurige waarde; door dit secret te roteren worden sessies of tokens normaal gesproken ongeldig, dus plan de impact op gebruikers in plaats van dit een encryption migration te noemen. Houd dependency-accounts gescheiden van menselijke accounts, blokkeer waar praktisch ongebruikte egress en begrens werk dat wordt beïnvloed door CPU, geheugen, tijdelijke schijfruimte, bestandsgrootte en de converter binaries die voor elk indelingspaar worden aangeroepen.

Deploy ConvertX op Dockup zonder de grenzen ervan te verliezen

Dockup neemt handmatig reverse-proxy- en lifecyclewerk rond ConvertX uit handen. De service krijgt een stabiele HTTPS-route naar 3000, geïnjecteerde configuratie en persistente opslag tijdens replacements. Een gekoppelde klantenserver volgt hetzelfde model als compute die door Dockup wordt gehost.

Voldoe na de launch aan het applicatiecontract: publiceer de UI via HTTPS met weloverwogen uploadlimieten, bevestig de lokale vereiste — CPU, geheugen en tijdelijke schijfruimte die geschikt zijn voor de geselecteerde converters — en voer dit bewijs uit: upload verschillende representatieve indelingen, converteer elke indeling, download de resultaten en vergelijk hashes of media-eigenschappen wanneer die deterministisch zijn. Zo blijft de one-clickervaring nuttig zonder de details af te vlakken die ConvertX herstelbaar en veilig maken.

Veelgestelde vragen

Wat heeft ConvertX nodig voor een production deployment?

Routeer de ConvertX-container op poort 3000 via één HTTPS-origin. De lokale runtimevereisten zijn CPU, geheugen en tijdelijke schijfruimte die geschikt zijn voor de geselecteerde converters. Noem ConvertX pas klaar wanneer je verschillende representatieve indelingen kunt uploaden, elke indeling kunt converteren, de resultaten kunt downloaden en hashes of media-eigenschappen kunt vergelijken wanneer die deterministisch zijn.

Welke ConvertX-data hoort in een backup?

Maak /app/data persistent en neem applicatiedata, accounts en eventuele bewaarde conversie-instellingen op in hetzelfde recoverymanifest. Een schone ConvertX-restore is pas geslaagd wanneer accounts en instellingen terugkeren en de vaste format matrix binnen de gekozen limieten blijft werken.

Heeft ConvertX HTTPS nodig achter een reverse proxy?

Gebruik HTTPS voor de publieke ConvertX-origin en houd poort 3000 op de interne route. Pas de ConvertX-instelling correct toe: publiceer de UI via HTTPS met weloverwogen uploadlimieten. Voor ConvertX beschermt HTTPS credentials of gebruikerscontent tijdens transport en zorgt het voor consistent clientgedrag dat afhankelijk is van de origin.

Hoe moet je een ConvertX-upgrade testen?

Herstel de huidige ConvertX-state in een geïsoleerde deployment, pas de kandidaatversie toe en herhaal de acceptatietransactie. Let hier extra op omdat image-releases converters kunnen toevoegen of verwijderen; test daarom exact de format matrix waarvan gebruikers afhankelijk zijn. Houd de vorige ConvertX-image beschikbaar totdat de grens voor datamigratie en rollback duidelijk is.