Files
dockhand/routes/api/environments/detect-socket/+server.ts
Jarek Krochmalski 62e3c6439e Initial commit
2025-12-28 21:16:03 +01:00

47 lines
1.3 KiB
TypeScript

import { json } from '@sveltejs/kit';
import type { RequestHandler } from './$types';
import { existsSync } from 'node:fs';
import { homedir } from 'node:os';
interface DetectedSocket {
path: string;
name: string;
exists: boolean;
}
/**
* Detect available Docker sockets on the system
*/
export const GET: RequestHandler = async () => {
const home = homedir();
// Common socket paths to check
const socketPaths: { path: string; name: string }[] = [
{ path: '/var/run/docker.sock', name: 'Docker (default)' },
{ path: `${home}/.docker/run/docker.sock`, name: 'Docker Desktop' },
{ path: `${home}/.orbstack/run/docker.sock`, name: 'OrbStack' },
{ path: '/run/docker.sock', name: 'Docker (alternate)' },
{ path: `${home}/.colima/default/docker.sock`, name: 'Colima' },
{ path: `${home}/.rd/docker.sock`, name: 'Rancher Desktop' },
{ path: '/run/user/1000/podman/podman.sock', name: 'Podman (user 1000)' },
{ path: `${home}/.local/share/containers/podman/machine/podman.sock`, name: 'Podman Machine' },
];
const detected: DetectedSocket[] = [];
for (const socket of socketPaths) {
if (existsSync(socket.path)) {
detected.push({
path: socket.path,
name: socket.name,
exists: true
});
}
}
return json({
sockets: detected,
homedir: home
});
};