diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 887645f..d9a1fc3 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -62,6 +62,9 @@ jobs: -e SPRING_FLYWAY_PASSWORD=jambo_secret_pass \ -e SPRING_DATA_MONGODB_URI=mongodb://jambotron_admin:jambo_mongo_secret@jambo-mongo:27017/jambotron?authSource=admin \ -l "caddy=$D_DOMAIN, *.$D_DOMAIN, *.*.$D_DOMAIN" \ + -e SPACESHIP_API_KEY="${{ secrets.SPACESHIP_API_KEY }}" \ + -e SPACESHIP_API_SECRET="${{ secrets.SPACESHIP_API_SECRET }}" \ + -l "caddy.tls.dns=spaceship" \ -l "caddy.reverse_proxy={{upstreams 8081}}" \ jambotron-app:$D_TAG diff --git a/jambotron-ui/hetzner/jambotron-infra/.env.staging b/jambotron-ui/hetzner/jambotron-infra/.env.staging new file mode 100644 index 0000000..e850714 --- /dev/null +++ b/jambotron-ui/hetzner/jambotron-infra/.env.staging @@ -0,0 +1,8 @@ +# База данных Staging +STAGING_DB_USER=jambotron_stg_admin +STAGING_DB_PASSWORD=your_secure_stg_pass +STAGING_DB_NAME=jambotron_staging + +# Настройки приложения +SPRING_PROFILES_ACTIVE=staging +STAGING_DOMAIN=staging.jambotron.com diff --git a/jambotron-ui/hetzner/jambotron-infra/docker-compose.staging.yml b/jambotron-ui/hetzner/jambotron-infra/docker-compose.staging.yml new file mode 100644 index 0000000..494938e --- /dev/null +++ b/jambotron-ui/hetzner/jambotron-infra/docker-compose.staging.yml @@ -0,0 +1,53 @@ +version: '3.8' + +services: + # База данных для стейджинга + jambo-db-staging: + image: postgres:15-alpine + container_name: jambo-db-staging + restart: always + networks: + - jambotron-staging-net + environment: + POSTGRES_USER: ${STAGING_DB_USER} + POSTGRES_PASSWORD: ${STAGING_DB_PASSWORD} + POSTGRES_DB: ${STAGING_DB_NAME} + volumes: + - jambo_db_staging_data:/var/lib/postgresql/data + + # Backend-приложение (Staging версия) + jambotron-app-stg: + image: jambotron-app:stg-latest + container_name: jambotron-app-stg + restart: always + depends_on: + - jambo-db-staging + volumes: + - jambotron_staging_data:/jambotron_data + - /var/run/docker.sock:/var/run/docker.sock + networks: + - jambotron-staging-net + - jambotron-net # Для связи с Caddy + environment: + SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE} + SPRING_DATASOURCE_URL: jdbc:postgresql://jambo-db-staging:5432/${STAGING_DB_NAME} + SPRING_DATASOURCE_USERNAME: ${STAGING_DB_USER} + SPRING_DATASOURCE_PASSWORD: ${STAGING_DB_PASSWORD} + labels: + # Настройки для caddy-docker-proxy + caddy: ${STAGING_DOMAIN} + caddy.reverse_proxy: "{{upstreams 8080}}" + # Добавь это для стабильности WS: + caddy.header_up_1: "Upgrade {>Upgrade}" + caddy.header_up_2: "Connection {>Connection}" + +networks: + jambotron-staging-net: + driver: bridge + jambotron-net: + external: true # Используем существующую сеть + +volumes: + jambo_db_staging_data: + jambotron_staging_data: + name: jambotron_staging_data \ No newline at end of file diff --git a/jambotron-ui/hetzner/jambotron-infra/docker-compose.yml b/jambotron-ui/hetzner/jambotron-infra/docker-compose.yml new file mode 100644 index 0000000..05621e7 --- /dev/null +++ b/jambotron-ui/hetzner/jambotron-infra/docker-compose.yml @@ -0,0 +1,37 @@ +version: '3.8' + +services: + # Сервер базы данных + jambotron-db-server: + image: postgres:15-alpine + container_name: jambo-postgres + restart: always + environment: + - POSTGRES_DB=jambotron_prod + - POSTGRES_USER=jambotron_admin + - POSTGRES_PASSWORD=jambo_secret_pass + volumes: + - jambo_db_data:/var/lib/postgresql/data + networks: + - jambotron-net + + # Панель управления базой + jambo-pgadmin: + image: dpage/pgadmin4 + container_name: jambo-pgadmin + restart: always + environment: + - PGADMIN_DEFAULT_EMAIL=admin@jambotron.com + - PGADMIN_DEFAULT_PASSWORD=your_secure_password + networks: + - jambotron-net + labels: + - "caddy=pgadmin.jambotron.com" + - "caddy.reverse_proxy={{upstreams 80}}" + +networks: + jambotron-net: + external: true # Указываем, что сеть уже создана (в ней же живет Caddy и Gitea) + +volumes: + jambo_db_data: