feat: solidtime VM
Some checks failed
Infrastructure / Check and run Ansbile playbooks (push) Failing after 5m34s

This commit is contained in:
2025-02-16 00:25:51 +00:00
parent 784a10b1b5
commit e96d712e1d
9 changed files with 422 additions and 0 deletions

View 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
View File

@@ -0,0 +1 @@
!*.env

View 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:

View 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"