Add mediagoblin to the interactive installer
This commit is contained in:
parent
4313994beb
commit
142486f03f
430
src/freedombone
430
src/freedombone
|
@ -1903,92 +1903,92 @@ function check_domains {
|
|||
fi
|
||||
|
||||
if [ ${#GIT_DOMAIN_NAME} -gt 1 ]; then
|
||||
test_domain_name "$GIT_DOMAIN_NAME"
|
||||
test_domain_name "$GIT_DOMAIN_NAME"
|
||||
|
||||
if [[ "$test_domain_name" == "$WIKI_DOMAIN_NAME" ]]; then
|
||||
echo $'Hubzilla domain name is the same as wiki domain name. They must be different'
|
||||
exit 83682
|
||||
fi
|
||||
if [[ "$test_domain_name" == "$OWNCLOUD_DOMAIN_NAME" ]]; then
|
||||
echo $'Hubzilla domain name is the same as Owncloud domain name. They must be different'
|
||||
exit 65192
|
||||
fi
|
||||
if [[ "$test_domain_name" == "$FULLBLOG_DOMAIN_NAME" ]]; then
|
||||
echo $'Hubzilla domain name is the same as blog domain name. They must be different'
|
||||
exit 74817
|
||||
fi
|
||||
if [[ "$test_domain_name" == "$MICROBLOG_DOMAIN_NAME" ]]; then
|
||||
echo $'Hubzilla domain name is the same as microblog domain name. They must be different'
|
||||
exit 83683
|
||||
fi
|
||||
if [[ "$test_domain_name" == "$HUBZILLA_DOMAIN_NAME" ]]; then
|
||||
echo $'Microblog domain name is the same as hubzilla domain name. They must be different'
|
||||
exit 678382
|
||||
fi
|
||||
fi
|
||||
if [[ "$test_domain_name" == "$WIKI_DOMAIN_NAME" ]]; then
|
||||
echo $'Hubzilla domain name is the same as wiki domain name. They must be different'
|
||||
exit 83682
|
||||
fi
|
||||
if [[ "$test_domain_name" == "$OWNCLOUD_DOMAIN_NAME" ]]; then
|
||||
echo $'Hubzilla domain name is the same as Owncloud domain name. They must be different'
|
||||
exit 65192
|
||||
fi
|
||||
if [[ "$test_domain_name" == "$FULLBLOG_DOMAIN_NAME" ]]; then
|
||||
echo $'Hubzilla domain name is the same as blog domain name. They must be different'
|
||||
exit 74817
|
||||
fi
|
||||
if [[ "$test_domain_name" == "$MICROBLOG_DOMAIN_NAME" ]]; then
|
||||
echo $'Hubzilla domain name is the same as microblog domain name. They must be different'
|
||||
exit 83683
|
||||
fi
|
||||
if [[ "$test_domain_name" == "$HUBZILLA_DOMAIN_NAME" ]]; then
|
||||
echo $'Microblog domain name is the same as hubzilla domain name. They must be different'
|
||||
exit 678382
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Checks whether certificates were generated for the given hostname
|
||||
function check_certificates {
|
||||
if [ ! $1 ]; then
|
||||
return
|
||||
fi
|
||||
if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
|
||||
if [ ! -f /etc/ssl/private/$1.key ]; then
|
||||
echo $"Private certificate for $CHECK_HOSTNAME was not created"
|
||||
exit 63959
|
||||
fi
|
||||
if [ ! -f /etc/ssl/certs/$1.crt ]; then
|
||||
echo $"Public certificate for $CHECK_HOSTNAME was not created"
|
||||
exit 7679
|
||||
fi
|
||||
else
|
||||
if [ ! -f /etc/letsencrypt/live/${1}/privkey.pem ]; then
|
||||
echo $"Private certificate for $CHECK_HOSTNAME was not created"
|
||||
exit 6282
|
||||
fi
|
||||
if [ ! -f /etc/letsencrypt/live/${1}/fullchain.pem ]; then
|
||||
echo $"Public certificate for $CHECK_HOSTNAME was not created"
|
||||
exit 5328
|
||||
fi
|
||||
fi
|
||||
if [ ! -f /etc/ssl/certs/$1.dhparam ]; then
|
||||
echo $"Diffie–Hellman parameters for $CHECK_HOSTNAME were not created"
|
||||
exit 5989
|
||||
fi
|
||||
if [ ! $1 ]; then
|
||||
return
|
||||
fi
|
||||
if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
|
||||
if [ ! -f /etc/ssl/private/$1.key ]; then
|
||||
echo $"Private certificate for $CHECK_HOSTNAME was not created"
|
||||
exit 63959
|
||||
fi
|
||||
if [ ! -f /etc/ssl/certs/$1.crt ]; then
|
||||
echo $"Public certificate for $CHECK_HOSTNAME was not created"
|
||||
exit 7679
|
||||
fi
|
||||
else
|
||||
if [ ! -f /etc/letsencrypt/live/${1}/privkey.pem ]; then
|
||||
echo $"Private certificate for $CHECK_HOSTNAME was not created"
|
||||
exit 6282
|
||||
fi
|
||||
if [ ! -f /etc/letsencrypt/live/${1}/fullchain.pem ]; then
|
||||
echo $"Public certificate for $CHECK_HOSTNAME was not created"
|
||||
exit 5328
|
||||
fi
|
||||
fi
|
||||
if [ ! -f /etc/ssl/certs/$1.dhparam ]; then
|
||||
echo $"Diffie–Hellman parameters for $CHECK_HOSTNAME were not created"
|
||||
exit 5989
|
||||
fi
|
||||
}
|
||||
|
||||
function backup_database_local {
|
||||
# Makes local backups of databases which can then be automatically rolled
|
||||
# back if corruption is detected
|
||||
database_name=$1
|
||||
# Makes local backups of databases which can then be automatically rolled
|
||||
# back if corruption is detected
|
||||
database_name=$1
|
||||
|
||||
backup_databases_script=/usr/bin/backupdatabases
|
||||
echo '' >> $backup_databases_script
|
||||
echo "# Backup the ${database_name} database" >> $backup_databases_script
|
||||
echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script
|
||||
echo 'DAILYFILE=/var/backups/${database_name}_daily.sql' >> $backup_databases_script
|
||||
echo "mysqldump --password=\"\$MYSQL_PASSWORD\" ${database_name} > \$TEMPFILE" >> $backup_databases_script
|
||||
echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> $backup_databases_script
|
||||
echo 'if [ "$FILESIZE" -eq "0" ]; then' >> $backup_databases_script
|
||||
echo ' if [ -f $DAILYFILE ]; then' >> $backup_databases_script
|
||||
echo ' cp $DAILYFILE $TEMPFILE' >> $backup_databases_script
|
||||
echo '' >> $backup_databases_script
|
||||
echo ' # try to restore yesterdays database' >> $backup_databases_script
|
||||
echo " mysql -u root --password=\"\$MYSQL_PASSWORD\" ${database_name} -o < \$DAILYFILE" >> $backup_databases_script
|
||||
echo '' >> $backup_databases_script
|
||||
echo ' # Send a warning email' >> $backup_databases_script
|
||||
echo " echo \"Unable to create a backup of the ${database_name} database. Attempted to restore from yesterdays backup\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
|
||||
echo ' else' >> $backup_databases_script
|
||||
echo ' # Send a warning email' >> $backup_databases_script
|
||||
echo " echo \"Unable to create a backup of the ${database_name} database.\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
|
||||
echo ' fi' >> $backup_databases_script
|
||||
echo 'else' >> $backup_databases_script
|
||||
echo ' chmod 600 $TEMPFILE' >> $backup_databases_script
|
||||
echo ' mv $TEMPFILE $DAILYFILE' >> $backup_databases_script
|
||||
echo '' >> $backup_databases_script
|
||||
echo ' # Make the backup readable only by root' >> $backup_databases_script
|
||||
echo ' chmod 600 $DAILYFILE' >> $backup_databases_script
|
||||
backup_databases_script=/usr/bin/backupdatabases
|
||||
echo '' >> $backup_databases_script
|
||||
echo "# Backup the ${database_name} database" >> $backup_databases_script
|
||||
echo "TEMPFILE=/root/${database_name}.sql" >> $backup_databases_script
|
||||
echo 'DAILYFILE=/var/backups/${database_name}_daily.sql' >> $backup_databases_script
|
||||
echo "mysqldump --password=\"\$MYSQL_PASSWORD\" ${database_name} > \$TEMPFILE" >> $backup_databases_script
|
||||
echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> $backup_databases_script
|
||||
echo 'if [ "$FILESIZE" -eq "0" ]; then' >> $backup_databases_script
|
||||
echo ' if [ -f $DAILYFILE ]; then' >> $backup_databases_script
|
||||
echo ' cp $DAILYFILE $TEMPFILE' >> $backup_databases_script
|
||||
echo '' >> $backup_databases_script
|
||||
echo ' # try to restore yesterdays database' >> $backup_databases_script
|
||||
echo " mysql -u root --password=\"\$MYSQL_PASSWORD\" ${database_name} -o < \$DAILYFILE" >> $backup_databases_script
|
||||
echo '' >> $backup_databases_script
|
||||
echo ' # Send a warning email' >> $backup_databases_script
|
||||
echo " echo \"Unable to create a backup of the ${database_name} database. Attempted to restore from yesterdays backup\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
|
||||
echo ' else' >> $backup_databases_script
|
||||
echo ' # Send a warning email' >> $backup_databases_script
|
||||
echo " echo \"Unable to create a backup of the ${database_name} database.\" | mail -s \"${database_name} backup\" \$EMAIL" >> $backup_databases_script
|
||||
echo ' fi' >> $backup_databases_script
|
||||
echo 'else' >> $backup_databases_script
|
||||
echo ' chmod 600 $TEMPFILE' >> $backup_databases_script
|
||||
echo ' mv $TEMPFILE $DAILYFILE' >> $backup_databases_script
|
||||
echo '' >> $backup_databases_script
|
||||
echo ' # Make the backup readable only by root' >> $backup_databases_script
|
||||
echo ' chmod 600 $DAILYFILE' >> $backup_databases_script
|
||||
echo 'fi' >> $backup_databases_script
|
||||
|
||||
weekly_backup_script=/etc/cron.weekly/backupdatabasesweekly
|
||||
|
@ -9622,157 +9622,157 @@ function install_mediagoblin {
|
|||
sed -i "s/Mediagoblin commit.*/Mediagoblin commit:$MEDIAGOBLIN_COMMIT/g" $COMPLETION_FILE
|
||||
fi
|
||||
|
||||
./bootstrap.sh
|
||||
if [ ! "$?" = "0" ]; then
|
||||
exit 278826
|
||||
fi
|
||||
./bootstrap.sh
|
||||
if [ ! "$?" = "0" ]; then
|
||||
exit 278826
|
||||
fi
|
||||
|
||||
./configure --with-python3 --without-virtualenv
|
||||
if [ ! "$?" = "0" ]; then
|
||||
exit 462826
|
||||
fi
|
||||
./configure --with-python3 --without-virtualenv
|
||||
if [ ! "$?" = "0" ]; then
|
||||
exit 462826
|
||||
fi
|
||||
|
||||
make
|
||||
if [ ! "$?" = "0" ]; then
|
||||
exit 738229
|
||||
fi
|
||||
make
|
||||
if [ ! "$?" = "0" ]; then
|
||||
exit 738229
|
||||
fi
|
||||
|
||||
if [ ! -d $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev ]; then
|
||||
mkdir $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev
|
||||
fi
|
||||
chmod 750 $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev
|
||||
easy_install flup
|
||||
if [ ! "$?" = "0" ]; then
|
||||
exit 83527
|
||||
fi
|
||||
if [ ! -f $MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin.ini ]; then
|
||||
echo $'mediagoblin.ini not found'
|
||||
exit 737529
|
||||
fi
|
||||
if [ ! -f $MEDIAGOBLIN_WORKING_DIRECTORY/paste.ini ]; then
|
||||
echo $'paste.ini not found'
|
||||
exit 52762
|
||||
fi
|
||||
if [ ! -d $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev ]; then
|
||||
mkdir $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev
|
||||
fi
|
||||
chmod 750 $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev
|
||||
easy_install flup
|
||||
if [ ! "$?" = "0" ]; then
|
||||
exit 83527
|
||||
fi
|
||||
if [ ! -f $MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin.ini ]; then
|
||||
echo $'mediagoblin.ini not found'
|
||||
exit 737529
|
||||
fi
|
||||
if [ ! -f $MEDIAGOBLIN_WORKING_DIRECTORY/paste.ini ]; then
|
||||
echo $'paste.ini not found'
|
||||
exit 52762
|
||||
fi
|
||||
|
||||
cp -av mediagoblin.ini mediagoblin_local.ini
|
||||
cp -av paste.ini paste_local.ini
|
||||
cp -av mediagoblin.ini mediagoblin_local.ini
|
||||
cp -av paste.ini paste_local.ini
|
||||
|
||||
# TODO configure ini files
|
||||
# TODO configure ini files
|
||||
|
||||
chown -hR mediagoblin:www-data $MEDIAGOBLIN_WORKING_DIRECTORY
|
||||
chown -hR mediagoblin:www-data $MEDIAGOBLIN_WORKING_DIRECTORY
|
||||
|
||||
# init with systemd
|
||||
echo '[Unit]' > /etc/systemd/system/mediagoblin.service
|
||||
echo 'Description=Mediagoblin (Media Server)' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'After=syslog.target' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'After=network.target' >> /etc/systemd/system/mediagoblin.service
|
||||
#echo 'After=postgresql.service' >> /etc/systemd/system/mediagoblin.service
|
||||
echo '' >> /etc/systemd/system/mediagoblin.service
|
||||
echo '[Service]' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'Type=simple' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'User=mediagoblin' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'Group=mediagoblin' >> /etc/systemd/system/mediagoblin.service
|
||||
echo "WorkingDirectory=$MEDIAGOBLIN_WORKING_DIRECTORY" >> /etc/systemd/system/mediagoblin.service
|
||||
echo "ExecStart=$MEDIAGOBLIN_WORKING_DIRECTORY/lazyserver.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543" >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'Restart=always' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'Environment="USER=mediagoblin","HOME=/var/lib/mediagoblin"' >> /etc/systemd/system/mediagoblin.service
|
||||
echo '' >> /etc/systemd/system/mediagoblin.service
|
||||
echo '[Install]' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'WantedBy=multi-user.target' >> /etc/systemd/system/mediagoblin.service
|
||||
systemctl daemon-reload
|
||||
systemctl enable mediagoblin
|
||||
systemctl start mediagoblin
|
||||
# init with systemd
|
||||
echo '[Unit]' > /etc/systemd/system/mediagoblin.service
|
||||
echo 'Description=Mediagoblin (Media Server)' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'After=syslog.target' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'After=network.target' >> /etc/systemd/system/mediagoblin.service
|
||||
#echo 'After=postgresql.service' >> /etc/systemd/system/mediagoblin.service
|
||||
echo '' >> /etc/systemd/system/mediagoblin.service
|
||||
echo '[Service]' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'Type=simple' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'User=mediagoblin' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'Group=mediagoblin' >> /etc/systemd/system/mediagoblin.service
|
||||
echo "WorkingDirectory=$MEDIAGOBLIN_WORKING_DIRECTORY" >> /etc/systemd/system/mediagoblin.service
|
||||
echo "ExecStart=$MEDIAGOBLIN_WORKING_DIRECTORY/lazyserver.sh --server-name=fcgi fcgi_host=127.0.0.1 fcgi_port=26543" >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'Restart=always' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'Environment="USER=mediagoblin","HOME=/var/lib/mediagoblin"' >> /etc/systemd/system/mediagoblin.service
|
||||
echo '' >> /etc/systemd/system/mediagoblin.service
|
||||
echo '[Install]' >> /etc/systemd/system/mediagoblin.service
|
||||
echo 'WantedBy=multi-user.target' >> /etc/systemd/system/mediagoblin.service
|
||||
systemctl daemon-reload
|
||||
systemctl enable mediagoblin
|
||||
systemctl start mediagoblin
|
||||
|
||||
MEDIAGOBLIN_ONION_HOSTNAME=$(add_onion_service mediagoblin 80 ${MEDIAGOBLIN_ONION_PORT})
|
||||
if ! grep -q "Mediagoblin onion domain" $COMPLETION_FILE; then
|
||||
echo "Mediagoblin onion domain:${MEDIAGOBLIN_ONION_HOSTNAME}" >> $COMPLETION_FILE
|
||||
else
|
||||
sed -i "s|Mediagoblin onion domain.*|Mediagoblin onion domain:${MEDIAGOBLIN_ONION_HOSTNAME}|g" $COMPLETION_FILE
|
||||
fi
|
||||
if ! grep -q "Mediagoblin onion domain" $COMPLETION_FILE; then
|
||||
echo "Mediagoblin onion domain:${MEDIAGOBLIN_ONION_HOSTNAME}" >> $COMPLETION_FILE
|
||||
else
|
||||
sed -i "s|Mediagoblin onion domain.*|Mediagoblin onion domain:${MEDIAGOBLIN_ONION_HOSTNAME}|g" $COMPLETION_FILE
|
||||
fi
|
||||
|
||||
# web config
|
||||
MEDIAGOBLIN_VIRTUAL_HOST=/etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
||||
nginx_http_redirect $MEDIAGOBLIN_DOMAIN_NAME
|
||||
echo 'server {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' listen 443 ssl;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Stock useful config options, but ignore them :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' include /etc/nginx/mime.types;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' autoindex off;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' default_type application/octet-stream;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' sendfile on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
|
||||
nginx_ssl $MEDIAGOBLIN_DOMAIN_NAME
|
||||
nginx_disable_sniffing $MEDIAGOBLIN_DOMAIN_NAME
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Gzip' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' gzip on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' gzip_min_length 1024;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' gzip_buffers 4 32k;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' gzip_types text/plain application/x-javascript text/javascript text/xml text/css;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Mounting MediaGoblin stuff' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # This is the section you should read' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo " server_name $MEDIAGOBLIN_DOMAIN_NAME;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' access_log /var/log/nginx/mediagoblin.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' error_log /var/log/nginx/mediagoblin.error.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # MediaGoblins stock static files: CSS, JS, etc.' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' location /mgoblin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin/static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Instance specific media:' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' location /mgoblin_media/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/media/public/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Theme static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' location /theme_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/theme_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Plugin static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' location /plugin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/plugin_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Mounting MediaGoblin itself via FastCGI.' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' location / {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' fastcgi_pass 127.0.0.1:26543;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' include /etc/nginx/fastcgi_params;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # our understanding vs nginxs handling of script_name vs' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # path_info dont match :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' fastcgi_param PATH_INFO $fastcgi_script_name;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' fastcgi_param SCRIPT_NAME "";' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '}' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
# web config
|
||||
MEDIAGOBLIN_VIRTUAL_HOST=/etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
|
||||
nginx_http_redirect $MEDIAGOBLIN_DOMAIN_NAME
|
||||
echo 'server {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' listen 443 ssl;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Stock useful config options, but ignore them :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' include /etc/nginx/mime.types;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' autoindex off;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' default_type application/octet-stream;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' sendfile on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
nginx_limits $MEDIAGOBLIN_DOMAIN_NAME '20m'
|
||||
nginx_ssl $MEDIAGOBLIN_DOMAIN_NAME
|
||||
nginx_disable_sniffing $MEDIAGOBLIN_DOMAIN_NAME
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Gzip' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' gzip on;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' gzip_min_length 1024;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' gzip_buffers 4 32k;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' gzip_types text/plain application/x-javascript text/javascript text/xml text/css;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Mounting MediaGoblin stuff' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # This is the section you should read' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' #####################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo " server_name $MEDIAGOBLIN_DOMAIN_NAME;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' access_log /var/log/nginx/mediagoblin.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' error_log /var/log/nginx/mediagoblin.error.log;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # MediaGoblins stock static files: CSS, JS, etc.' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' location /mgoblin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/mediagoblin/static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Instance specific media:' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' location /mgoblin_media/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/media/public/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Theme static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' location /theme_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/theme_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Plugin static files (usually symlinked in)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' location /plugin_static/ {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo " alias $MEDIAGOBLIN_WORKING_DIRECTORY/user_dev/plugin_static/;" >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # Mounting MediaGoblin itself via FastCGI.' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' location / {' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' fastcgi_pass 127.0.0.1:26543;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' include /etc/nginx/fastcgi_params;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # our understanding vs nginxs handling of script_name vs' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' # path_info dont match :)' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' fastcgi_param PATH_INFO $fastcgi_script_name;' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' fastcgi_param SCRIPT_NAME "";' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo ' }' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
echo '}' >> $MEDIAGOBLIN_VIRTUAL_HOST
|
||||
|
||||
if [ ! -f /etc/ssl/certs/$MEDIAGOBLIN_DOMAIN_NAME.dhparam ]; then
|
||||
if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
|
||||
${PROJECT_NAME}-addcert -h $MEDIAGOBLIN_DOMAIN_NAME --dhkey $DH_KEYLENGTH
|
||||
else
|
||||
${PROJECT_NAME}-addcert -e $MEDIAGOBLIN_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
|
||||
fi
|
||||
check_certificates $MEDIAGOBLIN_DOMAIN_NAME
|
||||
fi
|
||||
if [ ! -f /etc/ssl/certs/$MEDIAGOBLIN_DOMAIN_NAME.dhparam ]; then
|
||||
if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
|
||||
${PROJECT_NAME}-addcert -h $MEDIAGOBLIN_DOMAIN_NAME --dhkey $DH_KEYLENGTH
|
||||
else
|
||||
${PROJECT_NAME}-addcert -e $MEDIAGOBLIN_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
|
||||
fi
|
||||
check_certificates $MEDIAGOBLIN_DOMAIN_NAME
|
||||
fi
|
||||
|
||||
nginx_ensite $MEDIAGOBLIN_DOMAIN_NAME
|
||||
systemctl restart php5-fpm
|
||||
systemctl restart nginx
|
||||
nginx_ensite $MEDIAGOBLIN_DOMAIN_NAME
|
||||
systemctl restart php5-fpm
|
||||
systemctl restart nginx
|
||||
|
||||
# update the dynamic DNS
|
||||
CURRENT_DDNS_DOMAIN=$MEDIAGOBLIN_DOMAIN_NAME
|
||||
add_ddns_domain
|
||||
# update the dynamic DNS
|
||||
CURRENT_DDNS_DOMAIN=$MEDIAGOBLIN_DOMAIN_NAME
|
||||
add_ddns_domain
|
||||
|
||||
echo 'install_mediagoblin' >> $COMPLETION_FILE
|
||||
echo 'install_mediagoblin' >> $COMPLETION_FILE
|
||||
}
|
||||
|
||||
function create_upgrade_script {
|
||||
|
@ -10759,7 +10759,7 @@ install_hubzilla
|
|||
#install_search_engine
|
||||
install_dlna_server
|
||||
configure_firewall_for_dlna
|
||||
#install_mediagoblin
|
||||
install_mediagoblin
|
||||
#install_ipfs
|
||||
repair_databases_script
|
||||
backup_to_friends_servers
|
||||
|
|
|
@ -91,6 +91,8 @@ FULLBLOG_DOMAIN_NAME=
|
|||
FULLBLOG_CODE=
|
||||
OWNCLOUD_DOMAIN_NAME=
|
||||
OWNCLOUD_CODE=
|
||||
MEDIAGOBLIN_DOMAIN_NAME=
|
||||
MEDIAGOBLIN_CODE=
|
||||
HUBZILLA_DOMAIN_NAME=
|
||||
HUBZILLA_CODE=
|
||||
MICROBLOG_DOMAIN_NAME=
|
||||
|
@ -561,10 +563,10 @@ function set_main_repo {
|
|||
dialog --backtitle $"Freedombone Control Panel" \
|
||||
--title $"Main Repository (Mirrors)" \
|
||||
--form $"If you don't know what this means then just select Ok.\n\nIf you don't wish to use the default repositories they can be obtained from mirrored repos on another ${PROJECT_NAME} system.\n\nThe repositories are for applications which are not yet packaged for Debian." 18 65 4 \
|
||||
$"URL:" 1 1 "$FRIENDS_MIRRORS_SERVER" 1 18 40 18 \
|
||||
$"SSH Port:" 2 1 "$FRIENDS_MIRRORS_SSH_PORT" 2 18 10 10000 \
|
||||
$"Password:" 3 1 "$FRIENDS_MIRRORS_PASSWORD" 3 18 40 10000 \
|
||||
2> $data
|
||||
$"URL:" 1 1 "$FRIENDS_MIRRORS_SERVER" 1 18 40 18 \
|
||||
$"SSH Port:" 2 1 "$FRIENDS_MIRRORS_SSH_PORT" 2 18 10 10000 \
|
||||
$"Password:" 3 1 "$FRIENDS_MIRRORS_PASSWORD" 3 18 40 10000 \
|
||||
2> $data
|
||||
sel=$?
|
||||
case $sel in
|
||||
1) return;;
|
||||
|
@ -1659,6 +1661,63 @@ function interactive_configuration {
|
|||
save_configuration_file
|
||||
fi
|
||||
|
||||
if [[ $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
|
||||
if [[ $ONION_ONLY != "no" ]]; then
|
||||
MEDIAGOBLIN_DOMAIN_NAME='media.local'
|
||||
else
|
||||
MEDIAGOBLIN_DETAILS_COMPLETE=
|
||||
while [ ! $MEDIAGOBLIN_DETAILS_COMPLETE ]
|
||||
do
|
||||
data=$(tempfile 2>/dev/null)
|
||||
trap "rm -f $data" 0 1 2 5 15
|
||||
if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
|
||||
dialog --backtitle $"Freedombone Configuration" \
|
||||
--title $"Mediagoblin Configuration" \
|
||||
--form $"\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:" 11 55 2 \
|
||||
$"Domain:" 1 1 "$(grep 'MEDIAGOBLIN_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
|
||||
$"Code:" 2 1 "$(grep 'MEDIAGOBLIN_CODE' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 255 \
|
||||
2> $data
|
||||
else
|
||||
dialog --backtitle $"Freedombone Configuration" \
|
||||
--title $"Mediagoblin Configuration" \
|
||||
--form $"\nPlease enter your Mediagoblin details, or just select Ok if you don't need a Mediagoblin site:" 11 55 2 \
|
||||
$"Domain:" 1 1 "$(grep 'MEDIAGOBLIN_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
|
||||
2> $data
|
||||
fi
|
||||
sel=$?
|
||||
case $sel in
|
||||
1) exit 1;;
|
||||
255) exit 1;;
|
||||
esac
|
||||
MEDIAGOBLIN_DOMAIN_NAME=$(cat $data | sed -n 1p)
|
||||
if [ $MEDIAGOBLIN_DOMAIN_NAME ]; then
|
||||
TEST_DOMAIN_NAME=$MEDIAGOBLIN_DOMAIN_NAME
|
||||
validate_domain_name
|
||||
if [[ $TEST_DOMAIN_NAME != $MEDIAGOBLIN_DOMAIN_NAME ]]; then
|
||||
MEDIAGOBLIN_DOMAIN_NAME='invalid'
|
||||
dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
|
||||
else
|
||||
if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
|
||||
MEDIAGOBLIN_CODE=$(cat $data | sed -n 2p)
|
||||
validate_freedns_code "$MEDIAGOBLIN_CODE"
|
||||
if [ ! $VALID_CODE ]; then
|
||||
MEDIAGOBLIN_DOMAIN_NAME='invalid'
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if [ $MEDIAGOBLIN_DOMAIN_NAME ]; then
|
||||
if [[ $MEDIAGOBLIN_DOMAIN_NAME == 'invalid' ]]; then
|
||||
MEDIAGOBLIN_DOMAIN_NAME=
|
||||
else
|
||||
MEDIAGOBLIN_DETAILS_COMPLETE="yes"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
save_configuration_file
|
||||
fi
|
||||
|
||||
if [[ $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_FULL" ]]; then
|
||||
if [[ $ONION_ONLY != "no" ]]; then
|
||||
HUBZILLA_DOMAIN_NAME='hubzilla.local'
|
||||
|
@ -1884,38 +1943,38 @@ function interactive_configuration {
|
|||
dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
|
||||
else
|
||||
DEFAULT_DOMAIN_DETAILS_COMPLETE="yes"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
save_configuration_file
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
save_configuration_file
|
||||
|
||||
if [[ $ONION_ONLY != "no" ]]; then
|
||||
EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
|
||||
else
|
||||
while [ ${#MY_EMAIL_ADDRESS} -lt 5 ]
|
||||
do
|
||||
EMAIL_ADDRESS=$(grep 'MY_EMAIL_ADDRESS' temp.cfg | awk -F '=' '{print $2}')
|
||||
if [ ! $EMAIL_ADDRESS ]; then
|
||||
EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
|
||||
fi
|
||||
if [ ${#MY_EMAIL_ADDRESS} -lt 5 ]; then
|
||||
EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
|
||||
fi
|
||||
if [[ $ONION_ONLY != "no" ]]; then
|
||||
EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
|
||||
else
|
||||
while [ ${#MY_EMAIL_ADDRESS} -lt 5 ]
|
||||
do
|
||||
EMAIL_ADDRESS=$(grep 'MY_EMAIL_ADDRESS' temp.cfg | awk -F '=' '{print $2}')
|
||||
if [ ! $EMAIL_ADDRESS ]; then
|
||||
EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
|
||||
fi
|
||||
if [ ${#MY_EMAIL_ADDRESS} -lt 5 ]; then
|
||||
EMAIL_ADDRESS=$MY_USERNAME@$DEFAULT_DOMAIN_NAME
|
||||
fi
|
||||
|
||||
data=$(tempfile 2>/dev/null)
|
||||
trap "rm -f $data" 0 1 2 5 15
|
||||
dialog --backtitle $"Freedombone Configuration" \
|
||||
--inputbox $"Your email address" 10 30 "$EMAIL_ADDRESS" 2> $data
|
||||
sel=$?
|
||||
case $sel in
|
||||
0) MY_EMAIL_ADDRESS=$(cat $data);;
|
||||
1) exit 1;;
|
||||
255) exit 1;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
save_configuration_file
|
||||
data=$(tempfile 2>/dev/null)
|
||||
trap "rm -f $data" 0 1 2 5 15
|
||||
dialog --backtitle $"Freedombone Configuration" \
|
||||
--inputbox $"Your email address" 10 30 "$EMAIL_ADDRESS" 2> $data
|
||||
sel=$?
|
||||
case $sel in
|
||||
0) MY_EMAIL_ADDRESS=$(cat $data);;
|
||||
1) exit 1;;
|
||||
255) exit 1;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
save_configuration_file
|
||||
fi
|
||||
|
||||
# delete the temporary configuration file
|
||||
|
@ -2049,6 +2108,12 @@ function read_configuration {
|
|||
if grep -q "OWNCLOUD_CODE" $CONFIGURATION_FILE; then
|
||||
OWNCLOUD_CODE=$(grep "OWNCLOUD_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
||||
fi
|
||||
if grep -q "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE; then
|
||||
MEDIAGOBLIN_DOMAIN_NAME=$(grep "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
||||
fi
|
||||
if grep -q "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE; then
|
||||
MEDIAGOBLIN_CODE=$(grep "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
||||
fi
|
||||
if grep -q "WIKI_DOMAIN_NAME" $CONFIGURATION_FILE; then
|
||||
WIKI_DOMAIN_NAME=$(grep "WIKI_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue