Add production Docker Compose setup and environment configuration
This commit is contained in:
parent
ae8c22b560
commit
8ef7aecc2a
35
environment/prod/docker-compose/yogastic/.example.env
Normal file
35
environment/prod/docker-compose/yogastic/.example.env
Normal file
@ -0,0 +1,35 @@
|
||||
COMPOSE_PROJECT_NAME=yoga-infra
|
||||
|
||||
APP_POSTGRES_URL="postgres://scrambled_user:scrambled_pass@nextjs-db:5432/nextjs"
|
||||
APP_POSTGRES_URL_NON_POOLING="postgres://scrambled_user:scrambled_pass@nextjs-db:5432/nextjs"
|
||||
APP_POSTGRES_USER="scrambled_user"
|
||||
APP_POSTGRES_HOST="nextjs-db"
|
||||
APP_POSTGRES_PORT="5432"
|
||||
APP_POSTGRES_PASSWORD="scrambled_pass"
|
||||
APP_POSTGRES_DATABASE="nextjs"
|
||||
|
||||
# `openssl rand -base64 32`
|
||||
APP_AUTH_SECRET=
|
||||
APP_AUTH_URL=http://localhost:3000/api/auth
|
||||
APP_STRAPI_URL=http://cms:1337
|
||||
APP_STRAPI_KEY=
|
||||
APP_SMTP_SERVER_USERNAME=scrambled_user
|
||||
APP_SMTP_SERVER_PASSWORD=scrambled_pass
|
||||
APP_SMTP_SERVER_HOST=localhost
|
||||
APP_SMTP_SERVER_PORT=4014
|
||||
APP_SMTP_SERVER_SECURE=false
|
||||
APP_SITE_MAIL_RECIEVER=scrambled_email@example.com
|
||||
|
||||
CMS_DATABASE_CLIENT=mysql
|
||||
CMS_DATABASE_HOST=localhost
|
||||
CMS_DATABASE_PORT=4011
|
||||
CMS_DATABASE_NAME=strapi
|
||||
CMS_DATABASE_USERNAME=scrambled_user
|
||||
CMS_DATABASE_PASSWORD=scrambled_pass
|
||||
CMS_HOST=0.0.0.0
|
||||
CMS_PORT=1337
|
||||
CMS_APP_KEYS="scrambled_key1,scrambled_key2"
|
||||
CMS_API_TOKEN_SALT=scrambled_salt
|
||||
CMS_ADMIN_JWT_SECRET=scrambled_jwt_secret
|
||||
CMS_TRANSFER_TOKEN_SALT=scrambled_salt
|
||||
CMS_JWT_SECRET=scrambled_jwt_secret
|
||||
67
environment/prod/docker-compose/yogastic/docker-compose.yaml
Normal file
67
environment/prod/docker-compose/yogastic/docker-compose.yaml
Normal file
@ -0,0 +1,67 @@
|
||||
services:
|
||||
|
||||
strapi-db:
|
||||
image: mariadb:11.6.2
|
||||
environment:
|
||||
MARIADB_ROOT_PASSWORD: strapi
|
||||
MARIADB_DATABASE: strapi
|
||||
MARIADB_USER: strapi
|
||||
MARIADB_PASSWORD: strapi
|
||||
volumes:
|
||||
- strapi-db:/var/lib/mysql
|
||||
|
||||
nextjs-db:
|
||||
image: postgres:17
|
||||
environment:
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_DB: ${POSTGRES_DATABASE}
|
||||
POSTGRES_USER: ${POSTGRES_USER}
|
||||
volumes:
|
||||
- next-db:/var/lib/postgresql/data
|
||||
|
||||
app:
|
||||
image: docker.rschneider.hu/infra/yoga-app:202502252004.fad4103
|
||||
platform: linux/amd64
|
||||
ports:
|
||||
- "4025:3000"
|
||||
environment:
|
||||
POSTGRES_URL: ${APP_POSTGRES_URL}
|
||||
POSTGRES_URL_NON_POOLING: ${APP_POSTGRES_URL_NON_POOLING}
|
||||
POSTGRES_USER: ${APP_POSTGRES_USER}
|
||||
POSTGRES_HOST: ${APP_POSTGRES_HOST}
|
||||
POSTGRES_PORT: ${APP_POSTGRES_PORT}
|
||||
POSTGRES_PASSWORD: ${APP_POSTGRES_PASSWORD}
|
||||
POSTGRES_DATABASE: ${APP_POSTGRES_DATABASE}
|
||||
AUTH_SECRET: ${APP_AUTH_SECRET}
|
||||
AUTH_URL: ${APP_AUTH_URL}
|
||||
STRAPI_URL: ${APP_STRAPI_URL}
|
||||
STRAPI_KEY: ${APP_STRAPI_KEY}
|
||||
SMTP_SERVER_USERNAME: ${APP_SMTP_SERVER_USERNAME}
|
||||
SMTP_SERVER_PASSWORD: ${APP_SMTP_SERVER_PASSWORD}
|
||||
SMTP_SERVER_HOST: ${APP_SMTP_SERVER_HOST}
|
||||
SMTP_SERVER_PORT: ${APP_SMTP_SERVER_PORT}
|
||||
SMTP_SERVER_SECURE: ${APP_SMTP_SERVER_SECURE}
|
||||
SITE_MAIL_RECIEVER: ${APP_SITE_MAIL_RECIEVER}
|
||||
|
||||
cms:
|
||||
image: docker.rschneider.hu/infra/yoga-cms:202502251913.4385f28
|
||||
ports:
|
||||
- "4026:1337"
|
||||
environment:
|
||||
DATABASE_CLIENT: mysql
|
||||
DATABASE_HOST: strapi-db
|
||||
DATABASE_PORT: 3306
|
||||
DATABASE_NAME: strapi
|
||||
DATABASE_USERNAME: strapi
|
||||
DATABASE_PASSWORD: strapi
|
||||
HOST: 0.0.0.0
|
||||
PORT: 1337
|
||||
APP_KEYS: "yoga1,yoga2"
|
||||
API_TOKEN_SALT: diana
|
||||
ADMIN_JWT_SECRET: 6d49a635a298dfff1457002ab1ea26d51f94f6c67c03f7299e8adc19aafe02a2aadb2258aa1be90b836898e0b1ce6970d7584dda32129fb0e4aa09db9ba2076909a44491bbf1c0e1840b8a78843388851ed80407a71fabc3674faca3b4c4fd147c86347a390e86051b1530cac454063bb351632c75852110a5dc198f96a4f4b709d34d240d3e82206f29756a703d7b873b387d7a20e87df71f31a2f934d2a32a3795898c8d43d7f088ebfc8c430b81f4112b811c2aac6be8af551afd8cc29c4875037fd5c7fdacfcd5740b89bab0e1ada51b23f99fb0d181a8ad4758447331edd339ce988e02a6eae170ff57b6650f91dfb2988f7d91be6ea330c0e8fd647799
|
||||
TRANSFER_TOKEN_SALT: 2209851913
|
||||
JWT_SECRET: fc2be7f56eefe9790bd80a3713974620f42a66313f71bb581ac15328b886ccd42c51eb54f6e897b5d3f6d12bec069dfd116eb63f09d709346ab8c5c328ff42cef1f1cd7e39448186c9c96af3d838e25a3e82dfe72578d775f322bfb3b280ee7db103ae768dcebfc3fa0a9fffeb4d4773cd70e818f6cd8e98f360faa926a8388d18a1c9abcb616600c2c450820a29328df5592dea4a76edf3e9f8147cf92fc88a8a9e3f3698e038c9f7ccbfd7fc04fada3583f2ad8d1ff087a6f23cd33cfc8edf82e6489f1470da5dc52bc1ab1ac025bc9f77a6098f5efecff451498e2d936d005284e149971df15ed81d92ddddd0f71b5ffa3584d853aa3cecc37652430e7d27
|
||||
|
||||
volumes:
|
||||
next-db: {}
|
||||
strapi-db: {}
|
||||
27
environment/prod/jenkins/Jenkinsfile
vendored
Normal file
27
environment/prod/jenkins/Jenkinsfile
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
stages {
|
||||
stage('Git pull && docker compose restart') {
|
||||
steps {
|
||||
sshPublisher(publishers: [sshPublisherDesc(configName: 'rschneider', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''
|
||||
cd /home/rschneider/projects/yogastic
|
||||
git pull
|
||||
cd /home/rschneider/projects/yogastic/environment/prod/docker-compose/yogastic
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
''', execTimeout: 120000,
|
||||
flatten: false,
|
||||
makeEmptyDirs: false,
|
||||
noDefaultExcludes: false,
|
||||
patternSeparator: '[, ]+',
|
||||
remoteDirectory: '',
|
||||
remoteDirectorySDF: false,
|
||||
removePrefix: '', sourceFiles: '')],
|
||||
usePromotionTimestamp: false,
|
||||
useWorkspaceInPromotion: false,
|
||||
verbose: true)])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user