In Part 1 of this post, I described the trials, tribulations and ultimate success of running Ansible to provision a cloud server, which we do often here at Imaginary Landscape. Part 2 concludes the post by describing the process for getting uWSGI working with NGINX and Django. When I first tested the...
Tag – Nginx
Guide to Ansible/NGINX/uWSGI/Django, Part 1: Running the Ansible Scripts
Here at Imaginary Landscape, we are frequently tasked with spinning up new cloud servers for our clients. Once a new server is online, we usually follow up by provisioning it with useful software. To automate that process, we began using Ansible a few years ago, and have had a lot...
Continuous Integration and Deployment with Drone, Docker, Django, Gunicorn and Nginx - Part 3
Django Web Development, Django Web Framework, Integration and Deployment with Drone, Docker, Django, Gunicorn and Nginx
Free and Auto-Renewing SSL Certificates: Letsencrypt Quick Setup (2017 Edition)
You may have have heard of Letsencrypt, which is a new SSL certificate authority that provides free SSL certificates that are supported in all modern browsers. This service is also designed to help automate the issuance of SSL certificates. The following describes how to use Letsencrypt to configure auto-renewing SSL certificates...
Continuous Integration and Deployment with Drone, Docker, Django, Gunicorn and Nginx - Part 2
The Introduction This is the second part of a multi-part tutorial covering a simple(ish) setup of a continuous integration/deployment pipeline using Drone.io. Since Part 1, I’ve added a GitHub project outlining a simple Django application that you can use as a reference. In Part 2, we will be adding a publish step...
Let's Encrypt with Alternative ACME Client
I recently was tasked with installing Let’s Encrypt on a server running an old version of Debian (Squeeze) which was due to have its certificate expire. Unfortunately, this meant following the path of setting up certbot and a cron job as outlined in Let's Encrypt Quick Setup -- which basically follows the...
Continuous Integration and Deployment with Drone, Docker, Django, Gunicorn and Nginx - Part 1
Integration and Deployment with Drone, Docker, Django, Gunicorn and Nginx
New Django Server Setup: Part 2
In Part 1 of this article, we discussed our choice of typical server stack and the general packages that we find useful upon an initial installation. Part 2 will focus on setting up the site environment and configuring the system services. As mentioned before, at Imaginary, this setup process is normally automated...
New Django Server Setup: Part 1
A core challenge of setting up a Django project is creating a production-worthy server environment and project setup. At Imaginary Landscape, we've put a lot of thought into how to accomplish this task in an intuitive and flexible way. The goal of this article is to detail the default setup...
Our Django Server Setup: How and Why
One of the most important decisions you make in the process of building a new Django application is what software stack you use to serve it to the world. You're not lacking for options: people run Django on Apache, lighty, nginx, and Cherokee. You also need to decide how to...
Permission Based File Serving
One issue I've run into a couple times while working with Django is the need to serve files to users based on permissions. The first situation occurred with a store we were building that would allow for electronic versions of books to be sold. These books would typically be distributed...