Refactored the statistics redirect component for better performance and clarity. Updated routing to enhance user navigation within the Proxmox extension, setting the stage for future enhancements.
110 lines
2.8 KiB
YAML
110 lines
2.8 KiB
YAML
# Production-style stack: build the app image from ./Dockerfile, MariaDB, Redis.
|
|
# Copy .env.example to .env (or set env_file) and run: docker compose up -d
|
|
# First boot: docker compose exec app php artisan key:generate --force
|
|
# docker compose exec app php artisan migrate --force
|
|
|
|
services:
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
image: paymenter:local
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${APP_PORT:-8080}:80"
|
|
env_file:
|
|
- path: .env
|
|
required: false
|
|
environment:
|
|
APP_ENV: production
|
|
APP_DEBUG: "false"
|
|
APP_URL: ${APP_URL:-http://localhost:8080}
|
|
DB_CONNECTION: mariadb
|
|
DB_HOST: db
|
|
DB_PORT: 3306
|
|
DB_DATABASE: ${DB_DATABASE:-paymenter}
|
|
DB_USERNAME: ${DB_USERNAME:-paymenter}
|
|
DB_PASSWORD: ${DB_PASSWORD:-changeme}
|
|
CACHE_STORE: redis
|
|
SESSION_DRIVER: redis
|
|
QUEUE_CONNECTION: redis
|
|
REDIS_HOST: redis
|
|
REDIS_PORT: 6379
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_started
|
|
volumes:
|
|
- paymenter_storage:/app/storage/app
|
|
- paymenter_logs:/app/storage/logs
|
|
networks:
|
|
- paymenter
|
|
|
|
queue:
|
|
image: paymenter:local
|
|
restart: unless-stopped
|
|
command: ["php", "/app/artisan", "queue:work", "--sleep=3", "--tries=3"]
|
|
env_file:
|
|
- path: .env
|
|
required: false
|
|
environment:
|
|
APP_ENV: production
|
|
DB_CONNECTION: mariadb
|
|
DB_HOST: db
|
|
DB_PORT: 3306
|
|
DB_DATABASE: ${DB_DATABASE:-paymenter}
|
|
DB_USERNAME: ${DB_USERNAME:-paymenter}
|
|
DB_PASSWORD: ${DB_PASSWORD:-changeme}
|
|
CACHE_STORE: redis
|
|
QUEUE_CONNECTION: redis
|
|
REDIS_HOST: redis
|
|
REDIS_PORT: 6379
|
|
depends_on:
|
|
- app
|
|
- db
|
|
- redis
|
|
volumes:
|
|
- paymenter_storage:/app/storage/app
|
|
- paymenter_logs:/app/storage/logs
|
|
networks:
|
|
- paymenter
|
|
|
|
db:
|
|
image: mariadb:11
|
|
restart: unless-stopped
|
|
environment:
|
|
MYSQL_DATABASE: ${DB_DATABASE:-paymenter}
|
|
MYSQL_USER: ${DB_USERNAME:-paymenter}
|
|
MYSQL_PASSWORD: ${DB_PASSWORD:-changeme}
|
|
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-rootchangeme}
|
|
volumes:
|
|
- paymenter_db_data:/var/lib/mysql
|
|
command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"]
|
|
healthcheck:
|
|
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost", "--silent"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 30
|
|
start_period: 20s
|
|
networks:
|
|
- paymenter
|
|
|
|
redis:
|
|
image: redis:alpine
|
|
restart: unless-stopped
|
|
volumes:
|
|
- paymenter_redis_data:/data
|
|
networks:
|
|
- paymenter
|
|
|
|
networks:
|
|
paymenter:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
paymenter_db_data:
|
|
paymenter_redis_data:
|
|
paymenter_storage:
|
|
paymenter_logs:
|