NC Connector

Bratonien Tools übernimmt die bestehende Nextcloud-Anbindung schrittweise in eine eigene Connection-Verwaltung. Bis zum kontrollierten Cutover bleibt der produktive Legacy-Sync unverändert aktiv.

Migrationsstatus

Phase{$NC_CONNECTOR.phase|escape:html} Legacy-Verbindung vorhanden{if $NC_CONNECTOR.legacy_present}Ja{else}Nein{/if} Legacy-Konfiguration für PHP lesbar{if $NC_CONNECTOR.config_readable}Ja{else}Nein{/if} Connector-Verbindungen{$NC_CONNECTOR.connection_count|escape:html} Davon verifiziert{$NC_CONNECTOR.verified_count|escape:html} Migrationspaket bereit{if $NC_CONNECTOR.migration_bundle_available}Ja{else}Nein{/if}
{if $NC_CONNECTOR.legacy_present && !$NC_CONNECTOR.config_readable}

Die bestehende Konfiguration ist absichtlich nur für root lesbar. Sie wird nicht für den Webserver geöffnet.

{/if}

Bestehende Verbindung übernehmen

{if $NC_CONNECTOR.connection_count == 0}

Führe im Piwigo-LXC einmalig folgenden Befehl als root aus:

{$NC_CONNECTOR.migration_command|escape:html}

Der Helfer liest die bisherige /etc/piwigo-sync/piwigo.conf, die zugehörige Passwortdatei und storages.tsv. Er verändert weder Nextcloud noch den laufenden Sync-Dienst oder den Shadow Tree.

{if $NC_CONNECTOR.migration_bundle_available}

Der Import legt die Verbindung nur im NC Connector an. Sie bleibt deaktiviert; der bisherige Sync bleibt Produktionsverbindung.

{else}

Noch kein Migrationspaket vorhanden. Nach Ausführen des Befehls diese Seite neu laden.

{/if} {else}

Die bestehende Verbindung wurde bereits in die Connector-Verwaltung übernommen. Verifizierte Verbindungen können kontrolliert an den Connector übergeben werden.

{/if}

Connector-Verbindungen

{if $NC_CONNECTOR.connection_count > 0} {foreach from=$NC_CONNECTOR.connections item=connection} {if $connection.verification_checks|@count > 0} {/if} {/foreach}
Name Adapter Host Quelle Storages Status Aktion
{$connection.name|escape:html} {$connection.adapter|escape:html} {if $connection.host}{$connection.host|escape:html}{else}—{/if} {if $connection.source_view}{$connection.source_view|escape:html}{else}—{/if} {$connection.storage_count|escape:html} {$connection.takeover_state|escape:html}{if $connection.enabled} · aktiv{/if} {if $connection.takeover_state == 'ready'}
{elseif $connection.takeover_state == 'verified' && !$connection.enabled}
{elseif $connection.adapter == 'local' && !$connection.enabled}
{else} — {/if}
Letzte Verifikation{if $connection.verified_at} · {$connection.verified_at|escape:html}{/if}
    {foreach from=$connection.verification_checks item=check}
  • {if $check.ok}✓{else}✗{/if} {$check.name|escape:html}: {$check.detail|escape:html}
  • {/foreach}
{if $connection.takeover_state == 'ready'}

Die Verbindung ist technisch verifiziert und für die kontrollierte Übergabe bereit. Der Connector ist noch deaktiviert und der Legacy-Sync bleibt Produktionsverbindung.

Cutover im Piwigo-LXC als root:

sudo php /var/www/piwigo/plugins/bratonien_tools/nc-connector-cutover.php {$connection.id|escape:html}

Ablauf: Legacy-Timer stoppen → laufenden Legacy-Sync auslaufen lassen → erster Connector-Lauf → bei Erfolg Connector-Timer aktivieren und Legacy-Timer deaktivieren. Sowohl „Änderungen verarbeitet“ als auch „keine Änderungen gefunden“ gelten als Erfolg. Nur ein technischer Fehler löst den Rückfall aus.

{elseif $connection.takeover_state == 'active'}

Connector aktiv. Der Legacy-Timer wurde beim Cutover deaktiviert und der Connector-Timer übernimmt die regelmäßige Prüfung.

{if isset($connection.config.takeover.first_run.result)}

Erster Connector-Lauf: {$connection.config.takeover.first_run.result|escape:html}{if isset($connection.config.takeover.first_run.checked_at)} · {$connection.config.takeover.first_run.checked_at|escape:html}{/if}

{/if} {if isset($connection.config.takeover.runtime) && $connection.config.takeover.runtime == 'legacy-runtime-transition'}

Übergangszustand: Die Zeitsteuerung gehört bereits dem NC Connector, die eigentliche Sync-Runtime wird in diesem Schritt noch aus /opt/piwigo-sync verwendet. Diese Runtime wird im nächsten Migrationsschritt in den Connector übernommen.

{/if} {elseif $connection.verified_ok}

Die Connector-Kopie ist technisch verifiziert. Sie bleibt deaktiviert; der Legacy-Sync ist weiterhin die Produktionsverbindung.

{else}

Die Verifikation ist noch nicht vollständig erfolgreich. Es wurde nichts umgeschaltet oder verändert.

{/if}
{else}

Noch keine Verbindung in der eigenen Connector-Verwaltung.

{/if}

Legacy-Sync

Konfiguration{if $NC_CONNECTOR.config_readable}Lesbar{elseif $NC_CONNECTOR.config_exists}Vorhanden, root-geschützt{else}Nicht gefunden{/if} Piwigo-Sync laut lesbarer Konfiguration{if $NC_CONNECTOR.config_readable}{if $NC_CONNECTOR.sync_enabled}Ja{else}Nein{/if}{else}Nicht auslesbar{/if} Letzter Status{if $NC_CONNECTOR.sync_status.available}{$NC_CONNECTOR.sync_status.state|escape:html}{else}Nicht verfügbar{/if}
{if $NC_CONNECTOR.sync_status.message}

{$NC_CONNECTOR.sync_status.message|escape:html}

{/if}

Migrationsschutz

  • vor dem Cutover keine Änderung am bestehenden piwigo-sync
  • keine Änderung an PostgreSQL, Views, pg_hba.conf oder Reader-Rechten
  • keine Änderung an bestehenden Mounts
  • der Cutover wartet einen bereits laufenden Legacy-Sync ab, statt ihn abzubrechen
  • nur ein technischer Fehler reaktiviert automatisch den Legacy-Timer
  • no_changes ist ausdrücklich ein erfolgreicher erster Connector-Lauf