|
@@ -2704,7 +2704,7 @@ quit" > $INSTALL_DIR/batch.sql
|
2704
|
2704
|
echo 'install_redmatrix' >> $COMPLETION_FILE
|
2705
|
2705
|
}
|
2706
|
2706
|
|
2707
|
|
-function install_mediagoblin {
|
|
2707
|
+function install_mediagoblin_old {
|
2708
|
2708
|
if grep -Fxq "install_mediagoblin" $COMPLETION_FILE; then
|
2709
|
2709
|
return
|
2710
|
2710
|
fi
|
|
@@ -2909,6 +2909,159 @@ function install_mediagoblin {
|
2909
|
2909
|
echo 'install_mediagoblin' >> $COMPLETION_FILE
|
2910
|
2910
|
}
|
2911
|
2911
|
|
|
2912
|
+function install_mediagoblin {
|
|
2913
|
+ if grep -Fxq "install_mediagoblin" $COMPLETION_FILE; then
|
|
2914
|
+ return
|
|
2915
|
+ fi
|
|
2916
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" ]]; then
|
|
2917
|
+ return
|
|
2918
|
+ fi
|
|
2919
|
+ # if this is exclusively a writer setup
|
|
2920
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
|
|
2921
|
+ MEDIAGOBLIN_DOMAIN_NAME=$DOMAIN_NAME
|
|
2922
|
+ MEDIAGOBLIN_FREEDNS_SUBDOMAIN_CODE=$FREEDNS_SUBDOMAIN_CODE
|
|
2923
|
+ fi
|
|
2924
|
+ if [ ! $MEDIAGOBLIN_DOMAIN_NAME ]; then
|
|
2925
|
+ return
|
|
2926
|
+ fi
|
|
2927
|
+ apt-get -y --force-yes install git-core python python-dev python-lxml python-imaging python-virtualenv
|
|
2928
|
+ apt-get -y --force-yes install python-gst-1.0 libjpeg8-dev sqlite3 libapache2-mod-fcgid gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-libav python-numpy python-scipy libsndfile1-dev
|
|
2929
|
+ apt-get -y --force-yes install postgresql postgresql-client python-psycopg2
|
|
2930
|
+
|
|
2931
|
+ sudo -u postgres createuser -A -D mediagoblin
|
|
2932
|
+ sudo -u postgres createdb -E UNICODE -O mediagoblin mediagoblin
|
|
2933
|
+
|
|
2934
|
+ adduser --system mediagoblin
|
|
2935
|
+
|
|
2936
|
+ MEDIAGOBLIN_DOMAIN_ROOT="/srv/$MEDIAGOBLIN_DOMAIN_NAME"
|
|
2937
|
+ MEDIAGOBLIN_PATH="$MEDIAGOBLIN_DOMAIN_ROOT/mediagoblin"
|
|
2938
|
+
|
|
2939
|
+ if [ ! -d $MEDIAGOBLIN_DOMAIN_ROOT ]; then
|
|
2940
|
+ mkdir -p $MEDIAGOBLIN_DOMAIN_ROOT
|
|
2941
|
+ fi
|
|
2942
|
+ chown -hR mediagoblin: $MEDIAGOBLIN_DOMAIN_ROOT
|
|
2943
|
+ cd $MEDIAGOBLIN_DOMAIN_ROOT
|
|
2944
|
+ su -c "git clone git://gitorious.org/mediagoblin/mediagoblin.git $MEDIAGOBLIN_PATH" - mediagoblin
|
|
2945
|
+ su -c "cd $MEDIAGOBLIN_PATH/mediagoblin; git submodule init" - mediagoblin
|
|
2946
|
+ su -c "cd $MEDIAGOBLIN_PATH/mediagoblin; git submodule update" - mediagoblin
|
|
2947
|
+ su -c "cd $MEDIAGOBLIN_PATH/mediagoblin; virtualenv --system-site-packages ." - mediagoblin
|
|
2948
|
+ su -c "cd $MEDIAGOBLIN_PATH; ./bin/python setup.py develop" - mediagoblin
|
|
2949
|
+ su -c "cd $MEDIAGOBLIN_PATH/mediagoblin; ./bin/easy_install flup" - mediagoblin
|
|
2950
|
+ su -c "cp $MEDIAGOBLIN_PATH/mediagoblin.ini $MEDIAGOBLIN_PATH/mediagoblin_local.ini" - mediagoblin
|
|
2951
|
+ su -c "cp $MEDIAGOBLIN_PATH/paste.ini $MEDIAGOBLIN_PATH/paste_local.ini" - mediagoblin
|
|
2952
|
+
|
|
2953
|
+ # update the dynamic DNS
|
|
2954
|
+ if [ $MEDIAGOBLIN_FREEDNS_SUBDOMAIN_CODE ]; then
|
|
2955
|
+ if [[ $MEDIAGOBLIN_FREEDNS_SUBDOMAIN_CODE != $FREEDNS_SUBDOMAIN_CODE ]]; then
|
|
2956
|
+ if ! grep -q "$MEDIAGOBLIN_DOMAIN_NAME" /usr/bin/dynamicdns; then
|
|
2957
|
+ echo "# $MEDIAGOBLIN_DOMAIN_NAME" >> /usr/bin/dynamicdns
|
|
2958
|
+ echo "wget -O - https://freedns.afraid.org/dynamic/update.php?$MEDIAGOBLIN_FREEDNS_SUBDOMAIN_CODE== >> /dev/null 2>&1" >> /usr/bin/dynamicdns
|
|
2959
|
+ fi
|
|
2960
|
+ fi
|
|
2961
|
+ else
|
|
2962
|
+ echo 'WARNING: No freeDNS subdomain code given for mediagoblin. It is assumed that you are using some other dynamic DNS provider.'
|
|
2963
|
+ fi
|
|
2964
|
+
|
|
2965
|
+ # see https://wiki.mediagoblin.org/Deployment / uwsgi with configs
|
|
2966
|
+ apt-get -y --force-yes install uwsgi uwsgi-plugin-python nginx-full supervisor
|
|
2967
|
+
|
|
2968
|
+ echo 'server {' > /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2969
|
+ echo ' include /etc/nginx/mime.types;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2970
|
+ echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2971
|
+ echo ' autoindex off;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2972
|
+ echo ' default_type application/octet-stream;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2973
|
+ echo ' sendfile on;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2974
|
+ echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2975
|
+ echo ' # Gzip' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2976
|
+ echo ' gzip on;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2977
|
+ echo ' gzip_min_length 1024;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2978
|
+ echo ' gzip_buffers 4 32k;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2979
|
+ echo ' gzip_types text/plain text/html application/x-javascript text/javascript text/xml text/css;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2980
|
+ echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2981
|
+ echo " server_name $MEDIAGOBLIN_DOMAIN_NAME;" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2982
|
+ echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2983
|
+ echo ' access_log /var/log/nginx/mg.access.log;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2984
|
+ echo ' error_log /var/log/nginx/mg.error.log error;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2985
|
+ echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2986
|
+ echo ' #include global/common.conf;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2987
|
+ echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2988
|
+ echo ' client_max_body_size 100m;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2989
|
+ echo ' add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2990
|
+ echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2991
|
+ echo " root $MEDIAGOBLIN_PATH/;" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2992
|
+ echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2993
|
+ echo ' location /mgoblin_static/ {' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2994
|
+ echo " alias $MEDIAGOBLIN_PATH/mediagoblin/static/;" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2995
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2996
|
+ echo ' location /mgoblin_media/ {' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2997
|
+ echo " alias $MEDIAGOBL_PATH/media/public/;" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2998
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
2999
|
+ echo ' location /theme_static/ {' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
3000
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
3001
|
+ echo ' location /plugin_static/ {' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
3002
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
3003
|
+ echo ' location / {' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
3004
|
+ echo ' uwsgi_pass unix:///tmp/mg.uwsgi.sock;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
3005
|
+ echo ' uwsgi_param SCRIPT_NAME "/";' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
3006
|
+ echo ' include uwsgi_params;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
3007
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
3008
|
+ echo '}' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
|
3009
|
+
|
|
3010
|
+ echo 'uwsgi:' > /etc/uwsgi/apps-available/mg.yaml
|
|
3011
|
+ echo ' uid: mediagoblin' >> /etc/uwsgi/apps-available/mg.yaml
|
|
3012
|
+ echo ' gid: mediagoblin' >> /etc/uwsgi/apps-available/mg.yaml
|
|
3013
|
+ echo ' socket: /tmp/mg.uwsgi.sock' >> /etc/uwsgi/apps-available/mg.yaml
|
|
3014
|
+ echo ' chown-socket: www-data:www-data' >> /etc/uwsgi/apps-available/mg.yaml
|
|
3015
|
+ echo ' plugins: python' >> /etc/uwsgi/apps-available/mg.yaml
|
|
3016
|
+ echo " home: $MEDIAGOBLIN_PATH/" >> /etc/uwsgi/apps-available/mg.yaml
|
|
3017
|
+ echo " chdir: $MEDIAGOBLIN_PATH/" >> /etc/uwsgi/apps-available/mg.yaml
|
|
3018
|
+ echo " ini-paste: $MEDIAGOBLIN_PATH/paste_local.ini" >> /etc/uwsgi/apps-available/mg.yaml
|
|
3019
|
+
|
|
3020
|
+ echo '[program:celery]' > /etc/supervisor/conf.d/mediagoblin.conf
|
|
3021
|
+ echo "command=$MEDIAGOBLIN_PATH/bin/celery worker -l debug" >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3022
|
+ echo '' >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3023
|
+ echo '; Set PYTHONPATH to the directory containing celeryconfig.py' >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3024
|
+ echo "environment=PYTHONPATH='$MEDIAGOBLIN_PATH',MEDIAGOBLIN_CONFIG='$MEDIAGOBLIN_PATH/mediagoblin_local.ini',CELERY_CONFIG_MODULE='mediagoblin.init.celery.from_celery'" >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3025
|
+ echo '' >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3026
|
+ echo "directory=$MEDIAGOBLIN_PATH/" >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3027
|
+ echo 'user=mediagoblin' >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3028
|
+ echo 'numprocs=1' >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3029
|
+ echo '; uncomment below to enable logs saving' >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3030
|
+ echo ";stdout_logfile=/var/log/nginx/celeryd_stdout.log" >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3031
|
+ echo ";stderr_logfile=/var/log/nginx/celeryd_stderr.log" >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3032
|
+ echo 'autostart=true' >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3033
|
+ echo 'autorestart=false' >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3034
|
+ echo 'startsecs=10' >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3035
|
+ echo '' >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3036
|
+ echo '; Need to wait for currently executing tasks to finish at shutdown.' >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3037
|
+ echo '; Increase this if you have very long running tasks.' >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3038
|
+ echo 'stopwaitsecs = 600' >> /etc/supervisor/conf.d/mediagoblin.conf
|
|
3039
|
+
|
|
3040
|
+ ln -s /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME /etc/nginx/sites-enabled/
|
|
3041
|
+ ln -s /etc/uwsgi/apps-available/mg.yaml /etc/uwsgi/apps-enabled/
|
|
3042
|
+
|
|
3043
|
+ # change settings
|
|
3044
|
+ sed -i "s/notice@mediagoblin.example.org/$MY_USERNAME@$DOMAIN_NAME/g" /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin_local.ini
|
|
3045
|
+ sed -i 's/email_debug_mode = true/email_debug_mode = false/g' /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin_local.ini
|
|
3046
|
+ sed -i 's|# sql_engine = postgresql:///mediagoblin|sql_engine = postgresql:///mediagoblin|g' /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin_local.ini
|
|
3047
|
+
|
|
3048
|
+ # add extra media types
|
|
3049
|
+ if grep -q "media_types.audio" /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin_local.ini; then
|
|
3050
|
+ echo '[[mediagoblin.media_types.audio]]' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin_local.ini
|
|
3051
|
+ fi
|
|
3052
|
+ if grep -q "media_types.video" /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin_local.ini; then
|
|
3053
|
+ echo '[[mediagoblin.media_types.video]]' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin_local.ini
|
|
3054
|
+ fi
|
|
3055
|
+ if grep -q "media_types.stl" /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin_local.ini; then
|
|
3056
|
+ echo '[[mediagoblin.media_types.stl]]' >> /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin_local.ini
|
|
3057
|
+ fi
|
|
3058
|
+
|
|
3059
|
+ su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin; ./bin/pip install scikits.audiolab" - mediagoblin
|
|
3060
|
+ su -c "cd /srv/$MEDIAGOBLIN_DOMAIN_NAME/mediagoblin/mediagoblin; ./bin/gmg dbupdate" - mediagoblin
|
|
3061
|
+
|
|
3062
|
+ echo 'install_mediagoblin' >> $COMPLETION_FILE
|
|
3063
|
+}
|
|
3064
|
+
|
2912
|
3065
|
function install_final {
|
2913
|
3066
|
if grep -Fxq "install_final" $COMPLETION_FILE; then
|
2914
|
3067
|
return
|