Upgrade system finished
This commit is contained in:
@@ -172,6 +172,11 @@ const envSchema = z.object({
|
||||
MEDIA_UPLOADS: z.string().default('/media/uploads'),
|
||||
MAX_UPLOAD_SIZE_GB: z.coerce.number().default(10),
|
||||
|
||||
// Container Registry
|
||||
GITEA_REGISTRY: z.string().default('gitea.bnkops.com/admin'),
|
||||
GITEA_REGISTRY_USER: z.string().default(''),
|
||||
GITEA_REGISTRY_PASS: z.string().default(''),
|
||||
|
||||
// Gitea Docs Comments
|
||||
GITEA_COMMENTS_ENABLED: z.string().default('false'),
|
||||
GITEA_API_TOKEN: z.string().default(''),
|
||||
|
||||
@@ -39,17 +39,18 @@ router.post('/check', (req, res) => {
|
||||
/**
|
||||
* POST /api/upgrade/start
|
||||
* Triggers an upgrade (writes trigger.json for systemd watcher).
|
||||
* Body: { skipBackup?: boolean, pullServices?: boolean, dryRun?: boolean }
|
||||
* Body: { skipBackup?: boolean, pullServices?: boolean, dryRun?: boolean, useRegistry?: boolean }
|
||||
*/
|
||||
router.post('/start', (req, res) => {
|
||||
try {
|
||||
const userEmail = req.user?.email || 'unknown';
|
||||
const { skipBackup, pullServices, dryRun } = req.body as {
|
||||
const { skipBackup, pullServices, dryRun, useRegistry } = req.body as {
|
||||
skipBackup?: boolean;
|
||||
pullServices?: boolean;
|
||||
dryRun?: boolean;
|
||||
useRegistry?: boolean;
|
||||
};
|
||||
upgradeService.triggerUpgrade(userEmail, { skipBackup, pullServices, dryRun });
|
||||
upgradeService.triggerUpgrade(userEmail, { skipBackup, pullServices, dryRun, useRegistry });
|
||||
res.json({ message: 'Upgrade triggered' });
|
||||
} catch (err) {
|
||||
const message = err instanceof Error ? err.message : 'Failed to trigger upgrade';
|
||||
|
||||
@@ -66,6 +66,7 @@ interface TriggerPayload {
|
||||
skipBackup?: boolean;
|
||||
pullServices?: boolean;
|
||||
dryRun?: boolean;
|
||||
useRegistry?: boolean;
|
||||
triggeredAt: string;
|
||||
triggeredBy: string;
|
||||
}
|
||||
@@ -136,7 +137,7 @@ function triggerCheck(triggeredBy: string, branch?: string): void {
|
||||
|
||||
function triggerUpgrade(
|
||||
triggeredBy: string,
|
||||
options: { skipBackup?: boolean; pullServices?: boolean; dryRun?: boolean; branch?: string } = {},
|
||||
options: { skipBackup?: boolean; pullServices?: boolean; dryRun?: boolean; branch?: string; useRegistry?: boolean } = {},
|
||||
): void {
|
||||
if (isRunning()) {
|
||||
throw new Error('An upgrade is already in progress');
|
||||
|
||||
@@ -54,6 +54,7 @@ import { areaImportRouter } from './modules/map/locations/area-import.routes';
|
||||
import emailTemplatesRouter from './modules/email-templates/email-templates-admin.routes';
|
||||
import { observabilityRouter } from './modules/observability/observability.routes';
|
||||
import { upgradeRouter } from './modules/upgrade/upgrade.routes';
|
||||
import { registryRouter } from './modules/registry/registry.routes';
|
||||
import { dashboardRouter } from './modules/dashboard/dashboard.routes';
|
||||
import { initEncryption } from './utils/crypto';
|
||||
import { emailService } from './services/email.service';
|
||||
@@ -253,6 +254,7 @@ app.use('/api/rocketchat', rocketchatRouter); // Rocket.Chat SSO +
|
||||
app.use('/api/jitsi', jitsiRouter); // Jitsi Meet JWT + status (auth required)
|
||||
app.use('/api/observability', observabilityRouter); // Observability / monitoring (SUPER_ADMIN)
|
||||
app.use('/api/upgrade', upgradeRouter); // System upgrade management (SUPER_ADMIN)
|
||||
app.use('/api/registry', registryRouter); // Container registry management (SUPER_ADMIN)
|
||||
app.use('/api/dashboard', dashboardRouter); // Dashboard summary (ADMIN roles)
|
||||
app.use('/api/donation-pages', donationPagesPublicRouter); // Public donation pages (no auth)
|
||||
app.use('/api/payments', paymentsPublicRouter); // Public payment routes (plans, checkout, my subscription)
|
||||
|
||||
@@ -124,11 +124,12 @@ class AutoUpgradeService {
|
||||
|
||||
logger.info(`Auto-upgrade: ${status.commitsBehind} commits behind, triggering upgrade`);
|
||||
|
||||
// Read settings for pullServices option
|
||||
// Read settings for pullServices and registry options
|
||||
const settings = await siteSettingsService.get();
|
||||
upgradeService.triggerUpgrade('auto-upgrade', {
|
||||
skipBackup: false,
|
||||
pullServices: settings.autoUpgradePullServices,
|
||||
useRegistry: settings.useRegistryForUpgrade ?? false,
|
||||
});
|
||||
// API will restart during upgrade — post-restart handler takes over
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user