aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJessica Tallon <jessica@megworld.co.uk>2014-09-19 14:15:11 +0100
committerJessica Tallon <jessica@megworld.co.uk>2014-09-29 09:04:04 +0100
commit11f0e2f89bade7f3d38665968adf478c3b039c5d (patch)
treecef9f674b3aec7266ee44287a34dd324fcfcf36c
parent98cbe47fb3243dc4d500a1ce1d93240f200e6f0c (diff)
downloadmediagoblin-11f0e2f89bade7f3d38665968adf478c3b039c5d.tar.lz
mediagoblin-11f0e2f89bade7f3d38665968adf478c3b039c5d.tar.xz
mediagoblin-11f0e2f89bade7f3d38665968adf478c3b039c5d.zip
Add documentation on changing data dir and Fix stylistic changes
-rw-r--r--docs/source/siteadmin/configuration.rst28
-rw-r--r--mediagoblin.ini5
-rw-r--r--mediagoblin/init/config.py38
3 files changed, 52 insertions, 19 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/mediagoblin.ini b/mediagoblin.ini
index de4d2c85..7899d7ca 100644
--- a/mediagoblin.ini
+++ b/mediagoblin.ini
@@ -5,6 +5,11 @@
# It defines types and defaults so it’s a good place to look for documentation
# or to find hidden options that we didn’t tell you about. :)
+# To chnange the directory you should make sure you change the
+# directory in paste.ini and/or your webserver configuration.
+#[DEFAULT]
+# data_basedir = "/path/to/data/directory"
+
[mediagoblin]
direct_remote_path = /mgoblin_static/
email_sender_address = "notice@mediagoblin.example.org"
diff --git a/mediagoblin/init/config.py b/mediagoblin/init/config.py
index 8d5577ac..a9189e8d 100644
--- a/mediagoblin/init/config.py
+++ b/mediagoblin/init/config.py
@@ -39,12 +39,12 @@ def _setup_defaults(config, config_path, extra_defaults=None):
config.setdefault('DEFAULT', {})
config['DEFAULT']['here'] = os.path.dirname(config_path)
config['DEFAULT']['__file__'] = config_path
-
+
for key, value in extra_defaults.items():
config['DEFAULT'].setdefault(key, value)
-def read_mediagoblin_config(config_path, config_spec=CONFIG_SPEC_PATH):
+def read_mediagoblin_config(config_path, config_spec_path=CONFIG_SPEC_PATH):
"""
Read a config object from config_path.
@@ -60,7 +60,7 @@ def read_mediagoblin_config(config_path, config_spec=CONFIG_SPEC_PATH):
Args:
- config_path: path to the config file
- - config_spec: config file that provides defaults and value types
+ - config_spec_path: config file that provides defaults and value types
for validation / conversion. Defaults to mediagoblin/config_spec.ini
Returns:
@@ -74,23 +74,23 @@ def read_mediagoblin_config(config_path, config_spec=CONFIG_SPEC_PATH):
# we can add their plugin specs to the general config_spec.
config = ConfigObj(
config_path,
- interpolation='ConfigParser')
+ interpolation="ConfigParser")
- plugins = config.get("plugins", {}).keys()
- plugin_configs = {}
+ # temporary bootstrap, just setup here and __file__... we'll do this again
+ _setup_defaults(config, config_path)
# Now load the main config spec
config_spec = ConfigObj(
- config_spec,
- encoding='UTF8', list_values=False, _inspec=True)
-
- # temporary bootstrap, just setup here and __file__... we'll do this again
- _setup_defaults(config, config_path)
+ config_spec_path,
+ encoding="UTF8", list_values=False, _inspec=True)
# Set up extra defaults that will be pushed into the rest of the
- # configs. This is a combined extrapolation of defaults based on
- mainconfig_defaults = copy.copy(config_spec.get('DEFAULT', {}))
- mainconfig_defaults.update(config.get('DEFAULT', {}))
+ # configs. This is a combined extrapolation of defaults based on
+ mainconfig_defaults = copy.copy(config_spec.get("DEFAULT", {}))
+ mainconfig_defaults.update(config["DEFAULT"])
+
+ plugins = config.get("plugins", {}).keys()
+ plugin_configs = {}
for plugin in plugins:
try:
@@ -98,10 +98,10 @@ def read_mediagoblin_config(config_path, config_spec=CONFIG_SPEC_PATH):
plugin, "config_spec.ini")
if not os.path.exists(plugin_config_spec_path):
continue
-
+
plugin_config_spec = ConfigObj(
plugin_config_spec_path,
- encoding='UTF8', list_values=False, _inspec=True)
+ encoding="UTF8", list_values=False, _inspec=True)
_setup_defaults(
plugin_config_spec, config_path, mainconfig_defaults)
@@ -114,16 +114,16 @@ def read_mediagoblin_config(config_path, config_spec=CONFIG_SPEC_PATH):
_log.warning(
"When setting up config section, could not import '%s'" %
plugin)
-
+
# append the plugin specific sections of the config spec
- config_spec['plugins'] = plugin_configs
+ config_spec["plugins"] = plugin_configs
_setup_defaults(config_spec, config_path, mainconfig_defaults)
config = ConfigObj(
config_path,
configspec=config_spec,
- interpolation='ConfigParser')
+ interpolation="ConfigParser")
_setup_defaults(config, config_path, mainconfig_defaults)