0f31c24bf94c895571118486df11ea75b57a484d
PanelHosting
Панель управления хостингом (аналог FastPanel) на Go + Docker + PostgreSQL.
Биллинг и оплата — в планах. Сейчас реализована база данных и инфраструктура для панели.
Стек
- Go 1.23 — backend
- PostgreSQL 16 — хранение данных
- Docker Compose — локальная разработка
- golang-migrate — миграции схемы
Деплой на сервер
# Клонировать (подставьте токен вместо <TOKEN>)
git clone https://<TOKEN>@git.evilfox.cc/test2/panelhosting.git /opt/host
cd /opt/host
bash scripts/server-setup.sh
Если каталог /opt/host уже есть, но пустой — удалите его или клонируйте в него заново.
Быстрый старт
1. Переменные окружения
cp .env.example .env
2. Запуск PostgreSQL
docker compose up -d postgres
3. Миграции
Через Docker:
docker compose --profile migrate run --rm migrate
Или локально:
export DATABASE_URL=postgres://panel:panel_secret@localhost:5432/panel?sslmode=disable
go run ./cmd/migrate
4. Запуск панели
Через Docker (порт 8000):
docker compose up -d panel
Или локально:
export DATABASE_URL=postgres://panel:panel_secret@localhost:5432/panel?sslmode=disable
export HTTP_PORT=8000
go run ./cmd/panel
Откройте http://localhost:8000 — если админ ещё не создан, появится форма регистрации.
API:
GET /health— healthcheckGET /api/v1/setup/status—{"setup_required": true|false}POST /api/v1/setup/register— создание первого суперадмина (только пока нет пользователей)
{
"email": "admin@example.com",
"username": "admin",
"password": "secret123"
}
Структура проекта
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
Languages
Go
82.1%
PLpgSQL
16.7%
Shell
1.2%