first commit
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
# PanelHosting
|
||||
|
||||
Панель управления хостингом (аналог FastPanel) на Go + Docker + PostgreSQL.
|
||||
|
||||
Биллинг и оплата — в планах. Сейчас реализована база данных и инфраструктура для панели.
|
||||
|
||||
## Стек
|
||||
|
||||
- **Go 1.23** — backend
|
||||
- **PostgreSQL 16** — хранение данных
|
||||
- **Docker Compose** — локальная разработка
|
||||
- **golang-migrate** — миграции схемы
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
### 1. Переменные окружения
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
### 2. Запуск PostgreSQL
|
||||
|
||||
```bash
|
||||
docker compose up -d postgres
|
||||
```
|
||||
|
||||
### 3. Миграции
|
||||
|
||||
Через Docker:
|
||||
|
||||
```bash
|
||||
docker compose --profile migrate run --rm migrate
|
||||
```
|
||||
|
||||
Или локально:
|
||||
|
||||
```bash
|
||||
export DATABASE_URL=postgres://panel:panel_secret@localhost:5432/panel?sslmode=disable
|
||||
go run ./cmd/migrate
|
||||
```
|
||||
|
||||
### 4. Проверка подключения
|
||||
|
||||
```bash
|
||||
go run ./cmd/panel
|
||||
```
|
||||
|
||||
## Структура проекта
|
||||
|
||||
```
|
||||
cmd/
|
||||
migrate/ — CLI для применения миграций
|
||||
panel/ — точка входа панели (API в разработке)
|
||||
internal/
|
||||
config/ — конфигурация из env
|
||||
database/ — пул соединений и миграции
|
||||
models/ — Go-модели
|
||||
migrations/ — SQL-схема
|
||||
```
|
||||
|
||||
## Схема БД
|
||||
|
||||
| Раздел | Таблицы |
|
||||
|--------|---------|
|
||||
| Auth | `users`, `sessions`, `api_keys` |
|
||||
| Серверы | `servers`, `server_access` |
|
||||
| Сайты | `sites`, `domains` |
|
||||
| Сервисы | `databases`, `database_users`, `ftp_accounts`, `ssl_certificates` |
|
||||
| Почта | `mail_domains`, `mail_accounts` |
|
||||
| DNS | `dns_zones`, `dns_records` |
|
||||
| Операции | `cron_jobs`, `backups`, `jobs` |
|
||||
| Аудит | `audit_logs` |
|
||||
|
||||
## Лицензия
|
||||
|
||||
Proprietary
|
||||
Reference in New Issue
Block a user