feat: initial project scaffold

- React 19 + Vite + TailwindCSS frontend
- Express + TypeScript backend API
- PostgreSQL schema and migrations
- Docker Compose orchestration
- Drone CI/CD pipeline
- Pages: Dashboard, Servers, Containers, Services, Logs, Metrics, Settings
This commit is contained in:
Ernie Butcher
2026-03-18 17:09:08 -04:00
commit 65471c2a70
54 changed files with 7304 additions and 0 deletions

54
README.md Normal file
View File

@@ -0,0 +1,54 @@
# server-manager
Full-stack server management dashboard deployed via Gitea + Drone CI/CD.
## Stack
| Layer | Tech |
|----------|-----------------------------------|
| Frontend | React 19 + Vite + Tailwind CSS |
| Backend | Express + TypeScript |
| Database | PostgreSQL 16 |
| CI/CD | Drone + Docker |
| Proxy | Nginx (frontend serves API proxy) |
## Project Structure
```
server-manager/
├── frontend/ React SPA (Vite + TailwindCSS)
│ ├── src/
│ │ ├── components/ Shared UI components
│ │ ├── pages/ Route-level page components
│ │ ├── lib/ API client, utilities
│ │ └── store/ Zustand global state
│ ├── Dockerfile
│ └── nginx.conf
├── backend/ Express REST API (TypeScript)
│ ├── src/
│ │ ├── routes/ API route handlers
│ │ ├── services/ Business logic
│ │ ├── db/ DB pool + migrations
│ │ └── middleware/ Error handler, 404, auth
│ └── Dockerfile
├── docker-compose.yml
└── .drone.yml CI/CD pipeline
```
## Local Development
```bash
# Backend
cd backend && npm install && npm run dev
# Frontend
cd frontend && npm install && npm run dev
```
## Drone Secrets Required
| Secret | Description |
|------------------|--------------------------------|
| `gitea_username` | Gitea username |
| `gitea_token` | Gitea personal access token |
| `ssh_private_key`| Private key for deploy server |