diff --git a/admin/.env.example b/admin/.env.example index 6ae2d58..05a03fd 100644 --- a/admin/.env.example +++ b/admin/.env.example @@ -9,4 +9,10 @@ DB_PORT=3306 DB_USER=root DB_DATABASE=nomad DB_PASSWORD=password -DB_SSL=false \ No newline at end of file +DB_SSL=false +REDIS_HOST=localhost +REDIS_PORT=6379 +# Storage path for NOMAD content (ZIM files, maps, etc.) +# On Windows dev, use an absolute path like: C:/nomad-storage +# On Linux production, use: /opt/project-nomad/storage +NOMAD_STORAGE_PATH=/opt/project-nomad/storage \ No newline at end of file diff --git a/admin/app/services/docker_service.ts b/admin/app/services/docker_service.ts index 80947d3..9b0d959 100644 --- a/admin/app/services/docker_service.ts +++ b/admin/app/services/docker_service.ts @@ -19,7 +19,15 @@ export class DockerService { public static KOLIBRI_SERVICE_NAME = 'nomad_kolibri' constructor() { - this.docker = new Docker({ socketPath: '/var/run/docker.sock' }) + // Support both Linux (production) and Windows (development with Docker Desktop) + const isWindows = process.platform === 'win32' + if (isWindows) { + // Windows Docker Desktop uses named pipe + this.docker = new Docker({ socketPath: '//./pipe/docker_engine' }) + } else { + // Linux uses Unix socket + this.docker = new Docker({ socketPath: '/var/run/docker.sock' }) + } } async affectContainer( diff --git a/admin/database/seeders/service_seeder.ts b/admin/database/seeders/service_seeder.ts index 1675a6d..4c18204 100644 --- a/admin/database/seeders/service_seeder.ts +++ b/admin/database/seeders/service_seeder.ts @@ -2,9 +2,11 @@ import Service from '#models/service' import { DockerService } from '#services/docker_service' import { BaseSeeder } from '@adonisjs/lucid/seeders' import { ModelAttributes } from '@adonisjs/lucid/types/model' +import env from '#start/env' export default class ServiceSeeder extends BaseSeeder { - private static NOMAD_STORAGE_ABS_PATH = '/opt/project-nomad/storage' + // Use environment variable with fallback to production default + private static NOMAD_STORAGE_ABS_PATH = env.get('NOMAD_STORAGE_PATH', '/opt/project-nomad/storage') private static DEFAULT_SERVICES: Omit, 'created_at' | 'updated_at' | 'metadata' | 'id'>[] = [ { service_name: DockerService.KIWIX_SERVICE_NAME,