Domilix is split into two applications in the same repository:
domilix.com- frontend (React + Vite)api.domilix.com- backend (Laravel + JWT)
domilix.com/frontend appapi.domilix.com/backend API appdeploy/production compose files and deployment config.github/workflows/CI, Docker publish, and CD pipelines
From repository root:
docker compose up --buildLocal URLs:
- Frontend:
http://localhost:3000 - Backend API:
http://localhost:8000 - Swagger UI:
http://localhost:8000/api/documentation - Health check:
http://localhost:8000/api/health - MySQL:
localhost:3307
Stop services:
docker compose downFrontend:
cd domilix.com
npm ci
npm run devBackend:
cd api.domilix.com
composer install
cp .env.example .env
php artisan key:generate
php artisan jwt:secret
php artisan migrate --seed
php artisan serveProduction is split into 2 independent stacks:
deploy/docker-compose.domilix.com.ymlfor frontenddeploy/docker-compose.api.domilix.com.ymlfor backend + db
Create environment file once:
cp deploy/.env.production.example deploy/.env.productionMinimum required values in deploy/.env.production:
FRONTEND_IMAGEBACKEND_IMAGEFRONTEND_HOSTBACKEND_HOSTDB_ROOT_PASSWORDDB_DATABASEDB_USERNAMEDB_PASSWORDAPP_KEYJWT_SECRETAPP_URL=https://api.domilix.com
Deploy frontend:
docker compose --env-file deploy/.env.production -f deploy/docker-compose.domilix.com.yml up -dDeploy backend:
docker compose --env-file deploy/.env.production -f deploy/docker-compose.api.domilix.com.yml up -dCI: frontend lint/build + backend tests + swagger generationDocker Publish: builds and pushes frontend/backend images to GHCRCD: deploys frontend and backend independently on VPS (/opt/domilix)
Backend stack status:
cd /opt/domilix
docker compose -p domilix_backend --env-file deploy/.env.production -f deploy/docker-compose.api.domilix.com.yml psBackend logs:
docker compose -p domilix_backend --env-file deploy/.env.production -f deploy/docker-compose.api.domilix.com.yml logs -f backend backend-nginx dbLaravel application logs:
docker compose -p domilix_backend --env-file deploy/.env.production -f deploy/docker-compose.api.domilix.com.yml exec backend sh -lc 'tail -n 200 storage/logs/laravel.log'manifest unknownduring deploy:- run
Docker Publishfirst, then CD - ensure image tag in deploy matches published tag
- run
- Swagger page mixed-content (
httpassets onhttps):- verify
APP_URL=https://api.domilix.com - set
L5_SWAGGER_USE_ABSOLUTE_PATH=false - clear config cache and restart backend
- verify
Please provide a valid cache path:- ensure storage/cache directories exist and are writable
- redeploy latest backend image (entrypoint handles this)
CI_CD.mdDOCKER.mddomilix.com/README.mdapi.domilix.com/README.md