From f214aaa48bd457a4eb9179cd203be13cc74486a8 Mon Sep 17 00:00:00 2001 From: orohi Date: Wed, 17 Jun 2026 04:35:48 +0300 Subject: [PATCH] fix: server deploy setup and env example --- .env.example | 9 +++++++++ README.md | 11 +++++++++++ docker-compose.yml | 12 +++++++----- scripts/server-setup.sh | 24 ++++++++++++++++++++++++ 4 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 scripts/server-setup.sh diff --git a/.env.example b/.env.example index aee84ae..391b24c 100644 --- a/.env.example +++ b/.env.example @@ -1 +1,10 @@ +# PostgreSQL +POSTGRES_USER=panel +POSTGRES_PASSWORD=panel_secret +POSTGRES_DB=panel + +# Для go run ./cmd/migrate и ./cmd/panel (хост → контейнер) DATABASE_URL=postgres://panel:panel_secret@localhost:5432/panel?sslmode=disable + +# Для docker compose migrate (внутри docker-сети) +DATABASE_URL_DOCKER=postgres://panel:panel_secret@postgres:5432/panel?sslmode=disable diff --git a/README.md b/README.md index 7f132f8..c707024 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,17 @@ - **Docker Compose** — локальная разработка - **golang-migrate** — миграции схемы +## Деплой на сервер + +```bash +# Клонировать (подставьте токен вместо ) +git clone https://@git.evilfox.cc/test2/panelhosting.git /opt/host +cd /opt/host +bash scripts/server-setup.sh +``` + +Если каталог `/opt/host` уже есть, но пустой — удалите его или клонируйте в него заново. + ## Быстрый старт ### 1. Переменные окружения diff --git a/docker-compose.yml b/docker-compose.yml index 35ba6dd..fc5a4e3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,16 +3,17 @@ services: image: postgres:16-alpine container_name: panel-postgres restart: unless-stopped + env_file: .env environment: - POSTGRES_USER: panel - POSTGRES_PASSWORD: panel_secret - POSTGRES_DB: panel + POSTGRES_USER: ${POSTGRES_USER:-panel} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-panel_secret} + POSTGRES_DB: ${POSTGRES_DB:-panel} ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: - test: ["CMD-SHELL", "pg_isready -U panel -d panel"] + test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-panel} -d ${POSTGRES_DB:-panel}"] interval: 5s timeout: 5s retries: 5 @@ -22,11 +23,12 @@ services: context: . dockerfile: Dockerfile.migrate container_name: panel-migrate + env_file: .env depends_on: postgres: condition: service_healthy command: - - "postgres://panel:panel_secret@postgres:5432/panel?sslmode=disable" + - "${DATABASE_URL_DOCKER:-postgres://panel:panel_secret@postgres:5432/panel?sslmode=disable}" - "up" profiles: - migrate diff --git a/scripts/server-setup.sh b/scripts/server-setup.sh new file mode 100644 index 0000000..5aafda7 --- /dev/null +++ b/scripts/server-setup.sh @@ -0,0 +1,24 @@ +#!/bin/bash +set -euo pipefail + +ROOT="$(cd "$(dirname "$0")/.." && pwd)" +cd "$ROOT" + +if [ ! -f .env.example ]; then + echo "Ошибка: .env.example не найден." + echo "Сначала клонируйте репозиторий:" + echo " git clone https://git.evilfox.cc/test2/panelhosting.git /opt/host" + exit 1 +fi + +if [ ! -f .env ]; then + cp .env.example .env + echo "Создан .env из .env.example" +else + echo ".env уже существует, пропускаем" +fi + +docker compose up -d postgres +docker compose --profile migrate run --rm migrate + +echo "Готово. PostgreSQL запущен, миграции применены."