Sooo... I've decided that after owning openbloc.fr for some years it was time to start sharing some of my whereabouts.
When I started openbloc as my personal website, though I experimented with Flask and Angular, it was mostly a static website crafted by hand.
I've spent some time investigating static website generators, hosting on S3 or on Github Pages
In the end it's still a lot of work to setup and understand those frameworks.
And then I remembered the ghost platform, which is a little bit more with "batteries included". It seems to have come a long way since 2013 with a 1.0.0 release almost ready.
I used ghost-on-heroku to deploy it.
- Create a new S3 bucket
- Create a new IAM role with S3 permissions
- Use the provided ID and Key to fill the heroku form
- Deploy !
For some reason the deploy from github did not copy the source code in the heroku container so I had to fork and clone it for this as I wanted to update the dependencies.
Adding the custom blog.openbloc.com domain
At this point ghost was only running at
openbloc-blog.herokuapp.com to add a custom domain several steps are required:
- Add a domain on the heroku interface
- Add a
CNAMErecord at your DNS provider using the heroku-provided DNS target.
- Adding a Let's Encrypt certificate for a secure https connection: probably later as I would have to upgrade to a paid dyno for now.
Customizing the default theme: Casper
I've just added prism.js to do code highlighting. Also a
Makefile to generate the theme zip file:
zip: zip -r openbloc.zip . -x .git\*
It should work with a lot of languages out of the box, here's some test with a Django model:
class BaseModel(models.Model): """ BaseModel An abstract base class with timestamps. Stores data with postgresql JSON field. """ date_created = models.fields.DateTimeField( verbose_name=_("creation date"), auto_now_add=True, ) date_modified = models.fields.DateTimeField( verbose_name=_("modification date"), auto_now=True, ) data = JSONField(null=True, blank=True) class Meta: abstract = True
That's all !