compose.yaml
Rama main · réplica de lectura del repositorio original.
# The image comes from GHCR (built by .github/workflows/docker.yml on every
# release tag). `build:` stays as the fallback: `docker compose up -d --build`
# makes the same image from this checkout when the registry is out of reach.
services:
app:
image: ghcr.io/solutionmax/pharos:${PHAROS_VERSION:-latest}
build:
context: .
args:
VERSION: ${PHAROS_VERSION:-0.5.6}
ports:
- "${PHAROS_PORT:-8080}:80"
environment:
APP_ENV: production
APP_DEBUG: "false"
APP_URL: ${APP_URL:-http://localhost:8080}
TRUSTED_PROXIES: ${TRUSTED_PROXIES:-}
APP_KEY: ${APP_KEY:?run `php artisan key:generate --show` and put it in .env}
DB_CONNECTION: sqlite
DB_DATABASE: /var/www/html/database/database.sqlite
PHAROS_LICENSE_PUBLIC_KEY: ${PHAROS_LICENSE_PUBLIC_KEY:-}
volumes:
- pharos-db:/var/www/html/database
- pharos-storage:/var/www/html/storage
restart: unless-stopped
# Checks need a heartbeat of their own. On shared hosting this is one cron line;
# here it is a second container sharing the same database volume.
scheduler:
image: ghcr.io/solutionmax/pharos:${PHAROS_VERSION:-latest}
build:
context: .
args:
VERSION: ${PHAROS_VERSION:-0.5.6}
command: php artisan schedule:work
environment:
APP_ENV: production
APP_KEY: ${APP_KEY:?}
DB_CONNECTION: sqlite
DB_DATABASE: /var/www/html/database/database.sqlite
volumes:
- pharos-db:/var/www/html/database
- pharos-storage:/var/www/html/storage
depends_on:
app:
condition: service_healthy
restart: unless-stopped
volumes:
pharos-db:
pharos-storage: