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