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

Авторизация

  • POST /api/v1/auth/login{"username":"admin","password":"..."} → cookie panel_session
  • POST /api/v1/auth/logout — выход (требует сессию)
  • GET /api/v1/auth/me — текущий пользователь

Сайты (требуют авторизацию)

  • GET /api/v1/sites — список сайтов
  • POST /api/v1/sites — создать сайт
{
  "name": "mysite",
  "domain": "example.com",
  "php_version": "8.3"
}

PHP

  • GET /api/v1/php-versions — доступные версии PHP

Setup

  • GET /health — healthcheck
  • GET /api/v1/setup/status{"setup_required": true|false}
  • POST /api/v1/setup/register — создание первого суперадмина (только пока нет пользователей)

Структура проекта

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

S
Description
No description provided
Readme
141 KiB
Languages
Go 82.1%
PLpgSQL 16.7%
Shell 1.2%