There are challenges that come up in almost every web application project. One of those challenges is finding a way to let users query your database or filter a given dataset.
Again and again you’ll have to build a UI or an API in which users can compose queries and specify sorting options.
Depending on your use-case, this can quickly become a complex endeavour. How do you even design such a querying API? And more importantly: How do compose those queries in a secure fashion?
This article will introduce you to a little-known feature of Ecto and show you how…
A while ago, I wrote an article titled “Nginx and Let’s Encrypt in Less Than 5 Minutes”. It quickly became my most popular post ever, with thousands of claps and hundreds of forks and stars on GitHub.
My original approach included a script that needed to be run once for each deployment. It’s effective, simple — but a little clumsy. So I kept wondering: What if there is an even easier way to set up Let’s Encrypt with docker-compose?
The other day, I wanted to quickly launch an nginx server with Let’s Encrypt certificates. I expected the task to be easy and straightforward. Turns out: I was wrong, it took a significant amount of time and it’s quite a bit more complicated.
Of course, in the grand scheme of things, it is pretty straightforward. But there are a couple of details you need to be aware of. The goal of this guide is to help you build a docker-compose setup that runs nginx in one container and a service for obtaining and renewing HTTPS certificates in another. …
Yesterday my app went down. My PaaS provider had decided to update their platform late that evening. This caused an obscure bug which kept my Docker containers from spinning up again. The consequence was devastating: My app was offline for hours. I had no way of fixing a bug over which I had no control.
Worse yet: I had no good way of letting my users know what was going on. I could only email everyone and apologize in person.
When you run a website, a web app or some other kind of service on the Internet, it is always a good idea to keep an eye on its availability and performance. Obviously, you don’t want to manually check in every hour to see if everything is still up and running. Let’s automate this!
This guide is going to walk you through setting up monitoring for one or several HTTP(S) endpoints. We are going to do this using two AWS services: AWS Lambda and AWS CloudWatch. Lambda is Amazon’s serverless computing offer which allows you to perform one-off executions of…
On Monday, the Electron team published security advisory CVE-2018–1000006 describing an arbitrary code execution vulnerability in Electron. Arbitary code executions — or remote code executions (RCE) when performed through a network — are the most severe class of software vulnerabilities. They allow an attacker to run any code on the victim’s machine.
The current report affects Electron applications on Windows that use custom protocols. Custom protocols allow applications to handle links from web pages or other applications. Links on Apple’s App Store web page, for example, use URLs beginning with
itmss:// so that they can be opened directly by iTunes.
This article is best read when you already know what Docker and Elixir Releases are. If you need to refresh your memory, check out this little introduction that (curiously) explains both concepts at the same time:
I’ve previously written about how to create Elixir Releases with Distillery. Releases are great and one of the many features to love about the Elixir/Erlang ecosystem. But the extent to which they are truly self-contained is limited.
The number of Elixir developers keeps growing steadily. And while Elixir hasn’t become the world’s number one programming language just yet, there is a constant stream of new developers who join the community. Naturally, this also means an ever-increasing number of participants for the two biggest annual Elixir conferences: ElixirConf EU in spring and ElixirConf US in fall.
Developer conferences don’t always manage to keep their quality up to par with growing audiences. The ElixirConfs have been a brilliant exception so far, offering both approachable talks for newcomers and interesting presentations for veterans.
Releases have long been around in the Erlang/OTP world.
I have previously written about what Releases are and why they’re great in more detail. Here is a little refresher: Releases are self-contained bundles of compiled Elixir/Erlang code that can easily be deployed on remote machines.
Naturally, most tools for creating Releases have so far come from the Erlang world. Erlang ships with
reltool, but their usage is rather complicated. So the community built
relx as an easier-to-use alternative that has now become the de-facto standard for creating Releases from Erlang projects. …
You’ve heard about Docker, you’ve heard about Releases — but what exactly are they? Should you use them? Can they work together?
Deploying an application to a production server can be a tedious task. You always have to prepare and package your code for execution on the remote system first. This is, of course, no different for Elixir and Erlang applications. In this article, I want to explore two ways of packaging an application for deployment and explore the potential benefits of combining both approaches.
Like so many things we enjoy about Elixir today, Releases have already existed in the…