Mediagoblin: Difference between revisions
Antonizoon (talk | contribs) (→Music) |
Antonizoon (talk | contribs) (→Music) |
||
Line 102: | Line 102: | ||
https://issues.mediagoblin.org/ticket/5379 | https://issues.mediagoblin.org/ticket/5379 | ||
You're probably better off using something like Koel though if you don't need user contributions... https://koel.phanan.net/docs/#/ |
Latest revision as of 15:43, 9 July 2017
a quick and dirty guide, better docs and maybe puppet config later
Installation[edit]
- follow Deploying guide using python3, up to the FastCGI and Nginx part where you stop, because flup doesn't work on python3 and uWSGI is better.
- Set up uWSGI with Nginx as you see in this guide.
Make sure to install nginx-full
on Debian/Ubuntu, or nginx-all-modules
on CentOS. Then add the following as stated in this guide:
/etc/nginx/uWSGI_params
uwsgi_param QUERY_STRING $query_string; uwsgi_param REQUEST_METHOD $request_method; uwsgi_param CONTENT_TYPE $content_type; uwsgi_param CONTENT_LENGTH $content_length; uwsgi_param REQUEST_URI $request_uri; uwsgi_param PATH_INFO $document_uri; uwsgi_param DOCUMENT_ROOT $document_root; uwsgi_param SERVER_PROTOCOL $server_protocol; uwsgi_param REMOTE_ADDR $remote_addr; uwsgi_param REMOTE_PORT $remote_port; uwsgi_param SERVER_ADDR $server_addr; uwsgi_param SERVER_PORT $server_port; uwsgi_param SERVER_NAME $server_name;
Though actually, instead of the config seen in the guide, use this one (since the guide has a typo for uwsgi_pass, and puts the site under domain.com/mediagoblin/
, which is not what we want.)
/etc/nginx/conf.d/mediagoblin.conf
location / { include uWSGI_params; uwsgi_pass 127.0.0.1:26543; # our understanding vs nginx's handling of script_name vs # path_info don't match :) uwsgi_param SCRIPT_NAME ""; uwsgi_modifier1 30; }
uWSGI Emperor Config[edit]
It is a good idea to run the uWSGI apps as vassals to the uWSGI Emperor service. Install it with:
sudo yum install uwsgi uwsgi-plugin-python3
Then create a uwsgi config file for mediagoblin:
/etc/uwsgi.d/mediagoblin.ini
[uwsgi] plugin=python3 uid=mediagoblin gid=nginx socket=127.0.0.1:26543 virtualenv=/srv/www/mediagoblin chdir=/srv/www/mediagoblin ini-paste=/srv/www/mediagoblin/paste.ini logto=/srv/www/mediagoblin/mg.log
Most importantly, chown it to mediagoblin:nginx so that uwsgi will run the service with those permissions.
sudo chown mediagoblin:nginx /etc/uwsgi.d/mediagoblin.ini
Finally, run the uwsgi Emperor service.
sudo systemctl start uwsgi
If sudo systemctl restart uwsgi
shows you that [emperor] vassal mediagoblin.ini is ready to accept requests
, then enable the uwsgi service on boot:
sudo systemctl enable uwsgi
Notes[edit]
- If you have SELinux, see this guide to make it allow uWSGI sockets.
Celery Systemd Configs[edit]
You will want to seperate out the Celery process from the server, now that mediagoblin's Paste server is running under a uWSGI socket, otherwise uploads won't be processed.
You can skip the paste systemd daemon setup, since having the uwsgi service takes care of that.
http://mediagoblin.readthedocs.io/en/latest/siteadmin/configuration.html
Redis Broker for Celery[edit]
A super easy mod is to add a redis broker, which significantly helps speed the encoding process.
http://docs.celeryproject.org/en/latest/getting-started/brokers/redis.html
Media Formats[edit]
ASCII[edit]
Music[edit]
install the good, bad, and ugly gstreamer plugins from epel. also gstreamer-python, and libsndfile-devel
https://wiki.centos.org/TipsAndTricks/MultimediaOnCentOS7
Then, install a specific version of numpy and such as stated in this ticket:
https://issues.mediagoblin.org/ticket/5379
You're probably better off using something like Koel though if you don't need user contributions... https://koel.phanan.net/docs/#/