Een Next.js-app van Vercel naar je eigen server verhuizen
Om een Next.js-app van Vercel naar je eigen server te verhuizen koppel je dezelfde GitHub-repository aan het Coolify-paneel op de server, kopieer je de omgevingsvariabelen, vervang je de onderdelen die bij Vercel horen (cron, analytics, opslag), test je op een tijdelijk adres en zet je als laatste het A-record van je domein om. De documentatie van Next.js zegt dat alle functies op een Node.js-server werken. Je Vercel-deployment blijft draaien tot je overstapt, dus je hebt een weg terug.
Eigenlijk is dit een keuze van factureringsmodel. De documentatie van Vercel legt uit dat infrastructuur wordt gefactureerd op overgedragen gegevens, verzoeken en rekenduur. Een server kost een vast maandbedrag voor het RAM, de CPU en de schijf die je kiest. Onze vergelijking laat zien hoe je met je eigen cijfers rekent.
Wat verandert er als je verhuist?
| Onderwerp | Vercel | Je server |
|---|---|---|
| Facturering | Op gebruik | Vast per maand, onbeperkt verkeer, dagelijkse back-ups bij de prijs inbegrepen |
| Locatie | Wereldwijd distributienetwerk | Eén server, in Istanbul |
| Verkeerspieken | Het platform vangt ze op en de rekening groeit | De site wordt traag als de capaciteit opraakt en jij schaalt op |
| Builds | Op de machines van het platform | Op dezelfde server, dus builds bepalen het geheugen dat je nodig hebt |
| Onderhoud | De taak van het platform | Updates van het besturingssysteem, pakketupdates en monitoring zijn van jou, net als root-toegang |
| Previews | Automatisch voor branches | Apart ingeschakeld in Coolify |
| Netwerkbeveiliging | Vercel Firewall | Je beheert de firewall van de server |
Om het duidelijk te zeggen: er is één server, geen wereldwijde edge-levering en het onderhoud wordt van jou. Wie stoort dat niet? Zitten je bezoekers vooral in Turkije en omliggende landen, dan is één locatie prima. Lezen je pagina's allemaal uit één database, dan wachten antwoorden op die database, waar de code ook draait. Dashboards, interne tools en producten met voorspelbaar verkeer hebben zelden automatisch schalen nodig. Is je publiek over de hele wereld verspreid, piekt je verkeer hard of wil je nooit onderhoud doen, dan past Vercel mogelijk beter.
Bereid de nieuwe server voor
- Bestel via de pagina Next.js VPS. De server wordt met Coolify geleverd.
- Koppel de repository. De korte weg: open het project in Claude Code of Cursor, plak de rij Plak in je AI-tool van het tabblad Overzicht en de tool publiceert het. Je kunt het ook met de hand doen.
- Zet je Node-versie vast met
engines.nodeinpackage.json. - Haal je variabelen op:
vercel env pull .env.move --environment=production. Geheime waarden kunnen niet worden teruggelezen, dus de CLI schrijft plaatsaanduidingen en die haal je bij hun bron. Houd het bestand buiten de repository en voer de inhoud ervan in onder Environment Variables in Coolify, met de waarden vanNEXT_PUBLIC_beschikbaar tijdens de build. - Zoek naar code die bij Vercel hoort:
grep -n "@vercel/" package.jsonengrep -rnE "VERCEL_|x-vercel-" app src. Systeemvariabelen zoalsVERCEL_URLbestaan niet op je server, dus gebruik je eigen variabelen.
Next.js-functies en onderdelen van Vercel
| Onderdeel | Op je server | Wat je doet |
|---|---|---|
| Afbeeldingsoptimalisatie | Werkt met next start, zonder instellingen | Gebruikt de CPU en het geheugen van je server |
| ISR en caching | Werken vanzelf op één instantie met een lokale schijf | Meerdere instanties moeten de cache delen en hij wordt na elke publicatie opnieuw gevuld |
| Middleware (Proxy in Next.js 16) | Werkt met next start, zonder instellingen | Verzoeken worden nu in Istanbul afgehandeld |
| Cronjobs | vercel.json wordt niet gelezen | Roep hetzelfde pad aan vanuit Scheduled Tasks in Coolify: curl -fsS -H "Authorization: Bearer $CRON_SECRET" http://localhost:3000/api/cron. Cron van Vercel draait op UTC, terwijl Coolify de tijdzone van de server gebruikt |
| Redirects en headers | vercel.json wordt niet gelezen | Verplaats ze naar next.config |
| Web Analytics, Speed Insights | Zijn afhankelijk van routes die Vercel aan een deployment toevoegt | Verwijder de componenten en gebruik een tool zoals Umami |
| AI Gateway | Aan te roepen vanaf elke server | Stel AI_GATEWAY_API_KEY in |
En Postgres, KV en Blob?
- Postgres en KV: De documentatie van Vercel zegt dat deze producten zijn verdwenen en oudere databases naar Marketplace-aanbieders zijn verhuisd, dus je gegevens staan bij een aparte aanbieder achter een omgevingsvariabele. Neem die over en de app bereikt dezelfde database. Loopt de facturering via je Vercel-account, haal dan je gegevens op voordat je het sluit. Een verre database voegt die afstand toe aan elke query.
- Verhuizen naar je server: Maak PostgreSQL aan in Coolify, exporteer met
pg_dump -Fc "OLD-DATABASE-URL" --no-owner --no-privileges -f backup.dumpen upload het archief met Import backup op de pagina Backups van de database. Is Redis alleen een cache, dan is leeg beginnen meestal prima. - Blob:
BLOB_READ_WRITE_TOKENwerkt ook vanaf een andere host, dus je kunt het laten staan. Om bestanden naar je server te halen pas je de code aan en koppel je de map met Persistent Storage.
Je domein zonder downtime omzetten
- Test op het HTTPS-adres dat Coolify je geeft: inloggen, formulieren, betalingen, afbeeldingen en Execute now voor cron.
dig NS example.com +shorttoont waar je records staan: op de pagina Domains van Vercel als daar de nameservers van Vercel staan, anders bij je DNS-provider.- Verlaag de TTL van de records voor het hoofddomein en
www, bijvoorbeeld naar 300 seconden, en wacht tot de oude TTL is verstreken. - Verhuist de database ook, stop dan het schrijven en laad de laatste kopie.
- Laat het A-record naar het IP-adres van de server wijzen. Laat MX- en TXT-records voor e-mail met rust.
- Voeg het domein met
httpstoe op de pagina Domains in Coolify en druk op Redeploy. Het certificaat wordt automatisch uitgegeven. - Houd de Vercel-deployment nog een paar dagen draaiende. Bezoekers bij wie het oude record in de cache staat, komen daar terecht en je kunt het record zo nodig terugzetten.
- Zodra het verkeer is verhuisd, verwijder je het domein uit het Vercel-project, verbreek je de Git-koppeling met Disconnect en zet je de TTL terug.
Het certificaat wordt pas uitgegeven nadat het domein naar de server wijst, dus vroege bezoekers kunnen kort een certificaatwaarschuwing zien. Schakel over in een rustig uur.
Veelgestelde vragen
Met welke grootte begin ik?
De verkooppagina raadt minimaal 4 GB RAM, 2 vCores en 40 GB schijf aan. Een klein project werd gebouwd op 2 GB, terwijl een project met 85 pakketten bij 2 GB zonder geheugen kwam te zitten en bij 4 GB wel werd gebouwd. Je kunt opschalen vanuit je paneel.
Wat kost het per maand?
Die grootte kost ongeveer $6 per maand (inclusief btw), en buiten Turkije betaal je in Amerikaanse dollars. Het verkeer is onbeperkt.
Moet ik een domein dat ik bij Vercel heb gekocht overdragen?
Nee. De documentatie van Vercel behandelt registratie en DNS als gescheiden. Het A-record bij Vercel wijzigen is genoeg en jouw record overschrijft de standaardrecords.
Hoe werken updates na de verhuizing?
Met een webhook bouwt en publiceert git push elke versie. Gaat er een mis, dan brengt de pagina Rollback van Coolify je terug naar een eerder image.
Kan ik verhuizen zonder de database te verhuizen?
Ja, en het is de volgorde met het laagste risico. Verhuis eerst de app en later de database.
Reacties0
Nog geen reacties
Deel als eerste uw gedachten.
Meld u aan of registreer u om een reactie te plaatsen.