Preview-Router: öffentliche Seiten überstehen Server-Neustart
Nach einem Neustart startet der Kundenbereich oft vor Appwrite. Bisher lieferte getPublicSubdomains dann ein leeres Set, syncPreviewTls setzte alle Preview-Hosts hinter die Login-Weiche (preview-chain) und wiederholte das nie. Öffentliche Seiten wie anelia-wolf und emmas-schatzkiste waren bis zum nächsten Deploy nur noch mit Login erreichbar bzw. 403. - Antwortet Appwrite nicht, übernimmt syncPreviewTls die öffentlichen Seiten aus der zuletzt geschriebenen preview-hosts.yml. Neue Subdomains bleiben login-geschützt, ohne alte Datei ist alles geschützt. - Beim Start wird der Abgleich alle 15 s wiederholt (max. 10 min), bis er mit Appwrite-Daten geklappt hat. - Tests: Datei lesen, Abgleich mit/ohne Appwrite, Startup-Wiederholung. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ba9916cfe6
commit
d5eb908cb6
3 files changed
+218
-10
No files matched your search
+2
-4
@@ -3,7 +3,7 @@ import path from 'node:path'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
import { config, assertServerConfig, WOMS_DATABASE_ID } from './config.js'
|
||||
import { verifyDatabaseAccess } from './services/appwriteAdmin.js'
|
||||
import { syncPreviewTls } from './services/previewDeploy.js'
|
||||
import { syncPreviewTlsOnStartup } from './services/previewDeploy.js'
|
||||
import { requireSession, sessionMiddleware } from './middleware/session.js'
|
||||
import authRoutes from './routes/auth.js'
|
||||
import projectsRoutes from './routes/projects.js'
|
||||
@@ -101,9 +101,7 @@ app.use((err, _req, res, _next) => {
|
||||
|
||||
const server = app.listen(config.port, '0.0.0.0', () => {
|
||||
console.log(`Webklar Kundenbereich läuft auf Port ${config.port}`)
|
||||
syncPreviewTls()
|
||||
.then((r) => console.log('[startup] Preview-TLS-Sync:', JSON.stringify(r)))
|
||||
.catch((err) => console.error('[startup] Preview-TLS-Sync fehlgeschlagen:', err.message))
|
||||
syncPreviewTlsOnStartup()
|
||||
verifyDatabaseAccess().then((result) => {
|
||||
if (result.ok) return
|
||||
console.error(
|
||||
|
||||
Reference in new issue
Block a user