Polski
Zacznij
← Wszystkie szablony

Wdróż aplikację Apache Answer na Pethost jednym kliknięciem

Pytania i odpowiedzi dla społeczności, centrum pomocy albo zespołu, własny Stack Overflow

Co się dzieje

  1. Logujesz się do Pethost albo zakładasz konto, kluczem dostępu, przez GitHub albo Google.
  2. Nie masz jeszcze maszyny? Wybierasz plan, a my ją dla ciebie przygotowujemy. Link czeka w twojej przeglądarce, aż będzie gotowa.
  3. Okno „Nowy projekt” otwiera się na tej aplikacji. Wypełniasz to, o co prosi, i klikasz „Utwórz projekt”: E-mail, Hasło administratora.
  4. Za minutę czy dwie aplikacja działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
  5. To projekt jak każdy inny: jego compose.yaml, .env, logi i terminal są w panelu, a twój agent może go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.

Pierwsze kroki

Zaloguj się adresem e-mail i hasłem administratora, które podano (od 8 do 32 znaków); nazwa użytkownika administratora to admin. Rejestracje są potwierdzane e-mailem, więc zanim zaprosisz ludzi, dodaj serwer SMTP w Admin → Settings → SMTP.

Co uruchamia

Szablon to ten compose.yaml i zmienne, które zapisuje do .env projektu. Pethost uruchamia plik dokładnie tak, jak jest napisany.

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: