|
@@ -3289,8 +3289,8 @@ function get_mariadb_password {
|
3289
|
3289
|
|
3290
|
3290
|
function get_mariadb_media_server_admin_password {
|
3291
|
3291
|
if [ -f /home/$MY_USERNAME/README ]; then
|
3292
|
|
- if grep -q "MariaDB media server admin password" /home/$MY_USERNAME/README; then
|
3293
|
|
- MEDIA_SERVER_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "MariaDB media server admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
|
3292
|
+ if grep -q "Media server administrator password" /home/$MY_USERNAME/README; then
|
|
3293
|
+ MEDIA_SERVER_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Media server administrator password" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
3294
|
3294
|
fi
|
3295
|
3295
|
fi
|
3296
|
3296
|
}
|
|
@@ -5914,7 +5914,6 @@ function create_public_mailing_list {
|
5914
|
5914
|
if ! grep -q "! +mlmmj_domains" /etc/exim4/conf.d/router/200_exim4-config_primary; then
|
5915
|
5915
|
sed -i 's/domains = ! +local_domains/domains = ! +mlmmj_domains : ! +local_domains/g' /etc/exim4/conf.d/router/200_exim4-config_primary
|
5916
|
5916
|
fi
|
5917
|
|
- newaliases
|
5918
|
5917
|
update-exim4.conf.template -r
|
5919
|
5918
|
update-exim4.conf
|
5920
|
5919
|
systemctl restart exim4
|
|
@@ -8626,7 +8625,6 @@ function install_gnu_social {
|
8626
|
8625
|
if ! grep -q "/var/www/$MICROBLOG_DOMAIN_NAME/htdocs/scripts/maildaemon.php" /etc/aliases; then
|
8627
|
8626
|
echo "*: /var/www/$MICROBLOG_DOMAIN_NAME/htdocs/scripts/maildaemon.php" >> /etc/aliases
|
8628
|
8627
|
fi
|
8629
|
|
- newaliases
|
8630
|
8628
|
|
8631
|
8629
|
add_ddns_domain $MICROBLOG_DOMAIN_NAME
|
8632
|
8630
|
|
|
@@ -9913,9 +9911,10 @@ function install_media_server {
|
9913
|
9911
|
|
9914
|
9912
|
apt-get -y install git-core python python-dev python-lxml python-pil
|
9915
|
9913
|
apt-get -y install python-virtualenv npm nodejs-legacy automake
|
9916
|
|
- apt-get -y install fcgiwrap
|
9917
|
|
- apt-get -y install libjpeg-dev zlib1g-dev libfreetype6-dev libmysqlclient-dev
|
|
9914
|
+ apt-get -y install fcgiwrap libmysqlclient-dev
|
|
9915
|
+ apt-get -y install libjpeg-dev zlib1g-dev libfreetype6-dev
|
9918
|
9916
|
apt-get -y install python-setuptools python-virtualenv
|
|
9917
|
+ apt-get -y install uwsgi uwsgi-plugin-python
|
9919
|
9918
|
|
9920
|
9919
|
# create directory
|
9921
|
9920
|
if [ ! -d $MEDIA_SERVER_BASE_DIRECTORY ]; then
|
|
@@ -9935,7 +9934,7 @@ function install_media_server {
|
9935
|
9934
|
fi
|
9936
|
9935
|
fi
|
9937
|
9936
|
|
9938
|
|
- create_database mediadrop "$MEDIA_SERVER_ADMIN_PASSWORD" $MY_USERNAME
|
|
9937
|
+ create_database mediadrop "$MEDIA_SERVER_ADMIN_PASSWORD" mediadropadmin
|
9939
|
9938
|
|
9940
|
9939
|
# create python environment
|
9941
|
9940
|
cd $MEDIA_SERVER_BASE_DIRECTORY
|
|
@@ -9952,6 +9951,7 @@ function install_media_server {
|
9952
|
9951
|
git checkout $MEDIA_SERVER_COMMIT -b $MEDIA_SERVER_COMMIT
|
9953
|
9952
|
python setup.py develop
|
9954
|
9953
|
|
|
9954
|
+ # create a configuration
|
9955
|
9955
|
cd $MEDIA_SERVER_BASE_DIRECTORY
|
9956
|
9956
|
paster make-config MediaDrop deployment.ini
|
9957
|
9957
|
if [ ! -f deployment.ini ]; then
|
|
@@ -9960,17 +9960,175 @@ function install_media_server {
|
9960
|
9960
|
fi
|
9961
|
9961
|
|
9962
|
9962
|
# database authentication
|
9963
|
|
- sed -i "sqlalchemy.url = mysql://mediadrop_user:mysecretpassword@localhost/mediadrop?charset=utf8&use_unicode=0" deployment.ini
|
|
9963
|
+ sed -i "sqlalchemy.url = mysql://mediadrop:${MEDIA_SERVER_ADMIN_PASSWORD}@localhost/mediadrop?charset=utf8&use_unicode=0" deployment.ini
|
|
9964
|
+
|
|
9965
|
+ # faster file serve
|
|
9966
|
+ sed -i 's|files_serve_method.*|files_serve_method = nginx_redirect|g' deployment.ini
|
9964
|
9967
|
|
9965
|
9968
|
# initial data
|
9966
|
9969
|
cp -a mediadrop/data .
|
9967
|
9970
|
paster setup-app deployment.ini
|
9968
|
9971
|
|
|
9972
|
+ # add uwsgi to deployment.ini
|
|
9973
|
+ echo '' >> deployment.ini
|
|
9974
|
+ echo '[uwsgi]' >> deployment.ini
|
|
9975
|
+ echo 'socket = /tmp/uwsgi-mediadrop.soc' >> deployment.ini
|
|
9976
|
+ echo 'master = true' >> deployment.ini
|
|
9977
|
+ echo 'processes = 5' >> deployment.ini
|
|
9978
|
+ echo "home = $MEDIA_SERVER_BASE_DIRECTORY" >> deployment.ini
|
|
9979
|
+ echo 'daemonize = /var/log/uwsgi.log' >> deployment.ini
|
|
9980
|
+
|
9969
|
9981
|
# enable full test search
|
9970
|
|
- mysql -u root mediadrop < mediadrop/setup_triggers.sql
|
|
9982
|
+ mysql -u mediadrop --password="$MEDIA_SERVER_ADMIN_PASSWORD" mediadrop < mediadrop/setup_triggers.sql
|
|
9983
|
+
|
|
9984
|
+ chown -R mediadrop:mediadrop $MEDIA_SERVER_BASE_DIRECTORY
|
|
9985
|
+
|
|
9986
|
+ # script to be called by the daemon
|
|
9987
|
+ echo '#!/bin/bash' > /usr/bin/start-mediadrop
|
|
9988
|
+ echo "cd ${MEDIA_SERVER_WORKING_DIRECTORY}" >> /usr/bin/start-mediadrop
|
|
9989
|
+ echo "uwsgi --ini-paste deployment.ini &" >> /usr/bin/start-mediadrop
|
|
9990
|
+ echo "paster serve --reload deployment.ini" >> /usr/bin/start-mediadrop
|
|
9991
|
+
|
|
9992
|
+ # create daemon
|
|
9993
|
+ echo '[Unit]' > /etc/systemd/system/mediadrop.service
|
|
9994
|
+ echo 'Description=Mediadrop - media playing on the web' >> /etc/systemd/system/mediadrop.service
|
|
9995
|
+ echo 'After=network.target' >> /etc/systemd/system/mediadrop.service
|
|
9996
|
+ echo '' >> /etc/systemd/system/mediadrop.service
|
|
9997
|
+ echo '[Service]' >> /etc/systemd/system/mediadrop.service
|
|
9998
|
+ echo 'User=mediadrop' >> /etc/systemd/system/mediadrop.service
|
|
9999
|
+ echo "Environment='USER=mediadrop'" >> /etc/systemd/system/mediadrop.service
|
|
10000
|
+ echo "WorkingDirectory=${MEDIA_SERVER_WORKING_DIRECTORY}" >> /etc/systemd/system/searx.service
|
|
10001
|
+ echo 'ExecStart=/usr/bin/start-mediadrop' >> /etc/systemd/system/mediadrop.service
|
|
10002
|
+ echo 'Restart=on-failure' >> /etc/systemd/system/mediadrop.service
|
|
10003
|
+ echo 'SuccessExitStatus=3 4' >> /etc/systemd/system/mediadrop.service
|
|
10004
|
+ echo 'RestartForceExitStatus=3 4' >> /etc/systemd/system/mediadrop.service
|
|
10005
|
+ echo '' >> /etc/systemd/system/mediadrop.service
|
|
10006
|
+ echo '[Install]' >> /etc/systemd/system/mediadrop.service
|
|
10007
|
+ echo 'WantedBy=multi-user.target' >> /etc/systemd/system/mediadrop.service
|
|
10008
|
+ systemctl enable mediadrop
|
|
10009
|
+ systemctl daemon-reload
|
|
10010
|
+ systemctl start mediadrop
|
9971
|
10011
|
|
9972
|
|
- # launch
|
9973
|
|
- paster serve --reload deployment.ini
|
|
10012
|
+ # onion address
|
|
10013
|
+ MEDIA_SERVER_ONION_HOSTNAME=$(add_onion_service mediadrop 80 ${MEDIA_SERVER_ONION_PORT})
|
|
10014
|
+ if ! grep -q "Media server onion domain" $COMPLETION_FILE; then
|
|
10015
|
+ echo "Media server onion domain:${MEDIA_SERVER_ONION_HOSTNAME}" >> $COMPLETION_FILE
|
|
10016
|
+ else
|
|
10017
|
+ sed -i "s|Media server onion domain.*|Media server onion domain:${MEDIA_SERVER_ONION_HOSTNAME}|g" $COMPLETION_FILE
|
|
10018
|
+ fi
|
|
10019
|
+ if [[ $MEDIA_SERVER_ONION_HOSTNAME == *"not found"* ]]; then
|
|
10020
|
+ echo $'Problem creating onion address for mediadrop'
|
|
10021
|
+ exit 72963
|
|
10022
|
+ fi
|
|
10023
|
+
|
|
10024
|
+ if [[ $ONION_ONLY == 'no' ]]; then
|
|
10025
|
+ nginx_http_redirect $MEDIA_SERVER_DOMAIN_NAME
|
|
10026
|
+ echo 'server {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10027
|
+ echo ' listen 443;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10028
|
+ echo " server_name $MEDIA_SERVER_DOMAIN_NAME;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10029
|
+ echo ' access_log /var/log/nginx/${MEDIA_SERVER_DOMAIN_NAME}.log;' >> /etc/nginx/nginx.conf
|
|
10030
|
+ echo ' error_log /var/log/nginx/${MEDIA_SERVER_DOMAIN_NAME}.log;' >> /etc/nginx/nginx.conf
|
|
10031
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10032
|
+ nginx_ssl $MEDIA_SERVER_DOMAIN_NAME
|
|
10033
|
+ nginx_disable_sniffing $MEDIA_SERVER_DOMAIN_NAME
|
|
10034
|
+ nginx_limits $MEDIA_SERVER_DOMAIN_NAME '15m'
|
|
10035
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10036
|
+ echo ' client_max_body_size 1500M;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10037
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10038
|
+ echo " root ${$MEDIA_SERVER_WORKING_DIRECTORY}/public;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10039
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10040
|
+ echo ' location ~* ^/(appearance)/ {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10041
|
+ echo " root ${$MEDIA_SERVER_WORKING_DIRECTORY}/data ;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10042
|
+ echo ' break;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10043
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10044
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10045
|
+ echo ' location ~* ^(/images\/media|images\/podcasts) {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10046
|
+ echo " root ${$MEDIA_SERVER_WORKING_DIRECTORY}/data ;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10047
|
+ echo ' break;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10048
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10049
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10050
|
+ echo ' location ~* ^/(styles|scripts|images)/ {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10051
|
+ echo ' expires max;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10052
|
+ echo ' add_header Cache-Control "public";' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10053
|
+ echo ' break;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10054
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10055
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10056
|
+ echo ' location /__mediacore_serve__ {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10057
|
+ echo " alias ${$MEDIA_SERVER_WORKING_DIRECTORY}/data/media;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10058
|
+ echo ' internal;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10059
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10060
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10061
|
+ echo ' location / {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10062
|
+ echo ' uwsgi_pass unix:///tmp/uwsgi-mediadrop.soc;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10063
|
+ echo ' include uwsgi_params;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10064
|
+ echo ' uwsgi_param SCRIPT_NAME '';' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10065
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10066
|
+ echo '}' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10067
|
+
|
|
10068
|
+ create_site_certificate $MEDIA_SERVER_DOMAIN_NAME
|
|
10069
|
+ add_ddns_domain $MEDIA_SERVER_DOMAIN_NAME
|
|
10070
|
+ else
|
|
10071
|
+ echo -n '' > /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10072
|
+ fi
|
|
10073
|
+
|
|
10074
|
+ echo 'server {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10075
|
+ echo " listen 127.0.0.1:${MEDIA_SERVER_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10076
|
+ echo " server_name $MEDIA_SERVER_ONION_HOSTNAME;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10077
|
+ echo ' access_log /var/log/nginx/${MEDIA_SERVER_DOMAIN_NAME}.log;' >> /etc/nginx/nginx.conf
|
|
10078
|
+ echo ' error_log /var/log/nginx/${MEDIA_SERVER_DOMAIN_NAME}.log;' >> /etc/nginx/nginx.conf
|
|
10079
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10080
|
+ echo ' client_max_body_size 1500M;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10081
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10082
|
+ echo " root ${$MEDIA_SERVER_WORKING_DIRECTORY}/public;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10083
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10084
|
+ echo ' location ~* ^/(appearance)/ {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10085
|
+ echo " root ${$MEDIA_SERVER_WORKING_DIRECTORY}/data ;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10086
|
+ echo ' break;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10087
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10088
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10089
|
+ echo ' location ~* ^(/images\/media|images\/podcasts) {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10090
|
+ echo " root ${$MEDIA_SERVER_WORKING_DIRECTORY}/data ;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10091
|
+ echo ' break;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10092
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10093
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10094
|
+ echo ' location ~* ^/(styles|scripts|images)/ {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10095
|
+ echo ' expires max;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10096
|
+ echo ' add_header Cache-Control "public";' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10097
|
+ echo ' break;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10098
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10099
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10100
|
+ echo ' location /__mediacore_serve__ {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10101
|
+ echo " alias ${$MEDIA_SERVER_WORKING_DIRECTORY}/data/media;" >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10102
|
+ echo ' internal;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10103
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10104
|
+ echo '' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10105
|
+ echo ' location / {' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10106
|
+ echo ' uwsgi_pass unix:///tmp/uwsgi-mediadrop.soc;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10107
|
+ echo ' include uwsgi_params;' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10108
|
+ echo ' uwsgi_param SCRIPT_NAME '';' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10109
|
+ echo ' }' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10110
|
+ echo '}' >> /etc/nginx/sites-available/$MEDIA_SERVER_DOMAIN_NAME
|
|
10111
|
+
|
|
10112
|
+ nginx_ensite $MEDIA_SERVER_DOMAIN_NAME
|
|
10113
|
+ systemctl restart php5-fpm
|
|
10114
|
+ systemctl restart nginx
|
|
10115
|
+
|
|
10116
|
+ if ! grep -q "Media server domain" $COMPLETION_FILE; then
|
|
10117
|
+ echo "Media server domain:$MEDIA_SERVER_DOMAIN_NAME" >> $COMPLETION_FILE
|
|
10118
|
+ else
|
|
10119
|
+ sed -i "s/Media server domain.*/Media server domain:$MEDIA_SERVER_DOMAIN_NAME/g" $COMPLETION_FILE
|
|
10120
|
+ fi
|
|
10121
|
+
|
|
10122
|
+ if ! grep -q $"Media Server" /home/$MY_USERNAME/README; then
|
|
10123
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
10124
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
10125
|
+ echo $'Media Server' >> /home/$MY_USERNAME/README
|
|
10126
|
+ echo '============' >> /home/$MY_USERNAME/README
|
|
10127
|
+ echo $"Media server administrator nickname: mediadropadmin" >> /home/$MY_USERNAME/README
|
|
10128
|
+ echo $"Media server administrator password: $MEDIA_SERVER_ADMIN_PASSWORD" >> /home/$MY_USERNAME/README
|
|
10129
|
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
|
10130
|
+ chmod 600 /home/$MY_USERNAME/README
|
|
10131
|
+ fi
|
9974
|
10132
|
|
9975
|
10133
|
echo 'install_media_server' >> $COMPLETION_FILE
|
9976
|
10134
|
}
|