Как се качва демо
Статично демо (папка с index.html: прототип, галерия, страница с видеа) получава линк
https://<slug>-demo.mentorano.com/. Тази страница е самото тестово демо, качено точно по тези стъпки.
🔴 Демата са публични. Който има линка, вижда всичко в качената папка. Не качвайте лични данни, пароли, ключове или чужди материали. Token-и и пароли не се поставят в чат, issue или лог.
Трите стъпки за 11 секунди. Видеото не е в Pages, а в R2 зад demo-media.mentorano.com.
Затова се превърта, и на iPhone.
💡 Ползвате ли Claude Code, отворете го в repo-то devops-prototypes и напишете „как да качя демо“. Той ще ви води по същите стъпки.
1. Еднократна настройка
1.1 Достъп до Cloudflare
Пишете на Ivan. Той ви кани в Cloudflare account „Mentorano“ с вашия @mentorano.com адрес,
с права за Pages и R2. Приемете поканата от мейла.
1.2 Инструменти (macOS)
brew install cloudflare-wrangler
python3 --version # трябва 3.9+; иначе: brew install python
wrangler --version1.3 Login в wrangler
Отваря браузър. Влезте със своя @mentorano.com user.
env -u CLOUDFLARE_API_TOKEN -u CLOUDFLARE_API_KEY -u CLOUDFLARE_EMAIL wrangler login
env -u CLOUDFLARE_API_TOKEN -u CLOUDFLARE_API_KEY -u CLOUDFLARE_EMAIL wrangler whoamiВ изхода на whoami трябва да са вашият email и account 248536c42d814ba4e844f8f0c7480447.
Частта env -u … маха стар API token от shell-а. Без нея wrangler може да ползва него вместо вашия login.
1.4 Repo-то
git clone git@github.com:mentorano/devops-prototypes.git
cd devops-prototypes2. Всяко ново демо
2.1 Slug
Slug е името на демото в адреса: малки латински букви, цифри и тире, до 58 знака (например moe-demo-1).
Не се сменя после. Пратете на Ivan slug-а и едно изречение какво е демото.
Той създава адреса. След това демото ще е на https://<slug>-demo.mentorano.com/.
2.2 Подготовка на папката
Script-ът stage-demo.py копира цялата папка в нова staging папка и я проверява.
Дайте му чиста папка с index.html. Работните файлове махнете с --exclude.
Видео и аудио пратете в R2 с --media-to-r2. Командата е от корена на repo-то:
mkdir -p tmp/claude-logs
L=tmp/claude-logs/stage-demo-<slug>-$(date +%Y%m%d-%H%M%S).log
python3 infra/gcp/cloudflare-demos/scripts/stage-demo.py \
--media-to-r2 mp4 --media-base https://demo-media.mentorano.com --slug <slug> \
--exclude '*.wav' --exclude 'drafts/' \
<папка-с-index.html> tmp/demos/<slug>-$(date +%Y%m%d-%H%M%S) > "$L" 2>&1
cat "$L"- Без видео махнете реда с
--media-to-r2. --exclude '*.wav'маха по име на всяка дълбочина.--exclude 'drafts/'маха папка.- Скритите файлове (
.git/,.env*,.DS_Store) не влизат никога. - Файл, който прилича на ключ (
*.pem,*.key,id_rsa*,credentials*.json), спира всичко. - Прегледайте
files:,by type:иexcluded:в лога. Всичко подstaging:ще е публично. FAILзначи, че папката трябва да се поправи. Не заобикаляйте проверката.
2.3 Видеото в R2 (само с --media-to-r2, преди deploy-а)
За всеки ред manifest: от лога пуснете по една команда. <staging> е пътят от реда staging:.
env -u CLOUDFLARE_API_TOKEN -u CLOUDFLARE_API_KEY -u CLOUDFLARE_EMAIL CI=1 \
CLOUDFLARE_ACCOUNT_ID=248536c42d814ba4e844f8f0c7480447 \
wrangler r2 bulk put mentorano-demo-media --filename <staging>-media-mp4.json --content-type video/mp4 --remote2.4 Deploy
env -u CLOUDFLARE_API_TOKEN -u CLOUDFLARE_API_KEY -u CLOUDFLARE_EMAIL \
CLOUDFLARE_ACCOUNT_ID=248536c42d814ba4e844f8f0c7480447 \
wrangler pages deploy <staging> --project-name <slug> --branch main --commit-dirty=true2.5 Проверка
curl -s -o /dev/null -w '%{http_code} %{content_type}\n' https://<slug>-demo.mentorano.com/
# очаквано: 200 text/htmlПосле отворете линка на телефон и пуснете едно видео.
2.6 Запишете го
Кажете на Ivan адреса и какво е демото, или добавете ред в таблицата „Демота“ в
infra/gcp/cloudflare-demos/README.md с pull request.
3. Обновяване на демо
Повторете само стъпки 2.2–2.5. Staging-ът винаги е в нова папка (script-ът отказва непразна).
Deploy-ът е със същия --project-name. Ivan не ви трябва.
4. Чести проблеми
| Симптом | Какво да направите |
|---|---|
Адресът с hash (https://<hash>.<slug>.pages.dev) дава TLS грешка | Нормално за нов project няколко минути. Проверявайте https://<slug>-demo.mentorano.com/. |
| Видеото не се превърта или не тръгва на iPhone | Видеото е в Pages, не в R2. Направете staging с --media-to-r2. Веднага след deploy изчакайте няколко минути. |
too big: … > 26214400 B | Pages приема файл до 25 MiB. Видео и аудио → --media-to-r2 (до 300 MiB). Друго — намалете или изключете. |
secret-looking file: | Махнете файла от папката. |
403 или Authentication error от wrangler | whoami показва друг account или нямате права. Пишете на Ivan. Не слагайте API token в shell-а. |
Email в страницата (и git@github.com:…) се вижда като [email protected] | Cloudflare подменя email адресите. Оградете текста с <!--email_off-->…<!--/email_off-->. |
| 404 веднага след deploy | Изчакайте минута. После проверете пътя: интервали и кирилица се URL-кодират. |
Никога
- Не commit-вайте и не поставяйте token,
.envили wrangler config. - Не пускайте
terraform apply. Това го прави Ivan.
Пълната версия: docs/demos.md в repo-то (нужен е достъп до организацията mentorano в GitHub).