feat: Add multi-repository support for script synchronization

- Add Repository model to Prisma schema with migration
- Create repositoryService for managing repositories
- Add repositories API router with CRUD operations
- Update GitHubJsonService to support multiple repositories
- Update ScriptDownloaderService to use repository URL from scripts
- Add repository_url field to Script and ScriptCard types
- Add repository management UI tab to GeneralSettingsModal
- Display repository source on script cards and detail modal
- Implement repository deletion with JSON file cleanup
- Initialize default repositories (main and dev) on server startup
This commit is contained in:
Michel Roegl-Brunner
2025-11-13 14:12:01 +01:00
parent dab2da4b70
commit 72ffc5597f
18 changed files with 1016 additions and 112 deletions

View File

@@ -8,7 +8,7 @@ import stripAnsi from 'strip-ansi';
import { spawn as ptySpawn } from 'node-pty';
import { getSSHExecutionService } from './src/server/ssh-execution-service.js';
import { getDatabase } from './src/server/database-prisma.js';
import { initializeAutoSync, setupGracefulShutdown } from './src/server/lib/autoSyncInit.js';
import { initializeAutoSync, initializeRepositories, setupGracefulShutdown } from './src/server/lib/autoSyncInit.js';
import dotenv from 'dotenv';
// Load environment variables from .env file
@@ -978,10 +978,13 @@ app.prepare().then(() => {
console.error(err);
process.exit(1);
})
.listen(port, hostname, () => {
.listen(port, hostname, async () => {
console.log(`> Ready on http://${hostname}:${port}`);
console.log(`> WebSocket server running on ws://${hostname}:${port}/ws/script-execution`);
// Initialize default repositories
await initializeRepositories();
// Initialize auto-sync service
initializeAutoSync();