A (mostly) headless blogging platform built atop Nuxt & Gist.
Contents
Overview
Gustavo is an opinionated, (mostly) headless blogging platform built to use:
- Github Gist
- Nuxt (Vue 2.0)
- Docker
By simply naming your files in a uniform matter, Gustavo can create a whole blog for you in seconds. Don't believe me? Check out the gist that is my blog.
Creating content
You can create content for your blog by simply creating files in a gist that follow this schema:
Type | Naming | Example |
---|---|---|
post | {name}.post.md |
link |
page | {name}.page.md |
link |
navigation | links.txt |
link |
image | clone gist and upload | link |
draft | {name}.post.draft.md |
Here is the gist that powers this blog.
Getting started
Step 1, create your gist and add some content.
Step 2, create gustavo.config.js
with the following:
module.exports = {
title: 'My gustavo blog',
githubToken: '<< token >>',
gistId: '<< gist id >>'
}
Note: you'll want to create a personal access token on Github because Gustavo uses the Gist API, and without the token, your blog will be rate limited.
Step 3, create a Dockerfile
with the following:
FROM eggplanet/gustavo:latest
Step 4, let's start it up.
docker build -t my-gustavo-blog .
docker run -p 3000:3000 my-gustavo-blog
Your blog will be running at http://localhost:3000
Deployment
Deploying gustavo is simple. Our reccomended method is Now by Zeit.
now secrets add gustavo-github-token=<TOKEN>
now secrets add gustavo-gist-id=<ID>
now -e GITHUB_TOKEN=@gustavo-github-token -e GIST_ID=@gustavo-gist-id --docker
now alias my-gustavo-blog-wjdihnxorf.now.sh my-gustavo.blog
License
- MIT
Credits
Releasing a new image
docker build -t eggplanet/gustavo .
docker push eggplanet/gustavo