Как се качва демо

Статично демо (папка с 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 --version

1.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-prototypes

2. Всяко ново демо

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"

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 --remote

2.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=true

2.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 BPages приема файл до 25 MiB. Видео и аудио → --media-to-r2 (до 300 MiB). Друго — намалете или изключете.
secret-looking file:Махнете файла от папката.
403 или Authentication error от wranglerwhoami показва друг account или нямате права. Пишете на Ivan. Не слагайте API token в shell-а.
Email в страницата (и git@github.com:…) се вижда като [email protected]Cloudflare подменя email адресите. Оградете текста с <!--email_off-->…<!--/email_off-->.
404 веднага след deployИзчакайте минута. После проверете пътя: интервали и кирилица се URL-кодират.

Никога

Пълната версия: docs/demos.md в repo-то (нужен е достъп до организацията mentorano в GitHub).