|
@@ -493,6 +493,12 @@ ATHEROS_WIFI_REPO="https://github.com/qca/open-ath9k-htc-firmware.git"
|
493
|
493
|
LETSENCRYPT_ENABLED="no"
|
494
|
494
|
LETSENCRYPT_SERVER='https://acme-v01.api.letsencrypt.org/directory'
|
495
|
495
|
|
|
496
|
+RSS_READER_REPO="https://tt-rss.org/git/tt-rss.git tt-rss"
|
|
497
|
+RSS_READER_COMMIT='50bda3fefbff31e5a5503d6fd1a927412fe29026'
|
|
498
|
+RSS_READER_ADMIN_PASSWORD=
|
|
499
|
+RSS_READER_ONION_PORT=8091
|
|
500
|
+RSS_READER_DOMAIN_NAME=ttrss
|
|
501
|
+
|
496
|
502
|
function show_help {
|
497
|
503
|
echo ''
|
498
|
504
|
echo $"${PROJECT_NAME} -c [configuration file]"
|
|
@@ -1024,6 +1030,18 @@ function read_configuration {
|
1024
|
1030
|
if [[ $CONFIGURATION_FILE != "/root/${PROJECT_NAME}.cfg" ]]; then
|
1025
|
1031
|
cp $CONFIGURATION_FILE /root/${PROJECT_NAME}.cfg
|
1026
|
1032
|
fi
|
|
1033
|
+ if grep -q "RSS_READER_REPO" $CONFIGURATION_FILE; then
|
|
1034
|
+ RSS_READER_REPO=$(grep "RSS_READER_REPO" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
1035
|
+ fi
|
|
1036
|
+ if grep -q "RSS_READER_COMMIT" $CONFIGURATION_FILE; then
|
|
1037
|
+ RSS_READER_COMMIT=$(grep "RSS_READER_COMMIT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
1038
|
+ fi
|
|
1039
|
+ if grep -q "RSS_READER_ADMIN_PASSWORD" $CONFIGURATION_FILE; then
|
|
1040
|
+ RSS_READER_ADMIN_PASSWORD=$(grep "RSS_READER_ADMIN_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
1041
|
+ fi
|
|
1042
|
+ if grep -q "RSS_READER_DOMAIN_NAME" $CONFIGURATION_FILE; then
|
|
1043
|
+ RSS_READER_DOMAIN_NAME=$(grep "RSS_READER_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
1044
|
+ fi
|
1027
|
1045
|
if grep -q "MICROBLOG_BACKGROUND_IMAGE_URL" $CONFIGURATION_FILE; then
|
1028
|
1046
|
MICROBLOG_BACKGROUND_IMAGE_URL=$(grep "MICROBLOG_BACKGROUND_IMAGE_URL" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
1029
|
1047
|
fi
|
|
@@ -3292,6 +3310,14 @@ function get_mariadb_gnusocial_admin_password {
|
3292
|
3310
|
fi
|
3293
|
3311
|
}
|
3294
|
3312
|
|
|
3313
|
+function get_mariadb_rss_reader_admin_password {
|
|
3314
|
+ if [ -f /home/$MY_USERNAME/README ]; then
|
|
3315
|
+ if grep -q "RSS reader admin password" /home/$MY_USERNAME/README; then
|
|
3316
|
+ RSS_READER_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "RSS reader admin password" | awk -F ':' '{print $2}' | sed 's/^ *//')
|
|
3317
|
+ fi
|
|
3318
|
+ fi
|
|
3319
|
+}
|
|
3320
|
+
|
3295
|
3321
|
function get_mariadb_git_admin_password {
|
3296
|
3322
|
if [ -f /home/$MY_USERNAME/README ]; then
|
3297
|
3323
|
if grep -q "Gogs admin user password" /home/$MY_USERNAME/README; then
|
|
@@ -8258,6 +8284,133 @@ function install_blog {
|
8258
|
8284
|
echo 'install_blog' >> $COMPLETION_FILE
|
8259
|
8285
|
}
|
8260
|
8286
|
|
|
8287
|
+function install_rss_reader {
|
|
8288
|
+ if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
|
8289
|
+ return
|
|
8290
|
+ fi
|
|
8291
|
+
|
|
8292
|
+ RSS_READER_PATH=/etc/share/tt-rss
|
|
8293
|
+
|
|
8294
|
+ # update to the next commit
|
|
8295
|
+ if [ -d $RSS_READER_PATH ]; then
|
|
8296
|
+ if grep -q "RSS reader commit" $COMPLETION_FILE; then
|
|
8297
|
+ CURRENT_RSS_READER_COMMIT=$(grep "RSS reader commit" $COMPLETION_FILE | awk -F ':' '{print $2}')
|
|
8298
|
+ if [[ "$CURRENT_RSS_READER_COMMIT" != "$RSS_READER_COMMIT" ]]; then
|
|
8299
|
+ cd $RSS_READER_PATH
|
|
8300
|
+ git_pull $RSS_READER_REPO $RSS_READER_COMMIT
|
|
8301
|
+ sed -i "s/RSS reader commit.*/RSS reader commit:$RSS_READER_COMMIT/g" $COMPLETION_FILE
|
|
8302
|
+ chown -R www-data:www-data $RSS_READER_PATH
|
|
8303
|
+ fi
|
|
8304
|
+ else
|
|
8305
|
+ echo "RSS reader commit:$RSS_READER_COMMIT" >> $COMPLETION_FILE
|
|
8306
|
+ fi
|
|
8307
|
+ fi
|
|
8308
|
+
|
|
8309
|
+ if grep -Fxq "install_rss_reader" $COMPLETION_FILE; then
|
|
8310
|
+ return
|
|
8311
|
+ fi
|
|
8312
|
+
|
|
8313
|
+ apt-get -y install php-gettext php5-curl php5-gd php5-mysql git curl php-xml-parser
|
|
8314
|
+
|
|
8315
|
+ git_clone $RSS_READER_REPO $RSS_READER_PATH
|
|
8316
|
+ if [ ! -d $RSS_READER_PATH ]; then
|
|
8317
|
+ echo $'Could not clone RSS reader repo'
|
|
8318
|
+ exit 52925
|
|
8319
|
+ fi
|
|
8320
|
+ cd $RSS_READER_PATH
|
|
8321
|
+ git checkout $RSS_READER_COMMIT -b $RSS_READER_COMMIT
|
|
8322
|
+ if ! grep -q "RSS reader commit" $COMPLETION_FILE; then
|
|
8323
|
+ echo "RSS reader commit:$RSS_READER_COMMIT" >> $COMPLETION_FILE
|
|
8324
|
+ fi
|
|
8325
|
+
|
|
8326
|
+ install_mariadb
|
|
8327
|
+ get_mariadb_password
|
|
8328
|
+ repair_databases_script
|
|
8329
|
+
|
|
8330
|
+ get_mariadb_rss_reader_admin_password
|
|
8331
|
+ if [ ! $RSS_READER_ADMIN_PASSWORD ]; then
|
|
8332
|
+ if [ -f $IMAGE_PASSWORD_FILE ]; then
|
|
8333
|
+ RSS_READER_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
|
|
8334
|
+ else
|
|
8335
|
+ RSS_READER_ADMIN_PASSWORD="$(openssl rand -base64 32)"
|
|
8336
|
+ fi
|
|
8337
|
+ fi
|
|
8338
|
+
|
|
8339
|
+ create_database ttrss "$RSS_READER_ADMIN_PASSWORD" $MY_USERNAME
|
|
8340
|
+
|
|
8341
|
+ MICROBLOG_ONION_HOSTNAME=$(add_onion_service ttrss 80 ${RSS_READER_ONION_PORT})
|
|
8342
|
+
|
|
8343
|
+ echo 'server {' > /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8344
|
+ echo " listen 127.0.0.1:$RSS_READER_ONION_PORT default_server;" >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8345
|
+ echo " server_name $RSS_READER_DOMAIN_NAME;" >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8346
|
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8347
|
+ echo ' # Logs' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8348
|
+ echo ' access_log off;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8349
|
+ echo ' error_log off;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8350
|
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8351
|
+ echo ' # Root' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8352
|
+ echo " root $RSS_READER_PATH;" >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8353
|
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8354
|
+ echo ' # Index' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8355
|
+ echo ' index index.php;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8356
|
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8357
|
+ echo ' # PHP' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8358
|
+ echo ' location ~ \.php {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8359
|
+ echo ' include snippets/fastcgi-php.conf;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8360
|
+ echo ' fastcgi_pass unix:/var/run/php5-fpm.sock;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8361
|
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8362
|
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8363
|
+ echo ' # Location' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8364
|
+ echo ' location / {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8365
|
+ echo ' try_files $uri $uri/ @ttrss;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8366
|
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8367
|
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8368
|
+ echo ' # Fancy URLs' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8369
|
+ echo ' location @ttrss {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8370
|
+ echo ' rewrite ^(.*)$ /index.php?p=$1 last;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8371
|
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8372
|
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8373
|
+ echo ' # Restrict access that is unnecessary anyway' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8374
|
+ echo ' location ~ /\.(ht|git) {' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8375
|
+ echo ' deny all;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8376
|
+ echo ' }' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8377
|
+ echo '' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8378
|
+ echo ' add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8379
|
+ echo ' add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8380
|
+ echo ' client_max_body_size 15m;' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8381
|
+ echo '}' >> /etc/nginx/sites-available/$RSS_READER_DOMAIN_NAME
|
|
8382
|
+
|
|
8383
|
+ configure_php
|
|
8384
|
+
|
|
8385
|
+ nginx_ensite $RSS_READER_DOMAIN_NAME
|
|
8386
|
+ systemctl restart php5-fpm
|
|
8387
|
+ systemctl restart nginx
|
|
8388
|
+
|
|
8389
|
+ if ! grep -q "RSS reader onion domain" $COMPLETION_FILE; then
|
|
8390
|
+ echo "RSS reader onion domain:${RSS_READER_ONION_HOSTNAME}" >> $COMPLETION_FILE
|
|
8391
|
+ fi
|
|
8392
|
+ if ! grep -q "GNU Social domain" $COMPLETION_FILE; then
|
|
8393
|
+ echo "GNU Social domain:${RSS_READER_DOMAIN_NAME}" >> $COMPLETION_FILE
|
|
8394
|
+ fi
|
|
8395
|
+
|
|
8396
|
+ # some post-install instructions for the user
|
|
8397
|
+ if ! grep -q $"RSS Reader" /home/$MY_USERNAME/README; then
|
|
8398
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
8399
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
8400
|
+ echo $'RSS Reader' >> /home/$MY_USERNAME/README
|
|
8401
|
+ echo '==========' >> /home/$MY_USERNAME/README
|
|
8402
|
+ echo $"RSS reader domain: ${RSS_READER_DOMAIN_NAME}" >> /home/$MY_USERNAME/README
|
|
8403
|
+ echo $"RSS reader onion domain: ${RSS_READER_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
|
|
8404
|
+ echo $"RSS reader admin username: ${MY_USERNAME}" >> /home/$MY_USERNAME/README
|
|
8405
|
+ echo $"RSS reader admin password: ${RSS_READER_ADMIN_PASSWORD}" >> /home/$MY_USERNAME/README
|
|
8406
|
+ echo '' >> /home/$MY_USERNAME/README
|
|
8407
|
+ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
|
8408
|
+ chmod 600 /home/$MY_USERNAME/README
|
|
8409
|
+ fi
|
|
8410
|
+
|
|
8411
|
+ echo 'install_rss_reader' >> $COMPLETION_FILE
|
|
8412
|
+}
|
|
8413
|
+
|
8261
|
8414
|
function install_gnu_social {
|
8262
|
8415
|
if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
|
8263
|
8416
|
return
|
|
@@ -8439,6 +8592,8 @@ function install_gnu_social {
|
8439
|
8592
|
echo ' deny all;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME
|
8440
|
8593
|
echo ' }' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME
|
8441
|
8594
|
echo '' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME
|
|
8595
|
+ echo ' add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME
|
|
8596
|
+ echo ' add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME
|
8442
|
8597
|
echo ' client_max_body_size 15m;' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME
|
8443
|
8598
|
echo '}' >> /etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME
|
8444
|
8599
|
|
|
@@ -10150,6 +10305,7 @@ install_blog
|
10150
|
10305
|
mark_blog_domain
|
10151
|
10306
|
install_gnu_social
|
10152
|
10307
|
install_gnu_social_theme
|
|
10308
|
+install_rss_reader
|
10153
|
10309
|
install_hubzilla
|
10154
|
10310
|
install_dlna_server
|
10155
|
10311
|
configure_firewall_for_dlna
|