Files
fireclaw/src/config.ts
ansible b613c2db6f Switch setup.ts to Alpine rootfs, fix remote deployment
- setup.ts now downloads Alpine Linux minirootfs instead of Ubuntu squashfs
- Installs Alpine packages (openssh, python3, curl, ca-certificates) in chroot
- Fixes install script failing on non-Alpine base rootfs (adduser syntax)
- Clean up unused imports and lint warnings

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 15:21:06 +00:00

54 lines
1.4 KiB
TypeScript

import { homedir } from "node:os";
import { join } from "node:path";
const HOME = homedir();
export const CONFIG = {
firecrackerBin: "/usr/local/bin/firecracker",
baseDir: join(HOME, ".fireclaw"),
kernelPath: join(HOME, ".fireclaw", "vmlinux"),
baseRootfs: join(HOME, ".fireclaw", "base-rootfs.ext4"),
runsDir: join(HOME, ".fireclaw", "runs"),
sshKeyPath: join(HOME, ".fireclaw", "id_ed25519"),
sshPubKeyPath: join(HOME, ".fireclaw", "id_ed25519.pub"),
socketDir: "/tmp/fireclaw",
ipPoolFile: join(HOME, ".fireclaw", "ip-pool.json"),
ipPoolLock: join(HOME, ".fireclaw", "ip-pool.lock"),
bridge: {
name: "fcbr0",
ip: "172.16.0.1",
subnet: "172.16.0.0/24",
netmask: "255.255.255.0",
gateway: "172.16.0.1",
prefix: "172.16.0",
minHost: 2,
maxHost: 254,
},
vm: {
vcpuCount: 1,
memSizeMib: 256,
defaultTimeoutMs: 60_000,
bootTimeoutMs: 15_000,
sshPollIntervalMs: 100,
},
snapshot: {
rootfsPath: join(HOME, ".fireclaw", "snapshot-rootfs.ext4"),
statePath: join(HOME, ".fireclaw", "snapshot.state"),
memPath: join(HOME, ".fireclaw", "snapshot.mem"),
tapDevice: "fctap200",
ip: "172.16.0.200",
octet: 200,
},
workspacesDir: join(HOME, ".fireclaw", "workspaces"),
workspaceSizeMib: 64,
assets: {
kernelUrl:
"https://s3.amazonaws.com/spec.ccfc.min/firecracker-ci/v1.11/x86_64/vmlinux-5.10.225",
},
} as const;