diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 00000000..436f0e1e --- /dev/null +++ b/compose.yaml @@ -0,0 +1,38 @@ +name: yoi + +services: + runtime: + image: yoi-runtime:latest + pull_policy: never + restart: unless-stopped + expose: + - "38800" + volumes: + - runtime-data:/runtime-data + - runtime-workdirs:/workdirs + + server: + image: yoi-server:latest + pull_policy: never + restart: unless-stopped + depends_on: + - runtime + expose: + - "8787" + volumes: + - server-data:/server-data + - ./docker/workspace:/workspace:ro + + webui: + image: yoi-webui:latest + pull_policy: never + restart: unless-stopped + depends_on: + - server + ports: + - "${YOI_WEBUI_PORT:-8080}:80" + +volumes: + runtime-data: + runtime-workdirs: + server-data: diff --git a/docker.nix b/docker.nix index b886d193..7376b671 100644 --- a/docker.nix +++ b/docker.nix @@ -16,10 +16,12 @@ let runtimeDirs = pkgs.runCommand "yoi-runtime-dirs" { } '' mkdir -p "$out/runtime-data" "$out/workdirs" + chmod 0777 "$out/runtime-data" "$out/workdirs" ''; serverDirs = pkgs.runCommand "yoi-server-dirs" { } '' mkdir -p "$out/server-data" "$out/workspace" + chmod 0777 "$out/server-data" "$out/workspace" ''; runtimeRoot = @@ -248,7 +250,6 @@ in "/runtime-data" = { }; "/workdirs" = { }; }; - User = "10001:0"; WorkingDir = "/runtime-data"; }; }; @@ -276,7 +277,6 @@ in "/server-data" = { }; "/workspace" = { }; }; - User = "10002:0"; WorkingDir = "/server-data"; }; }; diff --git a/docker/workspace/.yoi/workspace-backend.local.toml b/docker/workspace/.yoi/workspace-backend.local.toml new file mode 100644 index 00000000..90f052c4 --- /dev/null +++ b/docker/workspace/.yoi/workspace-backend.local.toml @@ -0,0 +1,16 @@ +[server] +listen = "0.0.0.0:8787" +frontend_url = "http://127.0.0.1:8080" + +[data] +root = "/server-data" +workspace_database_path = "/server-data/workspace.db" +embedded_runtime_store_root = "/server-data/embedded-runtime" + +[limits] +max_records = 200 + +[[runtimes.remote]] +id = "docker-runtime" +endpoint = "http://runtime:38800" +display_name = "Docker Runtime" diff --git a/docker/workspace/.yoi/workspace.toml b/docker/workspace/.yoi/workspace.toml new file mode 100644 index 00000000..0b9b49c6 --- /dev/null +++ b/docker/workspace/.yoi/workspace.toml @@ -0,0 +1,3 @@ +workspace_id = "019a1e4a-7c0d-7000-9000-000000000001" +created_at = "2026-07-21T00:00:00Z" +display_name = "Docker Workspace"