Spell-check the entire documentation.
This commit is contained in:
parent
821686372c
commit
9650aa394b
@ -144,7 +144,7 @@ Only set client_id for update.
|
||||
Only set client_secret for update.
|
||||
This should only be given when you update.
|
||||
|
||||
Logo URL <url> is not a valid URL
|
||||
Logo URL <URL> is not a valid URL
|
||||
This is when the URL specified did not meet the validation.
|
||||
|
||||
contacts must be a string of space-separated email addresses.
|
||||
@ -171,7 +171,7 @@ We are not using OAuth2 as we want to stay completely compatible with pump.io.
|
||||
Endpoints
|
||||
---------
|
||||
|
||||
These are the endpoints you need to use for the oauth requests:
|
||||
These are the endpoints you need to use for the OAuth requests:
|
||||
|
||||
`/oauth/request_token` is for getting the request token.
|
||||
|
||||
|
@ -19,7 +19,7 @@ Objects
|
||||
|
||||
Using any the APIs mentioned in this document you will required
|
||||
:doc:`authentication`. There are many ways to interact with objects, some of
|
||||
which aren't supported yet by mediagoblin such as liking or sharing objects
|
||||
which aren't supported yet by MediaGoblin such as liking or sharing objects
|
||||
however you can interact with them by updating them, deleting them and
|
||||
commenting on them.
|
||||
|
||||
@ -49,16 +49,16 @@ timestamps or any other data the server creates. My activity comment is::
|
||||
|
||||
This should be posted to the users feed (outbox) which you can find out about
|
||||
:doc:`activities`. You will get back the full activity containing all of
|
||||
attributes including ID, urls, etc.
|
||||
attributes including ID, URLs, etc.
|
||||
|
||||
Posting Media
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Posting media is a special case from posting all other objects. This is because
|
||||
you need to submit more than just the JSON image representation, you need to
|
||||
actually subject the image itself. There is also strange behavour around media
|
||||
actually subject the image itself. There is also strange behavior around media
|
||||
postings where if you want to give the media you're posting a title or
|
||||
description you need to peform an update too. A full media posting in order of
|
||||
description you need to perform an update too. A full media posting in order of
|
||||
steps to do is as follows:
|
||||
|
||||
1) Uploads the data to the server
|
||||
@ -74,7 +74,7 @@ To upload media you should use the URL `/api/user/<username>/uploads`.
|
||||
A POST request should be made to the media upload URL submitting at least two
|
||||
headers:
|
||||
|
||||
* `Content-Type` - This being a valid mimetype for the media.
|
||||
* `Content-Type` - This being a valid MIME type for the media.
|
||||
* `Content-Length` - size in bytes of the media.
|
||||
|
||||
The media data should be submitted as POST data to the image upload URL.
|
||||
@ -197,7 +197,7 @@ You should get the full delete activity in response.
|
||||
.. warning::
|
||||
While deletion works, currently because of the way deletion is implemented
|
||||
deletion either via the API or the web UI causes any activities to be broken
|
||||
and will be skipped and unaccessible. A migration to remove the broken
|
||||
and will be skipped and inaccessible. A migration to remove the broken
|
||||
activities will come in a future release when soft-deletion has been
|
||||
implemented.
|
||||
|
||||
|
@ -44,7 +44,7 @@ development.
|
||||
What's where
|
||||
============
|
||||
|
||||
After you've run checked out mediagoblin and followed the virtualenv
|
||||
After you've run checked out MediaGoblin and followed the virtualenv
|
||||
instantiation instructions, you're faced with the following directory
|
||||
tree::
|
||||
|
||||
@ -86,8 +86,8 @@ As you can see, all the code for GNU MediaGoblin is in the
|
||||
|
||||
Here are some interesting files and what they do:
|
||||
|
||||
:routing.py: maps url paths to views
|
||||
:views.py: views handle http requests
|
||||
:routing.py: maps URL paths to views
|
||||
:views.py: views handle HTTP requests
|
||||
:forms.py: wtforms stuff for this submodule
|
||||
|
||||
You'll notice that there are several sub-directories: tests,
|
||||
@ -97,7 +97,7 @@ templates, auth, submit, ...
|
||||
|
||||
``templates`` holds all the templates for the output.
|
||||
|
||||
``auth`` and ``submit`` are modules that enacpsulate authentication
|
||||
``auth`` and ``submit`` are modules that encapsulate authentication
|
||||
and media item submission. If you look in these directories, you'll
|
||||
see they have their own ``routing.py``, ``view.py``, and forms.py in
|
||||
addition to some other code.
|
||||
@ -123,15 +123,15 @@ Software Stack
|
||||
for unit tests
|
||||
|
||||
* `virtualenv <http://www.virtualenv.org/>`_: for setting up an
|
||||
isolated environment to keep mediagoblin and related packages
|
||||
isolated environment to keep MediaGoblin and related packages
|
||||
(potentially not required if MediaGoblin is packaged for your
|
||||
distro)
|
||||
|
||||
* Data storage
|
||||
|
||||
* `SQLAlchemy <http://sqlalchemy.org/>`_: SQL ORM and database
|
||||
interaction library for Python. Currently we support sqlite and
|
||||
postgress as backends.
|
||||
interaction library for Python. Currently we support SQLite and
|
||||
PostgreSQL as backends.
|
||||
|
||||
* Web application
|
||||
|
||||
@ -161,7 +161,7 @@ Software Stack
|
||||
text-to-html tool to make it easy for people to write rich text
|
||||
comments, descriptions, and etc.
|
||||
|
||||
* `lxml <http://lxml.de/>`_: nice xml and html processing for
|
||||
* `lxml <http://lxml.de/>`_: nice XML and HTML processing for
|
||||
python.
|
||||
|
||||
* Media processing libraries
|
||||
@ -174,10 +174,10 @@ Software Stack
|
||||
future, probably audio too.
|
||||
|
||||
* `chardet <http://pypi.python.org/pypi/chardet>`_: (Optional, for
|
||||
ascii art hosting sites only) Used to make ascii art thumbnails.
|
||||
ASCII art hosting sites only) Used to make ASCII art thumbnails.
|
||||
|
||||
* Front end
|
||||
|
||||
* `JQuery <http://jquery.com/>`_: for groovy JavaScript things
|
||||
* `jQuery <http://jquery.com/>`_: for groovy JavaScript things
|
||||
|
||||
|
||||
|
@ -31,7 +31,7 @@ There's a few things you need to know:
|
||||
- We use `Alembic <https://bitbucket.org/zzzeek/alembic>`_ to run
|
||||
migrations. We also make heavy use of the
|
||||
`branching model <http://alembic.readthedocs.org/en/latest/branches.html>`_
|
||||
for our plugins. Every plugin gets its own migration branc.
|
||||
for our plugins. Every plugin gets its own migration branch.
|
||||
- We used to use `sqlalchemy-migrate
|
||||
<http://code.google.com/p/sqlalchemy-migrate/>`_.
|
||||
See `their docs <https://sqlalchemy-migrate.readthedocs.org/>`_.
|
||||
@ -41,7 +41,7 @@ There's a few things you need to know:
|
||||
- SQLAlchemy has two parts to it, the ORM and the "core" interface.
|
||||
We DO NOT use the ORM when running migrations. Think about it: the
|
||||
ORM is set up with an expectation that the models already reflect a
|
||||
certain pattern. But if a person is moving from their old patern
|
||||
certain pattern. But if a person is moving from their old pattern
|
||||
and are running tools to *get to* the current pattern, of course
|
||||
their current database structure doesn't match the state of the ORM!
|
||||
Anyway, Alembic has its own conventions for migrations; follow those.
|
||||
|
@ -38,7 +38,7 @@ Chris and Will on "Why GNU MediaGoblin":
|
||||
.. figure:: ../_static/goblin.png
|
||||
:alt: Cute goblin with a beret.
|
||||
|
||||
*Figure 1: Cute goblin with a beret. llustrated by Chris
|
||||
*Figure 1: Cute goblin with a beret. Illustrated by Chris
|
||||
Webber*
|
||||
|
||||
.. figure:: ../_static/snugglygoblin.png
|
||||
@ -61,7 +61,7 @@ Chris and Will on "Why GNU MediaGoblin":
|
||||
1. "GNU MediaGoblin" is the name we're going to use in all official
|
||||
capacities: web site, documentation, press releases, ...
|
||||
|
||||
2. In casual conversation, it's ok to use more casual names.
|
||||
2. In casual conversation, it's OK to use more casual names.
|
||||
|
||||
3. If you're writing about the project, we ask that you call it GNU
|
||||
MediaGoblin.
|
||||
@ -113,7 +113,7 @@ Why WSGI Minimalism
|
||||
Chris Webber on "Why WSGI Minimalism":
|
||||
|
||||
If you notice in the technology list I list a lot of components
|
||||
that are very "django-like", but not actually `Django`_
|
||||
that are very "Django-like", but not actually `Django`_
|
||||
components. What can I say, I really like a lot of the ideas in
|
||||
Django! Which leads to the question: why not just use Django?
|
||||
|
||||
@ -176,7 +176,7 @@ Chris Webber on "Why MongoDB":
|
||||
ideal universe where everyone ran servers out of their own
|
||||
housing. As a memory-mapped database, MongoDB is pretty hungry,
|
||||
so actually I spent a lot of time debating whether the inability
|
||||
to scale down as nicely as something like SQL has with sqlite
|
||||
to scale down as nicely as something like SQL has with SQLite
|
||||
meant that it was out.
|
||||
|
||||
But I decided in the end that I really want MongoDB, not for
|
||||
|
@ -21,7 +21,7 @@ are:
|
||||
|
||||
+ **public_store:** After your media goes through processing it gets
|
||||
moved to the public store. This is also a StorageInterface
|
||||
implelementation, and is for stuff that's intended to be seen by
|
||||
implementation, and is for stuff that's intended to be seen by
|
||||
site visitors.
|
||||
|
||||
The workbench
|
||||
@ -43,11 +43,9 @@ Static assets / staticdirect
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
On top of all that, there is some static media that comes bundled with your
|
||||
application. This stuff is kept in:
|
||||
application. This stuff is kept in ``mediagoblin/static/``.
|
||||
|
||||
mediagoblin/static/
|
||||
|
||||
These files are for mediagoblin base assets. Things like the CSS files,
|
||||
These files are for MediaGoblin base assets. Things like the CSS files,
|
||||
logos, etc. You can mount these at whatever location is appropriate to you
|
||||
(see the direct_remote_path option in the config file) so if your users
|
||||
are keeping their static assets at http://static.mgoblin.example.org/ but
|
||||
@ -55,7 +53,7 @@ their actual site is at http://mgoblin.example.org/, you need to be able
|
||||
to get your static files in a where-it's-mounted agnostic way. There's a
|
||||
"staticdirector" attached to the request object. It's pretty easy to use;
|
||||
just look at this bit taken from the
|
||||
mediagoblin/templates/mediagoblin/base.html main template:
|
||||
mediagoblin/templates/mediagoblin/base.html main template::
|
||||
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="Template:Request.staticdirect('/css/extlib/text.css')"/>
|
||||
@ -76,9 +74,7 @@ So, the StorageInterface!
|
||||
So, the public and queue stores both use StorageInterface implementations
|
||||
... but what does that mean? It's not too hard.
|
||||
|
||||
Open up:
|
||||
|
||||
mediagoblin/storage.py
|
||||
Open up ``mediagoblin/storage.py``.
|
||||
|
||||
In here you'll see a couple of things. First of all, there's the
|
||||
StorageInterface class. What you'll see is that this is just a very simple
|
||||
@ -95,12 +91,12 @@ also the default storage system used. As expected, this stores files
|
||||
locally on your machine.
|
||||
|
||||
There's also a CloudFileStorage system. This provides a mapping to
|
||||
[OpenStack's swift http://swift.openstack.org/] storage system (used by
|
||||
[OpenStack's Swift http://swift.openstack.org/] storage system (used by
|
||||
RackSpace Cloud files and etc).
|
||||
|
||||
Between these two examples you should be able to get a pretty good idea of
|
||||
how to write your own storage systems, for storing data across your
|
||||
beowulf cluster of radioactive monkey brains, whatever.
|
||||
Beowulf cluster of radioactive monkey brains, whatever.
|
||||
|
||||
Writing code to store stuff
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -112,8 +108,8 @@ https://docs.djangoproject.com/en/dev/ref/files/storage/]... with some
|
||||
differences.
|
||||
|
||||
Basically, you access files on "file paths", which aren't exactly like
|
||||
unix file paths, but are close. If you wanted to store a file on a path
|
||||
like dir1/dir2/filename.jpg you'd actually write that file path like:
|
||||
Unix file paths, but are close. If you wanted to store a file on a path
|
||||
like dir1/dir2/filename.jpg you'd actually write that file path like::
|
||||
|
||||
['dir1', 'dir2', 'filename.jpg']
|
||||
|
||||
|
@ -20,7 +20,7 @@ GNU MediaGoblin is a platform for sharing photos, video and other media
|
||||
in an environment that respects our freedom and independence.
|
||||
|
||||
This is a Free Software project. It is built by contributors for all
|
||||
to use and enjoy. If you're intrested in contributing, see `the wiki
|
||||
to use and enjoy. If you're interested in contributing, see `the wiki
|
||||
<http://wiki.mediagoblin.org/>`_ which has pages that talk about the
|
||||
ways someone can contribute.
|
||||
|
||||
|
@ -83,7 +83,7 @@ can use a shortcut to get your plugin's config section::
|
||||
>>> floobie_dir = floobie_config['floobie_dir']
|
||||
|
||||
A tip: you have access to the `%(here)s` variable in your config,
|
||||
which is the directory that the user's mediagoblin config is running
|
||||
which is the directory that the user's MediaGoblin config is running
|
||||
out of. So for example, your plugin may need a "floobie" directory to
|
||||
store floobs in. You could give them a reasonable default that makes
|
||||
use of the default `user_dev` location, but allow users to override
|
||||
@ -92,7 +92,7 @@ it, like so::
|
||||
[plugin_spec]
|
||||
floobie_dir = string(default="%(here)s/user_dev/floobs/")
|
||||
|
||||
Note, this is relative to the user's mediagoblin config directory,
|
||||
Note, this is relative to the user's MediaGoblin config directory,
|
||||
*not* your plugin directory!
|
||||
|
||||
|
||||
@ -178,7 +178,7 @@ Adding static resources
|
||||
-----------------------
|
||||
|
||||
It's possible to add static resources for your plugin. Say your
|
||||
plugin needs some special javascript and images... how to provide
|
||||
plugin needs some special JavaScript and images... how to provide
|
||||
them? Then how to access them? MediaGoblin has a way!
|
||||
|
||||
|
||||
@ -230,7 +230,7 @@ the MediaGoblin repository.
|
||||
WTForms hooks
|
||||
+++++++++++++
|
||||
|
||||
We haven't totally settled on a way to tranform wtforms form objects,
|
||||
We haven't totally settled on a way to transform wtforms form objects,
|
||||
but here's one way. In your view::
|
||||
|
||||
from mediagoblin.foo.forms import SomeForm
|
||||
|
@ -44,7 +44,7 @@ This hook is called in ``mediagoblin.auth.views`` in both the ``login`` and
|
||||
if :ref:`basic_auth-chapter` is not enabled, the user will be redirected to the
|
||||
correct login and registration views for your plugin.
|
||||
|
||||
The code assumes that it can generate a valid url given
|
||||
The code assumes that it can generate a valid URL given
|
||||
``mediagoblin.plugins.{{ your_plugin_here }}.login`` and
|
||||
``mediagoblin.plugins.{{ your_plugin_here }}.register``. This is only needed if
|
||||
you will not be using the ``login`` and ``register`` views in
|
||||
@ -82,5 +82,5 @@ the ``stored_hash`` and return either ``True`` or ``False``.
|
||||
|
||||
This hook is called in ``mediagoblin.auth.tools.check_login_simple``. It is
|
||||
called if a user is not found and should do something that takes the same amount
|
||||
of time as your ``check_password`` function. This is to help prevent timining
|
||||
of time as your ``check_password`` function. This is to help prevent timing
|
||||
attacks.
|
||||
|
@ -24,7 +24,7 @@ Accessing Existing Data
|
||||
=======================
|
||||
|
||||
If your plugin wants to access existing data, this is quite
|
||||
straight forward. Just import the appropiate models and use
|
||||
straight forward. Just import the appropriate models and use
|
||||
the full power of SQLAlchemy. Take a look at the (upcoming)
|
||||
database section in the Developer's Chapter.
|
||||
|
||||
@ -134,13 +134,13 @@ plugin's models.py and then run::
|
||||
./bin/gmg alembic --with-plugins revision \
|
||||
--head REVISION_HERE \
|
||||
--autogenerate \
|
||||
-m "YOUR_PLUGIN_NAME: Change explaination here."
|
||||
-m "YOUR_PLUGIN_NAME: Change explanation here."
|
||||
|
||||
Once again, this will dump the migration into the wrong place, so move
|
||||
to your plugin's migrations directory. Open the file, adjust
|
||||
accordingly, and read carefully! Now you should also test your
|
||||
migration with some real data. Be sure to test it both on sqlite
|
||||
*AND* on postgresql!
|
||||
migration with some real data. Be sure to test it both on SQLite
|
||||
*AND* on PostgreSQL!
|
||||
|
||||
One last *very critical* note: you must never, never modify core
|
||||
tables with your plugin. To do that is to put you and all your users
|
||||
|
@ -28,7 +28,7 @@ What hooks are available?
|
||||
This hook is used by ``add_media_to_collection``
|
||||
in ``mediagoblin.user_pages.lib``.
|
||||
It gets a ``CollectionItem`` as its argument.
|
||||
It's the newly created item just before getting commited.
|
||||
It's the newly created item just before getting committed.
|
||||
So the item can be modified by the hook, if needed.
|
||||
Changing the session regarding this item is currently
|
||||
undefined behaviour, as the SQL Session might contain other
|
||||
|
@ -19,7 +19,7 @@ Here's a brief guide to writing unit tests for plugins. However, it
|
||||
isn't really ideal. It also hasn't been well tested... yes, there's
|
||||
some irony there :)
|
||||
|
||||
Some notes: we're using py.test and webtest for unit testing stuff.
|
||||
Some notes: we're using py.test and WebTest for unit testing stuff.
|
||||
Keep that in mind.
|
||||
|
||||
My suggestion is to mime the behavior of `mediagoblin/tests/` and put
|
||||
@ -44,7 +44,7 @@ In any test module in your tests directory you can then do::
|
||||
# real code goes here
|
||||
pass
|
||||
|
||||
And you'll get a mediagoblin application wrapped in webtest passed in
|
||||
And you'll get a MediaGoblin application wrapped in WebTest passed in
|
||||
to your environment.
|
||||
|
||||
If your plugin needs to define multiple configuration setups, you can
|
||||
@ -52,8 +52,8 @@ actually set up multiple fixtures very easily for this. You can just
|
||||
set up multiple fixtures with different names that point to different
|
||||
configs and pass them in as that named argument.
|
||||
|
||||
To run the tests, from mediagoblin's directory (make sure that your
|
||||
plugin has been added to your mediagoblin checkout's virtualenv!) do::
|
||||
To run the tests, from MediaGoblin's directory (make sure that your
|
||||
plugin has been added to your MediaGoblin checkout's virtualenv!) do::
|
||||
|
||||
./runtests.sh /path/to/myplugin/tests/
|
||||
|
||||
|
@ -65,14 +65,14 @@ The above is an example of a very simple metadata.csv file. The batchaddmedia
|
||||
script would read this and attempt to upload only two pieces of media, and would
|
||||
be able to automatically name them appropriately.
|
||||
|
||||
The csv file
|
||||
The CSV file
|
||||
============
|
||||
The location column
|
||||
-------------------
|
||||
The location column is the one column that is absolutely necessary for
|
||||
uploading your media. This gives a path to each piece of media you upload. This
|
||||
can either a path to a local file or a direct link to remote media (with the
|
||||
link in http format). As you can see in the example above the (fake) media was
|
||||
link in HTTP format). As you can see in the example above the (fake) media was
|
||||
stored remotely on "www.example.net".
|
||||
|
||||
Other internal nodes
|
||||
@ -83,8 +83,8 @@ provide default information for your media entry, but as you'll see below, it's
|
||||
just as easy to provide this information through the correct metadata columns.
|
||||
|
||||
- **id** is used to identify the media entry to the user in case of an error in the batchaddmedia script.
|
||||
- **license** is used to set a license for your piece a media for mediagoblin's use. This must be a URI.
|
||||
- **title** will set the title displayed to mediagoblin users.
|
||||
- **license** is used to set a license for your piece a media for MediaGoblin's use. This must be a URI.
|
||||
- **title** will set the title displayed to MediaGoblin users.
|
||||
- **description** will set a description of your media.
|
||||
|
||||
Metadata columns
|
||||
@ -106,7 +106,7 @@ information of uploaded media entries.
|
||||
- **dc:title** sets a title for your media entry.
|
||||
- **dc:description** sets a description of your media entry.
|
||||
|
||||
If both a metadata column and an internal node for the title are provided, mediagoblin
|
||||
If both a metadata column and an internal node for the title are provided, MediaGoblin
|
||||
will use the internal node as the media entry's display name. This makes it so
|
||||
that if you want to display a piece of media with a different title
|
||||
than the one provided in its metadata, you can just provide different data for
|
||||
|
@ -39,12 +39,12 @@ paste.ini
|
||||
<http://pythonpaste.org/script/>`_). It also sets up some
|
||||
middleware that you can mostly ignore, except to configure
|
||||
sessions... more on that later. If you are adding a different
|
||||
Python server other than fastcgi / plain HTTP, you might configure
|
||||
Python server other than FastCGI / plain HTTP, you might configure
|
||||
it here. You probably won't need to change this file very much.
|
||||
|
||||
|
||||
There's one more file that you certainly won't change unless you're
|
||||
making coding contributions to mediagoblin, but which can be useful to
|
||||
making coding contributions to MediaGoblin, but which can be useful to
|
||||
read and reference:
|
||||
|
||||
mediagoblin/config_spec.ini
|
||||
@ -128,7 +128,7 @@ 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::
|
||||
If you use Nginx you need to change the config::
|
||||
|
||||
# Instance specific media:
|
||||
location /mgoblin_media/ {
|
||||
|
@ -25,7 +25,7 @@ will take you step-by-step through setting up your own instance of MediaGoblin.
|
||||
Of course, when it comes to setting up web applications like MediaGoblin,
|
||||
there's an almost infinite way to deploy things, so for now, we'll keep it
|
||||
simple with some assumptions. We recommend a setup that combines MediaGoblin +
|
||||
virtualenv + fastcgi + nginx on a .deb- or .rpm-based GNU/Linux distro.
|
||||
virtualenv + FastCGI + Nginx on a .deb- or .rpm-based GNU/Linux distro.
|
||||
|
||||
Other deployment options (e.g., deploying on FreeBSD, Arch Linux, using
|
||||
Apache, etc.) are possible, though! If you'd prefer a different deployment
|
||||
@ -94,7 +94,7 @@ Configure PostgreSQL
|
||||
|
||||
For medium to large deployments we recommend PostgreSQL.
|
||||
|
||||
If you don't want/need postgres, skip this section.
|
||||
If you don't want/need PostgreSQL, skip this section.
|
||||
|
||||
These are the packages needed for Debian Jessie (stable)::
|
||||
|
||||
@ -105,7 +105,7 @@ These are the packages needed for an RPM-based system::
|
||||
sudo yum install postgresql postgresql-server python-psycopg2
|
||||
|
||||
An rpm-based system also requires that you initialize and start the
|
||||
PostgresSQL database with a few commands. The following commands are
|
||||
PostgreSQL database with a few commands. The following commands are
|
||||
not needed on a Debian-based platform, however::
|
||||
|
||||
sudo /usr/bin/postgresql-setup initdb
|
||||
@ -113,8 +113,8 @@ not needed on a Debian-based platform, however::
|
||||
sudo systemctl start postgresql
|
||||
|
||||
The installation process will create a new *system* user named ``postgres``,
|
||||
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
|
||||
which will have privileges sufficient to manage the database. We will create a
|
||||
new database user with restricted privileges 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
|
||||
@ -200,10 +200,10 @@ Create a MediaGoblin Directory
|
||||
You should create a working directory for MediaGoblin. This document
|
||||
assumes your local git repository will be located at
|
||||
``/srv/mediagoblin.example.org/mediagoblin/``.
|
||||
Substitute your prefered local deployment path as needed.
|
||||
Substitute your preferred local deployment path as needed.
|
||||
|
||||
Setting up the working directory requires that we first create the directory
|
||||
with elevated priviledges, and then assign ownership of the directory
|
||||
with elevated privileges, and then assign ownership of the directory
|
||||
to the unprivileged system account.
|
||||
|
||||
To do this, enter the following command, changing the defaults to suit your
|
||||
@ -325,13 +325,13 @@ Then edit mediagoblin_local.ini:
|
||||
the sender for system-generated emails
|
||||
- Edit ``direct_remote_path``, ``base_dir``, and ``base_url`` if
|
||||
your mediagoblin directory is not the root directory of your
|
||||
vhost.
|
||||
site.
|
||||
|
||||
|
||||
Configure MediaGoblin to use the PostgreSQL database
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If you are using postgres, edit the ``[mediagoblin]`` section in your
|
||||
If you are using PostgreSQL, edit the ``[mediagoblin]`` section in your
|
||||
``mediagoblin_local.ini`` and put in::
|
||||
|
||||
sql_engine = postgresql:///mediagoblin
|
||||
@ -361,7 +361,7 @@ test the deployment with the following command::
|
||||
You should be able to connect to the machine on port 6543 in your
|
||||
browser to confirm that the service is operable.
|
||||
|
||||
The next series of commands will need to be run as a priviledged user. Type
|
||||
The next series of commands will need to be run as a privileged user. Type
|
||||
exit to return to the root/sudo account.::
|
||||
|
||||
exit
|
||||
@ -372,9 +372,9 @@ exit to return to the root/sudo account.::
|
||||
FastCGI and nginx
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
This configuration example will use nginx, however, you may
|
||||
This configuration example will use Nginx, however, you may
|
||||
use any webserver of your choice as long as it supports the FastCGI
|
||||
protocol. If you do not already have a web server, consider nginx, as
|
||||
protocol. If you do not already have a web server, consider Nginx, as
|
||||
the configuration files may be more clear than the
|
||||
alternatives.
|
||||
|
||||
@ -397,7 +397,7 @@ following commands::
|
||||
sudo systemctl enable nginx
|
||||
|
||||
You can modify these commands and locations depending on your preferences and
|
||||
the existing configuration of your nginx instance. The contents of
|
||||
the existing configuration of your Nginx instance. The contents of
|
||||
this ``nginx.conf`` file should be modeled on the following::
|
||||
|
||||
server {
|
||||
@ -457,7 +457,7 @@ this ``nginx.conf`` file should be modeled on the following::
|
||||
fastcgi_pass 127.0.0.1:26543;
|
||||
include /etc/nginx/fastcgi_params;
|
||||
|
||||
# our understanding vs nginx's handling of script_name vs
|
||||
# our understanding vs Nginx's handling of script_name vs
|
||||
# path_info don't match :)
|
||||
fastcgi_param PATH_INFO $fastcgi_script_name;
|
||||
fastcgi_param SCRIPT_NAME "";
|
||||
@ -481,8 +481,8 @@ test to ensure that this configuration works::
|
||||
|
||||
nginx -t
|
||||
|
||||
If you encounter any errors, review your nginx configuration files, and try to
|
||||
resolve them. If you do not encounter any errors, you can start your nginx
|
||||
If you encounter any errors, review your Nginx configuration files, and try to
|
||||
resolve them. If you do not encounter any errors, you can start your Nginx
|
||||
server with one of the following commands (depending on your environment)::
|
||||
|
||||
sudo /etc/init.d/nginx restart
|
||||
@ -529,7 +529,7 @@ a) Disable registration on your instance and just make
|
||||
[mediagoblin]
|
||||
allow_registration = false
|
||||
|
||||
b) Enable a captcha plugin. But unfortunately, though some captcha
|
||||
b) Enable a CAPTCHA plugin. But unfortunately, though some CAPTCHA
|
||||
plugins exist, for various reasons we do not have any general
|
||||
recommendations we can make at this point.
|
||||
|
||||
|
@ -19,10 +19,10 @@ Media Types
|
||||
|
||||
In the future, there will be all sorts of media types you can enable,
|
||||
but in the meanwhile there are six additional media types: video, audio,
|
||||
raw image, ascii art, STL/3d models, PDF and Document.
|
||||
raw image, ASCII art, STL/3D models, PDF and Document.
|
||||
|
||||
First, you should probably read ":doc:`configuration`" to make sure
|
||||
you know how to modify the mediagoblin config file.
|
||||
you know how to modify the MediaGoblin config file.
|
||||
|
||||
Enabling Media Types
|
||||
====================
|
||||
@ -30,7 +30,7 @@ Enabling Media Types
|
||||
.. note::
|
||||
Media types are now plugins
|
||||
|
||||
Media types are enabled in your mediagoblin configuration file, typically it is
|
||||
Media types are enabled in your MediaGoblin configuration file, typically it is
|
||||
created by copying ``mediagoblin.ini`` to ``mediagoblin_local.ini`` and then
|
||||
applying your changes to ``mediagoblin_local.ini``. If you don't already have a
|
||||
``mediagoblin_local.ini``, create one in the way described.
|
||||
@ -81,8 +81,8 @@ instance the ``video`` media type configuration can be found in
|
||||
Video
|
||||
=====
|
||||
|
||||
To enable video, first install gstreamer and the python-gstreamer
|
||||
bindings (as well as whatever gstremaer extensions you want,
|
||||
To enable video, first install GStreamer and the python-gstreamer
|
||||
bindings (as well as whatever GStreamer extensions you want,
|
||||
good/bad/ugly). On Debianoid systems
|
||||
|
||||
.. code-block:: bash
|
||||
@ -107,7 +107,7 @@ Run
|
||||
|
||||
./bin/gmg dbupdate
|
||||
|
||||
Now you should be able to submit videos, and mediagoblin should
|
||||
Now you should be able to submit videos, and MediaGoblin should
|
||||
transcode them.
|
||||
|
||||
.. note::
|
||||
@ -121,8 +121,8 @@ transcode them.
|
||||
Audio
|
||||
=====
|
||||
|
||||
To enable audio, install the gstreamer and python-gstreamer bindings (as well
|
||||
as whatever gstreamer plugins you want, good/bad/ugly), scipy and numpy are
|
||||
To enable audio, install the GStreamer and python-gstreamer bindings (as well
|
||||
as whatever GStreamer plugins you want, good/bad/ugly), SciPy and NumPy are
|
||||
also needed for the audio spectrograms.
|
||||
To install these on Debianoid systems, run::
|
||||
|
||||
@ -168,16 +168,16 @@ Run
|
||||
|
||||
./bin/gmg dbupdate
|
||||
|
||||
Now you should be able to submit raw images, and mediagoblin should
|
||||
Now you should be able to submit raw images, and MediaGoblin should
|
||||
extract the JPEG preview from them.
|
||||
|
||||
|
||||
Ascii art
|
||||
ASCII art
|
||||
=========
|
||||
|
||||
To enable ascii art support, first install the
|
||||
To enable ASCII art support, first install the
|
||||
`chardet <http://pypi.python.org/pypi/chardet>`_
|
||||
library, which is necessary for creating thumbnails of ascii art
|
||||
library, which is necessary for creating thumbnails of ASCII art
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@ -194,14 +194,14 @@ Run
|
||||
|
||||
./bin/gmg dbupdate
|
||||
|
||||
Now any .txt file you uploaded will be processed as ascii art!
|
||||
Now any .txt file you uploaded will be processed as ASCII art!
|
||||
|
||||
|
||||
STL / 3d model support
|
||||
STL / 3D model support
|
||||
======================
|
||||
|
||||
To enable the "STL" 3d model support plugin, first make sure you have
|
||||
a recentish `Blender <http://blender.org>`_ installed and available on
|
||||
To enable the "STL" 3D model support plugin, first make sure you have
|
||||
a recent `Blender <http://blender.org>`_ installed and available on
|
||||
your execution path. This feature has been tested with Blender 2.63.
|
||||
It may work on some earlier versions, but that is not guaranteed (and
|
||||
is surely not to work prior to Blender 2.5X).
|
||||
@ -223,9 +223,9 @@ PDF and Document
|
||||
|
||||
To enable the "PDF and Document" support plugin, you need:
|
||||
|
||||
1. pdftocairo and pdfinfo for pdf only support.
|
||||
1. pdftocairo and pdfinfo for PDF only support.
|
||||
|
||||
2. unoconv with headless support to support converting libreoffice supported
|
||||
2. unoconv with headless support to support converting LibreOffice supported
|
||||
documents as well, such as doc/ppt/xls/odf/odg/odp and more.
|
||||
For the full list see mediagoblin/media_types/pdf/processing.py,
|
||||
unoconv_supported.
|
||||
@ -238,7 +238,7 @@ To install this on Fedora:
|
||||
|
||||
sudo yum install -y poppler-utils unoconv libreoffice-headless
|
||||
|
||||
Note: You can leave out unoconv and libreoffice-headless if you want only pdf
|
||||
Note: You can leave out unoconv and libreoffice-headless if you want only PDF
|
||||
support. This will result in a much smaller list of dependencies.
|
||||
|
||||
pdf.js relies on git submodules, so be sure you have fetched them:
|
||||
|
@ -111,7 +111,7 @@ Check the plugin's documentation for what configuration options are
|
||||
available.
|
||||
|
||||
Once you've set up your plugin, you should be sure to update the
|
||||
database to accomodate the new plugins::
|
||||
database to accommodate the new plugins::
|
||||
|
||||
./bin/gmg dbupdate
|
||||
|
||||
@ -121,7 +121,7 @@ Deactivating plugins
|
||||
|
||||
You should be aware that once you enable a plugin, deactivating it
|
||||
might be a bit tricky, for migrations reasons. In the future we may
|
||||
produce better tooling to accomodate this. In short, you will need to
|
||||
produce better tooling to accommodate this. In short, you will need to
|
||||
do a bit of database surgery by:
|
||||
|
||||
- Removing all tables and indexes installed by the plugin
|
||||
|
@ -24,10 +24,10 @@ Deploy with paste
|
||||
|
||||
The MediaGoblin WSGI application instance you get with ``./lazyserver.sh`` is
|
||||
not ideal for a production MediaGoblin deployment. Ideally, you should be able
|
||||
to use a systemd service file or an init script to launch and restart the
|
||||
to use a Systemd service file or an init script to launch and restart the
|
||||
MediaGoblin process.
|
||||
|
||||
We will explore setting up MediaGoblin systemd service files and init scripts,
|
||||
We will explore setting up MediaGoblin Systemd service files and init scripts,
|
||||
but first we need to create the directory that will store the MediaGoblin logs.
|
||||
|
||||
|
||||
@ -45,10 +45,10 @@ proper permissions::
|
||||
|
||||
.. _systemd-service-files:
|
||||
|
||||
Use systemd service files
|
||||
Use Systemd service files
|
||||
-------------------------
|
||||
|
||||
If your operating system uses systemd, you can use systemd ``service files``
|
||||
If your operating system uses Systemd, you can use Systemd ``service files``
|
||||
to manage both the Celery and Paste processes. Place the following service
|
||||
files in the ``/etc/systemd/system/`` directory.
|
||||
|
||||
@ -62,7 +62,7 @@ modify it to suit your environment's setup:
|
||||
# If using Fedora/CentOS/Red Hat, mkdir and chown are located in /usr/bin/mkdir and /usr/bin/chown, respectively.
|
||||
|
||||
[Unit]
|
||||
Description=Mediagoblin Celeryd
|
||||
Description=MediaGoblin Celeryd
|
||||
|
||||
[Service]
|
||||
User=mediagoblin
|
||||
@ -156,7 +156,7 @@ processes again.
|
||||
Use an init script
|
||||
------------------
|
||||
|
||||
If your system does not use systemd, you can use the following command as the
|
||||
If your system does not use Systemd, you can use the following command as the
|
||||
basis for an init script:
|
||||
|
||||
.. code-block:: bash
|
||||
@ -244,7 +244,7 @@ To launch Celery separately from the MediaGoblin WSGI application:
|
||||
|
||||
CELERY_CONFIG_MODULE=mediagoblin.init.celery.from_celery ./bin/celeryd
|
||||
|
||||
If you use our example systemd ``service files``, Celery will be set to the
|
||||
If you use our example Systemd ``service files``, Celery will be set to the
|
||||
"CELERY_ALWAYS_EAGER=false" value by default. This will provide your users
|
||||
with the best user experience, as all media processing will be done in the
|
||||
background.
|
||||
|
@ -27,7 +27,7 @@ carefully, or at least skim over it.
|
||||
running migrations! That way if something goes wrong, we can fix
|
||||
things!
|
||||
|
||||
And be sure to shut down your current mediagoblin/celery processes
|
||||
And be sure to shut down your current MediaGoblin/Celery processes
|
||||
before upgrading!
|
||||
|
||||
.. note::
|
||||
@ -162,11 +162,11 @@ prior upgrade guides!
|
||||
Additionally:
|
||||
|
||||
- Are you using audio or video media types? In that case, you'll need
|
||||
to update your Gstreamer instance to 1.0.
|
||||
to update your GStreamer instance to 1.0.
|
||||
- The Pump API needs some data passed through to the WSGI application,
|
||||
so if you are using apache with mod_wsgi you should be sure to make
|
||||
so if you are using Apache with mod_wsgi you should be sure to make
|
||||
sure to add "WSGIPassAuthorization On" to your config. (Using the
|
||||
default MediaGoblin documnetation and config, things should work
|
||||
default MediaGoblin documentation and config, things should work
|
||||
as-is.)
|
||||
|
||||
|
||||
@ -181,12 +181,12 @@ Additionally:
|
||||
- Clearer documentation on permissions and installation
|
||||
- Switched from Transifex, which had become proprietary, to an
|
||||
instance of Pootle hosted for GNU
|
||||
- Moved to Gstreamer 1.0! This also adds a new thumbnailer which
|
||||
- Moved to GStreamer 1.0! This also adds a new thumbnailer which
|
||||
gives much better results in
|
||||
- Removed terrible check-javascript-dependencies-into-your-application
|
||||
- Removed terrible check-JavaScript-dependencies-into-your-application
|
||||
setup, now using Bower for dependency tracking
|
||||
- Put some scaffolding in place for Alembic, which will be used for
|
||||
future mitration work
|
||||
future migration work
|
||||
- Automatically create a fresh mediagoblin.ini from
|
||||
mediagoblin.ini.example
|
||||
- no more need for mediagoblin_local.ini (though it's still supported)
|
||||
@ -199,7 +199,7 @@ Additionally:
|
||||
This is a purely bugfix release. Important changes happened since
|
||||
0.7.0; if running MediaGoblin 0.7.0, an upgrade is highly recommended;
|
||||
see below. This release is especially useful if you have been running
|
||||
postgres and have been receiving seemingly random database transaction
|
||||
PostgreSQL and have been receiving seemingly random database transaction
|
||||
errors.
|
||||
|
||||
**Do this to upgrade**
|
||||
@ -220,9 +220,9 @@ That's it, probably! If you run into problems, don't hesitate to
|
||||
database transaction issues. (These should be back by 0.8.0.)
|
||||
|
||||
+ Disabled the "checking if the database is up to date at
|
||||
mediagoblin startup" feature
|
||||
MediaGoblin startup" feature
|
||||
+ Disabled the garbage collection stuff by default for now
|
||||
(You can set garbage_collection under the config mediagoblin
|
||||
(You can set garbage_collection under the config MediaGoblin
|
||||
header to something other than 0 to turn it back on for now, but
|
||||
it's potentially risky for the moment.)
|
||||
|
||||
@ -231,7 +231,7 @@ That's it, probably! If you run into problems, don't hesitate to
|
||||
- Added support for cr2 files in raw_image media type
|
||||
- Added a description to setup.py
|
||||
- Collection and CollectionItem objects now have nicer in-python representations
|
||||
- Fixed unicode error with raw image mediatype logging
|
||||
- Fixed Unicode error with raw image mediatype logging
|
||||
- Fixed #945 "Host metadata does not confirm to spec (/.well-known/meta-data)"
|
||||
|
||||
+ Add XRD+XML formatting for /.well-known/host-meta
|
||||
@ -268,7 +268,7 @@ That's it, probably! If you run into problems, don't hesitate to
|
||||
(which will be the foundation for MediaGoblin's federation)
|
||||
- New theme: Sandy 70s Speedboat!
|
||||
|
||||
- Metadata features! We also now have a json-ld context.
|
||||
- Metadata features! We also now have a JSON-LD context.
|
||||
|
||||
- Many improvements for archival institutions, including metadata
|
||||
support and featuring items on the homepage. With the (new!)
|
||||
@ -283,7 +283,7 @@ That's it, probably! If you run into problems, don't hesitate to
|
||||
uploading many files at once. This is aimed to be useful for
|
||||
archival institutions and groups where there is an already existing
|
||||
and large set of available media that needs to be included.
|
||||
- Speaking of, the call to postgres in the makefile is fixed.
|
||||
- Speaking of, the call to PostgreSQL in the makefile is fixed.
|
||||
- We have a new, generic media-page context hook that allows for
|
||||
adding context depending on the type of media.
|
||||
- Tired of video thumbnails breaking during processing all the time?
|
||||
@ -310,10 +310,10 @@ That's it, probably! If you run into problems, don't hesitate to
|
||||
data. It's basically the same thing as before, but packaged
|
||||
separately from MediaGoblin.
|
||||
- Many improvements to internationalization. Also (still rudimentary,
|
||||
but existant!) RTL language support!
|
||||
but existent!) RTL language support!
|
||||
|
||||
**Known issues:**
|
||||
- The host-meta is now json by default; in the spec it should be xml by
|
||||
- The host-meta is now JSON by default; in the spec it should be XML by
|
||||
default. We have done this because of compatibility with the pump
|
||||
API. We are checking with upstream to see if there is a way to
|
||||
resolve this discrepancy.
|
||||
@ -360,7 +360,7 @@ nickname "Lore of the Admin"!
|
||||
- New tools to control how much users can upload, both as a general
|
||||
user limit, or per file.
|
||||
|
||||
You can set this with the following options in your mediagoblin
|
||||
You can set this with the following options in your MediaGoblin
|
||||
config file: `upload_limit` and `max_file_size`. Both are integers
|
||||
in megabytes.
|
||||
|
||||
@ -368,7 +368,7 @@ nickname "Lore of the Admin"!
|
||||
upload too, though an interface for this is not yet exposed. See
|
||||
the "uploaded" field on the core__users table.
|
||||
|
||||
- MediaGoblin now contains an authentication plugin for ldap! You
|
||||
- MediaGoblin now contains an authentication plugin for LDAP! You
|
||||
can turn on the mediagoblin.plugins.ldap plugin to make use of
|
||||
this. See the documentation: :ref:`ldap-plugin`
|
||||
|
||||
@ -423,8 +423,8 @@ v0.5.1 is a bugfix release... the steps are the same as for 0.5.1.
|
||||
=====
|
||||
|
||||
**NOTE:** If using the API is important to you, we're in a state of
|
||||
ransition towards a new API via the Pump API. As such, though the old
|
||||
API still probably works, some changes have happened to the way oauth
|
||||
transition towards a new API via the Pump API. As such, though the old
|
||||
API still probably works, some changes have happened to the way OAuth
|
||||
works to make it more Pump-compatible. If you're heavily using
|
||||
clients using the old API, you may wish to hold off on upgrading for
|
||||
now. Otherwise, jump in and have fun! :)
|
||||
@ -469,21 +469,21 @@ If you run into problems, don't hesitate to
|
||||
* Comment preview!
|
||||
* Users now have the ability to change their email associated with their
|
||||
account.
|
||||
* New oauth code as we move closer to federation support.
|
||||
* Experimental pyconfigure support for GNU-style configue and makefile
|
||||
* New OAuth code as we move closer to federation support.
|
||||
* Experimental pyconfigure support for GNU-style configure and makefile
|
||||
deployment.
|
||||
* Database foundations! You can now pre-populate the database models.
|
||||
* Way faster unit test run-time via in-memory database.
|
||||
* All mongokit stuff has been cleaned up.
|
||||
* Fixes for non-ascii filenames.
|
||||
* Fixes for non-ASCII filenames.
|
||||
* The option to stay logged in.
|
||||
* Mediagoblin has been upgraded to use the latest `celery <http://celeryproject.org/>`_
|
||||
* MediaGoblin has been upgraded to use the latest `Celery <http://celeryproject.org/>`_
|
||||
version.
|
||||
* You can now add jinja2 extensions to your config file to use in custom
|
||||
templates.
|
||||
* Fixed video permission issues.
|
||||
* Mediagoblin docs are now hosted with multiple versions.
|
||||
* We removed redundent tooltips from the STL media display.
|
||||
* MediaGoblin docs are now hosted with multiple versions.
|
||||
* We removed redundant tooltips from the STL media display.
|
||||
* We are now using itsdangerous for verification tokens.
|
||||
|
||||
|
||||
@ -495,7 +495,7 @@ fix in the newly released document support which prevented the
|
||||
"conversion via libreoffice" feature.
|
||||
|
||||
If you were running 0.4.0 you can upgrade to v0.4.1 via a simple
|
||||
switch and restarting mediagoblin/celery with no other actions.
|
||||
switch and restarting MediaGoblin/Celery with no other actions.
|
||||
|
||||
Otherwise, follow 0.4.0 instructions.
|
||||
|
||||
@ -514,7 +514,7 @@ Otherwise, follow 0.4.0 instructions.
|
||||
Keep on reading to hear more about new plugin features.
|
||||
4. If you want to take advantage of new plugins that have statically
|
||||
served assets, you are going to need to add the new "plugin_static"
|
||||
section to your nginx config. Basically the following for nginx::
|
||||
section to your Nginx config. Basically the following for Nginx::
|
||||
|
||||
# Plugin static files (usually symlinked in)
|
||||
location /plugin_static/ {
|
||||
@ -557,7 +557,7 @@ please note the following:
|
||||
date of an image when available (available as the
|
||||
"original_date_visible" variable)
|
||||
* Moved unit testing system from nosetests to py.test so we can better
|
||||
handle issues with sqlalchemy exploding with different database
|
||||
handle issues with SQLAlchemy exploding with different database
|
||||
configurations. Long story :)
|
||||
* You can now disable the ability to post comments.
|
||||
* Tags now can be up to length 255 characters by default.
|
||||
@ -587,7 +587,7 @@ you run into problems, don't hesitate to
|
||||
|
||||
* New dropdown menu for accessing various features.
|
||||
|
||||
* Significantly improved URL generation. Now mediagoblin won't give
|
||||
* Significantly improved URL generation. Now MediaGoblin won't give
|
||||
up on making a slug if it looks like there will be a duplicate;
|
||||
it'll try extra hard to generate a meaningful one instead.
|
||||
|
||||
@ -595,13 +595,13 @@ you run into problems, don't hesitate to
|
||||
linking to a slug; /u/username/m/id:35/ is the kind of reference we
|
||||
now use to linking to entries with ids. However, old links with
|
||||
entries that linked to ids should work just fine with our migration.
|
||||
The only urls that might break in this release are ones using colons
|
||||
The only URLs that might break in this release are ones using colons
|
||||
or equal signs.
|
||||
|
||||
* New template hooks for plugin authoring.
|
||||
|
||||
* As a demonstration of new template hooks for plugin authoring,
|
||||
openstreetmap support now moved to a plugin!
|
||||
OpenStreetMap support now moved to a plugin!
|
||||
|
||||
* Method to add media to collections switched from icon of paperclip
|
||||
to button with "add to collection" text.
|
||||
@ -612,9 +612,9 @@ you run into problems, don't hesitate to
|
||||
waste gobs of memory.
|
||||
|
||||
* Video transcoding now optional for videos that meet certain
|
||||
criteria. By default, MediaGoblin will not transcode webm videos
|
||||
criteria. By default, MediaGoblin will not transcode WebM videos
|
||||
that are smaller in resolution than the MediaGoblin defaults, and
|
||||
MediaGoblin can also be configured to allow theora files to not be
|
||||
MediaGoblin can also be configured to allow Theora files to not be
|
||||
transcoded as well.
|
||||
|
||||
* Per-user license preference option; always want your uploads to be
|
||||
@ -644,7 +644,7 @@ MongoDB-based MediaGoblin instance to the newer SQL-based system.
|
||||
|
||||
**Do this to upgrade**
|
||||
|
||||
# directory of your mediagoblin install
|
||||
# directory of your MediaGoblin install
|
||||
cd /srv/mediagoblin.example.org
|
||||
|
||||
# copy source for this release
|
||||
@ -664,13 +664,13 @@ MongoDB-based MediaGoblin instance to the newer SQL-based system.
|
||||
* **3d model support!**
|
||||
|
||||
You can now upload STL and OBJ files and display them in
|
||||
MediaGoblin. Requires a recent-ish Blender; for details see:
|
||||
MediaGoblin. Requires a recent Blender; for details see:
|
||||
:ref:`deploying-chapter`
|
||||
|
||||
* **trim_whitespace**
|
||||
|
||||
We bundle the optional plugin trim_whitespace which reduces the size
|
||||
of the delivered html output by reducing redundant whitespace.
|
||||
of the delivered HTML output by reducing redundant whitespace.
|
||||
|
||||
See :ref:`core-plugin-section` for plugin documentation
|
||||
|
||||
@ -684,7 +684,7 @@ MongoDB-based MediaGoblin instance to the newer SQL-based system.
|
||||
and `OMGMG <https://github.com/jwandborg/omgmg>`_, an example of
|
||||
a web application hooking up to the API.
|
||||
|
||||
This is a plugin, so you have to enable it in your mediagoblin
|
||||
This is a plugin, so you have to enable it in your MediaGoblin
|
||||
config file by adding a section under [plugins] like::
|
||||
|
||||
[plugins]
|
||||
@ -697,7 +697,7 @@ MongoDB-based MediaGoblin instance to the newer SQL-based system.
|
||||
|
||||
For applications that use OAuth to connect to the API.
|
||||
|
||||
This is a plugin, so you have to enable it in your mediagoblin
|
||||
This is a plugin, so you have to enable it in your MediaGoblin
|
||||
config file by adding a section under [plugins] like::
|
||||
|
||||
[plugins]
|
||||
@ -717,7 +717,7 @@ MongoDB-based MediaGoblin instance to the newer SQL-based system.
|
||||
|
||||
Geolocation is also now on by default.
|
||||
|
||||
* **Miscelaneous visual improvements**
|
||||
* **Miscellaneous visual improvements**
|
||||
|
||||
We've made a number of small visual improvements including newer and
|
||||
nicer looking thumbnails and improved checkbox placement.
|
||||
@ -732,7 +732,7 @@ MongoDB-based MediaGoblin instance to the newer SQL-based system.
|
||||
1. Make sure to run ``bin/gmg dbuptdate`` after upgrading.
|
||||
|
||||
2. If you set up your server config with an older version of
|
||||
mediagoblin and the mediagoblin docs, it's possible you don't
|
||||
MediaGoblin and the MediaGoblin docs, it's possible you don't
|
||||
have the "theme static files" alias, so double check to make
|
||||
sure that section is there if you are having problems.
|
||||
|
||||
|
@ -73,9 +73,9 @@ want to install this theme! Don't worry, it's fairly painless.
|
||||
Set up your webserver to serve theme assets
|
||||
-------------------------------------------
|
||||
|
||||
If you followed the nginx setup example in :ref:`webserver-config` you
|
||||
If you followed the Nginx setup example in :ref:`webserver-config` you
|
||||
should already have theme asset setup. However, if you set up your
|
||||
server config with an older version of mediagoblin and the mediagoblin
|
||||
server config with an older version of MediaGoblin and the MediaGoblin
|
||||
docs, it's possible you don't have the "theme static files" alias, so
|
||||
double check to make sure that section is there if you are having
|
||||
problems.
|
||||
@ -103,7 +103,7 @@ Other variables you may consider setting:
|
||||
|
||||
`theme_web_path`
|
||||
When theme-specific assets are specified, this is where MediaGoblin
|
||||
will set the urls. By default this is ``"/theme_static/"`` so in
|
||||
will set the URLs. By default this is ``"/theme_static/"`` so in
|
||||
the case that your theme was trying to access its file
|
||||
``"images/shiny_button.png"`` MediaGoblin would link
|
||||
to ``/theme_static/images/shiny_button.png``.
|
||||
@ -136,7 +136,7 @@ if necessary)::
|
||||
| | |- im_a_hedgehog.png # hedgehog-containing image used by theme
|
||||
| | '- custom_logo.png # your theme's custom logo
|
||||
| '- css/
|
||||
| '- hedgehog.css # your site's hedgehog-specific css
|
||||
| '- hedgehog.css # your site's hedgehog-specific CSS
|
||||
|- README.txt # Optionally, a readme file (not required)
|
||||
|- AGPLv3.txt # AGPL license file for your theme. (good practice)
|
||||
'- CC0_1.0.txt # CC0 1.0 legalcode for the assets [if appropriate!]
|
||||
@ -164,7 +164,7 @@ Only a few things need to go in here::
|
||||
[theme]
|
||||
name = Hedgehog-ification
|
||||
description = For hedgehog lovers ONLY
|
||||
licensing = AGPLv3 or later templates; assets (images/css) waived under CC0 1.0
|
||||
licensing = AGPLv3 or later templates; assets (images/CSS) waived under CC0 1.0
|
||||
|
||||
The name and description fields here are to give users an idea of what
|
||||
your theme is about. For the moment, we don't have any listing
|
||||
@ -232,7 +232,7 @@ You should include AGPLv3.txt with your theme as this is required for
|
||||
the assets. You can copy this from ``mediagoblin/licenses/``.
|
||||
|
||||
In the above example, we also use CC0 to waive our copyrights to
|
||||
images and css, so we also included CC0_1.0.txt
|
||||
images and CSS, so we also included CC0_1.0.txt
|
||||
|
||||
|
||||
A README.txt file
|
||||
@ -247,7 +247,7 @@ Simple theming by adding CSS
|
||||
----------------------------
|
||||
|
||||
Many themes won't require anything other than the ability to override
|
||||
some of MediaGoblin's core css. Thankfully, doing so is easy if you
|
||||
some of MediaGoblin's core CSS. Thankfully, doing so is easy if you
|
||||
combine the above steps!
|
||||
|
||||
In your theme, do the following (make sure you make the necessary
|
||||
@ -260,7 +260,7 @@ Great, now open that file and add something like this at the end::
|
||||
<link rel="stylesheet" type="text/css"
|
||||
href="{{ request.staticdirect('/css/theme.css', 'theme') }}"/>
|
||||
|
||||
You can name the css file whatever you like. Now make the directory
|
||||
You can name the CSS file whatever you like. Now make the directory
|
||||
for ``assets/css/`` and add the file ``assets/css/theme.css``.
|
||||
|
||||
You can now put custom CSS files in here and any CSS you add will
|
||||
|
@ -5,7 +5,7 @@
|
||||
===================
|
||||
|
||||
The basic_auth plugin is enabled by default in mediagoblin.ini. This plugin
|
||||
provides basic username and password authentication for GNU Mediagoblin.
|
||||
provides basic username and password authentication for GNU MediaGoblin.
|
||||
|
||||
This plugin can be enabled alongside :ref:`openid-chapter` and
|
||||
:ref:`persona-chapter`.
|
||||
|
@ -57,7 +57,7 @@ Examples: ``flatpages-about``, ``about-view``, ``contact-view``, ...
|
||||
|
||||
The value has two parts separated by commas:
|
||||
|
||||
1. **route path**: This is the url that this route matches.
|
||||
1. **route path**: This is the URL that this route matches.
|
||||
|
||||
Examples: ``/about``, ``/contact``, ``/pages/about``, ...
|
||||
|
||||
@ -74,7 +74,7 @@ The value has two parts separated by commas:
|
||||
|
||||
For example: ``'/siteadmin/{adminname:\w+}'``
|
||||
|
||||
2. **template**: The template to use for this url. The template is in
|
||||
2. **template**: The template to use for this URL. The template is in
|
||||
the flatpagesfile template directory, so you just need to specify
|
||||
the file name.
|
||||
|
||||
@ -139,10 +139,10 @@ template::
|
||||
Recipes
|
||||
=======
|
||||
|
||||
Url variables
|
||||
URL variables
|
||||
-------------
|
||||
|
||||
You can handle urls like ``/about/{name}`` and access the name that's
|
||||
You can handle URLs like ``/about/{name}`` and access the name that's
|
||||
passed in in the template.
|
||||
|
||||
Sample route::
|
||||
|
@ -14,16 +14,16 @@
|
||||
.. _ldap-plugin:
|
||||
|
||||
=============
|
||||
ldap plugin
|
||||
LDAP plugin
|
||||
=============
|
||||
|
||||
.. Warning::
|
||||
This plugin is not compatible with the other authentication plugins.
|
||||
|
||||
This plugin allow your GNU Mediagoblin instance to authenticate against an
|
||||
This plugin allow your GNU MediaGoblin instance to authenticate against an
|
||||
LDAP server.
|
||||
|
||||
Set up the ldap plugin
|
||||
Set up the LDAP plugin
|
||||
======================
|
||||
|
||||
1. Install the ``python-ldap`` package.
|
||||
@ -32,13 +32,13 @@ Set up the ldap plugin
|
||||
|
||||
[[mediagoblin.plugins.ldap]]
|
||||
|
||||
Configuring the ldap plugin
|
||||
Configuring the LDAP plugin
|
||||
===========================
|
||||
|
||||
This plugin allows you to use multiple ldap servers for authentication.
|
||||
This plugin allows you to use multiple LDAP servers for authentication.
|
||||
|
||||
In order to configure a server, add the following to you MediaGoblin .ini file
|
||||
under the ldap plugin::
|
||||
under the LDAP plugin::
|
||||
|
||||
[[mediagoblin.plugins.ldap]]
|
||||
[[[server1]]]
|
||||
@ -50,15 +50,15 @@ under the ldap plugin::
|
||||
Make any necessary changes to the above to work with your sever. Make sure
|
||||
``{username}`` is where the username should be in LDAP_USER_DN_TEMPLATE.
|
||||
|
||||
If you would like to fetch the users email from the ldap server upon account
|
||||
If you would like to fetch the users email from the LDAP server upon account
|
||||
registration, add ``LDAP_SEARCH_BASE = 'ou=users,dc=testathon,dc=net'`` and
|
||||
``EMAIL_SEARCH_FIELD = 'mail'`` under you server configuration in your
|
||||
MediaGoblin .ini file.
|
||||
|
||||
.. Warning::
|
||||
By default, this plugin provides no encryption when communicating with the
|
||||
ldap servers. If you would like to use an SSL connection, change
|
||||
LDAP_SERVER_URI to use ``ldaps://`` and whichever port you use. Default ldap
|
||||
LDAP servers. If you would like to use an SSL connection, change
|
||||
LDAP_SERVER_URI to use ``ldaps://`` and whichever port you use. Default LDAP
|
||||
port for SSL connections is 636. If you would like to use a TLS connection,
|
||||
add ``LDAP_START_TLS = 'true'`` under your server configuration in your
|
||||
MediaGoblin .ini file.
|
||||
|
@ -1,23 +1,23 @@
|
||||
.. _openid-chapter:
|
||||
|
||||
===================
|
||||
openid plugin
|
||||
OpenID plugin
|
||||
===================
|
||||
|
||||
The openid plugin allows user to login to your GNU Mediagoblin instance using
|
||||
their openid url.
|
||||
The OpenID plugin allows user to login to your GNU MediaGoblin instance using
|
||||
their OpenID URL.
|
||||
|
||||
This plugin can be enabled alongside :ref:`basic_auth-chapter` and
|
||||
:ref:`persona-chapter`.
|
||||
|
||||
.. note::
|
||||
When :ref:`basic_auth-chapter` is enabled alongside this openid plugin, and
|
||||
a user creates an account using their openid. If they would like to add a
|
||||
When :ref:`basic_auth-chapter` is enabled alongside this OpenID plugin, and
|
||||
a user creates an account using their OpenID. If they would like to add a
|
||||
password to their account, they can use the forgot password feature to do
|
||||
so.
|
||||
|
||||
|
||||
Set up the openid plugin
|
||||
Set up the OpenID plugin
|
||||
============================
|
||||
|
||||
1. Install the ``python-openid`` package.
|
||||
|
@ -2,7 +2,7 @@
|
||||
Trim whitespace plugin
|
||||
=======================
|
||||
|
||||
Mediagoblin templates are written with 80 char limit for better
|
||||
MediaGoblin templates are written with 80 char limit for better
|
||||
readability. However that means that the HTML output is very verbose
|
||||
containing *lots* of whitespace. This plugin inserts a middleware that
|
||||
filters out whitespace from the returned HTML in the ``Response()``
|
||||
|
Loading…
x
Reference in New Issue
Block a user