Skip to content

A simple CMS that can be deployed to a cloud provider with four commands.

License

Notifications You must be signed in to change notification settings

pbecotte/devblog

Repository files navigation

Developer Blog

This is my little personal project. I wanted a CMS project that I could mess with and deploy easily. Using docker-machine and docker-compose, this got to be pretty easy.

First, create a file blog/secrets.py with the following content...

SECRET_KEY = '<secrets!>'
S3_LOCATION = '<the s3 endpoint for your image hosting bucket'
S3_KEY = '<secret!>'
S3_SECRET = '<secret!>'
S3_UPLOAD_DIRECTORY = 'img'
S3_BUCKET = '<your bucket name>'

This lets you upload header images for blog posts and store them in an s3 bucket. If you don't want an s3 bucket, don't specify an image to upload ;) The user specified by the key must have write permissions on the bucket, and the bucket must be set up for static website hosting.

Create a machine remotely with docker installed with machine-

export DIGITAL_OCEAN_TOKEN=<a digital ocean token>

docker-machine create \
  --driver digitalocean \
  --digitalocean-access-token=$DIGITAL_OCEAN_TOKEN \
  digital-ocean

(if you want to use another hosting provider, feel free!) Update your makefile with your machine name

optional - use DigitalOcean volume plugin

setup volume plugin

make setup_volume DO_TOKEN=<a digital ocean token>
MACHINE=digitalocean

Launch your environment

make deploy
make migrate

Add a user to the db with (this sets your local docker to point to the remote machine. You CAN choose to just leave it pointed that way, just don't accidentily get confused between dev!

eval `docker-machine env $(MACHINE)`
docker-compose run --rm blog python blog/init.py myemail@example.com mypassword
eval `docker-machine env --unset`

After doing code changes, easy as

make deploy

You can run the blog on your local machine with

make dev
make migrate-dev
docker-compose run --rm blog python blog/init.py myemail@example.com mypassword

About

A simple CMS that can be deployed to a cloud provider with four commands.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published