diff --git a/api/requirements.pac b/api/requirements.pac new file mode 100644 index 0000000000000000000000000000000000000000..7e7cb8a0d314b759c4f3c6d90250b7d64d70ffe8 --- /dev/null +++ b/api/requirements.pac @@ -0,0 +1,6 @@ +curl +file +ffmpeg +libjpeg-turbo +libpqxx +python diff --git a/changes/changelog.d/archlinux.doc b/changes/changelog.d/archlinux.doc new file mode 100644 index 0000000000000000000000000000000000000000..a4b4d4b7c222d8b0996efe92d766e116f4381fc6 --- /dev/null +++ b/changes/changelog.d/archlinux.doc @@ -0,0 +1 @@ +Arch Linux installation steps diff --git a/docs/installation/debian.rst b/docs/installation/debian.rst index 2381e4665f8f7f214fa0de3fe1ae59457fe4ad35..eb8683e56632467b3b9c651d1888740f433ce44e 100644 --- a/docs/installation/debian.rst +++ b/docs/installation/debian.rst @@ -1,9 +1,9 @@ -Debian installation -=================== +Debian and Arch Linux installation +================================== .. note:: - This guide targets Debian 9 (Stretch), which is the latest Debian. + This guide targets Debian 9 (Stretch), which is the latest Debian, as well as Arch Linux. External dependencies --------------------- @@ -17,13 +17,18 @@ Install utilities ----------------- You'll need a few utilities during this guide that are not always present by -default on system. You can install them using: +default on system. On Debian-like systems, you can install them using: .. code-block:: shell sudo apt-get update sudo apt-get install curl python3-pip python3-venv git unzip +On Arch Linux and its derivatives: + +.. code-block:: shell + + sudo pacman -S curl python-pip python-virtualenv git unzip Layout ------- @@ -41,7 +46,7 @@ Create the user and the directory: .. code-block:: shell - sudo adduser --system --home /srv/funkwhale funkwhale + sudo useradd -r -s /usr/bin/nologin -d /srv/funkwhale -m funkwhale cd /srv/funkwhale Log in as the newly created user from now on: @@ -113,9 +118,10 @@ First, switch to the api directory: cd api -A few OS packages are required in order to run Funkwhale. The list is available -in ``api/requirements.apt`` or by running -``./install_os_dependencies.sh list``. +A few OS packages are required in order to run Funkwhale. On Debian-like + systems, the list is available in ``api/requirements.apt`` or by running +``./install_os_dependencies.sh list`` and in ``api/requirements.pac`` on +Arch. .. note:: @@ -124,10 +130,18 @@ in ``api/requirements.apt`` or by running You can install those packages all at once: +On Debian-like systems: + .. code-block:: shell ./install_os_dependencies.sh install +On Arch Linux and its derivatives: + +.. code-block:: shell + + pacman -S $(cat api/requirements.pac) + From now on you can switch back to the funkwhale user. Python dependencies @@ -143,11 +157,12 @@ To avoid collisions with other software on your system, Python dependencies will be installed in a dedicated `virtualenv <https://docs.python.org/3/library/venv.html>`_. -First, create the virtualenv: +First, create the virtualenv and install wheel: .. code-block:: shell python3 -m venv /srv/funkwhale/virtualenv + pip install wheel This will result in a ``virtualenv`` directory being created in ``/srv/funkwhale/virtualenv``. @@ -165,12 +180,11 @@ Finally, install the python dependencies: .. code-block:: shell - pip install wheel pip install -r api/requirements.txt .. important:: - further commands involving python should always be run after you activated + Further commands involving python should always be run after you activated the virtualenv, as described earlier, otherwise those commands will raise errors diff --git a/docs/installation/external_dependencies.rst b/docs/installation/external_dependencies.rst index c5cb8b3dd533cd6802921eed80f8956eb744b504..3fa43078801711c5c88003232321ee995e578109 100644 --- a/docs/installation/external_dependencies.rst +++ b/docs/installation/external_dependencies.rst @@ -20,6 +20,14 @@ On Debian-like systems, you would install the database server like this: sudo apt-get install postgresql postgresql-contrib +On Arch Linux and its derivatives: + +.. code-block:: shell + + sudo pacman -S postgresql + +On Arch, you'll also need to initialize the database. See `the Arch Linux wiki <https://wiki.archlinux.org/index.php/Postgresql#Initial_configuration>`_. + The remaining steps are heavily inspired from `this Digital Ocean guide <https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04>`_. Open a database shell: @@ -75,4 +83,10 @@ install it: sudo apt-get install redis-server +On Arch Linux and its derivatives: + +.. code-block:: shell + + sudo pacman -S redis + This should be enough to have your redis server set up. diff --git a/docs/installation/index.rst b/docs/installation/index.rst index 07da9b4ce11bf2c470e153972bceffe0f96395f6..aba6d55a2f54e83baf30bf499f936dfaa85d78b2 100644 --- a/docs/installation/index.rst +++ b/docs/installation/index.rst @@ -56,7 +56,7 @@ Available installation methods ------------------------------- Docker is the recommended and easiest way to setup your Funkwhale instance. -We also maintain an installation guide for Debian 9. +We also maintain an installation guide for Debian 9 and Arch Linux. .. toctree:: :maxdepth: 1 @@ -108,6 +108,12 @@ Ensure you have a recent version of nginx on your server. On Debian-like system, sudo apt-get update sudo apt-get install nginx +On Arch Linux and its derivatives: + +.. code-block:: bash + + sudo pacman -S nginx + Then, download our sample virtualhost file and proxy conf: .. parsed-literal:: @@ -129,7 +135,12 @@ If everything is fine, you can restart your nginx server with ``service nginx re Apache2 ^^^^^^^ -Ensure you have a recent version of apache2 installed on your server. +.. note:: + + These instructions are for Debian only. + For Arch Linux please refer to the `Arch Linux wiki <https://wiki.archlinux.org/index.php/Apache>`_. + +Ensure you have a recent version of Apache2 installed on your server. You'll also need the following dependencies:: sudo apt-get install libapache2-mod-xsendfile