Skip to main content

DevOps

Posts about self-hosting, automation, and more.

The cover of "Using Ansible to configure a Linux VPS"

Using Ansible to configure a Linux VPS

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

Last year, I needed to move my services to a new Linux VPS. Previously, I used a mess of bash scripts to configure my server, with an aim of version-controlling the configuration. Whilst this was a good idea in theory, in practice this was incredibly complicated and brittle. I now use Ansible to provision my VPS and my Raspberry Pi.

Read more of "Using Ansible to configure a Linux VPS"

The cover of "An Ansible role to block abusive subnets using IPSet"

An Ansible role to block abusive subnets using IPSet

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

My website was hit by a DDoS from an abusive scraper a few weeks ago. I wrote a Python script to help identify the subnets involved and then an Ansible role to block them using ipset. Here’s a quick blog post to share this.

Read more of "An Ansible role to block abusive subnets using IPSet"

The cover of "Analysis of the Luanti ContentDB DDoS attack"

Analysis of the Luanti ContentDB DDoS attack

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

From the 3rd to the 5th of April, ContentDB was hit by a Distributed Denial of Service (DDoS) attack, where it received over 5 million requests from 2,200 IP addresses. This blog post shares statistics on the attack and a reflection on how this can be prevented in the future.

Read more of "Analysis of the Luanti ContentDB DDoS attack"

The cover of "Detox and React Native: UI testing Android permission flows"

Detox and React Native: UI testing Android permission flows

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

I’m currently learning React Native and Expo as an alternative to native app development. To do this, I’ve been working on an app so that I can get hands-on experience with React Native app development. This includes end-to-end UI testing, using Detox.

I was surprised that Detox doesn’t have an API to interact with permissions. The device.launchApp function does have a permissions field, but this only works on iOS and runs on app start-up - it doesn’t allow you to test the actual user flow.

In this article, I will explain how you can do end-to-end testing with Android permissions, including simulating user interaction with the Android permission request modal.

Read more of "Detox and React Native: UI testing Android permission flows"

The cover of "Large spike in Minetest traffic caused by YouTube video"

Large spike in Minetest traffic caused by YouTube video

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

Last month, ContentDB received a large spike in traffic. ContentDB is the website I created that allows you to install mods/games/texture packs from within Minetest’s main menu. On Saturday 5th, Bobicraft, a Spanish-language Youtube channel with 5M subscribers, posted a video about Minetest. At the time of writing, it has reached 1.3 million views and is now the most-watched Minetest video.

In this article, I will show the data about this increase in traffic. As the tools that I use to monitor ContentDB are ephemeral, this will keep the data around for future reference.

Read more of "Large spike in Minetest traffic caused by YouTube video"

The cover of "Developing ContentDB"

Developing ContentDB

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

In 2018, I had the opportunity to create a web app for University coursework, as a solo project. I chose to create a package repository for Luanti, an open-source project I help maintain.

Luanti (formerly Minetest) is an open-source game engine with millions of downloads and thousands of weekly players. The project has a very active modding community, and many available games to run. There was one big issue - you had to manually install mods and games by unzipping their files into a directory. This was a very poor user experience.

Read more of "Developing ContentDB"