Статические сайты
pages раздаёт папки со статическими файлами. Деплой — одна загрузка, неизменяемая, по адресу
https://<id>.pages.xvii.network. Алиас — постоянное имя, https://<name>.pages.xvii.network, которое
указывает на один деплой. См. также сервис pages.
Деплой
xvii pages deploy # dist, build, out или public
xvii pages deploy site --name my-site # и направить на него алиас my-site
xvii pages deploy --watch --name wip # деплоить заново при каждом сохранении
Если папка лежит в репозитории, записываются данные git (проект, ветка, коммит и его сообщение) — они видны
в панели. Можно и загрузить архив (.zip, .tar.gz) в панели.
Сроки жизни и очистка
У каждого деплоя есть срок жизни, по умолчанию две недели (инстанс может это поменять). Истёкшие деплои
удаляются вместе с файлами, кроме:
- деплоев, на которые указывает алиас или которые есть в его истории;
- деплоев, отмеченных для хранения:
xvii pages keep 3f9a2b1c (или --keep при деплое).
xvii pages ttl 3f9a2b1c 7d # новый срок, считая от сейчас
xvii pages ttl 3f9a2b1c never
Алиасы и откаты
xvii pages alias my-site 3f9a2b1c # направить на деплой
xvii pages rollback my-site # вернуть к предыдущему
xvii pages aliases # куда указывает каждый алиас
xvii pages unalias my-site # удалить алиас (деплои остаются)
Удаление деплоя переставляет его алиасы на их предыдущий деплой. Чтобы посмотреть, что изменил деплой:
xvii pages diff my-site # алиас против состояния до последнего деплоя
xvii pages files 3f9a2b1c --filter .js
Доступ
xvii pages password my-site s3cret # basic auth, любое имя пользователя
xvii pages password my-site --off # вернуть по умолчанию
xvii pages password 3f9a2b1c --public # открыть, даже если у сервера есть пароль по умолчанию
Пароль можно поставить на деплой, на алиас или на весь сервер (настройка инстанса); действует самый
конкретный.
SPA, редиректы и заголовки
--spa отдаёт index.html на пути, которые не являются файлами.
_redirects и _headers в корне папки — в синтаксисе Netlify / Cloudflare Pages: *, плейсхолдеры,
коды 200 (rewrite), 301, 302, 404.
404.html отдаётся для отсутствующих путей.
/docs /docs/getting-started 302
/old/* /new/:splat 301
/app/* /app/index.html 200
Свои домены
xvii pages domains my-site add www.example.com # печатает записи, которые нужно создать
xvii pages domains my-site check www.example.com
xvii pages domains my-site records www.example.com --zone > zone.txt
TXT-запись подтверждает владение; CNAME (или A-записи для голого домена) направляет имя на pages.
Ожидающие домены проверяются каждые десять минут в течение суток; сертификат выпускается при первом
заходе. Если зона есть в domains, подключите имя там: записи создадутся сами.
Превью в CI
pages раздаёт шаблон для GitLab CI:
include:
- remote: https://pages.xvii.network/ci/preview.yml
variables:
PAGES_DIR: dist # собранный сайт, артефакт предыдущей задачи
PAGES_NAME: my-site # необязательно, по умолчанию имя проекта
Ветка по умолчанию попадает на my-site.pages.xvii.network, остальные ветки — на
my-site-<ветка>.pages.xvii.network, со ссылкой из merge request как окружение. Слияние или удаление ветки
убирает её превью. Для входа добавьте правило доверия для репозитория в id (вкладка CI проекта) — тогда
никакой токен не хранится. GitHub Actions: https://pages.xvii.network/ci/github.yml. См.
Деплой из CI.
Аналитика и ошибки на сайте
Свяжите алиас с сайтом в analytics или проектом в errors (из их панелей или в карточке алиаса в pages):
pages вставит их скрипты во все HTML-страницы этого алиаса. Менять сборку не нужно.
Команды и лимиты
Деплои и алиасы принадлежат команде, по желанию проекту и окружению. Участники их видят, developer и выше —
меняют. Лимиты: pages.deploys, pages.storage, pages.deploy_size (Лимиты).