Wie man eine Node.js-Webanwendung auf OuiPanel bereitstellt
Geschätzte Zeit: 15 Minuten
Schwierigkeit: Mittel ⭐⭐
Servertyp: Node.js
📋 Einführung
Dieser Leitfaden erklärt, wie man eine Node.js-Webanwendung (Website, REST-API, Dashboard usw.) auf OuiPanel mit einer benutzerdefinierten Domain und automatischem HTTPS hostet.
Was Sie hosten können
| Anwendungstyp | Beispiele |
|---|---|
| 🌐 Website | Showcase-Website, Blog, Portfolio |
| 🔌 REST-API | Backend für mobile/web-Anwendungen |
| 📊 Dashboard | Verwaltungspanel, Verwaltungsschnittstelle |
| 🛒 Webanwendung | E-Commerce, SaaS, Online-Tool |
Was Sie benötigen
| Voraussetzungen | Beschreibung |
|---|---|
| 📁 Node.js-Anwendung | Ihr funktionsfähiger Quellcode |
| 💻 Node.js-Server | Auf OuiHeberg bestellt |
| 🌐 Domainname | (Optional) Für den Zugriff über benutzerdefinierte URL |
📁 Schritt 1: Vorbereiten der Anwendungsdateien
Dateistruktur
Ihre Anwendung sollte diese Struktur haben:
📁 MeineApp/
├── 📄 index.js ← Hauptdatei (oder app.js, server.js...)
├── 📄 package.json ← npm-Abhängigkeiten
├── 📄 .env ← Umgebungsvariablen (auf dem Server erstellt)
├── 📁 public/ ← (Optional) Statische Dateien (CSS, JS, Bilder)
├── 📁 views/ ← (Optional) Vorlagen (EJS, Pug, Handlebars)
└── 📁 routes/ ← (Optional) Anwendungswege
Datei package.json
Erstellen Sie eine package.json-Datei mit Ihren Abhängigkeiten:
{
"name": "meine-webanwendung",
"version": "1.0.0",
"description": "Meine Node.js-Webanwendung",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"dependencies": {
"express": "^4.18.2",
"dotenv": "^16.3.1"
}
}
💡 Passen Sie
"main": "index.js"entsprechend dem Namen Ihrer Hauptdatei an (app.js,server.jsusw.).
Hauptdatei (index.js)
Hier ist ein Beispiel für eine für OuiPanel konfigurierte Express.js-Anwendung:
// Umgebungsvariablen aus .env laden
require('dotenv').config();
const express = require('express');
const app = express();
// Port: verwendet SERVER_PORT (OuiPanel) oder PORT (.env) oder standardmäßig 3000
const PORT = process.env.SERVER_PORT || process.env.PORT || 3000;
// Middleware zum Parsen von JSON
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// Statische Dateien (CSS, JS, Bilder) bereitstellen
app.use(express.static('public'));
// Hauptweg
app.get('/', (req, res) => {
res.send(`
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Meine Anwendung</title>
<style>
body { font-family: Arial, sans-serif; max-width: 800px; margin: 50px auto; padding: 20px; }
h1 { color: #333; }
.status { background: #d4edda; padding: 15px; border-radius: 5px; color: #155724; }
</style>
</head>
<body>
<h1>🚀 Meine Node.js-Anwendung</h1>
<div>
✅ Die Anwendung funktioniert einwandfrei!
</div>
<p>Server gestartet auf Port ${PORT}</p>
</body>
</html>
`);
});
// Beispiel-API-Weg
app.get('/api/status', (req, res) => {
res.json({
status: 'online',
message: 'API funktioniert',
timestamp: new Date().toISOString()
});
});
// API-Weg mit Parameter
app.get('/api/hello/:name', (req, res) => {
res.json({
message: `Hallo ${req.params.name}!`
});
});
// Server auf 0.0.0.0 starten (wichtig für OuiPanel)
app.listen(PORT, '0.0.0.0', () => {
console.log(`✅ Server gestartet auf http://0.0.0.0:${PORT}`);
console.log(`📅 ${new Date().toLocaleString('fr-FR')}`);
});
⚠️ WICHTIG: Der Server muss auf
0.0.0.0(alle Schnittstellen), nicht auflocalhostoder127.0.0.1hören.
Beispiel mit EJS-Vorlagen
Wenn Sie EJS-Vorlagen verwenden:
package.json:
{
"name": "meine-webanwendung",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"dependencies": {
"express": "^4.18.2",
"ejs": "^3.1.9",
"dotenv": "^16.3.1"
}
}
index.js:
require('dotenv').config();
const express = require('express');
const app = express();
const PORT = process.env.SERVER_PORT || process.env.PORT || 3000;
// EJS-Konfiguration
app.set('view engine', 'ejs');
app.set('views', './views');
// Statische Dateien
app.use(express.static('public'));
// Hauptweg
app.get('/', (req, res) => {
res.render('index', {
title: 'Meine Anwendung',
message: 'Willkommen auf meiner Website!'
});
});
app.listen(PORT, '0.0.0.0', () => {
console.log(`✅ Server gestartet auf Port ${PORT}`);
});
views/index.ejs:
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title><%= title %></title>
</head>
<body>
<h1><%= message %></h1>
</body>
</html>
📤 Schritt 2: Dateien auf OuiPanel hochladen
Über den Dateimanager
- Melden Sie sich bei OuiPanel an
- Wählen Sie Ihren Node.js-Server aus
- Klicken Sie im Seitenmenü auf Dateimanager

- Löschen Sie die Standarddateien (falls vorhanden)
- Klicken Sie auf Hochladen
- Laden Sie Ihre Dateien hoch:
index.js(oderapp.js,server.js...)package.json- Ihre Ordner (
public/,views/,routes/...) falls erforderlich

⚠️ Nicht hochladen: Die Datei
.envwird direkt auf dem Server erstellt (sicherer).
Über SFTP (Empfohlen für mehrere Dateien)
- Melden Sie sich mit FileZilla über SFTP an
- Ziehen Sie den gesamten Inhalt Ihres Anwendungsordners per Drag & Drop
- Überprüfen Sie, ob alle Dateien erfolgreich hochgeladen wurden
📖 Sehen Sie sich den Leitfaden "SFTP-Zugriff mit FileZilla" für detaillierte Anweisungen an.
🔑 Schritt 3: Erstellen der .env-Datei
Erstellen Sie eine Datei .env, um Ihre Umgebungsvariablen sicher zu speichern.
.env-Datei erstellen
- Im Dateimanager auf Neue Datei klicken
- Nennen Sie sie
.env(mit Punkt davor) - Fügen Sie Ihre Variablen hinzu:
# Anwendungs konfiguration
PORT=3000
NODE_ENV=production
# Datenbank (falls erforderlich)
DATABASE_URL=mysql://user:password@host:3306/database
# API-Schlüssel (Beispiele)
API_KEY=your_api_key
SECRET_KEY=your_secret_key

- Auf Erstellen oder Speichern klicken
💡 Tipp: Die Variable
SERVER_PORTwird automatisch von OuiPanel bereitgestellt. Verwenden Sie sie vorrangig in Ihrem Code.
Endstruktur auf dem Server
📁 Serverroot/
├── 📄 .env ← Umgebungsvariablen
├── 📄 index.js ← Ihr Code
├── 📄 package.json ← Abhängigkeiten
├── 📁 public/ ← Statische Dateien
├── 📁 views/ ← Vorlagen
└── 📁 node_modules/ ← (automatisch erstellt)
⚙️ Schritt 4: Konfigurieren der Startdatei
OuiPanel muss wissen, welche Datei beim Start ausgeführt werden soll.
Zugriff auf die Einstellungen
- Im Seitenmenü auf Konfiguration klicken
- Auf Servereinstellungen klicken

Datei zur Ausführung konfigurieren
Suchen Sie das Feld Ausführungsdatei (oder Hauptdatei / Startdatei):

| Ihre Hauptdatei | Zu verwendender Wert |
|---|---|
index.js | index.js |
app.js | app.js |
server.js | server.js |
src/index.js | src/index.js |
⚠️ Wichtig: Der Name muss genau mit Ihrer Datei übereinstimmen (Groß- und Kleinschreibung beachten).
🚀 Schritt 5: Anwendung starten
Server starten
- Im Seitenmenü auf Konsole klicken
- Auf Start klicken
Automatische Installation von Abhängigkeiten
Beim ersten Start führt der Server automatisch npm install aus:
> npm install
added 62 packages in 4s
> node index.js
✅ Server läuft unter http://0.0.0.0:25639
📅 15/12/2025 14:30:00
[
Screenshot erstellt mit der Konfiguration EJS
Anwendung testen
- Notieren Sie sich den in der Konsole angezeigten Port (z. B.:
25639) - Holen Sie sich die IP Ihres Servers aus der Globalen Ansicht
- Öffnen Sie
http://IP:PORTin Ihrem Browser
Beispiel: http://51.77.xxx.xxx:25639


💡 Für einen einfacheren Zugriff mit einer Domain und HTTPS, konfigurieren Sie den Proxy Manager (nächster Schritt).
🌐 Schritt 6: Konfigurieren einer Domain (Proxy Manager)
Um auf Ihre Anwendung über eine saubere URL mit HTTPS zuzugreifen (z. B.: https://meineapp.com), verwenden Sie den Proxy Manager.
Voraussetzungen
- ✅ Eine Domain, die Ihnen gehört
- ✅ Zugriff auf die DNS-Zone Ihrer Domain
DNS konfigurieren
- In OuiPanel → Proxy Manager, notieren Sie sich die IP des Proxys
- Bei Ihrem Registrar (OVH, Cloudflare, etc.) erstellen Sie einen DNS-Eintrag:
| Typ | Name | Wert |
|---|---|---|
A | @ oder app | IP des Proxys |
Domain zu OuiPanel hinzufügen
- Im Seitenmenü auf Proxy Manager klicken
- Auf Hinzufügen klicken
- Ausfüllen:
| Feld | Wert |
|---|---|
| Domainname | meineapp.com oder app.meinedomain.fr |
| Port | Der Port Ihrer Anwendung (z. B.: 25639) |
| SSL | ✅ Aktiviert |




- Auf Weiterleitung erstellen klicken
Ergebnis
Ihre Anwendung ist jetzt erreichbar unter:
- ✅
https://meineapp.com(mit automatischem HTTPS) - ✅ Kostenloses SSL-Zertifikat (Let's Encrypt)
📖 Lesen Sie den Leitfaden "Konfigurieren einer Domain mit dem Proxy Manager" für weitere Details.
🔧 Fehlerbehebung
Die Anwendung startet nicht
| ❌ Fehler | ✅ Lösung |
|---|---|
Cannot find module 'express' | Überprüfen Sie package.json und starten Sie neu |
Cannot find module 'dotenv' | Fügen Sie dotenv zu package.json hinzu |
Error: Cannot find module './index.js' | Falsche Startdatei konfiguriert |
SyntaxError | Fehler in Ihrem JavaScript-Code |
Die Anwendung startet, ist aber nicht erreichbar
| ❌ Ursache | ✅ Lösung |
|---|---|
Hört auf localhost | Ändern Sie auf 0.0.0.0 |
| Falscher Port | Verwenden Sie process.env.SERVER_PORT |
| Firewall | Der Port muss dem von OuiPanel zugewiesenen entsprechen |
Überprüfen Sie Ihren Code:
// ❌ FALSCH - nur lokal hören
app.listen(3000, 'localhost', () => {});
app.listen(3000, '127.0.0.1', () => {});
// ✅ RICHTIG - auf allen Schnittstellen hören
app.listen(PORT, '0.0.0.0', () => {});
Fehler 502 Bad Gateway (Proxy Manager)
| ❌ Ursache | ✅ Lösung |
|---|---|
| Anwendung nicht gestartet | Starten Sie den Server in OuiPanel |
| Falscher Port im Proxy Manager | Überprüfen Sie den konfigurierten Port |
| Anwendung abgestürzt | Überprüfen Sie die Konsole |
Die Anwendung stürzt beim Start ab
| ❌ Ursache | ✅ Lösung |
|---|---|
| Fehlende Umgebungsvariable | Überprüfen Sie die Datei .env |
| Syntaxfehler | Korrigieren Sie den Code |
| Fehlendes Paket | Überprüfen Sie package.json |
Fügen Sie eine Fehlerbehandlung hinzu:
// Behandlung von unerfassten Fehlern
process.on('uncaughtException', (error) => {
console.error('Unerfasster Fehler:', error);
});
process.on('unhandledRejection', (error) => {
console.error('Abgelehntes Versprechen:', error);
});
npm install fehlgeschlagen
| ❌ Fehler | ✅ Lösung |
|---|---|
package.json not found | Stellen Sie sicher, dass die Datei im Stammverzeichnis liegt |
ERESOLVE unable to resolve | Aktualisieren Sie die Versionen in package.json |
🔒 Sicherheit
Datei .env
| ✅ Zu tun | ❌ Nicht zu tun |
|---|---|
Erstellen Sie die .env auf dem Server | Laden Sie die .env von Ihrem PC hoch |
Fügen Sie .env zur .gitignore hinzu | Commiten Sie die .env auf GitHub |
| Verwenden Sie Variablen für Geheimnisse | Legen Sie API-Schlüssel im Code ab |
Empfohlene .gitignore-Datei:
# Umgebungsvariablen
.env
.env.local
.env.production
# Node-Module
node_modules/
Sicherheitsbewusste Best Practices
const helmet = require('helmet'); // HTTP-Sicherheit
const rateLimit = require('express-rate-limit'); // Schutz vor DDoS
// Hinzufügen in package.json: "helmet": "^7.1.0", "express-rate-limit": "^7.1.5"
app.use(helmet());
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 Minuten
max: 100 // Maximal 100 Anfragen pro IP
});
app.use(limiter);
💡 Best Practices
Leistung
- ✅ Verwenden Sie
NODE_ENV=productionin der Produktion - ✅ Aktivieren Sie die Komprimierung mit
compression - ✅ Cachen Sie statische Dateien
const compression = require('compression');
app.use(compression());
// Cache für statische Dateien (1 Tag)
app.use(express.static('public', { maxAge: '1d' }));
Fortgeschrittene Struktur
Für eine komplexere Anwendung:
📁 MeineApp/
├── 📄 index.js ← Einstiegspunkt
├── 📄 package.json
├── 📄 .env
├── 📁 config/
│ └── 📄 database.js ← DB-Konfiguration
├── 📁 routes/
│ ├── 📄 index.js ← Haupt-Routen
│ ├── 📄 api.js ← API-Routen
│ └── 📄 auth.js ← Authentifizierungs-Routen
├── 📁 controllers/
│ └── 📄 userController.js
├── 📁 models/
│ └── 📄 User.js
├── 📁 middleware/
│ └── 📄 auth.js
├── 📁 public/
│ ├── 📁 css/
│ ├── 📁 js/
│ └── 📁 images/
└── 📁 views/
├── 📄 index.ejs
└── 📄 layout.ejs
📦 Unterstützte Frameworks
OuiPanel unterstützt alle Node.js-Frameworks:
| Framework | Beschreibung |
|---|---|
| Express.js | Minimalistisches Framework (verwendet in diesem Leitfaden) |
| Fastify | Schnelle Alternative zu Express |
| Koa | Leichtgewichtiges Framework vom Express-Team |
| NestJS | Strukturiertes TypeScript-Framework |
| Next.js | React-Framework mit SSR |
| Nuxt.js | Vue.js-Framework mit SSR |
💡 Das Prinzip bleibt dasselbe: Auf
0.0.0.0mit dem von OuiPanel bereitgestellten Port hören.
📝 Zusammenfassung
1. Dateien vorbereiten (index.js + package.json mit dotenv)
2. Stellen Sie sicher, dass der Server auf 0.0.0.0:PORT hört
3. Laden Sie die Dateien auf OuiPanel hoch (ohne die .env-Datei)
4. Erstellen Sie die .env-Datei auf dem Server
5. Konfigurieren Sie die Startdatei (index.js, app.js...)
6. Starten Sie den Server
7. Testen Sie über http://IP:PORT
8. (Optional) Konfigurieren Sie den Proxy Manager für eine Domain mit HTTPS
