mirror of
https://git.cloudron.io/cloudron/freshrss-app
synced 2025-09-16 18:29:07 +00:00
Compare commits
20 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
20097b8daf | ||
|
108d4fae58 | ||
|
edb67b841e | ||
|
5516004525 | ||
|
bc70f2f33c | ||
|
3dc389a3e0 | ||
|
50c187a247 | ||
|
a5859749cc | ||
|
3a5458cdf6 | ||
|
c845c79cc4 | ||
|
c86ce2c5c1 | ||
|
6db1932cfb | ||
|
df327aff91 | ||
|
c4a8a59fc1 | ||
|
914eef2250 | ||
|
90bef0daa1 | ||
|
42bdf28afa | ||
|
baab1b2173 | ||
|
c58a457c83 | ||
|
7c546a3a7a |
@@ -213,3 +213,55 @@
|
|||||||
* Update FreshRSS to 1.19.1
|
* Update FreshRSS to 1.19.1
|
||||||
* [Full Changelog](https://github.com/FreshRSS/FreshRSS/releases/tag/1.19.1)
|
* [Full Changelog](https://github.com/FreshRSS/FreshRSS/releases/tag/1.19.1)
|
||||||
|
|
||||||
|
[1.14.2]
|
||||||
|
* Update apache configs
|
||||||
|
|
||||||
|
[1.14.3]
|
||||||
|
* Update FreshRSS to 1.19.2
|
||||||
|
* [Full Changelog](https://github.com/FreshRSS/FreshRSS/releases/tag/1.19.2)
|
||||||
|
* Improve dropdown menus on mobile view #4141, #4128
|
||||||
|
* Fix regression regarding keeping read state after seeing favourites / labels #4178
|
||||||
|
* Lots of code improvements, including improved support of PHP 8.1
|
||||||
|
|
||||||
|
[1.15.0]
|
||||||
|
* Update FreshRSS to 1.20.0
|
||||||
|
* [Full Changelog](https://github.com/FreshRSS/FreshRSS/releases/tag/1.20.0)
|
||||||
|
* New Web scraping feature HTML+XPath for Web pages without any RSS/ATOM feed #4220
|
||||||
|
* Add support for Dynamic OPML #4407
|
||||||
|
* New search engine supporting (nested) parentheses, also with negation #4378
|
||||||
|
* Allow many (50k+) feeds #4347 and other performance improvements
|
||||||
|
* New option to exclude some DOM elements with a CSS Selector when retrieving an article full content #4501
|
||||||
|
* New option to automatically mark as read gone articles #4426
|
||||||
|
* 2 new themes and plenty of UI improvements
|
||||||
|
* Supported by Fluent Reader Lite client on Android and iOS #4595
|
||||||
|
* Several bug fixes
|
||||||
|
|
||||||
|
[1.15.1]
|
||||||
|
* Update FreshRSS to 1.20.1
|
||||||
|
* [Full Changelog](https://github.com/FreshRSS/FreshRSS/releases/tag/1.20.1)
|
||||||
|
* Add support for custom XPath date/time format #4703
|
||||||
|
* Add default redirect when authenticating #4778
|
||||||
|
* Force default user before rendering login page #4620
|
||||||
|
|
||||||
|
[1.15.2]
|
||||||
|
* Update FreshRSS to 1.20.2
|
||||||
|
* Update Cloudron base image to 4.0.0
|
||||||
|
* [Full Changelog](https://github.com/FreshRSS/FreshRSS/releases/tag/1.20.2)
|
||||||
|
* Fix security vulnerability in ext.php #4928 reported by @c3l3si4n
|
||||||
|
|
||||||
|
[1.15.3]
|
||||||
|
* Update FreshRSS extensions repo to f66efcf5f
|
||||||
|
|
||||||
|
[1.16.0]
|
||||||
|
* Update FreshRSS to 1.21.1
|
||||||
|
* [Full Changelog](https://github.com/FreshRSS/FreshRSS/releases/tag/1.21.0)
|
||||||
|
* New XML+XPath mode for fetching XML documents when there is no RSS/ATOM feed #5076
|
||||||
|
* Better support of feed enclosures (image / audio / video attachments) #4944
|
||||||
|
* User-defined time-zone #4906
|
||||||
|
* New CLI script cli/sensitive-log.sh to help e.g. Apache clear logs for sensitive information such as credentials #5001
|
||||||
|
* Mark some themes as tentatively deprecated: BlueLagoon, Flat, Screwdriver #4807
|
||||||
|
* Many UI improvements
|
||||||
|
|
||||||
|
[1.17.0]
|
||||||
|
* Update base image to 4.2.0
|
||||||
|
|
@@ -3,9 +3,10 @@
|
|||||||
"title": "FreshRSS",
|
"title": "FreshRSS",
|
||||||
"author": "FreshRSS Developers",
|
"author": "FreshRSS Developers",
|
||||||
"description": "file://DESCRIPTION.md",
|
"description": "file://DESCRIPTION.md",
|
||||||
"changelog": "file://CHANGELOG",
|
"changelog": "file://CHANGELOG.md",
|
||||||
"tagline": "RSS feed reader",
|
"tagline": "RSS feed reader",
|
||||||
"version": "1.14.1",
|
"version": "1.17.0",
|
||||||
|
"upstreamVersion": "1.21.0",
|
||||||
"healthCheckPath": "/",
|
"healthCheckPath": "/",
|
||||||
"httpPort": 8000,
|
"httpPort": 8000,
|
||||||
"addons": {
|
"addons": {
|
||||||
@@ -27,7 +28,7 @@
|
|||||||
"https://screenshots.cloudron.io/org.freshrss.cloudronapp/1.png"
|
"https://screenshots.cloudron.io/org.freshrss.cloudronapp/1.png"
|
||||||
],
|
],
|
||||||
"postInstallMessage": "file://POSTINSTALL.md",
|
"postInstallMessage": "file://POSTINSTALL.md",
|
||||||
"minBoxVersion": "5.3.0",
|
"minBoxVersion": "7.1.0",
|
||||||
"forumUrl": "https://forum.cloudron.io/category/27/freshrss",
|
"forumUrl": "https://forum.cloudron.io/category/27/freshrss",
|
||||||
"documentationUrl": "https://cloudron.io/documentation/apps/freshrss/"
|
"documentationUrl": "https://cloudron.io/documentation/apps/freshrss/"
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,3 @@
|
|||||||
This app packages FreshRSS <upstream>1.19.1</upstream>.
|
|
||||||
|
|
||||||
## About
|
## About
|
||||||
|
|
||||||
FreshRSS is a self-hosted RSS feed aggregator such as Leed or Kriss Feed.
|
FreshRSS is a self-hosted RSS feed aggregator such as Leed or Kriss Feed.
|
||||||
|
29
Dockerfile
29
Dockerfile
@@ -1,15 +1,14 @@
|
|||||||
FROM cloudron/base:3.2.0@sha256:ba1d566164a67c266782545ea9809dc611c4152e27686fd14060332dd88263ea
|
FROM cloudron/base:4.2.0@sha256:46da2fffb36353ef714f97ae8e962bd2c212ca091108d768ba473078319a47f4
|
||||||
|
|
||||||
RUN mkdir -p /app/code
|
RUN mkdir -p /app/code
|
||||||
WORKDIR /app/code
|
WORKDIR /app/code
|
||||||
|
|
||||||
ARG VERSION=1.19.1
|
ARG VERSION=1.21.0
|
||||||
RUN curl -L https://github.com/FreshRSS/FreshRSS/archive/${VERSION}.tar.gz | tar -zxvf - --strip-components=1
|
RUN curl -L https://github.com/FreshRSS/FreshRSS/archive/${VERSION}.tar.gz | tar -zxvf - --strip-components=1 && \
|
||||||
|
mv data data-orig && ln -s /app/data data
|
||||||
|
|
||||||
RUN mv data data-orig && ln -s /app/data data
|
# official extensions (https://github.com/FreshRSS/Extensions/commits/master)
|
||||||
|
RUN wget https://github.com/FreshRSS/Extensions/archive/f66efcf5feb1245607c2e3ac9ef4176b5f2801b3.tar.gz -O - | tar -xz --strip-components=1 -C /app/code/extensions && \
|
||||||
# official extensions
|
|
||||||
RUN wget https://github.com/FreshRSS/Extensions/archive/1784092164139dc6961ba5cc5b920331b586acbc.tar.gz -O - | tar -xz --strip-components=1 -C /app/code/extensions && \
|
|
||||||
mv /app/code/extensions /app/code/extensions-orig && \
|
mv /app/code/extensions /app/code/extensions-orig && \
|
||||||
ln -s /app/data/extensions /app/code/extensions
|
ln -s /app/data/extensions /app/code/extensions
|
||||||
|
|
||||||
@@ -26,15 +25,15 @@ RUN a2enmod headers expires deflate mime dir rewrite setenvif
|
|||||||
|
|
||||||
RUN rm -rf /var/lib/php && ln -s /run/php /var/lib/php
|
RUN rm -rf /var/lib/php && ln -s /run/php /var/lib/php
|
||||||
|
|
||||||
RUN crudini --set /etc/php/7.4/apache2/php.ini PHP upload_max_filesize 64M && \
|
RUN crudini --set /etc/php/8.1/apache2/php.ini PHP upload_max_filesize 64M && \
|
||||||
crudini --set /etc/php/7.4/apache2/php.ini PHP post_max_size 64M && \
|
crudini --set /etc/php/8.1/apache2/php.ini PHP post_max_size 64M && \
|
||||||
crudini --set /etc/php/7.4/apache2/php.ini PHP memory_limit 64M && \
|
crudini --set /etc/php/8.1/apache2/php.ini PHP memory_limit 64M && \
|
||||||
crudini --set /etc/php/7.4/apache2/php.ini Session session.save_path /run/php/session && \
|
crudini --set /etc/php/8.1/apache2/php.ini Session session.save_path /run/php/session && \
|
||||||
crudini --set /etc/php/7.4/apache2/php.ini Session session.gc_probability 1 && \
|
crudini --set /etc/php/8.1/apache2/php.ini Session session.gc_probability 1 && \
|
||||||
crudini --set /etc/php/7.4/apache2/php.ini Session session.gc_divisor 100
|
crudini --set /etc/php/8.1/apache2/php.ini Session session.gc_divisor 100
|
||||||
|
|
||||||
RUN ln -s /app/data/php.ini /etc/php/7.4/apache2/conf.d/99-cloudron.ini && \
|
RUN ln -s /app/data/php.ini /etc/php/8.1/apache2/conf.d/99-cloudron.ini && \
|
||||||
ln -s /app/data/php.ini /etc/php/7.4/cli/conf.d/99-cloudron.ini
|
ln -s /app/data/php.ini /etc/php/8.1/cli/conf.d/99-cloudron.ini
|
||||||
|
|
||||||
ADD start.sh /app/code/start.sh
|
ADD start.sh /app/code/start.sh
|
||||||
|
|
||||||
|
@@ -12,10 +12,5 @@ ServerName %{HTTP_HOST}
|
|||||||
Options +FollowSymLinks
|
Options +FollowSymLinks
|
||||||
AllowOverride All
|
AllowOverride All
|
||||||
Require all granted
|
Require all granted
|
||||||
|
|
||||||
<IfModule mod_php7.c>
|
|
||||||
php_value memory_limit 64m
|
|
||||||
</IfModule>
|
|
||||||
|
|
||||||
</Directory>
|
</Directory>
|
||||||
</VirtualHost>
|
</VirtualHost>
|
||||||
|
3
start.sh
3
start.sh
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
mkdir -p /run/php/session
|
mkdir -p /run/php/session /app/data/extensions
|
||||||
|
|
||||||
if ! [ -f /app/data/.installed ]; then
|
if ! [ -f /app/data/.installed ]; then
|
||||||
echo "==> Fresh installation, setting up..."
|
echo "==> Fresh installation, setting up..."
|
||||||
@@ -29,7 +29,6 @@ ln -s /tmp/log_api.txt /app/data/users/_/log_api.txt
|
|||||||
|
|
||||||
# We have to copy instead of symlinking extensions (see #2)
|
# We have to copy instead of symlinking extensions (see #2)
|
||||||
echo "==> Copying packaged extensions"
|
echo "==> Copying packaged extensions"
|
||||||
mkdir -p /app/data/extensions
|
|
||||||
for f in $(ls /app/code/extensions-orig); do
|
for f in $(ls /app/code/extensions-orig); do
|
||||||
rm -rf "/app/data/extensions/$f"
|
rm -rf "/app/data/extensions/$f"
|
||||||
cp -r "/app/code/extensions-orig/$f" "/app/data/extensions"
|
cp -r "/app/code/extensions-orig/$f" "/app/data/extensions"
|
||||||
|
1589
test/package-lock.json
generated
1589
test/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -9,13 +9,10 @@
|
|||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chromedriver": "^96.0.0",
|
"chromedriver": "^117.0.3",
|
||||||
"ejs": "^3.1.6",
|
|
||||||
"expect.js": "^0.3.1",
|
"expect.js": "^0.3.1",
|
||||||
"mkdirp": "^1.0.4",
|
"mocha": "^10.2.0",
|
||||||
"mocha": "^9.1.3",
|
"selenium-webdriver": "^4.13.0",
|
||||||
"rimraf": "^3.0.2",
|
"superagent": "^8.1.2"
|
||||||
"selenium-webdriver": "^4.1.0",
|
|
||||||
"superagent": "^6.1.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -5,20 +5,20 @@
|
|||||||
/* global before */
|
/* global before */
|
||||||
/* global after */
|
/* global after */
|
||||||
/* global it */
|
/* global it */
|
||||||
|
/* global xit */
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
require('chromedriver');
|
require('chromedriver');
|
||||||
|
|
||||||
var execSync = require('child_process').execSync,
|
const execSync = require('child_process').execSync,
|
||||||
expect = require('expect.js'),
|
expect = require('expect.js'),
|
||||||
path = require('path'),
|
path = require('path'),
|
||||||
superagent = require('superagent'),
|
superagent = require('superagent'),
|
||||||
{ Builder, By, Key, until } = require('selenium-webdriver'),
|
{ Builder, By, Key, until } = require('selenium-webdriver'),
|
||||||
{ Options } = require('selenium-webdriver/chrome');
|
{ Options } = require('selenium-webdriver/chrome');
|
||||||
|
|
||||||
var username = 'admin',
|
const username = 'admin', password = 'changeme';
|
||||||
password = 'changeme';
|
|
||||||
|
|
||||||
describe('Application life cycle test', function () {
|
describe('Application life cycle test', function () {
|
||||||
this.timeout(0);
|
this.timeout(0);
|
||||||
@@ -27,7 +27,7 @@ describe('Application life cycle test', function () {
|
|||||||
const TEST_TIMEOUT = 10000;
|
const TEST_TIMEOUT = 10000;
|
||||||
const EXEC_ARGS = { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' };
|
const EXEC_ARGS = { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' };
|
||||||
|
|
||||||
var browser, app;
|
let browser, app;
|
||||||
|
|
||||||
before(function () {
|
before(function () {
|
||||||
const options = new Options().windowSize({ width: 1280, height: 1024 });
|
const options = new Options().windowSize({ width: 1280, height: 1024 });
|
||||||
|
Reference in New Issue
Block a user