diff options
Diffstat (limited to 'docs/source/siteadmin')
-rw-r--r-- | docs/source/siteadmin/configuration.rst | 28 | ||||
-rw-r--r-- | docs/source/siteadmin/deploying.rst | 144 | ||||
-rw-r--r-- | docs/source/siteadmin/media-types.rst | 19 | ||||
-rw-r--r-- | docs/source/siteadmin/relnotes.rst | 11 |
4 files changed, 130 insertions, 72 deletions
diff --git a/docs/source/siteadmin/configuration.rst b/docs/source/siteadmin/configuration.rst index 3da5cdd9..dd0d6cd9 100644 --- a/docs/source/siteadmin/configuration.rst +++ b/docs/source/siteadmin/configuration.rst @@ -109,6 +109,34 @@ they sound like. - email_smtp_user - email_smtp_pass +Changing data directory +----------------------- + +MediaGoblin by default stores your data in wherever ``data_basedir``. +This can be changed by changing the value in your ``mediagoblin.ini`` file +for example:: + + [DEFAULT] + data_basedir = "/var/mediagoblin/user_data" + +For efficiency reasons MediaGoblin doesn't serve these files itself and +instead leaves that to the webserver. You will have to alter the location +to match the path in ``data_basedir``. + +If you use ``lazyserver.sh`` you need to change the ``paste.ini`` file:: + + [app:mediagoblin] + /mgoblin_media = /var/mediagoblin/user_data + +If you use nginx you need to change the config:: + + # Instance specific media: + location /mgoblin_media/ { + alias /var/mediagoblin/user_data; + } + +Once you have done this you will need to move any existing media you had in the +old directory to the new directory so existing media still can be displayed. All other configuration changes ------------------------------- diff --git a/docs/source/siteadmin/deploying.rst b/docs/source/siteadmin/deploying.rst index dad489c5..e4042617 100644 --- a/docs/source/siteadmin/deploying.rst +++ b/docs/source/siteadmin/deploying.rst @@ -45,25 +45,26 @@ Dependencies MediaGoblin has the following core dependencies: -- Python 2.6 or 2.7 +- Python 2.7 - `python-lxml <http://lxml.de/>`_ - `git <http://git-scm.com/>`_ - `SQLite <http://www.sqlite.org/>`_/`PostgreSQL <http://www.postgresql.org/>`_ - `Python Imaging Library <http://www.pythonware.com/products/pil/>`_ (PIL) - `virtualenv <http://www.virtualenv.org/>`_ +- `nodejs <https://nodejs.org>`_ On a DEB-based system (e.g Debian, gNewSense, Trisquel, Ubuntu, and derivatives) issue the following command:: - sudo apt-get install git-core python python-dev python-lxml \ - python-imaging python-virtualenv + # apt-get install git-core python python-dev python-lxml \ + python-imaging python-virtualenv npm automake On a RPM-based system (e.g. Fedora, RedHat, and derivatives) issue the following command:: - yum install python-paste-deploy python-paste-script \ + # yum install python-paste-deploy python-paste-script \ git-core python python-devel python-lxml python-imaging \ - python-virtualenv + python-virtualenv npm automake Configure PostgreSQL ~~~~~~~~~~~~~~~~~~~~ @@ -79,27 +80,54 @@ Configure PostgreSQL These are the packages needed for Debian Wheezy (stable):: - sudo apt-get install postgresql postgresql-client python-psycopg2 + # apt-get install postgresql postgresql-client python-psycopg2 + +These are the packages needed for an RPM-based system:: + + # yum install postgresql postgresql-server python-psycopg2 + +An RPM-based system also requires that you initialize the PostgresSQL database +with this command. The following command is not needed on a Debian-based +platform, however:: + + # /usr/bin/postgresql-setup initdb The installation process will create a new *system* user named ``postgres``, -it will have privilegies sufficient to manage the database. We will create a +which will have privilegies sufficient to manage the database. We will create a new database user with restricted privilegies and a new database owned by our restricted database user for our MediaGoblin instance. In this example, the database user will be ``mediagoblin`` and the database name will be ``mediagoblin`` too. -To create our new user, run:: +We'll add these entities by first switching to the *postgres* account:: + + # su - postgres - sudo -u postgres createuser -A -D mediagoblin +This will change your prompt to a shell prompt, such as *-bash-4.2$*. Enter +the following *createuser* and *createdb* commands at that prompt. We'll +create the *mediagoblin* database user first:: -then create the database all our MediaGoblin data should be stored in:: + $ createuser -A -D mediagoblin - sudo -u postgres createdb -E UNICODE -O mediagoblin mediagoblin +Then we'll create the database where all of our MediaGoblin data will be stored:: + + $ createdb -E UNICODE -O mediagoblin mediagoblin where the first ``mediagoblin`` is the database owner and the second ``mediagoblin`` is the database name. +Type ``exit`` to return to the *root* user prompt. From here we just need to +set the Postgres database to start on boot, and also start it up for this +particular session. If you're on a platform that does not use *systemd*, you +can enter:: + + # chkconfig postgresql on && service postgresql start + +Whereas users of *systemd*-based systems will need to enter:: + + # systemctl enable postgresql && systemctl start postgresql + .. caution:: Where is the password? These steps enable you to authenticate to the database in a password-less @@ -125,14 +153,10 @@ The following command (entered as root or with sudo) will create a system account with a username of ``mediagoblin``. You may choose a different username if you wish.:: - adduser --system mediagoblin + # useradd --system --user-group mediagoblin No password will be assigned to this account, and you will not be able -to log in as this user. To switch to this account, enter either:: - - sudo -u mediagoblin /bin/bash # (if you have sudo permissions) - -or:: +to log in as this user. To switch to this account, enter:: su mediagoblin -s /bin/bash # (if you have to use root permissions) @@ -143,11 +167,6 @@ You may get a warning similar to this when entering these commands:: You can disregard this warning. To return to your regular user account after using the system account, just enter ``exit``. -.. note:: - - Unless otherwise noted, the remainder of this document assumes that all - operations are performed using this unpriviledged account. - .. _create-mediagoblin-directory: Create a MediaGoblin Directory @@ -165,37 +184,35 @@ to the unpriviledged system account. To do this, enter either of the following commands, changing the defaults to suit your particular requirements:: - sudo mkdir -p /srv/mediagoblin.example.org && sudo chown -hR mediagoblin: /srv/mediagoblin.example.org + # mkdir -p /srv/mediagoblin.example.org && sudo chown -hR mediagoblin: /srv/mediagoblin.example.org -or (as the root user):: +.. note:: - mkdir -p /srv/mediagoblin.example.org && chown -hR mediagoblin: /srv/mediagoblin.example.org + Unless otherwise noted, the remainder of this document assumes that all + operations are performed using this unpriviledged account. Install MediaGoblin and Virtualenv ---------------------------------- -.. note:: - - MediaGoblin is still developing rapidly. As a result - the following instructions recommend installing from the ``master`` - branch of the git repository. Eventually production deployments will - want to transition to running from more consistent releases. - We will now clone the MediaGoblin source code repository and setup and configure the necessary services. Modify these commands to -suit your own environment. As a reminder, you should enter these -commands using your unpriviledged system account. +suit your own environment. + +.. note:: + + As a reminder, you should enter these commands using your unpriviledged + *mediagoblin* system account. Change to the MediaGoblin directory that you just created:: - cd /srv/mediagoblin.example.org + $ cd /srv/mediagoblin.example.org Clone the MediaGoblin repository and set up the git submodules:: - git clone git://git.savannah.gnu.org/mediagoblin.git -b stable - cd mediagoblin - git submodule init && git submodule update + $ git clone git://git.savannah.gnu.org/mediagoblin.git -b stable + $ cd mediagoblin + $ git submodule init && git submodule update .. note:: @@ -205,21 +222,9 @@ Clone the MediaGoblin repository and set up the git submodules:: git remote set-url origin git://git.savannah.gnu.org/mediagoblin.git -And set up the in-package virtualenv:: - - (virtualenv --python=python2 --system-site-packages . || virtualenv --python=python2 .) && ./bin/python setup.py develop - -.. note:: - - We presently have an **experimental** make-style deployment system. if - you'd like to try it, instead of the above command, you can run:: +Set up the hacking environment:: - ./experimental-bootstrap.sh && ./configure && make - - This also includes a number of nice features, such as keeping your - viratualenv up to date by simply running `make update`. - - Note: this is liable to break. Use this method with caution. + $ ./bootstrap.sh && ./configure && make The above provides an in-package install of ``virtualenv``. While this is counter to the conventional ``virtualenv`` configuration, it is @@ -230,23 +235,20 @@ your preferred method. Assuming you are going to deploy with FastCGI, you should also install flup:: - ./bin/easy_install flup - -(Sometimes this breaks because flup's site is flakey. If it does for -you, try):: - - ./bin/easy_install https://pypi.python.org/pypi/flup/1.0.3.dev-20110405 + $ ./bin/easy_install flup This concludes the initial configuration of the development environment. In the future, when you update your codebase, you should also run:: - git submodule update && ./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate + $ git submodule update && ./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate + +.. note:: -Note: If you are running an active site, depending on your server -configuration, you may need to stop it first or the dbupdate command -may hang (and it's certainly a good idea to restart it after the -update) + Note: If you are running an active site, depending on your server + configuration, you may need to stop it first or the dbupdate command + may hang (and it's certainly a good idea to restart it after the + update) Deploy MediaGoblin Services @@ -391,6 +393,18 @@ this ``nginx.conf`` file should be modeled on the following:: } } +The first four ``location`` directives instruct Nginx to serve the +static and uploaded files directly rather than through the MediaGoblin +process. This approach is faster and requires less memory. + +.. note:: + + The user who owns the Nginx process, normally ``www-data``, + requires execute permission on the directories ``static``, + ``public``, ``theme_static`` and ``plugin_static`` plus all their + parent directories. This user also requires read permission on all + the files within these directories. This is normally the default. + Now, nginx instance is configured to serve the MediaGoblin application. Perform a quick test to ensure that this configuration works. Restart nginx so it picks up your changes, with a command that @@ -436,3 +450,7 @@ Security Considerations and restart the server, so that it creates a new secret key. All previous sessions will be invalidated. +.. + Local variables: + fill-column: 70 + End: diff --git a/docs/source/siteadmin/media-types.rst b/docs/source/siteadmin/media-types.rst index f8030081..7d9f72b0 100644 --- a/docs/source/siteadmin/media-types.rst +++ b/docs/source/siteadmin/media-types.rst @@ -79,12 +79,15 @@ good/bad/ugly). On Debianoid systems .. code-block:: bash - sudo apt-get install python-gst0.10 \ - gstreamer0.10-plugins-base \ - gstreamer0.10-plugins-bad \ - gstreamer0.10-plugins-good \ - gstreamer0.10-plugins-ugly \ - gstreamer0.10-ffmpeg + sudo apt-get install python-gi python3-gi \ + gstreamer1.0-tools \ + gir1.2-gstreamer-1.0 \ + gir1.2-gst-plugins-base-1.0 \ + gstreamer1.0-plugins-good \ + gstreamer1.0-plugins-ugly \ + gstreamer1.0-plugins-bad \ + gstreamer1.0-libav \ + python-gst-1.0 Add ``[[mediagoblin.media_types.video]]`` under the ``[plugins]`` section in @@ -206,7 +209,7 @@ It may work on some earlier versions, but that is not guaranteed (and is surely not to work prior to Blender 2.5X). Add ``[[mediagoblin.media_types.stl]]`` under the ``[plugins]`` section in your -``mediagoblin_local.ini`` and restart MediaGoblin. +``mediagoblin_local.ini`` and restart MediaGoblin. Run @@ -255,7 +258,7 @@ This feature has been tested on Fedora with: It may work on some earlier versions, but that is not guaranteed. Add ``[[mediagoblin.media_types.pdf]]`` under the ``[plugins]`` section in your -``mediagoblin_local.ini`` and restart MediaGoblin. +``mediagoblin_local.ini`` and restart MediaGoblin. Run diff --git a/docs/source/siteadmin/relnotes.rst b/docs/source/siteadmin/relnotes.rst index 11ee019f..101d9447 100644 --- a/docs/source/siteadmin/relnotes.rst +++ b/docs/source/siteadmin/relnotes.rst @@ -23,6 +23,15 @@ carefully, or at least skim over it. .. note:: + ALWAYS do backups before upgrading, especially before + running migrations! That way if something goes wrong, we can fix + things! + + And be sure to shut down your current mediagoblin/celery processes + before upgrading! + +.. note:: + The MediaGoblin repository used to be on gitorious.org, but since gitorious.org shut down, we had to move. We are presently on Savannah. You may need to update your git repository location:: @@ -78,7 +87,7 @@ That's it, probably! If you run into problems, don't hesitate to - Removed a false download link from setup.py 0.7.0 -==== +===== **Do this to upgrade** |