This is my first blog post on the Grav CMS!

I can report that the setup process was super easy. I've got a nice docker stack that enables me to experiment with new web technologies very easily. Check out The Awesome Garage example docker stack at GitHub!

In short, I only needed to add the following entry my the docker-compose.yaml file:

      grav:
        container_name: grav
        build: ./grav/.
        restart: always
        expose:
          - "80"
        environment:
          - VIRTUAL_HOST=${GRAV_DOMAIN}
          - VIRTUAL_PORT=80
          - VIRTUAL_PROTO=http
          - LETSENCRYPT_HOST=${GRAV_DOMAIN}
          - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
        networks:
          - frontend
        volumes:
          - ${MY_DOCKER_DATA_DIR}/grav:/var/www/html:cached

Then I downloaded and placed a skeleton package in my hosts docker cata directory under grav and chown'ed the grav directory to www-data like this:

sudo chown www-data:$USER -R ${MY_DOCKER_DATA_DIR}/grav

Now I only had to let Docker to it's magic: build the image, create the vhost according to my needs and generating SSL-certifikate with Let's Encrypt:

cd ~/docker-setup
docker-compose up -d

After the setup was complete and the container up and running, I installed the admin theme this way:

   docker exec -it grav sh
   cd /var/www/html
   bin/gpm install admin

The next time I entered the site, I was prompted to create and admin account. Now, I write this blog post from the Admin GUI, instead of editing files on server. Simple so far, but I I've barely scratched the surface of Grav!

Next Post