5 GNU MediaGoblin supports plugins that allow you to augment MediaGoblin's
8 This chapter covers discovering, installing, configuring and removing
15 MediaGoblin comes with core plugins. Core plugins are located in the
16 ``mediagoblin.plugins`` module of the MediaGoblin code. Because they
17 come with MediaGoblin, you don't have to install them, but you do have
18 to add them to your config file if you're interested in using them.
20 You can also write your own plugins and additionally find plugins
21 elsewhere on the Internet. Once you find a plugin you like, you need
22 to first install it, then add it to your configuration.
24 .. todo: how do you find plugins on the internet?
33 MediaGoblin core plugins don't need to be installed because they come
34 with MediaGoblin. Further, when you upgrade MediaGoblin, you will also
35 get updates to the core plugins.
41 If the plugin is available on the `Python Package Index
42 <http://pypi.python.org/pypi>`_, then you can install the plugin with pip::
44 pip install <plugin-name>
46 For example, if we wanted to install the plugin named
47 "mediagoblin-licenses" (which allows you to customize the licenses you
48 offer for your media), we would do::
50 pip install mediagoblin-licenses
54 If you're using a virtual environment, make sure to activate the
55 virtual environment before installing with pip. Otherwise the plugin
56 may get installed in a different environment than the one MediaGoblin
57 is installed in. Also make sure, you use e.g. pip-2.7 if your default
58 python (and thus pip) is python 3 (e.g. in Ubuntu).
60 Once you've installed the plugin software, you need to tell
61 MediaGoblin that this is a plugin you want MediaGoblin to use. To do
62 that, you edit the ``mediagoblin.ini`` file and add the plugin as a
63 subsection of the plugin section.
65 For example, say the "mediagoblin-licenses" plugin has the Python
66 package path ``mediagoblin_licenses``, then you would add ``mediagoblin_licenses`` to
67 the ``plugins`` section as a subsection::
71 [[mediagoblin_licenses]]
72 license_01=abbrev1, name1, http://url1
73 license_02=abbrev2, name1, http://url2
79 Configuration for a plugin goes in the subsection for that plugin. Core
80 plugins are documented in the administration guide. Other plugins
81 should come with documentation that tells you how to configure them.
83 Example 1: Core MediaGoblin plugin
85 If you wanted to use the core MediaGoblin flatpages plugin, the module
86 for that is ``mediagoblin.plugins.flatpagesfile`` and you would add
87 that to your ``.ini`` file like this::
91 [[mediagoblin.plugins.flatpagesfile]]
92 # configuration for flatpagesfile plugin here!
93 about-view = '/about', about.html
94 terms-view = '/terms', terms.html
96 (Want to know more about the flatpagesfile plugin? See
97 :ref:`flatpagesfile-chapter`)
99 Example 2: Plugin that is not a core MediaGoblin plugin
101 If you installed a hypothetical restrictfive plugin which is in the
102 module ``restrictfive``, your ``.ini`` file might look like this (with
103 comments making the bits clearer)::
108 # configuration for restrictfive here!
110 Check the plugin's documentation for what configuration options are
117 To remove a plugin, use ``pip uninstall``. For example::
119 pip uninstall mediagoblin-licenses
123 If you're using a virtual environment, make sure to activate the
124 virtual environment before uninstalling with pip. Otherwise the
125 plugin may get installed in a different environment.
134 Core plugins get upgraded automatically when you upgrade MediaGoblin
135 because they come with MediaGoblin.
141 For plugins that you install with pip, you can upgrade them with pip::
143 pip install -U <plugin-name>
145 The ``-U`` tells pip to upgrade the package.
148 Troubleshooting plugins
149 =======================
151 Sometimes plugins just don't work right. When you're having problems
152 with plugins, think about the following:
154 1. Check the log files.
156 Some plugins will log errors to the log files and you can use that
157 to diagnose the problem.
159 2. Try running MediaGoblin without that plugin.
161 It's easy to disable a plugin from MediaGoblin. Add a ``-`` to the
162 name in your config file.
164 For example, change::
166 [[mediagoblin.plugins.flatpagesfile]]
170 [[-mediagoblin.plugins.flatpagesfile]]
172 That'll prevent the ``mediagoblin.plugins.flatpagesfile`` plugin from
175 3. If it's a core plugin that comes with MediaGoblin, ask us for help!
177 If it's a plugin you got from somewhere else, ask them for help!