---
title: "Faça o deploy de Grav no Pethost com um clique"
description: "Um CMS de arquivos: um site ou blog rápido, com painel de administração e sem banco de dados. Um template para o Pethost: em um ou dois minutos o app está no ar na sua máquina, com HTTPS no próprio endereço e backups noturnos."
---

[← Todos os templates](https://pethost.dev/pt/templates/)

# Faça o deploy de Grav no Pethost com um clique

Um CMS de arquivos: um site ou blog rápido, com painel de administração e sem banco de dados

[Fazer deploy no Pethost](https://console.pethost.dev/?template=grav)

## 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

Abra https://grav.sam.pethost.app/admin e entre como admin com a senha de administrador que você informou: pelo menos 8 caracteres, com uma letra maiúscula, uma minúscula e um dígito. As páginas, os temas e os plugins são geridos lá.

## 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:
  grav:
    image: getgrav/grav:php8.4
    restart: unless-stopped
    # The image downloads Grav with its admin into the volume on the first start. The admin
    # account is made from the fields before Apache starts, so the admin's "create the first
    # account" page is never open to a visitor; Grav refuses a password without an upper-case
    # letter, a lower-case letter and a digit, at least 8 characters, and the start stops then.
    entrypoint:
      - bash
      - -c
      - |
        cat > /docker-entrypoint.d/admin.sh <<'SCRIPT'
        #!/bin/bash
        set -e
        cd /var/www/html
        if ! ls user/accounts/*.yaml >/dev/null 2>&1; then
          runuser -u www-data -- bin/plugin login new-user --user=admin --password="$$ADMIN_PASSWORD" \
            --email="$$ADMIN_EMAIL" --permissions=b --fullname=Admin --title=Administrator --language=en
        fi
        SCRIPT
        chmod +x /docker-entrypoint.d/admin.sh
        exec docker-entrypoint.sh apache2-foreground
    environment:
      GRAV_VERSION: 2.2.9
      ADMIN_EMAIL: ${ADMIN_EMAIL}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
    volumes:
      - site:/var/www/html

volumes:
  site:
```

[compose.yaml](https://pethost.dev/templates/grav/compose.yaml)[Ver no GitHub](https://github.com/pethost-dev/templates/tree/main/grav)

Pethost · Stephan Gomer · NIP 1133096755

[Templates](https://pethost.dev/pt/templates/) [Sobre nós](https://pethost.dev/about/) [Blog](https://pethost.dev/blog/) [Termos](https://pethost.dev/terms/) [Privacidade](https://pethost.dev/privacy/) [Reembolsos](https://pethost.dev/refunds/) [API](https://pethost.dev/docs/api/) [CLI](https://pethost.dev/docs/cli/) [Plugin](https://github.com/pethost-dev/plugin) [support@pethost.dev](mailto:support@pethost.dev)
