Compare commits

..

1 Commits

Author SHA1 Message Date
Sergey Bolshakov 9b416815ef подключение к бд через prisma 2026-03-10 23:20:11 +03:00
3 changed files with 67 additions and 29 deletions

View File

@ -6,13 +6,19 @@ on:
jobs: jobs:
build-and-start: build-and-start:
runs-on: [ubuntu-latest, docker] # Must match your runner's labels (e.g. from act_runner register --labels).
container: # If your runner has other labels, replace with those (e.g. runs-on: my-runner).
image: node:20-bookworm runs-on: [self-hosted]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
@ -24,19 +30,3 @@ jobs:
timeout 20 npm run start:prod || [ $? -eq 124 ] timeout 20 npm run start:prod || [ $? -eq 124 ]
env: env:
PORT: 4000 PORT: 4000
deploy:
needs: build-and-start
runs-on: [ubuntu-latest, docker]
container:
image: node:20-bookworm
steps:
- name: Install Docker
run: apt-get update -qq && apt-get install -y -qq docker.io docker-compose
- name: Checkout
uses: actions/checkout@v4
- name: Deploy
run: docker-compose -p docker-stack up -d --build backend
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
UPLOADS_PATH: ${{ secrets.UPLOADS_PATH }}

16
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,16 @@
stages:
- deploy
variables:
COMPOSE_PROJECT_NAME: travelmarine-backend
DOCKER_HOST: unix:///var/run/docker.sock
deploy:
stage: deploy
only:
- main
script:
- docker compose -p "$COMPOSE_PROJECT_NAME" up -d --build
environment:
name: production
url: http://89.169.188.2

View File

@ -1,18 +1,50 @@
services: services:
postgres:
image: postgres:16-alpine
restart: always
environment:
POSTGRES_DB: travelmarinedb
POSTGRES_USER: yacht
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-change_me}
volumes:
- pg-data:/var/lib/postgresql/data
ports:
- '127.0.0.1:5432:5432'
backend: backend:
build: . build: .
restart: always
environment: environment:
NODE_ENV: production NODE_ENV: production
PORT: 4000 PORT: 4000
DATABASE_URL: ${DATABASE_URL} DATABASE_URL: postgresql://yacht:${POSTGRES_PASSWORD:-change_me}@postgres:5432/travelmarinedb
UPLOAD_PATH: /app/uploads UPLOAD_PATH: ./uploads
APP_URL: ${APP_URL:-https://api.travelmarine.ru} APP_URL: http://localhost:4000
volumes: volumes:
- ${UPLOADS_PATH:-./uploads}:/app/uploads - ./uploads:/app/uploads
networks: depends_on:
- app-network - postgres
ports:
- '127.0.0.1:4000:4000'
restart: always
networks: pgbackup:
app-network: image: prodrigestivill/postgres-backup-local:16
external: true restart: always
depends_on:
- postgres
environment:
POSTGRES_HOST: postgres
POSTGRES_DB: yachtbooking
POSTGRES_USER: yacht
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-change_me}
SCHEDULE: '0 3 * * *'
BACKUP_KEEP_DAYS: 7
BACKUP_KEEP_WEEKS: 4
BACKUP_KEEP_MONTHS: 3
BACKUP_DIR: /backups
volumes:
- pg-backups:/backups
volumes:
pg-data:
pg-backups: