1
1
Fork 0
mirror of https://code.mensbeam.com/MensBeam/Arsse.git synced 2024-12-22 05:02:40 +00:00
The clean & modern RSS server that doesn't give you any crap.
Find a file
J. King 11b2066922 Added per-file legal boilerplate
Includes PHPDoc license tag in the file-level block with accompanying copyright notice.

Also added an AUTHORS file on the off chance of outside contributions
2017-11-16 20:23:18 -05:00
dist Changelog; CS fixes 2017-09-30 12:05:57 -04:00
lib Added per-file legal boilerplate 2017-11-16 20:23:18 -05:00
locale Added per-file legal boilerplate 2017-11-16 20:23:18 -05:00
sql/SQLite3 Added per-file legal boilerplate 2017-11-16 20:23:18 -05:00
tests Added per-file legal boilerplate 2017-11-16 20:23:18 -05:00
.gitattributes Clean up Git metadata 2017-09-28 14:17:18 -04:00
.gitignore Clean up Git metadata 2017-09-28 14:17:18 -04:00
.php_cs.dist Added per-file legal boilerplate 2017-11-16 20:23:18 -05:00
arsse.php Added per-file legal boilerplate 2017-11-16 20:23:18 -05:00
AUTHORS Added per-file legal boilerplate 2017-11-16 20:23:18 -05:00
build.xml Relegate bootstrap.php to testing; fixes #117 2017-10-01 09:33:49 -04:00
CHANGELOG Changelog; CS fixes 2017-09-30 12:05:57 -04:00
composer.json Add a basic build system 2017-08-29 14:58:06 -04:00
composer.lock Update dependencies 2017-10-17 17:25:27 -04:00
CONTRIBUTING.md Added CONTRIBUTING.md 2017-08-23 18:56:18 -05:00
LICENSE Add license file and skeleton of readme 2017-05-26 10:01:35 -04:00
phpdoc.dist.xml Docblocks for Conf 2017-07-16 22:27:55 -04:00
README.md Satisfy Gitea's picky Mrkdown parser 2017-08-30 23:56:03 -04:00

The Advanced RSS Environment

The Arsse is a news aggregator server which implements version 1.2 of NextCloud News' client-server synchronization protocol. Unlike most other aggregator servers, The Arsse does not include a Web front-end (though one is planned as a separate project), and it relies on existing protocols to maximize compatibility with existing clients.

At present the software should be considered in an "alpha" state: though its core subsystems are covered by unit tests and should be free of major bugs, not everything has been rigorously tested. Additionally, though the NextCloud News protocol is fully supported, many features one would expect from other similar software have yet to be implemented. Areas of future work include:

  • Support for more database engines (PostgreSQL, MySQL, MariaDB)
  • Providing more sync protocols (Tiny Tiny RSS, Fever, others)
  • Complete tools for managing users
  • Better packaging and configuration samples

Requirements

The Arsse has the following requirements:

  • A Linux server utilizing systemd and Nginx (tested on Ubuntu 16.04)
  • PHP 7.0.7 or newer with the following extensions:
  • Privileges to create and run daemon processes on the server

Installation

At present, installation of The Arsse is rather manual. We hope to improve this in the future, but for now the steps below should help get you started. The instructions and configuration samples assume you will be using Ubuntu 16.04 (or equivalent Debian) and Nginx; we hope to expand official support for different configurations in the future as well.

Initial setup

  1. Extract the tar archive to /usr/share
  2. If desired, create /usr/share/arsse/config.php using config.defaults.php as a guide. The file you create only needs to contain non-default settings. The userPreAuth setting may be of particular interest
  3. Copy /usr/share/arsse/dist/arsse.service to /lib/systemd/system
  4. In a terminal, execute the following to start the feed fetching service:
sudo systemctl enable arsse
sudo systemctl start arsse

Configuring the Web server and PHP

Sample configuration parameters for Nginx can be found in arsse/dist/nginx.conf and arsse/dist/nginx-fcgi.conf; the samples assume a server group has already been defined for PHP. How to configure an Nginx service to use PHP and install the required PHP extensions is beyond the scope of this document, however.

Adding users

The Arsse currently includes a user add <username> [<password>] console command to add users to the database; other user management tasks require manual database edits. Alternatively, if the Web server is configured to handle authentication, you may set the configuration option userPreAuth to true and The Arsse will defer to the server and automatically add any missing users as it encounters them.

Installation from source

If installing from the Git repository rather than a download package, you will need to follow extra steps before the instructions in the section above.

First, you must install Composer to fetch required PHP libraries. Once Composer is installed, dependencies may be downloaded with the following command:

php composer.phar install -o --no-dev

Second, you may wish to create an example configuration file using the following command:

php ./arsse.php conf save-defaults "./config.defaults.php"

License

The Arsse is made available under the permissive MIT license. See the LICENSE file included with the distribution or source code for exact legal text. Dependencies included in the distribution may be governed by other licenses.

Contributing

Please refer to CONTRIBUTING.md for guidelines on contributing code to The Arsse.

Running tests

To run the test suite, you must have Composer installed as well as the command-line PHP interpreter (this is normally required to use Composer). Port 8000 must also be available for use by the built-in PHP Web server.

# first install dependencies
php composer.phar install
# run the tests
./tests/test

The example uses Unix syntax, but the test suite also runs in Windows. By default all tests are run; you can pass the same arguments to the test runner as you would to PHPUnit:

./tests/test --testsuite "Configuration"