No description
  • HTML 72%
  • CSS 9.2%
  • SCSS 7.3%
  • JavaScript 6.5%
  • PHP 2.5%
  • Other 2.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-02-20 09:42:29 +01:00
.idea Dev (#44) 2025-11-23 18:56:39 +01:00
assets Remove 5-minute time constraint 2026-02-20 09:42:29 +01:00
bin Initial Symfony & Docker configuration files 2024-11-07 17:25:36 +01:00
config HTTP fetch for schedule delivery (MQTT buffer workaround) 2026-02-20 09:42:29 +01:00
frankenphp Fix/easyadmin dockerfiles (#50) 2026-01-05 14:08:42 +01:00
migrations review ux ui (#9) 2024-12-16 17:30:18 +01:00
public Review postprod 2025-01-23 14:29:35 +01:00
src rename MQTT topic to ScheduleFetch, fix duplicate side-effects on messenger retry 2026-02-20 09:42:29 +01:00
templates Fix/easyadmin dockerfiles (#50) 2026-01-05 14:08:42 +01:00
translations Dev (#44) 2025-11-23 18:56:39 +01:00
.dockerignore Initial Symfony & Docker configuration files 2024-11-07 17:25:36 +01:00
.editorconfig Initial Symfony & Docker configuration files 2024-11-07 17:25:36 +01:00
.gitattributes Initial Symfony & Docker configuration files 2024-11-07 17:25:36 +01:00
.gitignore Dev (#48) 2025-12-30 16:30:56 +01:00
compose.override.yaml Fix/easyadmin dockerfiles (#50) 2026-01-05 14:08:42 +01:00
compose.prod.yaml Fix/easyadmin dockerfiles (#50) 2026-01-05 14:08:42 +01:00
compose.yaml Fix/easyadmin dockerfiles (#50) 2026-01-05 14:08:42 +01:00
composer.json Dev (#41) 2025-08-12 18:20:43 +02:00
composer.lock Dev (#41) 2025-08-12 18:20:43 +02:00
Dockerfile Compile assets and warm cache during Docker build 2026-02-20 09:42:29 +01:00
importmap.php Dev (#41) 2025-08-12 18:20:43 +02:00
LICENSE Initial Symfony & Docker configuration files 2024-11-07 17:25:36 +01:00
README.md Fix/easyadmin dockerfiles (#50) 2026-01-05 14:08:42 +01:00
symfony.lock Dev (#41) 2025-08-12 18:20:43 +02:00
UML.png UML Diagram 2024-11-07 20:42:43 +01:00

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