Grav на Pethost в один клик
CMS на файлах: быстрый сайт или блог с админкой и без базы данных
Что произойдет
- Вы входите в Pethost или создаете аккаунт — с passkey, через GitHub или Google.
- Машины еще нет? Вы выбираете тариф, и мы готовим машину для вас. Ссылка ждет в вашем браузере, пока машина не будет готова.
- Окно «Новый проект» открывается на этом приложении. Вы заполняете то, что оно просит, и нажимаете «Создать проект»: Электронная почта, Пароль администратора.
- Через минуту-две приложение работает по своему адресу с HTTPS. Его секреты создаются случайно, а данные попадают в ночной бэкап.
- Это проект как любой другой: его compose.yaml, .env, логи и терминал — в панели, а ваш агент может его изменить, откатить или восстановить.
Первые шаги
Откройте https://grav.sam.pethost.app/admin и войдите как admin с паролем администратора, который вы указали: не короче 8 символов, с заглавной буквой, строчной буквой и цифрой. Там управляются страницы, темы и плагины.
Что запускается
Шаблон — это этот compose.yaml и переменные, которые он пишет в .env проекта. Pethost запускает файл так, как он написан.
services:
grav:
image: getgrav/grav:php8.4
restart: unless-stopped
# The image downloads Grav with its admin into the volume on the first start. The admin
# account is made from the fields before Apache starts, so the admin's "create the first
# account" page is never open to a visitor; Grav refuses a password without an upper-case
# letter, a lower-case letter and a digit, at least 8 characters, and the start stops then.
entrypoint:
- bash
- -c
- |
cat > /docker-entrypoint.d/admin.sh <<'SCRIPT'
#!/bin/bash
set -e
cd /var/www/html
if ! ls user/accounts/*.yaml >/dev/null 2>&1; then
runuser -u www-data -- bin/plugin login new-user --user=admin --password="$$ADMIN_PASSWORD" \
--email="$$ADMIN_EMAIL" --permissions=b --fullname=Admin --title=Administrator --language=en
fi
SCRIPT
chmod +x /docker-entrypoint.d/admin.sh
exec docker-entrypoint.sh apache2-foreground
environment:
GRAV_VERSION: 2.2.9
ADMIN_EMAIL: ${ADMIN_EMAIL}
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
volumes:
- site:/var/www/html
volumes:
site: