Commit Graph

13 Commits

Author SHA1 Message Date
pkirillw
066f873368 fix(dockerfile): COPY fixtures into image
All checks were successful
Deploy Max Bot Test / deploy (push) Successful in 11s
Commands /upload_* fell back to 'file not found' because the fixtures directory was never copied into the runtime image.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 01:10:17 +03:00
pkirillw
8e250382d1 feat(fixtures): real test audio.mp3 + video.mp4 + larger photo/doc
All checks were successful
Deploy Max Bot Test / deploy (push) Successful in 12s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 01:08:43 +03:00
pkirillw
c431988e81 feat(fixtures): committed test photo.png + doc.pdf, helper prefers storage/uploads override
All checks were successful
Deploy Max Bot Test / deploy (push) Successful in 12s
Commands /upload_photo_file, /upload_file now resolve from fixtures/ by default. Drop your own files in storage/uploads/ to override without touching git. audio.mp3 and video.mp4 still need to be added manually (no ffmpeg locally to generate).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 01:05:31 +03:00
pkirillw
2f56578d7a fix(docker): entrypoint chowns storage at container start
All checks were successful
Deploy Max Bot Test / deploy (push) Successful in 16s
Stale app.log owned by UID 82 (from previous image) blocked the UID-1000 php-fpm workers from writing. Entrypoint fixes ownership on every start, surviving migrations.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 00:47:55 +03:00
pkirillw
bd5304ec5e feat(subscribe): --prune flag removes all stale webhooks first
All checks were successful
Deploy Max Bot Test / deploy (push) Successful in 12s
Pipeline uses --prune so old tuna/test subscriptions don't linger after deploy.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 00:44:40 +03:00
pkirillw
98144779ef ci(deploy): subscribe MAX webhook after build
All checks were successful
Deploy Max Bot Test / deploy (push) Successful in 12s
webhook:subscribe is idempotent — MAX refreshes the endpoint on repeat calls. Skipped automatically when WEBHOOK_URL is empty or still default.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 00:42:51 +03:00
pkirillw
e4dcf0da5b fix(docker): align www-data UID/GID with host (1000:1000)
All checks were successful
Deploy Max Bot Test / deploy (push) Successful in 38s
php-fpm runs workers as www-data, so master stays root and drops to a UID matching host files. storage bind-mount is writable without runtime chmod hacks.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 00:41:51 +03:00
pkirillw
6a9f2633da ci(deploy): chmod -R 777 storage after pull
All checks were successful
Deploy Max Bot Test / deploy (push) Successful in 11s
Fixes Monolog 'Failed to open stream: Permission denied' on storage/logs when host files are owned by pkirillw but php-fpm runs as www-data.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 00:39:55 +03:00
pkirillw
496ee540b8 chore(compose): bind nginx on 0.0.0.0:8098 so NPM can reach via LAN
All checks were successful
Deploy Max Bot Test / deploy (push) Successful in 11s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 00:38:09 +03:00
pkirillw
a103074a71 ci(deploy): use vars.SSH_PRIVATE_KEY — same pattern as ghost-blog-bot
All checks were successful
Deploy Max Bot Test / deploy (push) Successful in 11s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 00:29:08 +03:00
pkirillw
71554483ef ci(deploy): base64-encoded SSH key fallback + ssh-keygen sanity check
Some checks failed
Deploy Max Bot Test / deploy (push) Failing after 2s
Fixes 'error in libcrypto' when SSH_PRIVATE_KEY secret mangles newlines.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 00:21:09 +03:00
pkirillw
a323550fdb chore(compose): publish nginx on 127.0.0.1:8098 for NPM forward
Some checks failed
Deploy Max Bot Test / deploy (push) Failing after 3s
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 00:11:24 +03:00
pkirillw
9385fbdd6e feat: max-bot-test initial — full surface coverage
Some checks failed
Deploy Max Bot Test / deploy (push) Failing after 3s
- Slim 4 PSR-15 webhook, PHP-DI 7, Symfony Console 8
- 13 update handlers, 30+ command scenarios, all 7 button types
- Composer pulls pkirillw/max-bot-api-php from GitHub vcs
- Multi-stage Dockerfile (php-fpm 8.4-alpine) + nginx
- docker-compose.yml targets server (npm_default external)
- docker-compose.override.yml for local dev (gitignored)
- .gitea/workflows/deploy.yml mirrors ghost-blog-bot pattern

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-18 00:01:06 +03:00