Add local development environment with switchable backend
All checks were successful
ci/woodpecker/push/deploy Pipeline was successful

Set up local dev workflow: SSH tunnel to dev DB, Next.js API proxy
via rewrites, Docker or native backend on port 5000. Update and
restructure project documentation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-10 01:02:56 +02:00
parent 2dadc5362d
commit a30fe60414
13 changed files with 216 additions and 352 deletions

129
README.md
View File

@@ -1,94 +1,59 @@
# GoodBrick Project
Корпоративная инфраструктура для компании GoodBrick на базе self-hosted сервисов.
Сайт производителя фасадной плитки GoodBrick — каталог продукции, корпоративная информация.
## 🚀 Deployed Services
## Services
| Service | URL | Status | Purpose |
|---------|-----|--------|---------|
| **Gitea** | https://git.goodbrick.com.ua | ✅ Running | Git сервер |
| **Uptime Kuma** | https://status.goodbrick.com.ua | ✅ Running | Мониторинг |
| **Woodpecker CI** | https://ci.goodbrick.com.ua | ✅ Running | CI/CD |
| **Production App** | https://new.goodbrick.com.ua | 🔨 TODO | Продакшн приложение |
| **Development App** | https://dev.goodbrick.com.ua | 🔨 TODO | Dev окружение |
| Service | URL | Purpose |
|---------|-----|---------|
| **Production** | https://new.goodbrick.com.ua | Продакшн приложение |
| **Development** | https://dev.goodbrick.com.ua | Dev окружение |
| **Gitea** | https://git.goodbrick.com.ua | Git сервер |
| **Woodpecker CI** | https://ci.goodbrick.com.ua | CI/CD |
| **Uptime Kuma** | https://status.goodbrick.com.ua | Мониторинг |
## 📚 Documentation
## Stack
- **[SERVER.md](./SERVER.md)** - Полная документация по серверу, сервисам, Docker, базам данных и troubleshooting
- **Frontend:** Next.js 16 + shadcn/ui + Tailwind CSS 4
- **Backend:** .NET 9 Web API + Npgsql
- **Database:** PostgreSQL 16
- **Proxy:** Caddy 2 (auto-SSL)
- **CI/CD:** Woodpecker CI
## 🖥️ Server Info
## Local Development
See [CLAUDE.md](./CLAUDE.md#local-development) for full local dev setup.
```powershell
# Terminal 1: SSH tunnel to dev database
.\scripts\local-tunnel.ps1
# Terminal 2: Backend (choose one)
.\scripts\local-backend-dotnet.ps1 # native, with hot-reload
.\scripts\local-backend-docker.ps1 # Docker container
# Terminal 3: Frontend
.\scripts\local-frontend.ps1
```
## Documentation
- **[CLAUDE.md](./CLAUDE.md)** — Project conventions, structure, local dev setup
- **[SERVER.md](./SERVER.md)** — Server infrastructure, services, troubleshooting
## Git Workflow
- `main` branch → auto-deploy to production
- `dev` branch → auto-deploy to dev environment
- Commit style: conventional, English
## Server
- **Host:** 31.131.18.254
- **SSH:** `ssh deploy@31.131.18.254` (key-based auth)
- **OS:** Linux
- **SSH:** `ssh deploy@31.131.18.254` (key-based)
- **Docker Network:** `app-network`
## 🗄️ Databases
## Next Steps
PostgreSQL 16 с отдельными базами для каждого сервиса:
- `gitea_db` - Gitea
- `prod_db` - Production app
- `dev_db` - Development app
Все credentials в `/srv/postgres/CREDENTIALS.txt` на сервере.
## 🔧 Stack
- **Reverse Proxy:** Caddy 2 (автоматический SSL)
- **Database:** PostgreSQL 16
- **Git:** Gitea
- **CI/CD:** Woodpecker CI
- **Monitoring:** Uptime Kuma
- **Container:** Docker + Docker Compose
## 📝 Quick Commands
### SSH в сервер
```bash
ssh deploy@31.131.18.254
```
### Просмотр всех контейнеров
```bash
ssh deploy@31.131.18.254 'docker ps'
```
### Просмотр логов
```bash
ssh deploy@31.131.18.254 'docker logs <container_name> --tail 50'
```
### Рестарт сервиса
```bash
ssh deploy@31.131.18.254 'cd /srv/<service> && docker compose restart'
```
## 🏗️ Project Structure
```
C:\Work\goodbrick\GBSite\
├── README.md ← Этот файл
├── SERVER.md ← Полная документация сервера
└── [project files] ← Файлы проектов
```
## 🔐 Security
- SSH: Только key-based аутентификация
- PostgreSQL: Изолированные пользователи для каждого приложения
- Docker: Все сервисы в изолированной сети `app-network`
- SSL: Автоматические сертификаты через Let's Encrypt
## 🎯 Next Steps
1. Deploy production app на `new.goodbrick.com.ua`
2. Deploy development app на `dev.goodbrick.com.ua`
3. Настроить CI/CD пайплайны в Woodpecker
4. Настроить email для Gitea
5. Настроить автобэкапы баз данных
---
**Документация актуальна на:** 2026-02-09
**Разработчик:** Ivan
**AI Assistant:** Claude Sonnet 4.5
- [ ] Настроить email для Gitea
- [ ] Настроить автобэкапы баз данных