浏览代码

Another mediagoblin attempt

Bob Mottram 9 年前
父节点
当前提交
fd7a82a460
共有 1 个文件被更改,包括 157 次插入126 次删除
  1. 157
    126
      src/freedombone

+ 157
- 126
src/freedombone 查看文件

@@ -191,7 +191,8 @@ PRIVATE_MAILING_LIST=
191 191
 # Domain name for mediagoblin installation
192 192
 MEDIAGOBLIN_DOMAIN_NAME=
193 193
 MEDIAGOBLIN_CODE=
194
-MEDIAGOBLIN_REPO="https://gitorious.org/mediagoblin/mediagoblin.git"
194
+MEDIAGOBLIN_REPO="git://git.savannah.gnu.org/mediagoblin.git"
195
+MEDIAGOBLIN_REPO_COMMIT='stable'
195 196
 MEDIAGOBLIN_ADMIN_PASSWORD=
196 197
 
197 198
 # Domain name for microblog installation
@@ -9565,10 +9566,6 @@ function install_dlna_server {
9565 9566
 }
9566 9567
 
9567 9568
 function install_mediagoblin {
9568
-    return
9569
-    if grep -Fxq "install_mediagoblin" $COMPLETION_FILE; then
9570
-        return
9571
-    fi
9572 9569
     if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
9573 9570
         return
9574 9571
     fi
@@ -9576,148 +9573,182 @@ function install_mediagoblin {
9576 9573
         return
9577 9574
     fi
9578 9575
 
9579
-    apt-get -y install git-core python python-dev python-lxml python-imaging python-virtualenv
9580
-    apt-get -y install postgresql postgresql-client python-psycopg2
9581
-    apt-get -y install python-gst-1.0 libjpeg62-turbo-dev gstreamer1.0-plugins-base python-gobject
9582
-    apt-get -y install gstreamer1.0-plugins-good gstreamer1.0-libav libav-tools gstreamer0.10-tools
9583
-    apt-get -y install python-numpy python-scipy libsndfile1-dev python-gst0.10-dev
9584
-    apt-get -y install gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer1.0-tools
9585
-    su -c "createuser -A -D mediagoblin" - postgres
9586
-    su -c "createdb -E UNICODE -O mediagoblin mediagoblin" - postgres
9587
-    adduser --disabled-login --gecos 'Mediagoblin' mediagoblin
9588
-
9589
-    MEDIAGOBLIN_DOMAIN_ROOT="/home/mediagoblin"
9590
-    MEDIAGOBLIN_PATH="$MEDIAGOBLIN_DOMAIN_ROOT/mediagoblin"
9591
-    MEDIAGOBLIN_PATH_BIN="$MEDIAGOBLIN_PATH/mediagoblin/bin"
9592
-    mkdir -p $MEDIAGOBLIN_DOMAIN_ROOT
9593
-    chown -hR mediagoblin: $MEDIAGOBLIN_DOMAIN_ROOT
9594
-    su -c "cd $MEDIAGOBLIN_DOMAIN_ROOT; git clone $MEDIAGOBLIN_REPO" - mediagoblin
9595
-    cd $MEDIAGOBLIN_DOMAIN_ROOT
9596
-    git checkout -q v0.7.1
9597
-    su -c "cd $MEDIAGOBLIN_PATH; git submodule init" - mediagoblin
9598
-    su -c "cd $MEDIAGOBLIN_PATH; git submodule update" - mediagoblin
9599
-    su -c "cd $MEDIAGOBLIN_PATH; (virtualenv --python=python2 --system-site-packages . || cd $MEDIAGOBLIN_PATH; virtualenv --python=python2 .) && ./bin/python setup.py develop" - mediagoblin
9600
-    su -c "cd $MEDIAGOBLIN_PATH; ./bin/easy_install flup" - mediagoblin
9601
-    if [ -f $MEDIAGOBLIN_PATH/lib/python2.7/no-global-site-packages.txt ]; then
9602
-        virtualenv deactivate
9603
-        rm -f $MEDIAGOBLIN_PATH/lib/python2.7/no-global-site-packages.txt
9604
-        su -c "cd $MEDIAGOBLIN_PATH; source bin/activate" - mediagoblin
9605
-    fi
9606
-    if [ -f $MEDIAGOBLIN_PATH/mediagoblin.example.ini ]; then
9607
-        # this is for versions > 0.7.1
9608
-        su -c "cp $MEDIAGOBLIN_PATH/mediagoblin.example.ini $MEDIAGOBLIN_PATH/mediagoblin_local.ini" - mediagoblin
9609
-        sed -i 's|# data_basedir.*|data_basedir = "/var/lib/mediagoblin"|g' $MEDIAGOBLIN_PATH/mediagoblin_local.ini
9610
-    else
9611
-        su -c "cp $MEDIAGOBLIN_PATH/mediagoblin.ini $MEDIAGOBLIN_PATH/mediagoblin_local.ini" - mediagoblin
9612
-    fi
9613
-    sed -i 's|# sql_engine.*|sql_engine = postgresql:///mediagoblin|g' $MEDIAGOBLIN_PATH/mediagoblin_local.ini
9614
-    sed -i "s/email_sender_address.*/email_sender_address = \"$MY_EMAIL_ADDRESS\"/g" $MEDIAGOBLIN_PATH/mediagoblin_local.ini
9615
-    sed -i 's|email_debug_mode.*|email_debug_mode = false|g' $MEDIAGOBLIN_PATH/mediagoblin_local.ini
9616
-
9617
-    # add extra media types
9618
-    if ! grep -q "media_types.stl" $MEDIAGOBLIN_PATH/mediagoblin_local.ini; then
9619
-        echo '[[mediagoblin.media_types.stl]]' >> $MEDIAGOBLIN_PATH/mediagoblin_local.ini
9620
-    fi
9621
-    if ! grep -q "media_types.audio" $MEDIAGOBLIN_PATH/mediagoblin_local.ini; then
9622
-        echo '[[mediagoblin.media_types.audio]]' >> $MEDIAGOBLIN_PATH/mediagoblin_local.ini
9623
-    fi
9624
-    if ! grep -q "media_types.video" $MEDIAGOBLIN_PATH/mediagoblin_local.ini; then
9625
-        echo '[[mediagoblin.media_types.video]]' >> $MEDIAGOBLIN_PATH/mediagoblin_local.ini
9626
-    fi
9627
-
9628
-    #su -c 'cd $MEDIAGOBLIN_PATH; ./bin/pip install scikits.audiolab' - mediagoblin
9629
-
9630
-    #su -c "cd $MEDIAGOBLIN_PATH; git submodule update && ./bin/python setup.py develop --upgrade && ./bin/gmg dbupdate" - mediagoblin
9631
-    su -c "cd $MEDIAGOBLIN_PATH; ./bin/gmg dbupdate" - mediagoblin
9632
-
9633
-
9634
-    echo 'server {' > /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9635
-    echo '    listen 80;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9636
-    echo "    server_name $MEDIAGOBLIN_DOMAIN_NAME;" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9637
-    echo '    access_log off;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9638
-    echo "    error_log /var/log/nginx/${MEDIAGOBLIN_DOMAIN_NAME}_error.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9639
-    nginx_limits $MEDIAGOBLIN_DOMAIN_NAME
9640
-    echo '    location / {' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9641
-    echo '        proxy_pass http://localhost:6543;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9642
-    echo '    }' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9643
-    echo '    location ^~ /auth/ {' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9644
-    echo '        rewrite ^ https://$server_name$request_uri?;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9645
-    echo '    }' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9646
-    echo '    location ^~ /u/ {' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9647
-    echo '        rewrite ^ https://$server_name$request_uri?;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9648
-    echo '    }' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9649
-    echo '    location ^~ /submit/ {' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9650
-    echo '        rewrite ^ https://$server_name$request_uri?;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9651
-    echo '    }' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9652
-    echo '}' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9653
-    echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9654
-    echo 'server {' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9655
-    echo '    listen 443 ssl;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9656
-    echo "    root /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9657
-    echo "    server_name $MEDIAGOBLIN_DOMAIN_NAME;" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9658
-    echo '    access_log off;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9659
-    echo "    error_log /var/log/nginx/${MEDIAGOBLIN_DOMAIN_NAME}_error.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9660
-    echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9661
-    nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '10G'
9662
-    nginx_ssl $MEDIAGOBLIN_DOMAIN_NAME
9663
-    nginx_disable_sniffing $MEDIAGOBLIN_DOMAIN_NAME
9664
-    echo '    add_header Strict-Transport-Security max-age=0;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9665
-    echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9666
-    echo '    location / {' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9667
-    echo '        proxy_pass http://localhost:6543;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9668
-    echo '    }' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9669
-    echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9670
-    echo '    fastcgi_buffers 64 4K;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9671
-    echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9672
-    echo '    error_page 403 /core/templates/403.php;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9673
-    echo '    error_page 404 /core/templates/404.php;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9674
-    echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9675
-    echo '    location = /robots.txt {' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9676
-    echo '        allow all;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9677
-    echo '        log_not_found off;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9678
-    echo '        access_log off;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9679
-    echo '    }' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9680
-    echo '}' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9576
+    MEDIAGOBLIN_WORKING_DIRECTORY=/var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
9681 9577
 
9682
-    if [ ! -f /etc/ssl/certs/$MEDIAGOBLIN_DOMAIN_NAME.dhparam ]; then
9683
-        if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
9684
-            ${PROJECT_NAME}-addcert -h $MEDIAGOBLIN_DOMAIN_NAME --dhkey $DH_KEYLENGTH
9685
-        else
9686
-            ${PROJECT_NAME}-addcert -e $MEDIAGOBLIN_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
9687
-        fi
9688
-        check_certificates $MEDIAGOBLIN_DOMAIN_NAME
9578
+    # update to a new commit if needed
9579
+    set_repo_commit $MEDIAGOBLIN_WORKING_DIRECTORY "Mediagoblin commit" "$MEDIAGOBLIN_COMMIT" $MEDIAGOBLIN_REPO
9580
+    if [ -d $MEDIAGOBLIN_WORKING_DIRECTORY ]; then
9581
+        chown -hR mediagoblin:www-data $MEDIAGOBLIN_WORKING_DIRECTORY
9689 9582
     fi
9690 9583
 
9691
-    nginx_ensite $MEDIAGOBLIN_DOMAIN_NAME
9692
-    systemctl restart php5-fpm
9693
-    systemctl restart nginx
9694
-    /usr/sbin/nginx -s reload
9584
+    if grep -Fxq "install_mediagoblin" $COMPLETION_FILE; then
9585
+        return
9586
+    fi
9695 9587
 
9696
-    # update the dynamic DNS
9697
-    CURRENT_DDNS_DOMAIN=$MEDIAGOBLIN_DOMAIN_NAME
9698
-    add_ddns_domain
9588
+    apt-get -y install git-core python python-dev python-lxml python-imaging python-virtualenv npm nodejs-legacy automake
9589
+
9590
+    #apt-get -y install postgresql postgresql-client python-psycopg2
9591
+    #apt-get -y install python-gst-1.0 libjpeg62-turbo-dev gstreamer1.0-plugins-base python-gobject
9592
+    #apt-get -y install gstreamer1.0-plugins-good gstreamer1.0-libav libav-tools gstreamer0.10-tools
9593
+    #apt-get -y install python-numpy python-scipy libsndfile1-dev python-gst0.10-dev
9594
+    #apt-get -y install gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer1.0-tools
9595
+    #su -c "createuser -A -D mediagoblin" - postgres
9596
+    #su -c "createdb -E UNICODE -O mediagoblin mediagoblin" - postgres
9597
+
9598
+    useradd -c "GNU MediaGoblin system account" -d /var/lib/mediagoblin -m -r -g www-data mediagoblin
9599
+    groupadd mediagoblin
9600
+    usermod --append -G mediagoblin mediagoblin
9601
+
9602
+    if [ ! -d $MEDIAGOBLIN_WORKING_DIRECTORY ]; then
9603
+        mkdir -p $MEDIAGOBLIN_WORKING_DIRECTORY
9604
+    fi  
9699 9605
 
9606
+    git_clone $MEDIAGOBLIN_REPO $MEDIAGOBLIN_WORKING_DIRECTORY
9607
+    cd $MEDIAGOBLIN_WORKING_DIRECTORY
9608
+    git checkout $MEDIAGOBLIN_COMMIT -b $MEDIAGOBLIN_COMMIT
9609
+
9610
+    ./bootstrap.sh
9611
+    if [ ! "$?" = "0" ]; then
9612
+        exit 278826
9613
+    fi
9614
+    
9615
+    ./configure --with-python3 --without-virtualenv
9616
+    if [ ! "$?" = "0" ]; then
9617
+        exit 462826
9618
+    fi
9619
+    
9620
+    make
9621
+    if [ ! "$?" = "0" ]; then
9622
+        exit 738229
9623
+    fi
9624
+    
9625
+    if [ ! -d $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev ]; then
9626
+        mkdir $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev
9627
+    fi
9628
+    chmod 750 $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev
9629
+    easy_install flup
9630
+    if [ ! "$?" = "0" ]; then
9631
+        exit 83527
9632
+    fi
9633
+    if [ ! -f $MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin.ini ]; then
9634
+        echo $'mediagoblin.ini not found'
9635
+        exit 737529
9636
+    fi
9637
+    if [ ! -f $MEDIAGOBLIN_WORKING_DIRECTORY/paste.ini ]; then
9638
+        echo $'paste.ini not found'
9639
+        exit 52762
9640
+    fi
9641
+    
9642
+    cp -av mediagoblin.ini mediagoblin_local.ini
9643
+    cp -av paste.ini paste_local.ini
9644
+
9645
+    # TODO configure ini files
9646
+
9647
+    chown -hR mediagoblin:www-data $MEDIAGOBLIN_WORKING_DIRECTORY
9648
+    
9700 9649
     # init with systemd
9701 9650
     echo '[Unit]' > /etc/systemd/system/mediagoblin.service
9702 9651
     echo 'Description=Mediagoblin (Media Server)' >> /etc/systemd/system/mediagoblin.service
9703 9652
     echo 'After=syslog.target' >> /etc/systemd/system/mediagoblin.service
9704 9653
     echo 'After=network.target' >> /etc/systemd/system/mediagoblin.service
9705
-    echo 'After=postgresql.service' >> /etc/systemd/system/mediagoblin.service
9654
+    #echo 'After=postgresql.service' >> /etc/systemd/system/mediagoblin.service
9706 9655
     echo '' >> /etc/systemd/system/mediagoblin.service
9707 9656
     echo '[Service]' >> /etc/systemd/system/mediagoblin.service
9708 9657
     echo 'Type=simple' >> /etc/systemd/system/mediagoblin.service
9709 9658
     echo 'User=mediagoblin' >> /etc/systemd/system/mediagoblin.service
9710 9659
     echo 'Group=mediagoblin' >> /etc/systemd/system/mediagoblin.service
9711
-    echo 'WorkingDirectory=/home/mediagoblin/mediagoblin' >> /etc/systemd/system/mediagoblin.service
9712
-    echo 'ExecStart=/home/mediagoblin/mediagoblin/lazyserver.sh --server-name=broadcast' >> /etc/systemd/system/mediagoblin.service
9660
+    echo "WorkingDirectory=$MEDIAGOBLIN_WORKING_DIRECTORY" >> /etc/systemd/system/mediagoblin.service
9661
+    echo "ExecStart=$MEDIAGOBLIN_WORKING_DIRECTORY/lazyserver.sh  --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543" >> /etc/systemd/system/mediagoblin.service
9713 9662
     echo 'Restart=always' >> /etc/systemd/system/mediagoblin.service
9714
-    echo 'Environment="USER=mediagoblin","HOME=/home/mediagoblin"' >> /etc/systemd/system/mediagoblin.service
9663
+    echo 'Environment="USER=mediagoblin","HOME=/var/lib/mediagoblin"' >> /etc/systemd/system/mediagoblin.service
9715 9664
     echo '' >> /etc/systemd/system/mediagoblin.service
9716 9665
     echo '[Install]' >> /etc/systemd/system/mediagoblin.service
9717 9666
     echo 'WantedBy=multi-user.target' >> /etc/systemd/system/mediagoblin.service
9667
+    systemctl daemon-reload
9718 9668
     systemctl enable mediagoblin
9719
-    systemctl restart mediagoblin
9669
+    systemctl start mediagoblin
9670
+    
9671
+    # web config
9672
+    MEDIAGOBLIN_VIRTUAL_HOST=/etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9673
+    echo 'server {' > $MEDIAGOBLIN_VIRTUAL_HOST
9674
+    echo '  listen 443 ssl;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9675
+    echo '  #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9676
+    echo '  # Stock useful config options, but ignore them :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
9677
+    echo '  #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9678
+    echo '  include /etc/nginx/mime.types;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9679
+    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9680
+    echo '  autoindex off;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9681
+    echo '  default_type  application/octet-stream;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9682
+    echo '  sendfile on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9683
+    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9684
+    nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
9685
+    nginx_ssl $MEDIAGOBLIN_DOMAIN_NAME
9686
+    nginx_disable_sniffing $MEDIAGOBLIN_DOMAIN_NAME
9687
+    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9688
+    echo '  # Gzip' >> $MEDIAGOBLIN_VIRTUAL_HOST
9689
+    echo '  gzip on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9690
+    echo '  gzip_min_length 1024;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9691
+    echo '  gzip_buffers 4 32k;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9692
+    echo '  gzip_types text/plain application/x-javascript text/javascript text/xml text/css;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9693
+    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9694
+    echo '  #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9695
+    echo '  # Mounting MediaGoblin stuff' >> $MEDIAGOBLIN_VIRTUAL_HOST
9696
+    echo '  # This is the section you should read' >> $MEDIAGOBLIN_VIRTUAL_HOST
9697
+    echo '  #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9698
+    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9699
+    echo "  server_name $MEDIAGOBLIN_DOMAIN_NAME;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9700
+    echo '  access_log /var/log/nginx/mediagoblin.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9701
+    echo '  error_log /var/log/nginx/mediagoblin.error.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9702
+    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9703
+    echo '  # MediaGoblins stock static files: CSS, JS, etc.' >> $MEDIAGOBLIN_VIRTUAL_HOST
9704
+    echo '  location /mgoblin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9705
+    echo "    alias $MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin/static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9706
+    echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9707
+    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9708
+    echo '  # Instance specific media:' >> $MEDIAGOBLIN_VIRTUAL_HOST
9709
+    echo '  location /mgoblin_media/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9710
+    echo "    alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/media/public/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9711
+    echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9712
+    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9713
+    echo '  # Theme static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
9714
+    echo '  location /theme_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9715
+    echo "    alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/theme_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9716
+    echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9717
+    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9718
+    echo '  # Plugin static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
9719
+    echo '  location /plugin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9720
+    echo "    alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/plugin_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9721
+    echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9722
+    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9723
+    echo '  # Mounting MediaGoblin itself via FastCGI.' >> $MEDIAGOBLIN_VIRTUAL_HOST
9724
+    echo '  location / {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9725
+    echo '    fastcgi_pass 127.0.0.1:26543;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9726
+    echo '    include /etc/nginx/fastcgi_params;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9727
+    echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
9728
+    echo '    # our understanding vs nginxs handling of script_name vs' >> $MEDIAGOBLIN_VIRTUAL_HOST
9729
+    echo '      # path_info dont match :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
9730
+    echo '    fastcgi_param PATH_INFO $fastcgi_script_name;' >> $MEDIAGOBLIN_VIRTUAL_HOST
9731
+    echo '    fastcgi_param SCRIPT_NAME "";' >> $MEDIAGOBLIN_VIRTUAL_HOST
9732
+    echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9733
+    echo '}' >> $MEDIAGOBLIN_VIRTUAL_HOST
9720 9734
 
9735
+    if [ ! -f /etc/ssl/certs/$MEDIAGOBLIN_DOMAIN_NAME.dhparam ]; then
9736
+        if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
9737
+            ${PROJECT_NAME}-addcert -h $MEDIAGOBLIN_DOMAIN_NAME --dhkey $DH_KEYLENGTH
9738
+        else
9739
+            ${PROJECT_NAME}-addcert -e $MEDIAGOBLIN_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
9740
+        fi
9741
+        check_certificates $MEDIAGOBLIN_DOMAIN_NAME
9742
+    fi
9743
+
9744
+    nginx_ensite $MEDIAGOBLIN_DOMAIN_NAME
9745
+    systemctl restart php5-fpm
9746
+    systemctl restart nginx
9747
+
9748
+    # update the dynamic DNS
9749
+    CURRENT_DDNS_DOMAIN=$MEDIAGOBLIN_DOMAIN_NAME
9750
+    add_ddns_domain
9751
+    
9721 9752
     echo 'install_mediagoblin' >> $COMPLETION_FILE
9722 9753
 }
9723 9754