Fix deploy without Go: Docker installer, optional .env

This commit is contained in:
vpn-panel
2026-05-21 18:58:35 +03:00
parent 3c2f5226d1
commit 74d5d34679
4 changed files with 75 additions and 22 deletions
+17 -16
View File
@@ -17,8 +17,8 @@ curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
# Перелогиньтесь или: newgrp docker
# Git и Go (для установщика)
sudo apt install -y git golang-go
# Git (Go на сервере не обязателен — установка через Docker)
sudo apt install -y git
```
Проверка:
@@ -28,6 +28,8 @@ docker --version
docker compose version
```
> **Go не нужен.** Установщик запускается внутри контейнера.
---
## 2. Клонирование проекта
@@ -74,26 +76,23 @@ docker compose ps
## 4. Установщик (первичная настройка)
Интерактивно задаёт домен, БД и учётку администратора.
Интерактивно задаёт домен, БД и учётку администратора. **Go на сервере не нужен.**
### Вариант A — Go на сервере
### Вариант A — один скрипт (рекомендуется)
```bash
go run ./cmd/install
chmod +x scripts/setup.sh
./scripts/setup.sh
```
### Вариант B — сборка установщика
### Вариант B — установщик в Docker вручную
```bash
go build -o install ./cmd/install
./install
```
docker compose up -d postgres
# дождитесь healthy: docker compose ps
### Вариант C — установщик в Docker
```bash
docker compose build
docker compose run --rm panel /app/install
docker compose build install
docker compose --profile tools run --rm install
```
При запросах укажите:
@@ -102,7 +101,7 @@ docker compose run --rm panel /app/install
|------|--------|------------|
| Домен панели | `panel.example.com` | Для ссылок и nginx |
| Порт приложения | `8080` | Внешний порт в compose |
| Хост БД | `postgres` | Имя сервиса в docker-compose |
| Хост БД | **`postgres`** | Обязательно имя сервиса Docker, не `localhost` |
| Порт БД | `5432` | |
| Пользователь БД | `vpnpanel` | |
| Пароль БД | *свой надёжный* | |
@@ -218,7 +217,9 @@ cat backup.sql | docker exec -i vpn-panel-db psql -U vpnpanel vpnpanel
| Проблема | Решение |
|----------|---------|
| `DATABASE_URL не задан` | Запустите `./install` или создайте `.env` из `.env.example` |
| `Command 'go' not found` | Не ставьте Go — используйте `./scripts/setup.sh` или `docker compose --profile tools run --rm install` |
| `env file .env not found` | Обновите репозиторий (`git pull`) или создайте `.env`: `cp .env.example .env` и отредактируйте |
| `DATABASE_URL не задан` | Запустите установщик в Docker или создайте `.env` из `.env.example` |
| Нет подключения к БД | `docker compose ps`, проверьте `healthy` у postgres |
| Порт занят | Смените `APP_PORT` в `.env` и в `docker-compose.yml` |
| Регистрация закрыта | Админ уже есть — используйте `/login` |