Files
Virtnet.bond/docker-compose.yml
Joseph.Rawlings 3246a86f91 refactor(proxmox): streamline statistics component and improve routing
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.
2026-03-28 15:59:45 -04:00

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: