Maintaining the forum

F-Droid’s forum is powered by Discourse and maintained by volunteers.

This page is the central place where all information needed to maintain the forum are stored.

General information

Here is some general, non-sensitive information about our instance. When setting up the forum, we followed Docker’s and Dicourse’s official installation guides. Posts from the old forum were not imported due to time restrictions of the voluntary administrators.

  • Installation type: docker-ce
  • Storage driver: AUFS
  • Sever’s specifications: 2 cores, 4GB RAM, 30GB SSD
  • Server’s location: Amsterdam

Paths

  • Installation directory: /var/discourse
  • App configuration: /var/discourse/containers/app.yml
  • Backups: /var/discourse/shared/standalone/backups/default

Discourse

  • Version: tests-passed
  • SSL: Let’s Encrypt
  • Login methods: local, GitHub
  • Backup frequency: daily
  • Amount of backups stored: Last 15 ones

Upgrading

Upgrading the forum is quite simple. Upgrades are planned to be done every one to two weeks. If you feel like there was an important update to Discourse which should get deployed earlier, please reach out to us.

For administrators, this is the common way how to upgrade the forum:

  • Make a backup of the forum
  • Wait until the backup finished and download it (you’ll get a link by mail)
  • Go to the upgrade section
  • Upgrade (the different parts of) the forum, e.g. sometimes docker_manager has available updates which need to happen before discourse
  • Report that all updates were successful in the maintenance log

Troubleshooting

In case something goes wrong with the forum, stay calm, you’re likely not the first to be affected by this. Mostly a quick internet search gives you detailed instructions on how to fix a problem. There is also a really good guide called Advanced Troubleshooting with Docker on Discourse’s forum. In the past, the following instructions were helpful:

Rebuilding the container

This also updates all the parts of Discourse to their newest versions. Therefore, it’s also of interest if there are many available updates in the updates section on the web interface and you want to quickly update all of them.

Sometimes you even have to update the forum this way because a new version of Docker manager got installed, causing Discourse to refuse updates through its web interface.

cd /var/discourse
git pull
./launcher rebuild app

Cleaning up Docker

Docker stores copies of a lot of stuff that could be used in the future, but mostly is not. From time to time it’s required to clean up that stuff which sometimes results in more than 10 GB of freed space.

docker system prune -a

With this, the following things get deleted:

  • all stopped containers
  • all networks not used by at least one container
  • all images without at least one container associated to them
  • all build cache

Installation log

In case we need to set up the virtual machine because of some problem, you can use this instruction to do so quickly.

Install Docker

References:

  • https://docs.docker.com/engine/installation/linux/docker-ce/debian

Download Docker’s PGP key

wget -O docker-gpg https://download.docker.com/linux/debian/gpg
apt-key add docker-gpg

Check PGP key

# Must match '9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88'
apt-key fingerprint 0EBFCD88

Add Docker repository

echo 'deb [arch=amd64] https://download.docker.com/linux/debian stretch stable' >> /etc/apt/sources.list.d/docker.com.list
apt update

Install Docker

apt install docker-ce

Check Docker

docker run hello-world

Install Discourse

If you still have the old /var/discourse directory available, you can simply deploy it on the new server and start it by ./launcher rebuild app.

Follow the official installation guide.