Intro
2 minute readHow I'm running F-Droid build tools in a container in Proxmox.
Building apps for F-Droid is a fairly complex process, involving:
- A couple of git repos (besides any your own project may have)
- Using docker
- Forking and merge requests on GitLab
- F-Droid’s specialised build commands
F-Droid gives instructions on their process here.
I managed to get my first Android app (BendyStraw) published on F-Droid but felt a little out of my depth at times and didn’t have a clear mental model of all the moving parts.
So in this series of articles I’m going to write up the process in my own words. I’ll add a couple of scripts which help reduce some repetitive steps, and as the fdroid build
command can take a while I’ve set things up so that I can automatically be sent a message on Telegram when the process is finished.
Proxmox
My main development machine runs Proxmox, a special OS which just hosts virtual machines and containers. Roughly speaking, a virtual machine virtualises the hardware, whereas a container virtualises the operating system.
With Proxmox the main OS is only used for managing these virtual systems. Everyday computer usage such as development work is always done inside a virtual environment, for example if I’m writing Flutter code I’ll be working inside a Debian virtual machine.
I decided to make a small separate container dedicated only to building apps for F-Droid. I’ll be releasing more apps on F-Droid in future so it will be nice to have a clean environment siloed off for the job. Proxmox uses LXC containers and I chose to use an Alpine Linux template to get me started because Alpine is very lean.