tt-rss.sh 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. #! /usr/bin/with-contenv bash
  2. #检查自定义config位置文件
  3. if [ ! -e "/config/config.php" ]; then
  4. cp /usr/local/tt-rss/app/config.php-dist /config/config.php
  5. fi
  6. if [ ! -L "/usr/local/tt-rss/app/config.php" ]; then
  7. if [ -e "/usr/local/tt-rss/app/config.php" ]; then
  8. rm /usr/local/tt-rss/app/config.php
  9. fi
  10. ln -s /config/config.php /usr/local/tt-rss/app/
  11. fi
  12. #检查cache文件夹位置
  13. if [ ! -d "/config/cache" ]; then
  14. cp -rf /usr/local/tt-rss/defaults/cache /config/
  15. fi
  16. if [ ! -L "/usr/local/tt-rss/app/cache" ]; then
  17. if [ -e "/usr/local/tt-rss/app/cache" ]; then
  18. rm -rf /usr/local/tt-rss/app/cache
  19. fi
  20. ln -s /config/cache /usr/local/tt-rss/app/
  21. fi
  22. #检查feed-icons文件夹位置
  23. if [ ! -d "/config/feed-icons" ]; then
  24. cp -rf /usr/local/tt-rss/defaults/feed-icons /config/
  25. fi
  26. if [ ! -L "/usr/local/tt-rss/app/feed-icons" ]; then
  27. if [ -e "/usr/local/tt-rss/app/feed-icons" ]; then
  28. rm -rf /usr/local/tt-rss/app/feed-icons
  29. fi
  30. ln -s /config/feed-icons /usr/local/tt-rss/app/
  31. fi
  32. #检查lock文件夹位置
  33. if [ ! -d "/config/lock" ]; then
  34. cp -rf /usr/local/tt-rss/defaults/lock /config/
  35. fi
  36. if [ ! -L "/usr/local/tt-rss/app/lock" ]; then
  37. if [ -e "/usr/local/tt-rss/app/lock" ]; then
  38. rm -rf /usr/local/tt-rss/app/lock
  39. fi
  40. ln -s /config/lock /usr/local/tt-rss/app/
  41. fi
  42. #检查update_daemon.stamp文件
  43. if [ ! -e "/config/lock/update_daemon.stamp" ]; then
  44. touch /config/lock/update_daemon.stamp
  45. fi
  46. #检查plugins.local文件夹位置
  47. if [ ! -d "/config/plugins.local" ]; then
  48. cp -rf /usr/local/tt-rss/defaults/plugins.local /config/
  49. fi
  50. if [ ! -L "/usr/local/tt-rss/app/plugins.local" ]; then
  51. if [ -e "/usr/local/tt-rss/app/plugins.local" ]; then
  52. rm -rf /usr/local/tt-rss/app/plugins.local
  53. fi
  54. ln -s /config/plugins.local /usr/local/tt-rss/app/
  55. fi
  56. #检查feediron plugins
  57. if [ ! -d "/config/plugins.local/feediron" ]; then
  58. cp -rf /usr/local/tt-rss/defaults/plugins.local/feediron /config/plugins.local/
  59. fi
  60. #检查fever plugins
  61. if [ ! -d "/config/plugins.local/fever" ]; then
  62. cp -rf /usr/local/tt-rss/defaults/plugins.local/fever /config/plugins.local/
  63. fi
  64. #检查mercury_fulltext plugins
  65. if [ ! -d "/config/plugins.local/mercury_fulltext" ]; then
  66. cp -rf /usr/local/tt-rss/defaults/plugins.local/mercury_fulltext /config/plugins.local/
  67. fi
  68. #检查af_readability plugins
  69. if [ ! -d "/config/plugins.local/af_readability" ]; then
  70. cp -rf /usr/local/tt-rss/defaults/plugins.local/af_readability /config/plugins.local/
  71. fi
  72. #检查opencc plugins
  73. if [ ! -d "/config/plugins.local/opencc" ]; then
  74. cp -rf /usr/local/tt-rss/defaults/plugins.local/opencc /config/plugins.local/
  75. fi
  76. #检查freshapi plugins
  77. if [ ! -d "/config/plugins.local/freshapi" ]; then
  78. cp -rf /usr/local/tt-rss/defaults/plugins.local/freshapi /config/plugins.local/
  79. sed -i "s/dirname.*$/\"\/usr\/local\/tt-rss\/app\";/" /usr/local/tt-rss/app/plugins.local/freshapi/api/greader.php
  80. fi
  81. #检查templates.local文件夹位置
  82. if [ ! -d "/config/templates.local" ]; then
  83. cp -rf /usr/local/tt-rss/defaults/templates.local /config/
  84. fi
  85. if [ ! -L "/usr/local/tt-rss/app/templates.local" ]; then
  86. if [ -e "/usr/local/tt-rss/app/templates.local" ]; then
  87. rm -rf /usr/local/tt-rss/app/templates.local
  88. fi
  89. ln -s /config/templates.local /usr/local/tt-rss/app/
  90. fi
  91. #检查themes.local文件夹位置
  92. if [ ! -d "/config/themes.local" ]; then
  93. mkdir -p /config/themes.local
  94. fi
  95. if [ ! -L "/usr/local/tt-rss/app/themes.local" ]; then
  96. if [ -e "/usr/local/tt-rss/app/themes.local" ]; then
  97. rm -rf /usr/local/tt-rss/app/themes.local
  98. fi
  99. ln -s /config/themes.local /usr/local/tt-rss/app/
  100. fi
  101. #检查feedly themes
  102. if [ ! -d "/config/themes.local/feedly" ]; then
  103. cp -rf /usr/local/tt-rss/defaults/themes.local/tt-rss-feedly-theme/feedly* /config/themes.local/
  104. fi
  105. #检查php log文件位置
  106. if [ ! -d "/config/php/log/" ]; then
  107. mkdir -p /config/php/log/
  108. fi
  109. if [ ! -e "/config/php/log/error.log" ]; then
  110. touch /config/php/log/error.log
  111. fi
  112. if [ ! -L "/var/log/php83/error.log" ]; then
  113. if [ -e "/var/log/php83/error.log" ]; then
  114. rm /var/log/php83/error.log
  115. fi
  116. ln -s /config/php/log/error.log /var/log/php83/error.log
  117. fi
  118. #检查/var/run/postgresql目录
  119. if [ ! -d /var/run/postgresql/ ]; then
  120. mkdir -p /var/run/postgresql/
  121. fi
  122. #设定tt-rss更新任务
  123. if [ `grep -c updatett-rss.sh /var/spool/cron/crontabs/root` -eq 0 ]; then
  124. echo "0 0 * * * /usr/local/tt-rss/defaults/updatett-rss.sh" >> /var/spool/cron/crontabs/root
  125. echo tt-rss更新任务已设定。
  126. else
  127. echo tt-rss更新任务已存在。
  128. fi
  129. #添加其它订阅端口。
  130. cd /usr/local/tt-rss/app
  131. git checkout -- /usr/local/tt-rss/app/classes/UrlHelper.php
  132. if [ "$TTRSS_UPDATE_AUTO" != "true" ] && [ -n "$TTRSS_ALLOW_PORTS" ] && [ "$TTRSS_ALLOW_PORTS" != "80,443" ]; then
  133. sed -i "s/\[80, 443, ''\]/\[80, 443, $TTRSS_ALLOW_PORTS, ''\]/" /usr/local/tt-rss/app/classes/UrlHelper.php
  134. sed -i "/if (isset(\$parts\['path'\]))/i\ \t \tif (isset(\$parts['port'])) \$tmp .= ':' . \$parts['port'];" /usr/local/tt-rss/app/classes/UrlHelper.php
  135. fi
  136. #启动更新ttrss。
  137. if [ "$TTRSS_UPDATE_AUTO" == "true" ]; then
  138. /usr/local/tt-rss/defaults/updatett-rss.sh skip
  139. fi
  140. #设置时区
  141. ln -sf /usr/share/zoneinfo/$TZ /etc/localtime
  142. echo $TZ > /etc/timezone
  143. #修改用户UID GID
  144. if [ $GID -ne 0 ] && [ $UID -ne 0 ]; then
  145. groupmod -o -g "$GID" ttrss
  146. usermod -o -u "$UID" ttrss
  147. groupmod -o -g "$GID" postgres
  148. usermod -o -u "$UID" postgres
  149. else
  150. echo 请设定UID与GID为非0数值...
  151. fi
  152. if [ -n "$POSTGRES_GID" ] && [ -n "$POSTGRES_UID" ]; then
  153. if [ $POSTGRES_GID -ne 0 ] && [ $POSTGRES_UID -ne 0 ]; then
  154. groupmod -o -g "$POSTGRES_GID" postgres
  155. usermod -o -u "$POSTGRES_UID" postgres
  156. usermod -g ttrss ttrss
  157. sed -i -e 's/^\(user\|group\) = .*/\1 = ttrss/i' /etc/php83/php-fpm.d/www.conf
  158. else
  159. echo 请设定POSTGRES_UID与POSTGRES_GID为非0数值...
  160. fi
  161. fi
  162. #修改php监听端口
  163. if [ "$PHP_LISTEN_PORT" != "$(grep -E "^listen = 127.0.0.1" /etc/php83/php-fpm.d/www.conf|awk -F: '{print $2}')" ]; then
  164. sed -i -e "s/^listen = 127.0.0.1.*/listen = 127.0.0.1:$PHP_LISTEN_PORT/" /etc/php83/php-fpm.d/www.conf
  165. fi
  166. #更改文件夹权限
  167. chown -R ttrss:ttrss /config/
  168. chown -R ttrss:ttrss /usr/local/tt-rss/
  169. chown -R ttrss:ttrss /var/log/php83/
  170. chown -R postgres:postgres /var/lib/postgresql/data
  171. chown -R postgres:postgres /var/run/postgresql/
  172. #初始化ttrss_schema_pgsql.sql
  173. /usr/local/bin/initialize.sh &
  174. #备份还原postgres数据库
  175. if [ "$POSTGRES_DB_DUMP" == "true" ] || [ "$POSTGRES_DB_RESTORE" == "true" ]; then
  176. /usr/local/tt-rss/defaults/postgres-dump-restore.sh &
  177. fi