Running Weblate on AWS EC2 spot instance
I have a few ongoing pet projects that are also translated to a few languages, I am using POEditor for managing localizations at the moment. It’s simple enough and works good. However, their free plan is not the most generous for my use case and neither are their paid plans so I started looking for an alternative.
The competition is not great actually, there are a lot of professional full-featured tools most of which provide some kind of added value for bigger companies but not for me. I really just need a simple tool to hold all my strings with a simple interface to change translations and that’s it. An API access is a bonus but most certainly not required. Guess there’s a niche to be filled in here…
Anyway, after some searching I settled on Weblate. It’s more expensive than POEditor but it’s open source, it’s Django and I can self-host it. This will take some of my time but I think it will be worth it. The plan is to run this on a tiniest possible AWS EC2 spot instance to get the lowest cost possible even though they seem to recommend at least t3.small
, I will only utilize 1 user account and I really don’t think more compute power will be needed but we’ll see about that.
Installation type
I have a few choices here. I can download and run from source, I can pip
install it, use their Docker images, they have guides for running it on the OpenShift or Kubernetes and finally, there’s also Bitnami images for all major cloud providers. I want to go with the Docker option but since I’m cheap and the hardware will be limited I don’t want Docker to use any precious resources. That leaves me with running from sources or pip
but I want to save up some time configuring the server as well so I will go with the Bitnami AMI for AWS.
Weblate on AWS
Going from here it’s really just a few clicks, subscribing to the free Bitnami image, choosing your EC2 instance type and it starts running. However, I was not able to choose a spot EC2 instance as that option was disabled for some reason. Quick web search didn’t return many hits so I suspect this has to do with the way AMI is configured (or AWS is being stupid for some reason).
But I did find another way, here’s how you can run Weblate Bitnami AMI on EC2 spot instance:
- Go to EC2 console, and choose “Spot Requests” from the menu
- From there click on the “Request Spot Instances” button
- Configure the spot instance request as you normally would
- And simply find and select the Bitnami Weblate AMI
Make sure you select “Community AMIs” from the dropdown top right, otherwise you won’t be able to find Weblate.
After launching the spot instance request, AWS fullfilled it almost instantly and I got an instance running Weblate for a few bucks a month.