Compare commits

..

2 Commits

Author SHA1 Message Date
James Manuel 60dd6e5041 📝 docs: update README to reflect EuroOffice as default editor
Replace "Nextcloud Office (optional)" with EuroOffice as the default,
noting that Nextcloud Office / OnlyOffice remain available as options.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: James Manuel <moodyjmz@users.noreply.github.com>
2026-06-09 16:19:49 +02:00
James Manuel 321527946a feat: make EuroOffice the default editor for new and existing installs
- isEuroofficeEnabled default: false → true
- isCollaboraEnabled default: true → false
- Add eurooffice to STARTUP_APPS so it installs automatically
- performMigrations(): one-time migration (guarded by
  eurooffice_default_migration_v1 flag) that forces existing installs
  to switch to EuroOffice on next mastercontainer start, overriding
  any prior explicit editor choice
- Call performMigrations() at index.php bootstrap

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: James Manuel <moodyjmz@users.noreply.github.com>
2026-06-09 16:19:49 +02:00
4 changed files with 15 additions and 17 deletions
-13
View File
@@ -903,24 +903,11 @@ if [ "$EUROOFFICE_ENABLED" = 'yes' ]; then
# Adjust the EuroOffice host if using internal pattern
if echo "$EUROOFFICE_HOST" | grep -q "nextcloud-.*-eurooffice"; then
# Set internal URLs for server-to-server calls via Docker network,
# bypassing the public domain which may not resolve inside containers.
# DocumentServerInternalUrl: NC -> EuroOffice (direct container port)
# StorageUrl: EuroOffice -> NC (via port 23973 which has a matching Caddy server-block)
APACHE_CONTAINER_HOST="${EUROOFFICE_HOST%-eurooffice}-apache"
php /var/www/html/occ config:app:set eurooffice DocumentServerInternalUrl --value="http://$EUROOFFICE_HOST:80/"
php /var/www/html/occ config:app:set eurooffice StorageUrl --value="http://$APACHE_CONTAINER_HOST.nextcloud-aio:23973/"
EUROOFFICE_HOST="$NC_DOMAIN/eurooffice"
export EUROOFFICE_HOST
fi
php /var/www/html/occ config:app:set eurooffice DocumentServerUrl --value="https://$EUROOFFICE_HOST"
# Register EuroOffice preview provider in the explicit allowlist.
# Use a high fixed index (50) to avoid colliding with AIO's seeded indices (1-7, 23).
if ! php /var/www/html/occ config:system:get enabledPreviewProviders | grep -q "Eurooffice"; then
php /var/www/html/occ config:system:set enabledPreviewProviders 50 --value="OCA\Eurooffice\Preview"
fi
fi
else
# Remove EuroOffice app if disabled and removal is requested
+1
View File
@@ -25,6 +25,7 @@ use Psr\Http\Message\ServerRequestInterface as Request;
require __DIR__ . '/../vendor/autoload.php';
$container = \AIO\DependencyInjection::GetContainer();
$container->get(\AIO\Data\ConfigurationManager::class)->performMigrations();
$dataConst = $container->get(\AIO\Data\DataConst::class);
// Create app
+13 -3
View File
@@ -100,13 +100,14 @@ class ConfigurationManager
}
public bool $isEuroofficeEnabled {
get => $this->get('isEuroofficeEnabled', false);
// Type-cast because old configs could have 1/0 for this key.
get => (bool) $this->get('isEuroofficeEnabled', true);
set { $this->set('isEuroofficeEnabled', $value); }
}
public bool $isCollaboraEnabled {
// Type-cast because old configs could have 1/0 for this key.
get => (bool) $this->get('isCollaboraEnabled', true);
get => (bool) $this->get('isCollaboraEnabled', false);
set { $this->set('isCollaboraEnabled', $value); }
}
@@ -927,7 +928,16 @@ class ConfigurationManager
if (is_string($apps)) {
return trim($apps);
}
return 'deck twofactor_totp tasks calendar contacts notes';
return 'deck twofactor_totp tasks calendar contacts notes eurooffice';
}
public function performMigrations(): void {
if (!$this->get('eurooffice_default_migration_v1', false)) {
$this->isCollaboraEnabled = false;
$this->isOnlyofficeEnabled = false;
$this->isEuroofficeEnabled = true;
$this->set('eurooffice_default_migration_v1', true);
}
}
/**
+1 -1
View File
@@ -10,7 +10,7 @@ Included are:
- High performance backend for Nextcloud Files (Client Push)
- Redis & APCU for performant caching
- PostgreSQL as database
- Nextcloud Office (optional)
- EuroOffice Document Server (default) or Nextcloud Office / OnlyOffice (optional)
- High performance backend for Nextcloud Talk and TURN-server (optional)
- Nextcloud Talk Recording-server (optional)
- Backup solution (optional, based on [BorgBackup](https://github.com/borgbackup/borg#what-is-borgbackup))