const gulp = require('gulp'); const ftp = require('basic-ftp'); const log = require('fancy-log'); const dotenv = require('dotenv'); const path = require('path'); const fs = require('fs'); // Laden der Umgebungsvariablen aus der .env-Datei (optional) dotenv.config(); // Deploy Task mit basic-ftp gulp.task('deploy', async function () { const client = new ftp.Client(); client.ftp.verbose = true; // Aktiviert detaillierte Logs try { // Zugriff auf die FTP-Verbindung await client.access({ host: process.env.FTP_HOST || 'ftps.verag.ag', user: process.env.FTP_USER || 'daniel', password: process.env.FTP_PASS || 'debug', secure: true, // Aktiviert FTPS (erfordert PROT P) secureOptions: { rejectUnauthorized: false // Nur verwenden, wenn Ihr Server ein selbstsigniertes Zertifikat verwendet } }); // Wechseln in das Zielverzeichnis await client.ensureDir(process.env.FTP_DEST || '/Websites/avisotv.app.verag.ag'); await client.cd(process.env.FTP_DEST || '/Websites/avisotv.app.verag.ag'); // Rekursives Hochladen des Inhalts des 'www'-Verzeichnisses await client.uploadFromDir('www'); log('Deployment erfolgreich abgeschlossen.'); } catch (err) { log.error('Deployment fehlgeschlagen:', err); } client.close(); });