Context-Snapshot · other · supersedes: 0005-mittwald-hosting.html

SOLCOM Mittwald Staging — Live-State nach Bootstrap

TL;DR — Ablöst 0005-mittwald-hosting.html (Stand: Greenfield). Alle Komponenten sind provisioniert, Drupal läuft, Pipeline deployt durch. Nächste offene Aufgaben: Document Root auf /current/web, Domain-Mapping, Cronjobs.

Live-Befund staging (Stand 2026-05-06)

AspektWert
App-Namestaging
App-UUID61284ca9-0a65-495d-bda9-2edfe8bf26a1
App-Installationsverzeichnis/home/p-nxm58l/html/staging
PHP-Version8.4.18
SSH-Hostnamessh.altgemeinde.project.host
SSH-Deploy-Userssh-dpwyjd@a-q7fxvm
MySQL-DBmysql_dqgxag (MySQL 8.0, utf8mb4_0900_ai_ci)
MySQL-Host (intern)mysql-dqgxag.pg-s-g5h2kg.db.project.host:3306
MySQL-Host (extern/SSL)mysql.altgemeinde.project.host
Redis-Host (intern)redis-pwdlbk.pg-s-g5h2kg.db.project.host:6379
Project-Domainp-nxm58l.project.spacenoch kein Ziel gesetzt
Document Rootnoch /html/staging — muss auf /current/web geändert werden
Drupalinstalliert, DB aus DDEV-Seed, alle Module aktiv
PipelineEnd-to-End funktionsfähig (Deploy + Smoke Test)

Capistrano-Layout auf dem Server

/home/p-nxm58l/html/staging/
├── current          → symlink auf neuesten Release
├── releases/
│   └── YYYYMMDD-HHmmss-<sha>/   (max. 5 Releases)
└── shared/
    ├── files/                    (Drupal public files)
    ├── private/                  (Drupal private files)
    └── settings.mittwald.php     (Credentials + Redis)
Upload via SSH-Pipe
→ Shared-Symlinks setzen
→ Maintenance-Mode an
→ Symlink-Switch (current → neuer Release)
→ drush updatedb
→ drush config:import
→ drush cache:rebuild
→ Maintenance-Mode aus
→ Smoke Test

MySQL-User-Setup

Mittwald vergibt beim DB-Anlegen einen Haupt-User (dbu_dqgxag). Dieser hat per Default keinen externen Zugang — Verbindungen vom SSH-Gateway (100.121.108.117) werden abgelehnt.

UserZweckExternal Access
dbu_dqgxagMittwald-Haupt-User (gesperrt für SSH-Gateway)ja (aktiviert)
dbu_dqgxag_1Aktiver App-User in settings.mittwald.phpja
SSH-Gateway-Pitfall

Der Deploy-SSH-User ssh-dpwyjd@a-q7fxvm landet auf IP 100.121.108.117 (Mittwald-SSH-Gateway), nicht auf dem PHP-App-Host. Konsequenz:

  • Direktes mysql-CLI via SSH schlägt fehl (Access denied)
  • drush via SSH funktioniert nur wenn der DB-User External-Access hat
  • mw database mysql import schlägt mit EPIPE fehl (bekannter Bug in CLI v1.15.0)
  • Workaround für DB-Import: mw database mysql port-forward + lokaler Import via DDEV-Container

settings.mittwald.php — Struktur

Die Datei liegt in shared/ und wird per Deploy-Symlink in jeden Release eingehängt. Ein Template (ohne Credentials) liegt unter web/sites/example.settings.mittwald.php im Repo.

$databases['default']['default']
Mit dbu_dqgxag_1-Credentials
Redis-Verbindung
Host, Port, Interface = PhpRedis
Redis-Service-Guard
if (class_exists('Drupal\redis\ClientFactory')) — schützt vor Bootstrap-Fehler bei drush site:install bevor das Redis-Modul geladen ist
trusted_host_patterns
Für p-nxm58l.project.space, www.solcom.de, solcom.de
reverse_proxy
TRUE für Cloudflare-Edge

Pipeline-State (azure-pipelines.yml)

StageTriggerStatus
PR_ValidationPR auf mainaktiv (PHP-Lint, PHPCS, PHPStan, Theme-Build)
BuildPush auf mainaktiv (Composer + npm, Tar-Artefakt)
DeployTestPush auf mainaktiv — Deploy nach Mittwald Staging + Smoke Test
DeployProdTag v*Placeholder — noch nicht konfiguriert
Secrets in Variable Group solcom-mittwald-secrets-test
  • MITTWALD_API_TOKEN — Mittwald-API-Token für mw-CLI-Zugang
  • MITTWALD_APP_ROOT_TEST/home/p-nxm58l/html/staging
  • MITTWALD_APP_ID_TEST61284ca9-0a65-495d-bda9-2edfe8bf26a1
  • MITTWALD_SSH_USER_TESTssh-dpwyjd@a-q7fxvm
  • MITTWALD_TEST_URL — Staging-URL für Smoke Test
  • MITTWALD_SSH_PRIVATE_KEY_TEST — Deploy-Key (Secure File: solcom_azure_mittwald_deploy_key)

Offene Aufgaben

#AufgabePrio
1Document Root auf /current/web setzen (mStudio → Apps → staging → Konfiguration)hoch
2Domain p-nxm58l.project.space auf App zeigen lassenhoch
3Cronjobs einrichten (Drupal-Cron, ggf. drush cron via Mittwald-Cronjob)mittel
4Production-App + -Pipeline anlegen (nach Go-Live-Entscheidung)später
5mw database mysql import Bug reporten / auf neuere CLI-Version prüfenlow

Re-Sync

Zugang
Login: https://studio.mittwald.de → Project 6709341f-37af-4ea7-a988-475dc49cecae — App-UUID: 61284ca9-0a65-495d-bda9-2edfe8bf26a1
Was prüfen?
PHP-Version, DB-Users, Domain-Ziel, Cronjob-Status.
Pipeline-Secrets
Wenn sich Secrets ändern: Variable Group solcom-mittwald-secrets-test in Azure DevOps aktualisieren.