Українська
Почати
← Усі шаблони

Ghost на Pethost в один клік

Видавнича платформа для блогів і розсилок

Що відбудеться

  1. Ви входите в Pethost або створюєте акаунт — з ключем доступу, через GitHub або Google.
  2. Машини ще немає? Ви обираєте тариф, і ми готуємо машину для вас. Посилання чекає у вашому браузері, доки машина не буде готова.
  3. Вікно «Новий проєкт» відкривається на цьому застосунку, і ви натискаєте «Створити проєкт».
  4. За хвилину-дві застосунок працює за власною адресою з HTTPS. Його секрети створюються випадково, а дані потрапляють у щонічний бекап.
  5. Це проєкт як будь-який інший: його compose.yaml, .env, логи й термінал — у панелі, а ваш агент може його змінити, відкотити або відновити.

Перші кроки

Створіть акаунт власника за адресою /ghost; перший запуск триває близько хвилини. Зробіть це одразу: доти сторінка відкрита кожному, хто знає адресу. Пошта запрацює, коли ви додасте змінні mail__ застосунку Ghost у файл .env проєкту й задеплоїте ще раз.

Що запускається

Шаблон — це цей 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: