Español
Empezar
← Todas las plantillas

Despliega Grav en Pethost con un clic

Un CMS de archivos planos: una web o un blog rápidos con panel de administración y sin base de datos

Qué pasa

  1. Inicias sesión en Pethost o creas una cuenta, con una passkey, GitHub o Google.
  2. ¿Aún no tienes máquina? Eliges un plan y te preparamos una. El enlace espera en tu navegador hasta que esté lista.
  3. Nuevo proyecto se abre en la app. Rellenas lo que pide y haces clic en Crear proyecto: Correo electrónico, Contraseña de administrador.
  4. En un par de minutos la app está en marcha en su propia dirección con HTTPS. Sus secretos se generan al azar para ella, y sus datos entran en el backup de cada noche.
  5. Es un proyecto como cualquier otro: su compose.yaml, su .env, sus logs y un terminal están en el panel, y tu agente puede cambiarlo, volver a una versión anterior o restaurarlo.

Primeros pasos

Abre https://grav.sam.pethost.app/admin y entra como admin con la contraseña de administrador que indicaste: al menos 8 caracteres, con una mayúscula, una minúscula y un dígito. Ahí se gestionan las páginas, los temas y los plugins.

Qué ejecuta

La plantilla es este compose.yaml y las variables que escribe en el .env del proyecto. Pethost ejecuta el archivo tal 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: