Shift Planner WAHA

WAHA (WhatsApp HTTP API) service for Shift Planner reminders.

What runs here

  • docker image: devlikeapro/waha
  • local API endpoint: http://127.0.0.1:3010
  • session storage: ./sessions
  • media storage: ./media
  • log file (via mounted log dir): shift-planner-waha.log
  • log rotation: po 100 MB na shift-planner-waha.0001.log, shift-planner-waha.0002.log, ...

If you want to run WAHA only on mathbox.90.cz, use deploy script directly:

./scripts/deploy-shift-planner-waha.sh

Deploy script uploads local .env when present.
If .env contains placeholder values (CHANGE_ME...), deploy stops for safety. Deploy now requires explicit local .env file and always uploads it.

Local run (optional)

Start:

./scripts/start-shift-planner-waha.sh

Stop:

./scripts/stop-shift-planner-waha.sh

Before local start, create shift-planner-waha/.env explicitly (for example by copying .env.example) and set strong values:

  • WAHA_API_KEY
  • WAHA_DASHBOARD_PASSWORD
  • WHATSAPP_SWAGGER_PASSWORD

Note: WAHA may auto-generate a random dashboard password when weak credentials are used (for example admin/admin). Use a strong password and redeploy/restart.

Deployment (mathbox.90.cz)

Deploy:

./scripts/deploy-shift-planner-waha.sh

Defaults:

  • remote dir: /home/agent/docker_deployments/shift-planner-waha
  • domain (optional): waha.mathbox.90.cz
  • remote logs dir: /home/agent/shift-planner/logs

Deploy script always uploads local shift-planner-waha/.env to server. If the local .env is missing, deploy fails.

After deploy, logs are written to:

  • /home/agent/shift-planner/logs/shift-planner-waha.log

Basic WAHA flow

  1. Create session via API (POST /api/sessions).
  2. Open screenshot endpoint and scan QR (GET /api/screenshot).
  3. Send message (POST /api/sendText) to group chatId ending with @g.us.

Practical notes

  • V pouzite WAHA edici nelze vytvaret/spravovat API key v dashboardu (422).
  • Odesilajici jmeno zpravy je profilove jmeno WhatsApp uctu v dane session.
  • Z jednoho cisla nelze odesilat pod vice jmeny per zprava.
  • Pro dve identity pouzij dve WAHA sessions navazane na dve ruzna cisla.

Monitoring

  • kontejner bezi s restart: unless-stopped
  • standardizovany repo endpoint GET /healthz tu zatim neni vynucen, protoze jde o third-party image
  • pro monitoring tady preferuj vendor-specific endpoint az po overeni konkretni WAHA image a jejiho auth chovani