External dependencies ===================== Database setup (PostgreSQL) --------------------------- reel2bits requires a PostgreSQL database to work properly. Please refer to the `PostgreSQL documentation `_ for installation instructions specific to your os. On Debian-like systems, you would install the database server like this: .. code-block:: shell sudo apt-get install postgresql postgresql-contrib The remaining steps are heavily inspired from `this Digital Ocean guide `_. Open a database shell: .. code-block:: shell sudo -u postgres psql Create the project database and user: .. code-block:: shell CREATE DATABASE "reel2bits" WITH ENCODING 'utf8'; CREATE USER reel2bits; GRANT ALL PRIVILEGES ON DATABASE reel2bits TO reel2bits; .. warning:: It's important that you use utf-8 encoding for your database, otherwise you'll end up with errors and crashes later on when dealing with music metadata that contains non-ascii chars. Assuming you have :ref:`created your reel2bits user `, you should now be able to open a postgresql shell: .. code-block:: shell sudo -u reel2bits -H psql Unless you give a superuser access to the database user, you should also enable some extensions on your database server. Those are required for reel2bits to work properly: .. code-block:: shell sudo -u postgres psql reel2bits -c 'CREATE EXTENSION "uuid-ossp";' Cache setup (Redis) ------------------- reel2bits also requires a cache server to handle asynchronous tasks such as music transcoding or some ActivityPub tasks. On Debian-like distributions, a redis package is available, and you can install it: .. code-block:: shell sudo apt-get install redis-server This should be enough to have your redis server set up. audiowaveform tool ------------------ We need the `audiowaveform tool `_ which is used to precompute the audio waveforms used by the players. The best way to install it is to `follow the official documentation `_ which already mention how to install on Ubuntu or build from sources.