Bladeren bron

rss reader

Bob Mottram 9 jaren geleden
bovenliggende
commit
c1b87af297
1 gewijzigde bestanden met toevoegingen van 156 en 0 verwijderingen
  1. 156
    0
      src/freedombone

+ 156
- 0
src/freedombone Bestand weergeven

@@ -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