mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2025-08-12 03:24:01 +02:00
[Documentation] Move all wiki pages into the repo and make it pretty (#2494)
This commit is contained in:
12
docs/03_For_Hosts/01_Installation.md
Normal file
12
docs/03_For_Hosts/01_Installation.md
Normal file
@@ -0,0 +1,12 @@
|
||||
In order to install RSS-Bridge on your own web server* do as follows:
|
||||
|
||||
* Make sure your web server meets all [requirements](../01_General/03_Requirements.md)
|
||||
* Download the ZIP file of the [last stable release](https://github.com/RSS-Bridge/rss-bridge/releases)
|
||||
* Place all files on your web server
|
||||
|
||||
For linux hosts:
|
||||
* Grant read-write-access for `www-data` to the `./cache` directory (`chown -R www-data ./cache`)
|
||||
|
||||
You have successfully installed RSS-Bridge.
|
||||
|
||||
Instructions for Docker setups are at [Docker Installation](../03_For_Hosts/03_Docker_Installation.md)
|
42
docs/03_For_Hosts/02_Updating.md
Normal file
42
docs/03_For_Hosts/02_Updating.md
Normal file
@@ -0,0 +1,42 @@
|
||||
Updating an existing installation is very simple, depending on your type of installation.
|
||||
|
||||
## Release Build
|
||||
|
||||
* Download latest version
|
||||
* Extract all files
|
||||
* Replace existing files
|
||||
|
||||
This will update all core files to the latest version. Your custom configuration and bridges are left untouched. Keep in mind that changes to any core file of RSS-Bridge will be replaced.
|
||||
|
||||
## Docker
|
||||
|
||||
Simply get the latest Docker build via `:latest` or specific builds via `:<tag-name>`.
|
||||
|
||||
## Heroku
|
||||
|
||||
### If you didn't fork the repo before
|
||||
|
||||
Fork the repo by clicking the `Fork` button at the top right of this page (must be on desktop site). Then on your Heroku account, go to the application. Click on the `Deploy` tab and connect the repo named `yourusername/rss-bridge`. Do a manual deploy of the `master` branch.
|
||||
|
||||
### If you forked the repo before
|
||||
|
||||
[Click here to create a new pull request to your fork](https://github.com/RSS-Bridge/rss-bridge/pull/new/master). Select `compare across forks`, make the base repository `yourusername/rss-bridge` and ensure the branch is set to master. Put any title you want and create the pull request. On the page that comes after this, merge the pull request.
|
||||
|
||||
You then want to go to your application in Heroku, connect your fork via the `Deploy` tab and deploy the `master` branch.
|
||||
|
||||
You can turn on auto-deploy for the master branch if you don't want to go through the process of logging into Heroku and deploying the branch every time changes to the repo are made in the future.
|
||||
|
||||
## Git
|
||||
|
||||
To get the latest changes from the master branch
|
||||
|
||||
```
|
||||
git pull
|
||||
```
|
||||
|
||||
To use a specific tag
|
||||
|
||||
```
|
||||
git fetch --all
|
||||
git checkout tags/<tag-name>
|
||||
```
|
58
docs/03_For_Hosts/03_Docker_Installation.md
Normal file
58
docs/03_For_Hosts/03_Docker_Installation.md
Normal file
@@ -0,0 +1,58 @@
|
||||
This guide is for people who want to run RSS Bridge using Docker. If you want to run it a simple PHP Webhost environment, see [Installation](../03_For_Hosts/01_Installation.md) instead.
|
||||
|
||||
## Setup
|
||||
|
||||
### Create the container
|
||||
|
||||
```bash
|
||||
docker create \
|
||||
--name=rss-bridge \
|
||||
--volume </local/custom/path>:/config \
|
||||
--publish 3000:80 \
|
||||
rssbridge/rss-bridge:latest
|
||||
```
|
||||
### Run it
|
||||
```bash
|
||||
docker start rss-bridge
|
||||
```
|
||||
|
||||
And access it using `http://IP_Address:3000`. If you'd like to run a specific version, you can run it by:
|
||||
|
||||
```bash
|
||||
docker create \
|
||||
--name=rss-bridge \
|
||||
--volume </local/custom/path>:/config \
|
||||
--publish 3000:80 \
|
||||
rssbridge/rss-bridge:$version
|
||||
```
|
||||
|
||||
Where you can get the versions published to Docker Hub at https://hub.docker.com/r/rssbridge/rss-bridge/tags/. The server runs on port 80 internally, and you can publish it on a different port (change 3000 to your choice).
|
||||
|
||||
You can run it using a `docker-compose.yml` as well:
|
||||
|
||||
```yml
|
||||
version: '2'
|
||||
services:
|
||||
rss-bridge:
|
||||
image: rssbridge/rss-bridge:latest
|
||||
volumes:
|
||||
- </local/custom/path>:/config
|
||||
ports:
|
||||
- 3000:80
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
# Container access and information
|
||||
|
||||
|Function|Command|
|
||||
|----|----|
|
||||
|Shell access (live container)|`docker exec -it rss-bridge /bin/sh`|
|
||||
|Realtime container logs|`docker logs -f rss-bridge`|
|
||||
|
||||
# Adding custom bridges and configurations
|
||||
If you want to add a bridge that is not part of [`/bridges`](https://github.com/RSS-Bridge/rss-bridge/tree/master/bridges), you can specify an additional folder to copy necessary files to the `rss-bridge` container.
|
||||
|
||||
_Here **root** is folder where `docker-compose.yml` resides._
|
||||
1. Create `custom` folder in root.
|
||||
2. Copy your [bridges files](../05_Bridge_API/01_How_to_create_a_new_bridge.md) to the `custom` folder. You can also add your custom [whitelist.txt](../03_For_Hosts/05_Whitelisting.md) file and your custom [config.ini.php](../03_For_Hosts/08_Custom_Configuration.md) to this folder.
|
||||
3. Run `docker-compose up` to recreate service.
|
25
docs/03_For_Hosts/04_Heroku_Installation.md
Normal file
25
docs/03_For_Hosts/04_Heroku_Installation.md
Normal file
@@ -0,0 +1,25 @@
|
||||
This guide is for people who want to run RSS Bridge on [Heroku](https://heroku.com).
|
||||
|
||||
You can run it on Heroku for free, however make sure your RSS reader interval is not set to a fast rate, otherwise your Heroku hours will use up quicker. Heroku puts the app to sleep after 30 mins of no activity. When the app is asleep no Heroku hours are used. So choose an interval that won't make the app exceed the limit!
|
||||
|
||||
You can increase your Heroku hours to 1000 a month from 550 a month by simply verifying your account with a credit card.
|
||||
|
||||
## Deploy button
|
||||
You can simply press the button below to easily deploy RSS Bridge on Heroku and use the default bridges. Or you can follow the manual instructions given below.
|
||||
|
||||
[](https://heroku.com/deploy?template=https://github.com/RSS-Bridge/rss-bridge)
|
||||
|
||||
## Manual deploy
|
||||
1. Fork this repo by clicking the Fork button at the top right of this page (only on desktop site)
|
||||
|
||||

|
||||
|
||||
2. To customise what bridges can be used if need, create a `whitelist.txt` file in your fork and follow the instructions given [here](../03_For_Hosts/05_Whitelisting.md). You don’t need to do this if you’re fine with the default bridges.
|
||||
|
||||
3. [Log in to Heroku](https://dashboard.heroku.com) and create a new app. The app name will be the URL of the RSS Bridge (appname.herokuapp.com)
|
||||
|
||||
4. Go to Deploy, select the GitHub option and connect your GitHub account. Search for the repo named `yourusername/rss-bridge`
|
||||
|
||||

|
||||
|
||||
5. Deploy the master branch.
|
38
docs/03_For_Hosts/05_Whitelisting.md
Normal file
38
docs/03_For_Hosts/05_Whitelisting.md
Normal file
@@ -0,0 +1,38 @@
|
||||
RSS-Bridge supports whitelists in order to limit the available bridges on your web server.
|
||||
|
||||
A default whitelist file (`whitelist.default.txt`) is shipped with RSS-Bridge. Please do not edit this file, as it gets replaced when upgrading RSS-Bridge!
|
||||
|
||||
You should, however, use this file as template to create your own whitelist (or leave it as is, to keep the default bridges). In order to create your own whitelist perform following actions:
|
||||
|
||||
* Copy the file `whitelist.default.txt` in the RSS-Bridge root folder
|
||||
* Rename the new file to `whitelist.txt`
|
||||
* Change the lines to satisfy your requirements
|
||||
|
||||
RSS-Bridge will automatically detect the `whitelist.txt` and use it. If the file doesn't exist it will default to `whitelist.default.txt` automatically.
|
||||
|
||||
# Specific whitelisting
|
||||
|
||||
In order to specifically whitelist bridges, open `whitelist.txt` and add one line for each bridge you want to show. Make sure you use normal [line-feeds](https://en.wikipedia.org/wiki/Newline "Line-feed") at the end of a line (LF not [CRLF](https://en.wikipedia.org/wiki/Carriage_return "Carriage-return line-feed")). The bridge name must match the filename of the bridge in the bridges folder (see [folder structure](../04_For_Developers/03_Folder_structure.md)). The name may or may not include the 'Bridge' part.
|
||||
|
||||
**Examples**:
|
||||
```TEXT
|
||||
FacebookBridge
|
||||
WikipediaBridge
|
||||
TwitterBridge
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```TEXT
|
||||
Facebook
|
||||
Wikipedia
|
||||
Twitter
|
||||
```
|
||||
|
||||
# Global whitelisting
|
||||
|
||||
In order to globally whitelist all bridges, open the `whitelist.txt` file, remove all contents and just write an asterisk `*` into the file (only this one character).
|
||||
|
||||
```TEXT
|
||||
*
|
||||
```
|
101
docs/03_For_Hosts/06_Authentication.md
Normal file
101
docs/03_For_Hosts/06_Authentication.md
Normal file
@@ -0,0 +1,101 @@
|
||||
Depending on your servers abilities you can choose between two types of authentication:
|
||||
|
||||
* [.htaccess](#htaccess)
|
||||
* [RSS-Bridge Authentication](#rss-bridge-authentication)
|
||||
|
||||
**General advice**:
|
||||
|
||||
- Make sure to use a strong password, no matter which solution you choose!
|
||||
- Enable HTTPS on your server to ensure your connection is encrypted and secure!
|
||||
|
||||
## .htaccess
|
||||
|
||||
.htaccess files are commonly used to restrict access to files on a web server. One of the features of .htaccess files is the ability to password protect specific (or all) directories. If setup correctly, a password is required to access the files.
|
||||
|
||||
The usage of .htaccess files requires three basic steps:
|
||||
|
||||
1) [Enable .htaccess](#enable-htaccess)
|
||||
2) [Create a .htpasswd file](#create-a-htpasswd-file)
|
||||
3) [Create a .htaccess file](#create-a-htaccess-file)
|
||||
|
||||
### Enable .htaccess
|
||||
|
||||
This process depends on the server you are using. Some providers may require you to change some settings, or place/change some file. Here are some helpful links for your server (please add your own if missing :sparkling_heart:)
|
||||
|
||||
- Apache: http://ask.xmodulo.com/enable-htaccess-apache.html
|
||||
|
||||
### Create a .htpasswd file
|
||||
|
||||
The `.htpasswd` file contains the user name and password used for login to your web server. Please notice that the password is stored in encrypted form, which requires you to encrypt your password before creating the `.htpasswd` file!
|
||||
|
||||
Here are three ways of creating your own `.htpasswd` file:
|
||||
|
||||
**1) Example file**
|
||||
|
||||
Example `.htpasswd` file (user name: "test", password: "test"):
|
||||
|
||||
```.htpasswd
|
||||
test:$apr1$a52u9ILP$XTNG8qMJiEXSm1zD0lQcR0
|
||||
```
|
||||
|
||||
Just copy and paste the contents to your `.htpasswd` file.
|
||||
|
||||
**2) Online generator (read warning!)**
|
||||
|
||||
You can create your own `.htpasswd` file online using a `.htpasswd` generator like this: https://www.htaccesstools.com/htpasswd-generator/
|
||||
|
||||
**WARNING!**
|
||||
- Never insert real passwords to an online generator!
|
||||
|
||||
**3) Generate your own password**
|
||||
|
||||
Another way to create your own `.htpasswd` file is to run this script on your server (it'll output the data for you, you just have to paste it int a `.htpasswd` file):
|
||||
|
||||
```PHP
|
||||
<?php
|
||||
// Password to be encrypted for a .htpasswd file
|
||||
$clearTextPassword = 'some password';
|
||||
|
||||
// Encrypt password
|
||||
$password = crypt($clearTextPassword, base64_encode($clearTextPassword));
|
||||
|
||||
// Print encrypted password
|
||||
echo $password;
|
||||
?>
|
||||
```
|
||||
|
||||
>source: https://www.htaccesstools.com/articles/create-password-for-htpasswd-file-using-php/
|
||||
|
||||
### Create a .htaccess file
|
||||
|
||||
The `.htaccess` file is used to specify which directories are password protected. For that purpose you should place the file in whatever directory you want to restrict access. If you want to restrict access to RSS-Bridge in general, you should place the file in the root directory (where `index.php` is located).
|
||||
|
||||
Two parameters must be specified in the `.htaccess` file:
|
||||
|
||||
* AuthName
|
||||
* AuthUserFile
|
||||
|
||||
`AuthName` specifies the name of the authentication (i.e. "RSS-Bridge"). `AuthUserFile` defines the **absolute** path to a `.htpasswd` file.
|
||||
|
||||
Here are two ways of creating your own `.htaccess` file:
|
||||
|
||||
**1) Example file**
|
||||
|
||||
```.htaccess
|
||||
AuthType Basic
|
||||
AuthName "My Protected Area"
|
||||
AuthUserFile /path/to/.htpasswd
|
||||
Require valid-user
|
||||
```
|
||||
|
||||
Notice: You must change the `AuthUserFile` location to fit your own server (i.e. `/var/www/html/rss-bridge/.htpasswd`)
|
||||
|
||||
**2) Online generator**
|
||||
|
||||
You can use an online generator to create the file for you and copy-paste it to your `.htaccess` file: https://www.htaccesstools.com/htaccess-authentication/
|
||||
|
||||
## RSS-Bridge Authentication
|
||||
|
||||
RSS-Bridge ships with an authentication module designed for single user environments. You can enable authentication and specify the username & password in the [configuration file](../03_For_Hosts/08_Custom_Configuration.md#authentication).
|
||||
|
||||
Please notice that the password is stored in plain text and thus is readable to anyone who can access the file. Make sure to restrict access to the file, so that it cannot be read remotely!
|
9
docs/03_For_Hosts/07_Customizations.md
Normal file
9
docs/03_For_Hosts/07_Customizations.md
Normal file
@@ -0,0 +1,9 @@
|
||||
RSS-Bridge ships a few options the host may or may not activate. All options are currently defined in the [index.php](https://github.com/RSS-Bridge/rss-bridge/blob/master/index.php) file. This means they'll be reset after upgrading RSS-Bridge!
|
||||
|
||||
## Customizable cache timeout
|
||||
|
||||
Sometimes it is necessary to specify custom timeouts to update contents more frequently than the bridge maintainer intended. In these cases the client may specify a custom cache timeout to prevent loading contents from cache earlier (or later).
|
||||
|
||||
This option can be activated by setting the `CUSTOM_CACHE_TIMEOUT` to `true`. When enabled each bridge receives an additional parameter `Cache timeout in seconds` that can be set to any value between 1 and 86400 (24 hours). If the value is not within the limits the default settings apply (as specified by the bridge maintainer).
|
||||
|
||||
The cache timeout is send to RSS-Bridge using the `_cache_timeout` parameter. RSS-Bridge will return an error message if the parameter is received and the option is disabled.
|
164
docs/03_For_Hosts/08_Custom_Configuration.md
Normal file
164
docs/03_For_Hosts/08_Custom_Configuration.md
Normal file
@@ -0,0 +1,164 @@
|
||||
RSS-Bridge supports custom configurations for common parameters on the server side!
|
||||
|
||||
A default configuration file (`config.default.ini.php`) is shipped with RSS-Bridge. Please do not edit this file, as it gets replaced when upgrading RSS-Bridge!
|
||||
|
||||
You should, however, use this file as template to create your own configuration (or leave it as is, to keep the default settings). In order to create your own configuration perform following actions:
|
||||
|
||||
* Create the file `config.ini.php` in the RSS-Bridge root folder (next to `config.default.ini.php`)
|
||||
* Copy the contents from `config.default.ini.php` to your configuration file
|
||||
* Change the parameters to satisfy your requirements
|
||||
|
||||
RSS-Bridge will automatically detect the `config.ini.php` and use it. If the file doesn't exist it will default to `config.default.ini.php` automatically.
|
||||
|
||||
__Notice__: If a parameter is not specified in your `config.ini.php` RSS-Bridge will automatically use the default settings from `config.default.ini.php`.
|
||||
|
||||
# Available parameters
|
||||
|
||||
The configuration file is split into sections:
|
||||
|
||||
* [system](#system)
|
||||
* [cache](#cache)
|
||||
* [proxy](#proxy)
|
||||
* [authentication](#authentication)
|
||||
* [admin](#admin)
|
||||
* [error](#error)
|
||||
|
||||
_System_: This section specifies system specific parameters
|
||||
|
||||
_Cache_: This section is all about the caching behavior of RSS-Bridge
|
||||
|
||||
_Proxy_: This section can be used to specify a proxy server for RSS-Bridge to utilize for fetching contents
|
||||
|
||||
_Authentication_: This section defines parameters to require authentication to use RSS-Bridge
|
||||
|
||||
_Admin_: This section specifies parameters related to the administrator of your instance of RSS-Bridge
|
||||
|
||||
## System
|
||||
|
||||
This section provides following parameters:
|
||||
|
||||
- [timezone](#timezone)
|
||||
|
||||
### Timezone
|
||||
|
||||
Defines the timezone used by RSS-Bridge. This parameter can be set to any value of the values defined at https://www.php.net/manual/en/timezones.php
|
||||
|
||||
The default value is `UTC`.
|
||||
|
||||
## Cache
|
||||
|
||||
This section provides following parameters:
|
||||
|
||||
- [type](#type)
|
||||
- [custom_timeout](#custom_timeout)
|
||||
|
||||
### type
|
||||
|
||||
Defines the cache type used by RSS-Bridge.
|
||||
|
||||
| Type | Description
|
||||
| ------- | -----------
|
||||
|`file` | File based (default)
|
||||
|`sqlite` | SQLite database
|
||||
|`memcached` | Memcached service
|
||||
|
||||
### custom_timeout
|
||||
|
||||
Allow users to specify custom timeout for specific requests.
|
||||
|
||||
`true` = enabled
|
||||
|
||||
`false` = disabled (default)
|
||||
|
||||
## Proxy
|
||||
|
||||
This section provides following parameters:
|
||||
|
||||
- [url](#url)
|
||||
- [name](#name)
|
||||
- [by_bridge](#by_bridge)
|
||||
|
||||
### url
|
||||
|
||||
Sets the proxy url (i.e. "tcp://192.168.0.0:32")
|
||||
|
||||
`""` = Proxy disabled (default)
|
||||
|
||||
### name
|
||||
|
||||
Sets the proxy name that is shown on the bridge instead of the proxy url.
|
||||
|
||||
`""` = Show proxy url (default: "Hidden proxy name")
|
||||
|
||||
### by_bridge
|
||||
|
||||
Allow users to disable proxy usage for specific requests.
|
||||
|
||||
`true` = enabled
|
||||
|
||||
`false` = disabled (default)
|
||||
|
||||
## Authentication
|
||||
|
||||
This section provides following parameters:
|
||||
|
||||
- [enable](#enable)
|
||||
- [username](#username)
|
||||
- [password](#password)
|
||||
|
||||
### enable
|
||||
|
||||
Enables authentication for RSS-Bridge.
|
||||
|
||||
_Notice_: Login is required for all requests when enabled! Make sure to update feed subscriptions accordingly.
|
||||
|
||||
`true` = enabled
|
||||
|
||||
`false` = disabled (default)
|
||||
|
||||
### username
|
||||
|
||||
Defines the user name used for login.
|
||||
|
||||
### password
|
||||
|
||||
Defines the password used for login. Use a strong password to prevent others from guessing your login!
|
||||
|
||||
## Admin
|
||||
|
||||
This section provides following parameters:
|
||||
|
||||
- [email](#email)
|
||||
|
||||
### email
|
||||
|
||||
Advertises an email address where people can reach the administrator.
|
||||
|
||||
*Notice*: This address is displayed on the main page, visible to everyone!
|
||||
|
||||
`""` = Disabled (default)
|
||||
|
||||
Example: `email = "admin@instance.rss-bridge.com"`
|
||||
|
||||
## error
|
||||
|
||||
This section provides following parameters:
|
||||
|
||||
- [output](#output)
|
||||
- [report_limit](#report_limit)
|
||||
|
||||
### output
|
||||
|
||||
Defines how error messages are returned by RSS-Bridge
|
||||
|
||||
`feed`: As part of the feed (default)
|
||||
|
||||
`http`: As HTTP error message
|
||||
|
||||
`none`: No errors are reported
|
||||
|
||||
### report_limit
|
||||
|
||||
Defines how often an error must occur before it is reported to the user
|
||||
|
||||
`report_limit`: 1 (default)
|
11
docs/03_For_Hosts/index.md
Normal file
11
docs/03_For_Hosts/index.md
Normal file
@@ -0,0 +1,11 @@
|
||||
This section is directed at **hosts** and **server administrators**.
|
||||
|
||||
To install RSS-Bridge, please follow the [installation instructions](../03_For_Hosts/01_Installation.md). You must have access to a web server with a working PHP environment!
|
||||
|
||||
RSS-Bridge comes with a large amount of bridges. Only few bridges are enabled by default. Unlock more bridges by adding them to the [whitelist](../03_For_Hosts/05_Whitelisting.md).
|
||||
|
||||
Some bridges could be implemented more efficiently by actually using proprietary APIs, but there are reasons against it:
|
||||
|
||||
- RSS-Bridge exists in the first place to NOT use APIs. See [the rant](https://github.com/RSS-Bridge/rss-bridge/blob/master/README.md#Rant)
|
||||
|
||||
- APIs require private keys that could be stored on servers running RSS-Bridge, which is a security concern, involves complex authorizations for inexperienced users and could cause harm (when using paid services for example). In a closed environment (a server only you use for yourself) however you might be interested in using them anyway. So, check [this](https://github.com/RSS-Bridge/rss-bridge/pull/478/files) possible implementation of an anti-captcha solution.
|
Reference in New Issue
Block a user