Installation on Alpine Linux#

Note

Alpine does not have older Python versions in its repositories, as of 3.23, there's Python 3.12, which might not work with FunQuail

Required dependencies#

  • PostgreSQL >= 11.0
  • Python >= 3.8 (supported: <3.12)
  • Redis (or Valkey)
  • git

Prepare the system#

The community repository must be enabled in /etc/apk/repositories, depending on which version and mirror you use looks like http://mirror.kumi.systems/alpine/v3.20/community.

If you autogenerated the mirror during installation:

awk 'NR==2' /etc/apk/repositories | sed 's/main/community/' | tee -a /etc/apk/repositories

Then update system, if not already done:

# apk update
# apk upgrade

Install some tools, which are needed later:

# apk add git build-base util-linux

Install Node.js#

This is used for building the frontend. FunQuail is known to work with the latest LTS ("Jod" aka 22.x)

# apk add nodejs
# corepack enable

Install Python#

# apk add python3 python3-dev py3-pip

Install PostgreSQL#

Note

FunQuail needs the following extensions to function: unaccent and citext, both of which are available in the contrib package.

# apk add postgresql16 postgresql16-contrib

Initialize database:

# /etc/init.d/postgresql start

Enable and start PostgreSQL

# rc-update add postgresql

Creating dedicated user#

Note

User creation commands may vary between operating systems

Warning

You should not run this as the system superuser, thus, creating a separate unprivileged user is mandatory

Via busybox#

# busybox adduser -h /srv/funquail -s /bin/sh -S -D funquail

Via util-linux#

# useradd -r -d /srv/funquail -m -s /bin/sh -U funquail

Setting up directories#

# cd /srv/funquail
# for i in data/media data/music data/static; do mkdir -p $i && chown -R funquail $i; done

Obtaining the software#

FunQuail comes in two parts, the backend (written in Python), and the frontend (written in TypeScript).

Note

This section is a stub