Русский
Начать
← Все шаблоны

Apache Answer на Pethost в один клик

Вопросы и ответы для сообщества, справочного центра или команды, свой Stack Overflow

Что произойдет

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

Первые шаги

Войдите с почтой и паролем администратора, которые вы указали (от 8 до 32 символов); имя пользователя администратора — admin. Регистрации подтверждаются письмом, поэтому, прежде чем звать людей, добавьте SMTP-сервер в Admin → Settings → SMTP.

Что запускается

Шаблон — это этот compose.yaml и переменные, которые он пишет в .env проекта. Pethost запускает файл так, как он написан.

services:
  answer:
    image: apache/answer:2.0.3
    restart: unless-stopped
    # Installed from these on the first start, with SQLite in /data: the admin is made from the
    # fields, so the install page is never open to a visitor. A password Answer would refuse stops
    # the start instead, since a refused one leaves that page open.
    entrypoint:
      - bash
      - -c
      - |
        if [ $${#ADMIN_PASSWORD} -lt 8 ] || [ $${#ADMIN_PASSWORD} -gt 32 ]; then
          echo "The admin password must be 8 to 32 characters." >&2
          exit 1
        fi
        exec /entrypoint.sh
    environment:
      AUTO_INSTALL: "true"
      DB_TYPE: sqlite3
      DB_FILE: /data/answer.db
      LANGUAGE: en-US
      SITE_NAME: Apache Answer
      SITE_URL: ${URL}
      CONTACT_EMAIL: ${ADMIN_EMAIL}
      ADMIN_NAME: admin
      ADMIN_EMAIL: ${ADMIN_EMAIL}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
      EXTERNAL_CONTENT_DISPLAY: ask_before_display
    volumes:
      - data:/data

volumes:
  data: