/** * Setup API endpoints */ import axios from 'axios' // Create a separate client for setup endpoints (not under /api/v1) const setupClient = axios.create({ baseURL: '', timeout: 30000, headers: { 'Content-Type': 'application/json' } }) export interface SetupStatus { needs_setup: boolean step: string } export interface DatabaseConfig { host: string port: number user: string password: string dbname: string sslmode: string } export interface RedisConfig { host: string port: number password: string db: number } export interface AdminConfig { email: string password: string } export interface ServerConfig { host: string port: number mode: string } export interface InstallRequest { database: DatabaseConfig redis: RedisConfig admin: AdminConfig server: ServerConfig } export interface InstallResponse { message: string restart: boolean } /** * Get setup status */ export async function getSetupStatus(): Promise { const response = await setupClient.get('/setup/status') return response.data.data } /** * Test database connection */ export async function testDatabase(config: DatabaseConfig): Promise { await setupClient.post('/setup/test-db', config) } /** * Test Redis connection */ export async function testRedis(config: RedisConfig): Promise { await setupClient.post('/setup/test-redis', config) } /** * Perform installation */ export async function install(config: InstallRequest): Promise { const response = await setupClient.post('/setup/install', config) return response.data.data }