Die .env.local wird niemals in die Produktion gehen, weil Git sie standardmäßig ignoriert (sie steht in der .gitignore), daher hat Vercel keinen Zugriff auf diese Variablen, wenn das Deployment durchgeführt wird. Du musst die Variablen direkt im Vercel-Dashboard konfigurieren. Gehe zum Projekt im Vercel-Dashboard, dann zu Settings > Environment Variables und füge jede benötigte Variable hinzu - Name und Wert. Wenn du Variablen hast, die nur in der Entwicklung benötigt werden (wie lokale Tests), markiere das Kästchen "Development" nur für diese. Für die, die dein Next.js sowohl auf dem Server als auch auf dem Client braucht, füge sie ohne Umgebungsbeschränkungen hinzu.
Für Variablen, die nur auf dem Server bleiben sollen (wie sensitive API Keys), fügst du sie normal hinzu und nutzt sie im Code innerhalb von serverseitigen Funktionen - getServerSideProps, API Routes, Server Components. Next.js gibt diese automatisch nicht an den Browser weiter. Wenn du eine Variable auf dem Client zugreifen musst, stelle ihr NEXT_PUBLIC_ voran (z. B. NEXT_PUBLIC_API_URL) und sie ist dann im Browser verfügbar, aber nutze das nur für Daten, die nicht sensibel sind.
Nachdem du alles in Vercel konfiguriert hast, mache einen neuen Push zu GitHub, auch wenn du nichts geändert hast - Vercel wird einen Rebuild mit den Variablen durchführen, die du gesetzt hast. Wenn du Preview Deployments nutzt (automatisches Deployment von Pull Requests), konfiguriere die Variablen auch für diese Test-Umgebungen, indem du in den Settings zum Bereich "Preview" gehst. Tipp: Wenn du viele Variablen hast, kopiere einen kompletten Block von einer Umgebung zur anderen, anstatt sie einzeln hinzuzufügen.