No description
- HTML 72%
- CSS 9.2%
- SCSS 7.3%
- JavaScript 6.5%
- PHP 2.5%
- Other 2.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .idea | ||
| assets | ||
| bin | ||
| config | ||
| frankenphp | ||
| migrations | ||
| public | ||
| src | ||
| templates | ||
| translations | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| compose.override.yaml | ||
| compose.prod.yaml | ||
| compose.yaml | ||
| composer.json | ||
| composer.lock | ||
| Dockerfile | ||
| importmap.php | ||
| LICENSE | ||
| README.md | ||
| symfony.lock | ||
| UML.png | ||
Lavostatus 1.0
Lavostatus is a Symfony 7.2 application for managing IoT laundry systems. It controls relay boards (Tasmota devices) via MQTT, enabling scheduling and remote control of laundry equipment. The application runs on FrankenPHP with Docker.
Docker
Ressource : https://github.com/dunglas/symfony-docker/tree/main
Build Fresh for dev env
docker compose build --no-cache
docker compose up -d
Clear Cache
docker exec -it lavostatus-php-1 php bin/console c:c
Database Commands
Update DB
docker exec -it lavostatus-php-1 php bin/console doctrine:migrations:migrate
or
docker exec -it lavostatus-php-1 php bin/console doctrine:schema:update --force
Backup the DB
docker exec lavostatus-database-1 pg_dump -U app -d lavostatus -Fp > prod-db-$(date +%Y%m%d-%H%M%S).sql
Restore the DB
docker exec -i lavostatus-database-1 psql -d lavostatus -U app < prod-db-XXXX-XX.sql
Workers managed by Supervisor in production
Message Consumer
docker exec -it lavostatus-php-1 php bin/console messenger:consume async -vv
MQTT Worker
docker exec -it lavostatus-php-1 php bin/console mqtt:worker
Scheduler Worker to run the cron tasks
docker exec lavostatus-php-1 php bin/console messenger:consume scheduler_default -vv
Production Deployment
docker compose -f compose.yaml -f compose.prod.yaml build --pull --no-cache
docker compose -f compose.yaml -f compose.prod.yaml up -d --wait
docker exec -it lavostatus-php-1 php bin/console asset-map:compile
docker exec -it lavostatus-php-1 php bin/console c:c
SUPERVISOR
http://51.222.111.78:9001/ TODO close this port and use the log files to check events
Git Workflow
- main - Production-ready code
- dev - Development integration branch
- Feature branches:
feature/name,fix/name,hotfix/name - Always use Pull Requests, never commit directly to main or dev
Troubleshooting
RabbitMQ
'Erlang closed' cd /var/lib/docker/volumes/lavostatus_rabbitmq_data/_data chmod 400 .erlang.cookie