diff --git a/README.md b/README.md index bae5338..6d9af74 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,31 @@ + + # RSS-Bridge for YunoHost [![Integration level](https://dash.yunohost.org/integration/rss-bridge.svg)](https://dash.yunohost.org/appci/app/rss-bridge) ![](https://ci-apps.yunohost.org/ci/badges/rss-bridge.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/rss-bridge.maintain.svg) -[![Install RSS-Bridge with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=rss-bridge) +[![Install RSS-Bridge with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=rss-bridge) -> *This package allow you to install RSS-Bridge quickly and simply on a YunoHost server. -If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.* +*[Lire ce readme en français.](./README_fr.md)* + +> *This package allows you to install RSS-Bridge quickly and simply on a YunoHost server. +If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* ## Overview -[RSS-Bridge](https://github.com/RSS-Bridge/rss-bridge) is a PHP project capable of generating ATOM feeds for websites which don't have one. -**Shipped version:** 2021-04-25 +RSS and Atom feed generator for websites that don't have one. + +**Shipped version:** 2021-04-25~ynh1 + +**Demo:** https://wtf.roflcopter.fr/rss-bridge/ + +## Screenshots + +![](./doc/screenshots/screenshot_rss-bridge_welcome.png) + +## Disclaimers / important information ### Supported sites/pages (main) @@ -43,18 +59,6 @@ Output format can take several forms: * `Html` : Simple html page. * `Plaintext` : raw text (php object, as returned by print_r) -## Screenshots - -![image](https://github.com/RSS-Bridge/rss-bridge/wiki/images/screenshot_rss-bridge_welcome.png) - -RSS-Bridge hashtag (#rss-bridge) search on Twitter, in ATOM format (as displayed by Firefox): - -![image](https://github.com/RSS-Bridge/rss-bridge/wiki/images/screenshot_twitterbridge_atom.png) - -## Demo - -* [Official demo](https://wtf.roflcopter.fr/rss-bridge/) - ## Configuration ### Enabling/Disabling bridges @@ -67,42 +71,21 @@ By default, the script creates `whitelist.txt` and adds the main bridges (see ab As a matter of simplicity, this YunoHost package enables every bridge by default. -## Documentation - - * Official documentation: https://github.com/RSS-Bridge/rss-bridge/wiki - * YunoHost documentation: If specific documentation is needed, feel free to contribute. - -## YunoHost specific features - #### Multi-users support This is application is public and there's no notion of user. -#### Supported architectures +## Documentation and resources -* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/rss-bridge.svg)](https://ci-apps.yunohost.org/ci/apps/rss-bridge/) -* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/rss-bridge.svg)](https://ci-apps-arm.yunohost.org/ci/apps/rss-bridge/) +* Official app website: https://github.com/RSS-Bridge/rss-bridge +* Official admin documentation: https://github.com/RSS-Bridge/rss-bridge/wiki +* Upstream app code repository: https://github.com/RSS-Bridge/rss-bridge +* YunoHost documentation for this app: https://yunohost.org/app_rss-bridge +* Report a bug: https://github.com/YunoHost-Apps/rss-bridge_ynh/issues -## Limitations +## Developer info -* Any known limitations. - -## Additional information - -* Other information you would add about this application - -## Links - - * Report a bug: https://github.com/YunoHost-Apps/rss-bridge_ynh/issues - * App website: https://github.com/RSS-Bridge/rss-bridge - * Upstream app repository: https://github.com/RSS-Bridge/rss-bridge - * YunoHost website: https://yunohost.org/ - ---- - -## Developers info - -Please do your pull request to the [testing branch](https://github.com/YunoHost-Apps/rss-bridge_ynh/tree/testing). +Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/rss-bridge_ynh/tree/testing). To try the testing branch, please proceed like that. ``` @@ -110,3 +93,5 @@ sudo yunohost app install https://github.com/YunoHost-Apps/rss-bridge_ynh/tree/t or sudo yunohost app upgrade rss-bridge -u https://github.com/YunoHost-Apps/rss-bridge_ynh/tree/testing --debug ``` + +**More info regarding app packaging:** https://yunohost.org/packaging_apps \ No newline at end of file diff --git a/README_fr.md b/README_fr.md new file mode 100644 index 0000000..5105672 --- /dev/null +++ b/README_fr.md @@ -0,0 +1,93 @@ +# RSS-Bridge pour YunoHost + +[![Niveau d'intégration](https://dash.yunohost.org/integration/rss-bridge.svg)](https://dash.yunohost.org/appci/app/rss-bridge) ![](https://ci-apps.yunohost.org/ci/badges/rss-bridge.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/rss-bridge.maintain.svg) +[![Installer RSS-Bridge avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=rss-bridge) + +*[Read this readme in english.](./README.md)* +*[Lire ce readme en français.](./README_fr.md)* + +> *Ce package vous permet d'installer RSS-Bridge rapidement et simplement sur un serveur YunoHost. +Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.* + +## Vue d'ensemble + +Générateur de flux RSS et Atom pour les sites Web qui n'en ont pas. + +**Version incluse :** 2021-04-25~ynh1 + +**Démo :** https://wtf.roflcopter.fr/rss-bridge/ + +## Captures d'écran + +![](./doc/screenshots/screenshot_rss-bridge_welcome.png) + +## Avertissements / informations importantes + +### Supported sites/pages (main) + + * `FlickrExplore` : [Latest interesting images](http://www.flickr.com/explore) from Flickr + * `GoogleSearch` : Most recent results from Google Search + * `GooglePlus` : Most recent posts of user timeline + * `Twitter` : Return keyword/hashtag search or user timeline + * `Identi.ca` : Identica user timeline (Should be compatible with other Pump.io instances) + * `YouTube` : YouTube user channel, playlist or search + * `Cryptome` : Returns the most recent documents from [Cryptome.org](http://cryptome.org/) + * `DansTonChat`: Most recent quotes from [danstonchat.com](http://danstonchat.com/) + * `DuckDuckGo`: Most recent results from [DuckDuckGo.com](https://duckduckgo.com/) + * `Instagram`: Most recent photos from an Instagram user + * `OpenClassrooms`: Lastest tutorials from [fr.openclassrooms.com](http://fr.openclassrooms.com/) + * `Pinterest`: Most recent photos from user or search + * `ScmbBridge`: Newest stories from [secouchermoinsbete.fr](http://secouchermoinsbete.fr/) + * `Wikipedia`: highlighted articles from [Wikipedia](https://wikipedia.org/) in English, German, French or Esperanto + * `Bandcamp` : Returns last release from [bandcamp](https://bandcamp.com/) for a tag + * `ThePirateBay` : Returns the newest indexed torrents from [The Pirate Bay](https://thepiratebay.se/) with keywords + * `Facebook` : Returns the latest posts on a page or profile on [Facebook](https://facebook.com/) + +Plus [many other bridges](bridges/) to enable, thanks to the community + +### Output format + +Output format can take several forms: + + * `Atom` : ATOM Feed, for use in RSS/Feed readers + * `Mrss` : MRSS Feed, for use in RSS/Feed readers + * `Json` : Json, for consumption by other applications. + * `Html` : Simple html page. + * `Plaintext` : raw text (php object, as returned by print_r) + +## Configuration + +### Enabling/Disabling bridges + +By default, the script creates `whitelist.txt` and adds the main bridges (see above). you can edit it: + + * to enable extra bridges (one bridge per line) + * to disable main bridges (remove the line) + * to enable all bridges (just one wildcard `*` as file content) + +As a matter of simplicity, this YunoHost package enables every bridge by default. + +#### Multi-users support + +This is application is public and there's no notion of user. + +## Documentations et ressources + +* Site officiel de l'app : https://github.com/RSS-Bridge/rss-bridge +* Documentation officielle de l'admin : https://github.com/RSS-Bridge/rss-bridge/wiki +* Dépôt de code officiel de l'app : https://github.com/RSS-Bridge/rss-bridge +* Documentation YunoHost pour cette app : https://yunohost.org/app_rss-bridge +* Signaler un bug : https://github.com/YunoHost-Apps/rss-bridge_ynh/issues + +## Informations pour les développeurs + +Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/rss-bridge_ynh/tree/testing). + +Pour essayer la branche testing, procédez comme suit. +``` +sudo yunohost app install https://github.com/YunoHost-Apps/rss-bridge_ynh/tree/testing --debug +ou +sudo yunohost app upgrade rss-bridge -u https://github.com/YunoHost-Apps/rss-bridge_ynh/tree/testing --debug +``` + +**Plus d'infos sur le packaging d'applications :** https://yunohost.org/packaging_apps \ No newline at end of file diff --git a/check_process b/check_process index 0658fdd..8692564 100644 --- a/check_process +++ b/check_process @@ -1,7 +1,7 @@ ;; Complete test ; Manifest - domain="domain.tld" (DOMAIN) - path="/path" (PATH) + domain="domain.tld" + path="/path" ; Checks pkg_linter=1 setup_sub_dir=1 @@ -10,12 +10,11 @@ setup_private=0 setup_public=0 upgrade=1 - upgrade=1 from_commit=7a99e018f12d91876c84efd04e0a4e7f178fdd80 + upgrade=1 from_commit=3fbb92322907780bcda40792d6ddc652b1c9ff5c backup_restore=1 multi_instance=1 - port_already_use=0 change_url=1 ;;; Upgrade options - ; commit=7a99e018f12d91876c84efd04e0a4e7f178fdd80 - name=Upgrade to upstream version 2018-04-06 + ; commit=3fbb92322907780bcda40792d6ddc652b1c9ff5c + name=Merge pull request #35 manifest_arg=domain=DOMAIN&path=PATH& diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md new file mode 100644 index 0000000..ff79e14 --- /dev/null +++ b/doc/DISCLAIMER.md @@ -0,0 +1,47 @@ +### Supported sites/pages (main) + + * `FlickrExplore` : [Latest interesting images](http://www.flickr.com/explore) from Flickr + * `GoogleSearch` : Most recent results from Google Search + * `GooglePlus` : Most recent posts of user timeline + * `Twitter` : Return keyword/hashtag search or user timeline + * `Identi.ca` : Identica user timeline (Should be compatible with other Pump.io instances) + * `YouTube` : YouTube user channel, playlist or search + * `Cryptome` : Returns the most recent documents from [Cryptome.org](http://cryptome.org/) + * `DansTonChat`: Most recent quotes from [danstonchat.com](http://danstonchat.com/) + * `DuckDuckGo`: Most recent results from [DuckDuckGo.com](https://duckduckgo.com/) + * `Instagram`: Most recent photos from an Instagram user + * `OpenClassrooms`: Lastest tutorials from [fr.openclassrooms.com](http://fr.openclassrooms.com/) + * `Pinterest`: Most recent photos from user or search + * `ScmbBridge`: Newest stories from [secouchermoinsbete.fr](http://secouchermoinsbete.fr/) + * `Wikipedia`: highlighted articles from [Wikipedia](https://wikipedia.org/) in English, German, French or Esperanto + * `Bandcamp` : Returns last release from [bandcamp](https://bandcamp.com/) for a tag + * `ThePirateBay` : Returns the newest indexed torrents from [The Pirate Bay](https://thepiratebay.se/) with keywords + * `Facebook` : Returns the latest posts on a page or profile on [Facebook](https://facebook.com/) + +Plus [many other bridges](bridges/) to enable, thanks to the community + +### Output format + +Output format can take several forms: + + * `Atom` : ATOM Feed, for use in RSS/Feed readers + * `Mrss` : MRSS Feed, for use in RSS/Feed readers + * `Json` : Json, for consumption by other applications. + * `Html` : Simple html page. + * `Plaintext` : raw text (php object, as returned by print_r) + +## Configuration + +### Enabling/Disabling bridges + +By default, the script creates `whitelist.txt` and adds the main bridges (see above). you can edit it: + + * to enable extra bridges (one bridge per line) + * to disable main bridges (remove the line) + * to enable all bridges (just one wildcard `*` as file content) + +As a matter of simplicity, this YunoHost package enables every bridge by default. + +#### Multi-users support + +This is application is public and there's no notion of user. diff --git a/doc/screenshots/screenshot_rss-bridge_welcome.png b/doc/screenshots/screenshot_rss-bridge_welcome.png new file mode 100644 index 0000000..3ceb432 Binary files /dev/null and b/doc/screenshots/screenshot_rss-bridge_welcome.png differ diff --git a/manifest.json b/manifest.json index a71c616..98493c4 100644 --- a/manifest.json +++ b/manifest.json @@ -8,6 +8,13 @@ }, "version": "2021-04-25~ynh1", "url": "https://github.com/RSS-Bridge/rss-bridge", + "upstream": { + "license": "Unlicense", + "website": "https://github.com/RSS-Bridge/rss-bridge", + "demo": "https://wtf.roflcopter.fr/rss-bridge/", + "admindoc": "https://github.com/RSS-Bridge/rss-bridge/wiki", + "code": "https://github.com/RSS-Bridge/rss-bridge" + }, "license": "Unlicense", "maintainer": { "name": "JimboJoe", @@ -15,7 +22,7 @@ }, "multi_instance": true, "requirements": { - "yunohost": ">= 4.1.0" + "yunohost": ">= 4.2.0" }, "services": [ "nginx", diff --git a/scripts/install b/scripts/install index 841d8eb..816cfdf 100644 --- a/scripts/install +++ b/scripts/install @@ -49,6 +49,14 @@ ynh_script_progression --message="Storing installation settings..." --weight=1 ynh_app_setting_set --app=$app --key=domain --value=$domain ynh_app_setting_set --app=$app --key=path --value=$path_url +#================================================= +# CREATE DEDICATED USER +#================================================= +ynh_script_progression --message="Configuring system user..." --weight=2 + +# Create a system user +ynh_system_user_create --username=$app --home_dir="$final_path" + #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= @@ -58,24 +66,18 @@ ynh_app_setting_set --app=$app --key=final_path --value=$final_path # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$final_path" +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" + #================================================= # NGINX CONFIGURATION #================================================= ynh_script_progression --message="Configuring NGINX web server..." --weight=1 -### `ynh_add_nginx_config` will use the file conf/nginx.conf - # Create a dedicated NGINX config ynh_add_nginx_config -#================================================= -# CREATE DEDICATED USER -#================================================= -ynh_script_progression --message="Configuring system user..." --weight=2 - -# Create a system user -ynh_system_user_create --username=$app - #================================================= # PHP-FPM CONFIGURATION #================================================= @@ -95,16 +97,6 @@ for i in $final_path/bridges/*.php ; do echo $(basename $i) | sed "s|Bridge.php$||g" | tee -a $final_path/whitelist.txt done -#================================================= -# GENERIC FINALIZATION -#================================================= -# SECURE FILES AND DIRECTORIES -#================================================= - -# Set permissions to app files -chown -R root: $final_path -chown -R $app: $final_path/cache - #================================================= # SETUP SSOWAT #================================================= diff --git a/scripts/restore b/scripts/restore index 5ae68b5..c3b6500 100644 --- a/scripts/restore +++ b/scripts/restore @@ -51,6 +51,14 @@ test ! -d $final_path \ ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" +#================================================= +# RECREATE THE DEDICATED USER +#================================================= +ynh_script_progression --message="Recreating the dedicated system user..." --weight=1 + +# Create the dedicated user (if not existing) +ynh_system_user_create --username=$app --home_dir="$final_path" + #================================================= # RESTORE THE APP MAIN DIR #================================================= @@ -58,21 +66,9 @@ ynh_script_progression --message="Restoring RSS-Bridge main directory..." --weig ynh_restore_file --origin_path="$final_path" -#================================================= -# RECREATE THE DEDICATED USER -#================================================= -ynh_script_progression --message="Recreating the dedicated system user..." --weight=1 - -# Create the dedicated user (if not existing) -ynh_system_user_create --username=$app - -#================================================= -# RESTORE USER RIGHTS -#================================================= - -# Restore permissions on app files -chown -R root: $final_path -chown -R $app: $final_path/cache +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" #================================================= # RESTORE THE PHP-FPM CONFIGURATION diff --git a/scripts/upgrade b/scripts/upgrade index 43f4d3e..55d2ce9 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -53,6 +53,14 @@ ynh_clean_setup () { # Exit if an error occurs during the execution of the script ynh_abort_if_errors +#================================================= +# CREATE DEDICATED USER +#================================================= +ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1 + +# Create a dedicated user (if not existing) +ynh_system_user_create --username=$app --home_dir="$final_path" + #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= @@ -65,6 +73,10 @@ then ynh_setup_source --dest_dir="$final_path" fi +chmod 750 "$final_path" +chmod -R o-rwx "$final_path" +chown -R $app:www-data "$final_path" + #================================================= # NGINX CONFIGURATION #================================================= @@ -73,14 +85,6 @@ ynh_script_progression --message="Upgrading NGINX web server configuration..." - # Create a dedicated NGINX config ynh_add_nginx_config -#================================================= -# CREATE DEDICATED USER -#================================================= -ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1 - -# Create a dedicated user (if not existing) -ynh_system_user_create --username=$app - #================================================= # PHP-FPM CONFIGURATION #================================================= @@ -99,14 +103,6 @@ for i in $final_path/bridges/*.php ; do echo $(basename $i) | sed "s|Bridge.php$||g" | tee -a $final_path/whitelist.txt done -#================================================= -# SECURE FILES AND DIRECTORIES -#================================================= - -# Set permissions on app files -chown -R root: $final_path -chown -R $app: $final_path/cache - #================================================= # RELOAD NGINX #=================================================