Usually I use nginx for static files, ssl termination and as a reverse proxy before my application servers. The django cookiecutter template came with a new webserver named caddy. It's written in go and https per default. Usually you have to fiddle around with certificates and a more or less complicated nginx config, but with caddy it was surprisingly easy. The certificate came from letsencrypt and it got installed automatically. After that my site got an A on the ssllabs ssl test page without any further tweaking. Caddy might be a bit slower than nginx, but it's probably fast enough for most people and solves an annoying problem. This is really cool.
Images do work now \o/. But it wasn't that easy. For the project scaffolding I used cookiecutter-django which saved me a lot of work. And while the local media storage worked perfectly on the local docker deployment, it didn't on the production deployment. So I had to use s3, which also didn't work right away. The reason was that I used Frankfurt as my s3 region and now the image urls have to start with s3.eu-central-1.amazonaws instead of just s3.amazonaws. It was possible to fix this with just two additional settings, but to find them required some serious googling:
- AWS_S3_REGION_NAME = 'eu-central-1'
- AWS_S3_SIGNATURE_VERSION = 's3v4'
class BlogPostModelAdmin(admin.ModelAdmin): list_display = ('title', 'author', 'blog') class Media: js = ('js/ckeditor_fix.js',) admin.site.register(BlogPost, BlogPostModelAdmin)
Another obstacle was how to make the images behave responsive. For now I'm just using '
class="img-fluid"'in the img tag to tell bootstrap to apply some responsiveness magic. But that's merely a hack - what will happen if I want to switch to foundation as a frontend framework? Do I have to change the content of all articles? But I'm not a frontend guy and have no clue how to do this properly.
A few weeks ago, I lost my old homepage. The motherboard of the server broke and my provider said that it was so old that they couldn't find a replacement. They tried to put the hard drive into a newer server, but this also didn't work, because the vintage linux version I was using refused to boot on this newfangled contraption.
The last time I updated my machine might have been more then ten years ago. I have a backup, but getting my old stuff to run on a new system requires some work. And if I have to do some work anyway, why not spend it on something interesting and new instead of wasting it on outdated concepts?
So, here we are. I'm building a new homepage from the ground up, rationalizing my yakshaving and NIH syndrom using words like "interesting", "new" and - oh, almost forgot about this - "fun".
As of today, it's possible to post text articles. Even formatted ones. The next thing I'll try is to add images.