- `virtualenv <http://www.virtualenv.org/>`_
- `Node.js <https://nodejs.org>`_
-On a DEB-based system (e.g Debian, Trisquel, Ubuntu and
-derivatives) issue the following commands:
+These instructions have been tested on Debian 10, CentOS 8 and
+Fedora 31. These instructions should approximately translate to recent
+Debian derivatives such as Ubuntu 18.04 and Trisquel 8, and to relatives of
+Fedora such as CentOS 8.
+
+Issue the following commands:
.. code-block:: bash
- # Debian, Trisquel, Ubuntu and derivatives (Hereafter Debian and co.)
+ # Debian 10
sudo apt update
sudo apt install automake git nodejs npm python3-dev python3-gi \
python3-gst-1.0 python3-lxml python3-pil virtualenv
- # Fedora, CentOS, RHEL and derivatives (Hereafter Fedora and co.)
- dnf install automake gcc git-core make nodejs npm python3-devel \
+ # Fedora 31
+ sudo dnf install automake gcc git-core make nodejs npm python3-devel \
python3-lxml python3-pillow virtualenv
.. note::
MediaGoblin now uses Python 3 by default. To use Python 2, you may
instead substitute from "python3" to "python" for most package
names in the Debian instructions and this should cover dependency
- installation. Python 2 installation has not been tested on Fedora
- and co.
+ installation. Python 2 installation has not been tested on Fedora.
For a production deployment, you'll also need Nginx as frontend web
server and RabbitMQ to store the media processing queue::
- # Debian and co.
+ # Debian
sudo apt install nginx-light rabbitmq-server
- # Fedora and co.
+ # Fedora
sudo dnf install nginx rabbitmq-server
-.. note::
+..
+ .. note::
- You might have to enable additional repositories under Fedora and
- co. because rabbitmq-server might be not included in official
- repositories. That looks like this for CentOS::
+ You might have to enable additional repositories under Fedora
+ because rabbitmq-server might be not included in official
+ repositories. That looks like this for CentOS::
- sudo dnf config-manager --set-enabled centos-rabbitmq-38
- sudo dnf config-manager --set-enabled PowerTools
- sudo dnf install rabbitmq-server
- sudo systemctl enable rabbitmq-server.service
- # TODO: Celery repeatedly disconnects from RabbitMQ on CentOS 8.
+ sudo dnf config-manager --set-enabled centos-rabbitmq-38
+ sudo dnf config-manager --set-enabled PowerTools
+ sudo dnf install rabbitmq-server
+ sudo systemctl enable rabbitmq-server.service
+ # TODO: Celery repeatedly disconnects from RabbitMQ on CentOS 8.
- As an alternative, you can try installing redis-server and
- configure it as celery broker.
+ As an alternative, you can try installing redis-server and
+ configure it as celery broker.
Configure PostgreSQL
~~~~~~~~~~~~~~~~~~~~
These are the packages needed for PostgreSQL::
- # Debian and co.
+ # Debian
sudo apt install postgresql python3-psycopg2
- # Fedora and co.
+ # Fedora
sudo dnf install postgresql postgresql-server python3-psycopg2
-Fedora and co. also requires that you initialize and start the
+Fedora also requires that you initialize and start the
PostgreSQL database with a few commands. The following commands are
not needed on a Debian-based platform, however::
- # Feora and co.
+ # Feora
sudo /usr/bin/postgresql-setup initdb
sudo systemctl enable postgresql
sudo systemctl start postgresql
If you are using a Debian-based system, enter this command::
- # Debian and co.
- sudo useradd --system --create-home --home-dir /var/lib/mediagoblin \
+ # Debian
+ sudo useradd --system --create-home --home-dir /var/lib/qmediagoblin \
--group www-data --comment 'GNU MediaGoblin system account' mediagoblin
- # Fedora and co.
+ # Fedora
sudo useradd --system --create-home --home-dir /var/lib/mediagoblin \
--group nginx --comment 'GNU MediaGoblin system account' mediagoblin
To do this, enter the following commands, changing the defaults to suit your
particular requirements::
- # Debian and co.
+ # Debian
sudo mkdir --parents /srv/mediagoblin.example.org
sudo chown --no-dereference --recursive mediagoblin:www-data /srv/mediagoblin.example.org
- # Fedora and co.
+ # Fedora
sudo mkdir --parents /srv/mediagoblin.example.org
sudo chown --no-dereference --recursive mediagoblin:nginx /srv/mediagoblin.example.org
Clone the MediaGoblin repository and set up the git submodules::
- $ git clone --depth=1 https://git.savannah.gnu.org/git/mediagoblin.git --branch stable
+ $ git clone --depth=1 https://git.savannah.gnu.org/git/mediagoblin.git \
+ --branch stable --recursive
$ cd mediagoblin
- $ git submodule init && git submodule update
Set up the environment::
- $ ./bootstrap.sh && VIRTUALENV_FLAGS='--system-site-packages' \
- ./configure && make
+ $ ./bootstrap.sh
+ $ VIRTUALENV_FLAGS='--system-site-packages' ./configure
+ $ make
.. note::
Create and set the proper permissions on the ``user_dev`` directory.
This directory will be used to store uploaded media files::
- $ mkdir --mode='u=rwx,g=rx,o=' user_dev
- $ chmod g+s user_dev
+ $ mkdir --mode=2750 user_dev
This concludes the initial configuration of the MediaGoblin
environment. In the future, when you update your
(e.g. "``/etc/nginx/sites-enabled`` or ``/etc/nginx/conf.d``) with the
following commands::
- # Debian and co.
+ # Debian
sudo ln --symbolic /srv/mediagoblin.example.org/nginx.conf /etc/nginx/sites-enabled/mediagoblin.conf
sudo rm --force /etc/nginx/sites-enabled/default
sudo systemctl enable nginx
- # Fedora and co.
+ # Fedora
sudo ln -s /srv/mediagoblin.example.org/nginx.conf /etc/nginx/conf.d/mediagoblin.conf
sudo systemctl enable nginx
need to update the permissions on the new directories MediaGoblin has
created::
- # Debian and co.
+ # Debian
sudo chown --no-dereference --recursive mediagoblin:www-data /srv/mediagoblin.example.org
- # Fedora and co.
+ # Fedora
sudo chown --no-dereference --recursive mediagoblin:nginx /srv/mediagoblin.example.org
.. note::
This release includes video subtitles and multiple video qualities and a swathe
of smaller improvements and bug-fixes listed below.
-Python 3 is now the default when you install MediaGoblin. Python 2 is
-still supported in this release with `./configure --without-python3`, but
-support will likely be removed in the next release.
+Python 3 is now the default when you install MediaGoblin and is strongly
+recommended. Python 2 installation is still supported in this release with
+`./configure --without-python3`, but support will likely be removed in the next
+release.
FastCGI support has now been deprecated and removed from the documentation as
our dependency `flup` does not support Python 3.
**Upgrade (upgrading to Python 3):**
-0. Update to the latest release. In your ``mediagoblin`` directory, run:
+0. Refer to the "Dependences" and "Configure PostgreSQL" sections of
+ ":doc:`deploying`" to install the necessary Python 3 dependencies.
+1. Update to the latest release. In your ``mediagoblin`` directory, run:
``git fetch && git checkout -q v0.10.0``
-1. Remove your existing installation:
+2. Remove your existing installation:
``rm -rf bin include lib lib64``
-2. Upgrade MediaGoblin:
+3. Upgrade MediaGoblin:
``./bootstrap.sh && ./configure && make``
-3. Update the database:
- ``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
-4. Restart MediaGoblin
+4. Update the database:
+ ``./bin/gmg dbupdate``
+5. Restart MediaGoblin
-**Upgrade (remaining on Python 2):**
+**Upgrade (remaining on Python 2 - not recommended):**
0. Update to the latest release. In your ``mediagoblin`` directory, run:
``git fetch && git checkout -q v0.10.0``
-1. Remove your existing installation:
- ``rm -rf bin include lib lib64``
-2. Update the database:
+1. Update the database:
``./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate``
-3. Restart MediaGoblin
+2. Restart MediaGoblin
For detailed instructions on installing MediaGoblin, see ":doc:`deploying`". If
you have any problems, please drop in to the `#mediagoblin IRC chat