Ghost на Pethost в один клик
Платформа для блогов и рассылок
Что произойдет
- Вы входите в Pethost или создаете аккаунт — с passkey, через GitHub или Google.
- Машины еще нет? Вы выбираете тариф, и мы готовим машину для вас. Ссылка ждет в вашем браузере, пока машина не будет готова.
- Окно «Новый проект» открывается на этом приложении, и вы нажимаете «Создать проект».
- Через минуту-две приложение работает по своему адресу с HTTPS. Его секреты создаются случайно, а данные попадают в ночной бэкап.
- Это проект как любой другой: его compose.yaml, .env, логи и терминал — в панели, а ваш агент может его изменить, откатить или восстановить.
Первые шаги
Создайте аккаунт владельца по адресу /ghost; первый запуск занимает около минуты. Сделайте это сразу: до тех пор страница открыта любому, кто знает адрес. Почта заработает, когда вы добавите в .env проекта переменные Ghost с префиксом mail__ и задеплоите проект заново.
Что запускается
Шаблон — это этот compose.yaml и переменные, которые он пишет в .env проекта. Pethost запускает файл так, как он написан.
services:
ghost:
image: ghost:6-alpine
restart: unless-stopped
depends_on:
db:
condition: service_healthy
# Mail settings (mail__transport, mail__options__host, ...) go into .env.
env_file: .env
environment:
url: ${URL}
server__host: 0.0.0.0
database__client: mysql
database__connection__host: db
database__connection__user: ghost
database__connection__password: ${DB_PASSWORD}
database__connection__database: ghost
# Ghost emails a code to every new device that signs in. Without mail
# that locks the owner out, so it is off. Remove this line once mail works.
security__staffDeviceVerification: "false"
volumes:
- content:/var/lib/ghost/content
db:
image: mysql:8.4
restart: unless-stopped
environment:
MYSQL_DATABASE: ghost
MYSQL_USER: ghost
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
volumes:
- db:/var/lib/mysql
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -p$$MYSQL_ROOT_PASSWORD --silent"]
interval: 5s
timeout: 5s
retries: 12
start_period: 60s
volumes:
content:
db: