feat: solidtime VM
Some checks failed
Infrastructure / Check and run Ansbile playbooks (push) Failing after 5m34s
Some checks failed
Infrastructure / Check and run Ansbile playbooks (push) Failing after 5m34s
This commit is contained in:
7
infra/solidtime/solidtime/.env
Normal file
7
infra/solidtime/solidtime/.env
Normal file
@@ -0,0 +1,7 @@
|
||||
APP_DOMAIN=solidtime.koval.net
|
||||
DB_DATABASE=solidtime
|
||||
DB_USERNAME=solidtime
|
||||
FORWARD_APP_PORT=8000
|
||||
FORWARD_DB_PORT=5432
|
||||
DB_PASSWORD=DB_PASSWORD_VALUE
|
||||
SOLIDTIME_IMAGE_TAG=latest
|
1
infra/solidtime/solidtime/.gitignore
vendored
Normal file
1
infra/solidtime/solidtime/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!*.env
|
96
infra/solidtime/solidtime/docker-compose.yml
Normal file
96
infra/solidtime/solidtime/docker-compose.yml
Normal file
@@ -0,0 +1,96 @@
|
||||
services:
|
||||
app:
|
||||
restart: always
|
||||
image: "solidtime/solidtime:${SOLIDTIME_IMAGE_TAG:-latest}"
|
||||
user: "1000:1000"
|
||||
ports:
|
||||
- '${FORWARD_APP_PORT:-8000}:8000'
|
||||
networks:
|
||||
- internal
|
||||
volumes:
|
||||
- "app-storage:/var/www/html/storage"
|
||||
- "./logs:/var/www/html/storage/logs"
|
||||
- "app-storage-app:/var/www/html/storage/app"
|
||||
environment:
|
||||
CONTAINER_MODE: http
|
||||
AUTO_DB_MIGRATE: "true"
|
||||
healthcheck:
|
||||
test: [ "CMD-SHELL", "curl --fail http://localhost:8000/health-check/up || exit 1" ]
|
||||
env_file:
|
||||
- laravel.env
|
||||
depends_on:
|
||||
- database
|
||||
scheduler:
|
||||
restart: always
|
||||
image: "solidtime/solidtime:${SOLIDTIME_IMAGE_TAG:-latest}"
|
||||
user: "1000:1000"
|
||||
networks:
|
||||
- internal
|
||||
volumes:
|
||||
- "app-storage:/var/www/html/storage"
|
||||
- "./logs:/var/www/html/storage/logs"
|
||||
- "app-storage-app:/var/www/html/storage/app"
|
||||
environment:
|
||||
CONTAINER_MODE: scheduler
|
||||
healthcheck:
|
||||
test: [ "CMD-SHELL", "supervisorctl status scheduler:scheduler_00" ]
|
||||
env_file:
|
||||
- laravel.env
|
||||
depends_on:
|
||||
- database
|
||||
queue:
|
||||
restart: always
|
||||
image: "solidtime/solidtime:${SOLIDTIME_IMAGE_TAG:-latest}"
|
||||
user: "1000:1000"
|
||||
networks:
|
||||
- internal
|
||||
volumes:
|
||||
- "app-storage:/var/www/html/storage"
|
||||
- "./logs:/var/www/html/storage/logs"
|
||||
- "app-storage-app:/var/www/html/storage/app"
|
||||
environment:
|
||||
CONTAINER_MODE: worker
|
||||
WORKER_COMMAND: "php /var/www/html/artisan queue:work"
|
||||
healthcheck:
|
||||
test: [ "CMD-SHELL", "supervisorctl status worker:worker_00" ]
|
||||
env_file:
|
||||
- laravel.env
|
||||
depends_on:
|
||||
- database
|
||||
database:
|
||||
restart: always
|
||||
image: 'postgres:15'
|
||||
# ports:
|
||||
# - '${FORWARD_DB_PORT:-5432}:5432'
|
||||
environment:
|
||||
PGPASSWORD: '${DB_PASSWORD:-secret}'
|
||||
POSTGRES_DB: '${DB_DATABASE}'
|
||||
POSTGRES_USER: '${DB_USERNAME}'
|
||||
POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}'
|
||||
volumes:
|
||||
- 'database-storage:/var/lib/postgresql/data'
|
||||
networks:
|
||||
- internal
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- pg_isready
|
||||
- '-q'
|
||||
- '-d'
|
||||
- '${DB_DATABASE}'
|
||||
- '-U'
|
||||
- '${DB_USERNAME}'
|
||||
retries: 3
|
||||
timeout: 5s
|
||||
gotenberg:
|
||||
image: gotenberg/gotenberg:8
|
||||
networks:
|
||||
- internal
|
||||
healthcheck:
|
||||
test: [ "CMD", "curl", "--silent", "--fail", "http://localhost:3000/health" ]
|
||||
networks:
|
||||
internal:
|
||||
volumes:
|
||||
database-storage:
|
||||
app-storage:
|
||||
app-storage-app:
|
47
infra/solidtime/solidtime/laravel.env
Normal file
47
infra/solidtime/solidtime/laravel.env
Normal file
@@ -0,0 +1,47 @@
|
||||
APP_NAME="solidtime"
|
||||
VITE_APP_NAME="solidtime"
|
||||
APP_ENV="production"
|
||||
APP_DEBUG="false"
|
||||
APP_URL="https://solidtime.koval.net"
|
||||
APP_FORCE_HTTPS="true"
|
||||
APP_ENABLE_REGISTRATION="false"
|
||||
TRUSTED_PROXIES="10.4.0.1/32"
|
||||
|
||||
# Authentication
|
||||
APP_KEY="APP_KEY_VALUE"
|
||||
PASSPORT_PRIVATE_KEY="PASSPORT_PRIVATE_KEY_VALUE"
|
||||
PASSPORT_PUBLIC_KEY="PASSPORT_PUBLIC_KEY_VALUE"
|
||||
SUPER_ADMINS="gleb@koval.net"
|
||||
|
||||
# Logging
|
||||
LOG_CHANNEL="stderr_daily"
|
||||
LOG_LEVEL="debug"
|
||||
|
||||
# Database
|
||||
DB_CONNECTION="pgsql"
|
||||
DB_HOST="database"
|
||||
DB_PORT="5432"
|
||||
DB_SSLMODE="require"
|
||||
DB_DATABASE="solidtime"
|
||||
DB_USERNAME="solidtime"
|
||||
DB_PASSWORD="DB_PASSWORD_VALUE"
|
||||
|
||||
# Mail
|
||||
MAIL_MAILER="smtp"
|
||||
MAIL_HOST="mx.koval.net"
|
||||
MAIL_PORT="587"
|
||||
MAIL_ENCRYPTION="tls"
|
||||
MAIL_FROM_ADDRESS="no-reply@koval.net"
|
||||
MAIL_FROM_NAME="solidtime"
|
||||
MAIL_USERNAME="no-reply@koval.net"
|
||||
MAIL_PASSWORD="SMTP_PASSWORD_VALUE"
|
||||
|
||||
# Queue
|
||||
QUEUE_CONNECTION="database"
|
||||
|
||||
# File storage
|
||||
FILESYSTEM_DISK="local"
|
||||
PUBLIC_FILESYSTEM_DISK="public"
|
||||
|
||||
# Services
|
||||
GOTENBERG_URL="http://gotenberg:3000"
|
Reference in New Issue
Block a user