feat: implement docker infrastructure (US-001)

- Add docker-compose.yml with postgres, redis, api, and web services
- Add multi-stage Dockerfile for API (Python 3.11)
- Add multi-stage Dockerfile for web (Node.js 20 + nginx)
- Add Makefile with common development commands
- Add .env.example with all required environment variables
- Add placeholder pyproject.toml and package.json for builds
- Configure health checks for all services
- Setup persistent volumes for postgres, redis, and repos
- Run services as non-root users
This commit is contained in:
2026-05-16 17:44:39 +00:00
parent 212d072417
commit e7819bfc82
246 changed files with 3625 additions and 17311 deletions
-51
View File
@@ -1,51 +0,0 @@
import { createBrowserRouter } from 'react-router-dom'
import App from './App'
import RouteGuard from './components/RouteGuard'
import DashboardLayout from './components/DashboardLayout'
import LoginPage from './pages/LoginPage'
import CallbackPage from './pages/CallbackPage'
import DashboardPage from './pages/DashboardPage'
import ProjectListPage from './pages/ProjectListPage'
import ProjectDetailPage from './pages/ProjectDetailPage'
import ProjectFormPage from './pages/ProjectFormPage'
import ToolsPage from './pages/ToolsPage'
import ToolSpawnPage from './pages/ToolSpawnPage'
import ToolInstanceDetailPage from './pages/ToolInstanceDetailPage'
import SettingsPage from './pages/SettingsPage'
import RepositoryListPage from './pages/RepositoryListPage'
import RepositoryDetailPage from './pages/RepositoryDetailPage'
import ConfigListPage from './pages/ConfigListPage'
import SecretListPage from './pages/SecretListPage'
export const router = createBrowserRouter([
{
path: '/',
element: <App />,
children: [
{
element: (
<RouteGuard>
<DashboardLayout />
</RouteGuard>
),
children: [
{ path: '/', element: <DashboardPage /> },
{ path: '/projects', element: <ProjectListPage /> },
{ path: '/projects/new', element: <ProjectFormPage /> },
{ path: '/projects/:id', element: <ProjectDetailPage /> },
{ path: '/projects/:id/edit', element: <ProjectFormPage /> },
{ path: '/tools', element: <ToolsPage /> },
{ path: '/tools/spawn', element: <ToolSpawnPage /> },
{ path: '/projects/:projectId/instances/:instanceId', element: <ToolInstanceDetailPage /> },
{ path: '/settings', element: <SettingsPage /> },
{ path: '/repositories', element: <RepositoryListPage /> },
{ path: '/projects/:projectId/repositories/:repoId', element: <RepositoryDetailPage /> },
{ path: '/projects/:id/configs', element: <ConfigListPage /> },
{ path: '/projects/:id/secrets', element: <SecretListPage /> },
],
},
{ path: '/login', element: <LoginPage /> },
{ path: '/callback', element: <CallbackPage /> },
],
},
])