Extract control-plane protocol
This commit is contained in:
@@ -4,3 +4,6 @@
|
||||
[submodule "quixos-nix-helpers"]
|
||||
path = quixos-nix-helpers
|
||||
url = https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-nix-helpers.git
|
||||
[submodule "quixos-control-plane-protocol"]
|
||||
path = quixos-control-plane-protocol
|
||||
url = https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git
|
||||
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -0,0 +1,15 @@
|
||||
approvedGitRepositories:
|
||||
- https://gitea-external.egads.tutti.syntaxblitz.net/quixos/*
|
||||
|
||||
enableScripts: true
|
||||
|
||||
generateDefaultNix: false
|
||||
|
||||
individualNixPackaging: true
|
||||
|
||||
nodeLinker: node-modules
|
||||
|
||||
plugins:
|
||||
- checksum: e183406dae0b56ce2dcf0880f6b4f8dd4bd1a50ebc8e06f37f05c375dae351476019a3c324443c1b9fa5ed0b3ad2053fae39810d66c16d84c4fc0365f531e650
|
||||
path: .yarn/plugins/yarn-plugin-nixify.cjs
|
||||
spec: "https://raw.githubusercontent.com/stephank/yarn-plugin-nixify/main/dist/yarn-plugin-nixify.js"
|
||||
@@ -10,12 +10,17 @@
|
||||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
repoRoot = ../.;
|
||||
controlCliProject = (pkgs.callPackage ./yarn-project.nix { }) {
|
||||
src = ./.;
|
||||
};
|
||||
launcher = pkgs.writeShellApplication {
|
||||
name = "qx-control";
|
||||
runtimeInputs = [ pkgs.nodejs_24 ];
|
||||
runtimeInputs = [
|
||||
pkgs.nodejs_24
|
||||
controlCliProject.passthru.yarn
|
||||
];
|
||||
text = ''
|
||||
exec node --enable-source-maps ${repoRoot}/control-cli/src/cli.ts "$@"
|
||||
exec ${controlCliProject.passthru.yarn}/bin/yarn start -- "$@"
|
||||
'';
|
||||
};
|
||||
in {
|
||||
@@ -27,6 +32,7 @@
|
||||
devShells.default = pkgs.mkShell {
|
||||
packages = [
|
||||
pkgs.nodejs_24
|
||||
pkgs.yarn-berry_4
|
||||
launcher
|
||||
];
|
||||
shellHook = ''
|
||||
|
||||
@@ -8,5 +8,8 @@
|
||||
},
|
||||
"scripts": {
|
||||
"start": "node --enable-source-maps src/cli.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@quixos/control-plane-protocol": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa"
|
||||
}
|
||||
}
|
||||
|
||||
Regular → Executable
+1
-1
@@ -48,7 +48,7 @@ import {
|
||||
type ControlPlaneRunningPackage,
|
||||
type ControlPlaneSchemaDescriptionResult,
|
||||
type ControlPlaneStatusResponse,
|
||||
} from "../../quixos-control-plane-protocol/src/index.ts";
|
||||
} from "@quixos/control-plane-protocol";
|
||||
|
||||
type StageResult = {
|
||||
name: string;
|
||||
|
||||
@@ -27,7 +27,7 @@ import {
|
||||
type ControlPlaneRunResponse,
|
||||
type ControlPlaneSchemaDescriptionResult,
|
||||
type ControlPlaneStatusResponse,
|
||||
} from "../../quixos-control-plane-protocol/src/index.ts";
|
||||
} from "@quixos/control-plane-protocol";
|
||||
|
||||
const controlPlaneUrl =
|
||||
process.env.QUIXOS_CONTROL_URL ?? CONTROL_PLANE_DEFAULT_URL;
|
||||
|
||||
@@ -17,7 +17,7 @@ import {
|
||||
type ControlPlaneReplLogEntry,
|
||||
type ControlPlaneSchemaDescriptionResult,
|
||||
type ControlPlaneStatusResponse,
|
||||
} from "../../quixos-control-plane-protocol/src/index.ts";
|
||||
} from "@quixos/control-plane-protocol";
|
||||
|
||||
type JsonSchema = Record<string, unknown>;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import type {
|
||||
ControlPlaneCheckResult,
|
||||
ControlPlaneDependencyNode,
|
||||
ControlPlaneStatusResponse,
|
||||
} from "../../quixos-control-plane-protocol/src/index.ts";
|
||||
} from "@quixos/control-plane-protocol";
|
||||
|
||||
export type WorkspaceDependencyRef = {
|
||||
packageName: string;
|
||||
|
||||
@@ -14,6 +14,6 @@
|
||||
"verbatimModuleSyntax": true,
|
||||
"types": ["node"]
|
||||
},
|
||||
"include": ["src/**/*.ts", "../quixos-control-plane-protocol/src/**/*.ts"],
|
||||
"include": ["src/**/*.ts"],
|
||||
"exclude": ["node_modules", ".yarn", "dist"]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,164 @@
|
||||
# This file is generated by running "yarn install" inside your project.
|
||||
# Manual changes might be lost - proceed with caution!
|
||||
|
||||
{ lib, stdenv, nodejs, git, cacert, fetchurl, writeShellScript, writeShellScriptBin }:
|
||||
{ src, overrideAttrs ? null, ... } @ args:
|
||||
|
||||
let
|
||||
|
||||
yarnBin = fetchurl {
|
||||
url = "https://repo.yarnpkg.com/4.14.1/packages/yarnpkg-cli/bin/yarn.js";
|
||||
hash = "sha512-ZN9EgFWy03uiadfbU1pGm42pP47xFAwl/XqDwAqPuqyyFMoOAlU7kqLFTO94u2fQtIF/qwIAHfDiT6wPrMw7Qg==";
|
||||
};
|
||||
|
||||
cacheFolder = ".yarn/cache";
|
||||
lockfile = ./yarn.lock;
|
||||
|
||||
# Call overrideAttrs on a derivation if a function is provided.
|
||||
optionalOverride = fn: drv:
|
||||
if fn == null then drv else drv.overrideAttrs fn;
|
||||
|
||||
# Simple stub that provides the global yarn command.
|
||||
yarn = writeShellScriptBin "yarn" ''
|
||||
exec '${nodejs}/bin/node' '${yarnBin}' "$@"
|
||||
'';
|
||||
|
||||
# Common attributes between Yarn derivations.
|
||||
drvCommon = {
|
||||
# Make sure the build uses the right Node.js version everywhere.
|
||||
buildInputs = [ nodejs yarn ];
|
||||
# All dependencies should already be cached.
|
||||
yarn_enable_network = "0";
|
||||
# Tell node-gyp to use the provided Node.js headers for native code builds.
|
||||
npm_config_nodedir = nodejs;
|
||||
};
|
||||
|
||||
# Comman variables that we set in a Nix build, but not in a Nix shell.
|
||||
buildVars = ''
|
||||
# Make Yarn produce friendlier logging for automated builds.
|
||||
export CI=1
|
||||
# Tell node-pre-gyp to never fetch binaries / always build from source.
|
||||
export npm_config_build_from_source=true
|
||||
# Disable Nixify plugin to save on some unnecessary processing.
|
||||
export yarn_enable_nixify=false
|
||||
'';
|
||||
|
||||
# Create derivations for fetching dependencies.
|
||||
cacheDrvs = let
|
||||
in lib.mapAttrs (locator: { filename, hash }: stdenv.mkDerivation {
|
||||
name = lib.strings.sanitizeDerivationName locator;
|
||||
buildInputs = [ yarn git cacert ];
|
||||
buildCommand = ''
|
||||
cd '${src}'
|
||||
${buildVars}
|
||||
HOME="$TMP" yarn_enable_global_cache=false yarn_cache_folder="$TMP" \
|
||||
yarn nixify fetch ${locator}
|
||||
# Because we change the cache dir, Yarn may generate a different name.
|
||||
mv "$TMP/$(sed 's/-[^-]*\.[^-]*$//' <<< "$outputFilename")"-* $out
|
||||
'';
|
||||
outputFilename = filename;
|
||||
outputHash = hash;
|
||||
}) cacheEntries;
|
||||
|
||||
# Create a shell snippet to copy dependencies from a list of derivations.
|
||||
mkCacheBuilderForDrvs = drvs:
|
||||
writeShellScript "collect-yarn-cache" (lib.concatMapStrings (drv: ''
|
||||
cp --reflink=auto ${drv} '${drv.outputFilename}'
|
||||
'') drvs);
|
||||
|
||||
# Main project derivation.
|
||||
project = stdenv.mkDerivation (drvCommon // {
|
||||
inherit src;
|
||||
name = "qx-control-cli";
|
||||
|
||||
configurePhase = ''
|
||||
${buildVars}
|
||||
|
||||
# Copy over the Yarn cache.
|
||||
rm -fr '${cacheFolder}'
|
||||
mkdir -p '${cacheFolder}'
|
||||
pushd '${cacheFolder}' > /dev/null
|
||||
source ${mkCacheBuilderForDrvs (lib.attrValues cacheDrvs)}
|
||||
popd > /dev/null
|
||||
|
||||
# Yarn may need a writable home directory.
|
||||
export yarn_global_folder="$TMP"
|
||||
|
||||
# Ensure global cache is disabled. Cache must be part of our output.
|
||||
touch .yarnrc.yml
|
||||
sed -i -e '/^enableGlobalCache/d' .yarnrc.yml
|
||||
echo 'enableGlobalCache: false' >> .yarnrc.yml
|
||||
|
||||
# Some node-gyp calls may call out to npm, which could fail due to an
|
||||
# read-only home dir.
|
||||
export HOME="$TMP"
|
||||
|
||||
# running preConfigure after the cache is populated allows for
|
||||
# preConfigure to contain substituteInPlace for dependencies as well as the
|
||||
# main project. This is necessary for native bindings that maybe have
|
||||
# hardcoded values.
|
||||
runHook preConfigure
|
||||
|
||||
# Run normal Yarn install to complete dependency installation.
|
||||
yarn install --immutable --immutable-cache
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
# Move the package contents to the output directory.
|
||||
if grep -q '"workspaces"' package.json; then
|
||||
# We can't use `yarn pack` in a workspace setup, because it only
|
||||
# packages the outer workspace.
|
||||
mkdir -p "$out/libexec"
|
||||
mv $PWD "$out/libexec/$name"
|
||||
else
|
||||
# - If the package.json has a `files` field, only files matching those patterns are copied
|
||||
# - Otherwise all files are copied.
|
||||
yarn pack --out package.tgz
|
||||
mkdir -p "$out/libexec/$name"
|
||||
tar xzf package.tgz --directory "$out/libexec/$name" --strip-components=1
|
||||
|
||||
cp --reflink=auto .yarnrc* "$out/libexec/$name"
|
||||
cp --reflink=auto ${lockfile} "$out/libexec/$name/yarn.lock"
|
||||
cp --reflink=auto --recursive .yarn "$out/libexec/$name"
|
||||
|
||||
# Copy the Yarn linker output into the package.
|
||||
cp --reflink=auto --recursive node_modules "$out/libexec/$name"
|
||||
fi
|
||||
|
||||
cd "$out/libexec/$name"
|
||||
|
||||
# Invoke a plugin internal command to setup binaries.
|
||||
mkdir -p "$out/bin"
|
||||
yarn nixify install-bin $out/bin
|
||||
|
||||
# A package with node_modules doesn't need the cache
|
||||
yarn cache clean
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit nodejs;
|
||||
yarn-freestanding = yarn;
|
||||
yarn = writeShellScriptBin "yarn" ''
|
||||
exec '${yarn}/bin/yarn' --cwd '${overriddenProject}/libexec/${overriddenProject.name}' "$@"
|
||||
'';
|
||||
};
|
||||
});
|
||||
|
||||
overriddenProject = optionalOverride overrideAttrs project;
|
||||
|
||||
cacheEntries = {
|
||||
"@quixos/control-plane-protocol@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa" = { filename = "@quixos-control-plane-protocol-https-95332b7071-01924da2f9.zip"; hash = "sha512-AZJNovn3D8sOjDWY5ib1W7JTdziURDAU6CHiDHNlzhyHJL3NFQh7Ni4JophRKI1Ql7EHLOuSKla5TkMRcl/zjQ=="; };
|
||||
};
|
||||
|
||||
in overriddenProject
|
||||
@@ -0,0 +1,23 @@
|
||||
# This file is generated by running "yarn install" inside your project.
|
||||
# Manual changes might be lost - proceed with caution!
|
||||
|
||||
__metadata:
|
||||
version: 9
|
||||
cacheKey: 10c0
|
||||
|
||||
"@quixos/control-plane-protocol@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa":
|
||||
version: 1.0.0
|
||||
resolution: "@quixos/control-plane-protocol@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa"
|
||||
checksum: 10c0/01924da2f9f70fcb0e8c3598e626f55bb253773894443014e821e20c7365ce1c8724bdcd15087b362e09a29851288d5097b1072ceb922a56b94e4311725ff38d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"qx-control-cli@workspace:.":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "qx-control-cli@workspace:."
|
||||
dependencies:
|
||||
"@quixos/control-plane-protocol": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa"
|
||||
bin:
|
||||
qx-control: ./src/cli.ts
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
@@ -18,12 +18,6 @@
|
||||
qx-control = control-cli.packages.${system}.default;
|
||||
orchestratorProject = (pkgs.callPackage ./orchestrator/yarn-project.nix { }) {
|
||||
src = ./orchestrator;
|
||||
overrideAttrs = old: {
|
||||
postInstall = (old.postInstall or "") + ''
|
||||
cp --reflink=auto --recursive ${./quixos-control-plane-protocol} \
|
||||
"$out/libexec/quixos-control-plane-protocol"
|
||||
'';
|
||||
};
|
||||
};
|
||||
quixos-orchestrator = pkgs.writeShellApplication {
|
||||
name = "quixos-orchestrator";
|
||||
@@ -37,13 +31,8 @@
|
||||
exec ${orchestratorProject.passthru.yarn}/bin/yarn start -- "$@"
|
||||
'';
|
||||
};
|
||||
projectVisualizerWorkspaceSrc = pkgs.runCommand "quixos-project-visualizer-workspace-src" { } ''
|
||||
mkdir -p "$out"
|
||||
cp --reflink=auto --recursive ${./project-visualizer} "$out/project-visualizer"
|
||||
cp --reflink=auto --recursive ${./quixos-control-plane-protocol} "$out/quixos-control-plane-protocol"
|
||||
'';
|
||||
projectVisualizerProject = (pkgs.callPackage ./project-visualizer/yarn-project.nix { }) {
|
||||
src = "${projectVisualizerWorkspaceSrc}/project-visualizer";
|
||||
src = ./project-visualizer;
|
||||
overrideAttrs = old: {
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
let
|
||||
cfg = config.services.quixosHost;
|
||||
quixosPackages = self.packages.${pkgs.system};
|
||||
quixosPackages = self.packages.${pkgs.stdenv.hostPlatform.system};
|
||||
in
|
||||
{
|
||||
options.services.quixosHost = {
|
||||
@@ -80,6 +80,7 @@ in
|
||||
networking.hostId = cfg.hostId;
|
||||
boot.supportedFilesystems = [ "zfs" ];
|
||||
boot.zfs.extraPools = [ cfg.zfsPool ];
|
||||
boot.zfs.forceImportRoot = false;
|
||||
services.zfs.autoScrub = {
|
||||
enable = true;
|
||||
pools = [ cfg.zfsPool ];
|
||||
@@ -116,7 +117,7 @@ in
|
||||
services.amazon-ssm-agent.enable = true;
|
||||
|
||||
services.openssh = {
|
||||
enable = cfg.enableSsh;
|
||||
enable = lib.mkForce cfg.enableSsh;
|
||||
hostKeys = [
|
||||
{
|
||||
path = "/persist/etc/ssh/ssh_host_ed25519_key";
|
||||
|
||||
Generated
+11
@@ -28,6 +28,7 @@ const RAW_RUNTIME_STATE =
|
||||
[null, {\
|
||||
"packageLocation": "./",\
|
||||
"packageDependencies": [\
|
||||
["@quixos/control-plane-protocol", "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa"],\
|
||||
["@quixos/package-runtime", "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-ts-package-runtime.git#commit=2cdd578848e9c6021689b9687355af9e0f6c8d69"],\
|
||||
["dotenv", "npm:17.4.2"],\
|
||||
["quixos-orchestrator", "workspace:."],\
|
||||
@@ -36,6 +37,15 @@ const RAW_RUNTIME_STATE =
|
||||
"linkType": "SOFT"\
|
||||
}]\
|
||||
]],\
|
||||
["@quixos/control-plane-protocol", [\
|
||||
["https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa", {\
|
||||
"packageLocation": "../../.yarn/berry/cache/@quixos-control-plane-protocol-https-95332b7071-10c0.zip/node_modules/@quixos/control-plane-protocol/",\
|
||||
"packageDependencies": [\
|
||||
["@quixos/control-plane-protocol", "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@quixos/package-runtime", [\
|
||||
["https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-ts-package-runtime.git#commit=2cdd578848e9c6021689b9687355af9e0f6c8d69", {\
|
||||
"packageLocation": "../../.yarn/berry/cache/@quixos-package-runtime-https-cb295881cd-10c0.zip/node_modules/@quixos/package-runtime/",\
|
||||
@@ -163,6 +173,7 @@ const RAW_RUNTIME_STATE =
|
||||
["workspace:.", {\
|
||||
"packageLocation": "./",\
|
||||
"packageDependencies": [\
|
||||
["@quixos/control-plane-protocol", "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa"],\
|
||||
["@quixos/package-runtime", "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-ts-package-runtime.git#commit=2cdd578848e9c6021689b9687355af9e0f6c8d69"],\
|
||||
["dotenv", "npm:17.4.2"],\
|
||||
["quixos-orchestrator", "workspace:."],\
|
||||
|
||||
Binary file not shown.
@@ -7,6 +7,7 @@
|
||||
"start": "node --enable-source-maps server.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@quixos/control-plane-protocol": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa",
|
||||
"@quixos/package-runtime": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-ts-package-runtime.git#commit=2cdd578848e9c6021689b9687355af9e0f6c8d69",
|
||||
"dotenv": "^17.4.2",
|
||||
"ws": "^8.18.3"
|
||||
|
||||
@@ -72,7 +72,7 @@ import {
|
||||
type ControlPlaneStatusResponse,
|
||||
type ControlPlaneWorkspacePackage,
|
||||
type ControlPlaneRuntimeErrorPhase,
|
||||
} from "../quixos-control-plane-protocol/src/index.ts";
|
||||
} from "@quixos/control-plane-protocol";
|
||||
|
||||
const ORCHESTRATOR_DIR = path.dirname(fileURLToPath(import.meta.url));
|
||||
const ROOT_ENV_PATH = path.join(ORCHESTRATOR_DIR, "..", ".quixos-control.env");
|
||||
|
||||
@@ -14,6 +14,6 @@
|
||||
"verbatimModuleSyntax": true,
|
||||
"types": ["node"]
|
||||
},
|
||||
"include": ["server.ts", "../quixos-control-plane-protocol/src/**/*.ts"],
|
||||
"include": ["server.ts"],
|
||||
"exclude": ["node_modules", ".yarn", "dist"]
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ let
|
||||
rm $out/.gitignore
|
||||
'';
|
||||
outputHashMode = "recursive";
|
||||
outputHash = "sha512-35MN9GZJgYlrFE3zVMQuf5rG/ktQ/u+HmTk9lHhdg7UZyFrjfJWzHOJre9yEnSkwYwUYX/+HeWwLsWYaWCwR6A==";
|
||||
outputHash = "sha512-BXkss4G9kUMhvV404CtBGUgnDzAdISNPsE7FtF0v1bFZfLjWkxkCsoOAvh6pbr8QmXBIwlFebd6eGPAUTM6Ylg==";
|
||||
};
|
||||
|
||||
# Main project derivation.
|
||||
|
||||
@@ -5,6 +5,13 @@ __metadata:
|
||||
version: 9
|
||||
cacheKey: 10c0
|
||||
|
||||
"@quixos/control-plane-protocol@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa":
|
||||
version: 1.0.0
|
||||
resolution: "@quixos/control-plane-protocol@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa"
|
||||
checksum: 10c0/01924da2f9f70fcb0e8c3598e626f55bb253773894443014e821e20c7365ce1c8724bdcd15087b362e09a29851288d5097b1072ceb922a56b94e4311725ff38d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@quixos/package-runtime@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-ts-package-runtime.git#commit=2cdd578848e9c6021689b9687355af9e0f6c8d69":
|
||||
version: 1.0.0
|
||||
resolution: "@quixos/package-runtime@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-ts-package-runtime.git#commit=2cdd578848e9c6021689b9687355af9e0f6c8d69"
|
||||
@@ -111,6 +118,7 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "quixos-orchestrator@workspace:."
|
||||
dependencies:
|
||||
"@quixos/control-plane-protocol": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa"
|
||||
"@quixos/package-runtime": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/quixos-ts-package-runtime.git#commit=2cdd578848e9c6021689b9687355af9e0f6c8d69"
|
||||
dotenv: "npm:^17.4.2"
|
||||
ws: "npm:^8.18.3"
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"typecheck": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"@quixos/control-plane-protocol": "file:../quixos-control-plane-protocol",
|
||||
"@quixos/control-plane-protocol": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa",
|
||||
"@remote-dom/core": "^1.10.1",
|
||||
"qrcode": "^1.5.4",
|
||||
"react": "^18.3.1",
|
||||
|
||||
@@ -184,7 +184,7 @@ cacheEntries = {
|
||||
"@jridgewell/resolve-uri@npm:3.1.2" = { filename = "@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-d502e6fb51.zip"; hash = "sha512-1QLm+1FrNQMjMUBtTpYsIf53zfHL20nGFCvL2eMFBwlLGJcneKbifLrXViCc/jSxoncp5voIouuSszlD9oDPHg=="; };
|
||||
"@jridgewell/sourcemap-codec@npm:1.5.5" = { filename = "@jridgewell-sourcemap-codec-npm-1.5.5-5189d9fc79-f9e538f302.zip"; hash = "sha512-+eU48wK2PA68Bu7LHdmRjdQontNhR6DdzjXW6k1+u9okPNp7IhO2peHYCHopjVz2MPsr05Mpzey4IBcCP2CBoA=="; };
|
||||
"@jridgewell/trace-mapping@npm:0.3.31" = { filename = "@jridgewell-trace-mapping-npm-0.3.31-1ae81d75ac-4b30ec8cd5.zip"; hash = "sha512-SzDsjNVsX9mmYfCIIwrwHgwaOIjRH/trR2OXAPcSJb4h0ffhaASNbU+USSB7l4ojXAfI8VwHcFaF0W3AYoDp2Q=="; };
|
||||
"@quixos/control-plane-protocol@file:../quixos-control-plane-protocol#../quixos-control-plane-protocol::hash=f0f687&locator=quixos-project-visualizer%40workspace%3A." = { filename = "@quixos-control-plane-protocol-file-f50f93332c-88fc86dd74.zip"; hash = "sha512-iPyG3XTXwkQlS+4WI9dhZ1VOhA5gtJfCDuOaj/yiyP2cSxr/4acbqNPG+CBlbyEUeyci8ALUtbAlN4ocNIkQ6w=="; };
|
||||
"@quixos/control-plane-protocol@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa" = { filename = "@quixos-control-plane-protocol-https-95332b7071-01924da2f9.zip"; hash = "sha512-AZJNovn3D8sOjDWY5ib1W7JTdziURDAU6CHiDHNlzhyHJL3NFQh7Ni4JophRKI1Ql7EHLOuSKla5TkMRcl/zjQ=="; };
|
||||
"@remote-dom/core@npm:1.11.1" = { filename = "@remote-dom-core-npm-1.11.1-8bd9a831b0-c6432934e8.zip"; hash = "sha512-xkMpNOgxLTICQyn+LGB1s6ERd8mVCfw3yVTyjK9T4NkCTMFS+42401+NiiRmCDe5VMdMlQuEGJ5wR/Q3pWz9Jw=="; };
|
||||
"@remote-dom/polyfill@npm:1.5.1" = { filename = "@remote-dom-polyfill-npm-1.5.1-02b868404f-753836a286.zip"; hash = "sha512-dTg2ooYhTprI1iRlAdTXgk/mAK5LScP+asVGeTS1oVrrD4Dnc/fHIZ+CmsV1i+B3Ro7ebaml3hQmDzYn/81uHw=="; };
|
||||
"@rolldown/pluginutils@npm:1.0.0-beta.27" = { filename = "@rolldown-pluginutils-npm-1.0.0-beta.27-108701b3b0-9658f235b3.zip"; hash = "sha512-lljyNbNFIB1Pa/sfMtqXVMoWT4ktHLaBVP5fU8HfQr1nXs1AmDbf9GiEp4R9bAC9w4r4cPfIHgW7pcJkXrSrnA=="; };
|
||||
|
||||
@@ -423,10 +423,10 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@quixos/control-plane-protocol@file:../quixos-control-plane-protocol::locator=quixos-project-visualizer%40workspace%3A.":
|
||||
"@quixos/control-plane-protocol@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa":
|
||||
version: 1.0.0
|
||||
resolution: "@quixos/control-plane-protocol@file:../quixos-control-plane-protocol#../quixos-control-plane-protocol::hash=f0f687&locator=quixos-project-visualizer%40workspace%3A."
|
||||
checksum: 10c0/88fc86dd74d7c244254bee1623d76167554e840e60b497c20ee39a8ffca2c8fd9c4b1affe1a71ba8d3c6f820656f21147b2722f002d4b5b025378a1c348910eb
|
||||
resolution: "@quixos/control-plane-protocol@https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa"
|
||||
checksum: 10c0/01924da2f9f70fcb0e8c3598e626f55bb253773894443014e821e20c7365ce1c8724bdcd15087b362e09a29851288d5097b1072ceb922a56b94e4311725ff38d
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -1289,7 +1289,7 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "quixos-project-visualizer@workspace:."
|
||||
dependencies:
|
||||
"@quixos/control-plane-protocol": "file:../quixos-control-plane-protocol"
|
||||
"@quixos/control-plane-protocol": "https://gitea-external.egads.tutti.syntaxblitz.net/quixos/control-plane-protocol.git#commit=d8f0421d230e35b605260d310dfd8eb22f9252fa"
|
||||
"@remote-dom/core": "npm:^1.10.1"
|
||||
"@types/qrcode": "npm:^1"
|
||||
"@types/react": "npm:^18.3.12"
|
||||
|
||||
Submodule
+1
Submodule quixos-control-plane-protocol added at d8f0421d23
@@ -1,20 +0,0 @@
|
||||
{
|
||||
description = "Shared Quixos control-plane protocol types";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { nixpkgs, flake-utils, ... }:
|
||||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
in {
|
||||
devShells.default = pkgs.mkShell {
|
||||
packages = [
|
||||
pkgs.nodejs_24
|
||||
];
|
||||
};
|
||||
});
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"name": "@quixos/control-plane-protocol",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"main": "./src/index.ts",
|
||||
"exports": {
|
||||
".": "./src/index.ts"
|
||||
},
|
||||
"scripts": {
|
||||
"typecheck": "node --check src/index.ts"
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2022",
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"lib": ["ES2022"],
|
||||
"strict": true,
|
||||
"noEmit": true,
|
||||
"allowImportingTsExtensions": true,
|
||||
"esModuleInterop": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"skipLibCheck": true,
|
||||
"resolveJsonModule": true,
|
||||
"verbatimModuleSyntax": true,
|
||||
"types": ["node"]
|
||||
},
|
||||
"include": ["src/**/*.ts"],
|
||||
"exclude": ["node_modules", ".yarn", "dist"]
|
||||
}
|
||||
@@ -128,7 +128,9 @@ cat > /etc/nixos/flake.nix <<'EOF'
|
||||
system = "aarch64-linux";
|
||||
modules = [
|
||||
quixos.nixosModules.quixosHost
|
||||
({ ... }: {
|
||||
({ modulesPath, ... }: {
|
||||
imports = [ "$${modulesPath}/virtualisation/amazon-image.nix" ];
|
||||
|
||||
networking.hostName = "quixos";
|
||||
|
||||
users.users."${admin_user}" = {
|
||||
|
||||
Reference in New Issue
Block a user