Português
Começar
← Todos os templates

Faça o deploy de Apache Answer no Pethost com um clique

Perguntas e respostas para uma comunidade, uma central de ajuda ou uma equipe, o seu próprio Stack Overflow

O que acontece

  1. Você entra no Pethost ou cria uma conta, com uma passkey, GitHub ou Google.
  2. Ainda não tem máquina? Você escolhe um plano, e nós preparamos uma para você. O link espera no seu navegador até ela ficar pronta.
  3. Novo projeto abre no app. Você preenche o que ele pede e clica em Criar projeto: E-mail, Senha do administrador.
  4. Em um ou dois minutos o app está no ar no próprio endereço com HTTPS. Os segredos dele são gerados ao acaso, e os dados vão para o backup noturno.
  5. É um projeto como qualquer outro: o compose.yaml, o .env, os logs e um terminal ficam no painel, e seu agente pode alterá-lo, fazer rollback ou restaurá-lo.

Primeiros passos

Entre com o e-mail e a senha de administrador que você informou (de 8 a 32 caracteres); o usuário do administrador é admin. Os cadastros são confirmados por e-mail, então adicione um servidor SMTP em Admin → Settings → SMTP antes de convidar alguém.

O que roda

O template é este compose.yaml e as variáveis que ele grava no .env do projeto. O Pethost roda o arquivo exatamente como está escrito.

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: