2022-03-22 20:34:02 +00:00
<!DOCTYPE html>
< html class = "no-js" lang = "en" >
< head >
< title > Docker Installation - RSS-Bridge< / title >
< meta name = "description" content = "The RSS feed for websites missing it" >
< meta name = "author" content = "RSS-Bridge Contributors" >
< meta charset = "UTF-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< link rel = "icon" href = "../themes/daux/img/favicon-blue.png" type = "image/x-icon" >
<!-- Mobile -->
< meta name = "apple-mobile-web-app-capable" content = "yes" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
<!-- JS -->
< script >
window.base_url = "../";
document.documentElement.classList.remove('no-js');
< / script >
<!-- Font -->
<!-- CSS -->
< link href = '../themes/daux/css/theme-blue.min.css' rel = 'stylesheet' type = 'text/css' >
< link href = '../daux_libraries/search.css' rel = 'stylesheet' type = 'text/css' >
< / head >
< body class = "" >
< div class = "Columns content" >
< aside class = "Columns__left Collapsible" >
< button type = "button" class = "Button Collapsible__trigger" aria-controls = "sidebar_content" aria-expanded = "false" aria-label = "Toggle navigation" >
< span class = "Collapsible__trigger__bar" > < / span >
< span class = "Collapsible__trigger__bar" > < / span >
< span class = "Collapsible__trigger__bar" > < / span >
< / button >
< a class = "Brand" href = "../index.html" > RSS-Bridge< / a >
< form role = 'search' action = "/" method = "get" class = "Search" id = "search_form" >
< label for = "search_input" >
< span class = 'u-visuallyHidden' > Search< / span >
< / label >
< input
type="search"
id="search_input"
class="Search__field"
placeholder="Search..."
aria-label="Search..."
autocomplete="on"
results=25
autosave=text_search
>
< label >
< input type = "submit" class = 'u-visuallyHidden' / >
< span class = 'u-visuallyHidden' > Search...< / span >
< svg class = "Search__icon" xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 451 451" >
< path d = "M447.05 428l-109.6-109.6c29.4-33.8 47.2-77.9 47.2-126.1C384.65 86.2 298.35 0 192.35 0 86.25 0 .05 86.3.05 192.3s86.3 192.3 192.3 192.3c48.2 0 92.3-17.8 126.1-47.2L428.05 447c2.6 2.6 6.1 4 9.5 4s6.9-1.3 9.5-4c5.2-5.2 5.2-13.8 0-19zM26.95 192.3c0-91.2 74.2-165.3 165.3-165.3 91.2 0 165.3 74.2 165.3 165.3s-74.1 165.4-165.3 165.4c-91.1 0-165.3-74.2-165.3-165.4z" / >
< / svg >
< / label >
< / form >
< div class = "Collapsible__content" id = "sidebar_content" >
<!-- Navigation -->
2022-10-25 12:33:33 +00:00
< ul class = 'Nav' > < li class = 'Nav__item has-children' > < a href = "../General/Project_goals.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > General< / a > < ul class = 'Nav' > < li class = 'Nav__item ' > < a href = "../General/Project_goals.html" > Project-goals< / a > < / li > < li class = 'Nav__item ' > < a href = "../General/Contribute.html" > Contribute< / a > < / li > < li class = 'Nav__item ' > < a href = "../General/Requirements.html" > Requirements< / a > < / li > < li class = 'Nav__item ' > < a href = "../General/Screenshots.html" > Screenshots< / a > < / li > < li class = 'Nav__item ' > < a href = "../General/FAQ.html" > FAQ< / a > < / li > < li class = 'Nav__item ' > < a href = "../General/Public_Hosts.html" > Public Hosts< / a > < / li > < / ul > < / li > < li class = 'Nav__item ' > < a href = "../CLI/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > CLI< / a > < ul class = 'Nav' > < / ul > < / li > < li class = 'Nav__item Nav__item--open has-children' > < a href = "../For_Hosts/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > For Hosts< / a > < ul class = 'Nav' > < li class = 'Nav__item ' > < a href = "../For_Hosts/Installation.html" > Installation< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Hosts/Updating.html" > Updating< / a > < / li > < li class = 'Nav__item Nav__item--active' > < a href = "../For_Hosts/Docker_Installation.html" > Docker Installation< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Hosts/Heroku_Installation.html" > Heroku Installation< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Hosts/Whitelisting.html" > Whitelisting< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Hosts/Authentication.html" > Authentication< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Hosts/Customizations.html" > Customizations< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Hosts/Custom_Configuration.html" > Custom Configuration< / a > < / li > < / ul > < / li > < li class = 'Nav__item has-children' > < a href = "../For_Developers/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > For Developers< / a > < ul class = 'Nav' > < li class = 'Nav__item ' > < a href = "../For_Developers/Coding_style_policy.html" > Coding style policy< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Developers/Pull_Request_policy.html" > Pull Request policy< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Developers/Folder_structure.html" > Folder structure< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Developers/Actions.html" > Actions< / a > < / li > < li class = 'Nav__item ' > < a href = "../For_Developers/Debug_mode.html" > Debug mode< / a > < / li > < / ul > < / li > < li class = 'Nav__item has-children' > < a href = "../Bridge_API/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > Bridge API< / a > < ul class = 'Nav' > < li class = 'Nav__item ' > < a href = "../Bridge_API/How_to_create_a_new_bridge.html" > How to create a new bridge< / a > < / li > < li class = 'Nav__item ' > < a href = "../Bridge_API/BridgeAbstract.html" > BridgeAbstract< / a > < / li > < li class = 'Nav__item ' > < a href = "../Bridge_API/FeedExpander.html" > FeedExpander< / a > < / li > < li class = 'Nav__item ' > < a href = "../Bridge_API/XPathAbstract.html" > XPathAbstract< / a > < / li > < / ul > < / li > < li class = 'Nav__item ' > < a href = "../Helper_functions/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > Helper functions< / a > < ul class = 'Nav' > < / ul > < / li > < li class = 'Nav__item has-children' > < a href = "../Cache_API/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > Cache API< / a > < ul class = 'Nav' > < li class = 'Nav__item ' > < a href = "../Cache_API/How_to_create_a_new_cache.html" > How to create a new cache< / a > < / li > < li class = 'Nav__item ' > < a href = "../Cache_API/CacheInterface.html" > CacheInterface< / a > < / li > < / ul > < / li > < li class = 'Nav__item has-children' > < a href = "../Format_API/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > Format API< / a > < ul class = 'Nav' > < li class = 'Nav__item ' > < a href = "../Format_API/How_to_create_a_new_format.html" > How to create a new format< / a > < / li > < li class = 'Nav__item ' > < a href = "../Format_API/FormatInterface.html" > FormatInterface< / a > < / li > < li class = 'Nav__item ' > < a href = "../Format_API/FormatAbstract.html" > FormatAbstract< / a > < / li > < / ul > < / li > < li class = 'Nav__item ' > < a href = "../Technical_recommendations/index.html" class = "Nav__item__link" > < i class = "Nav__arrow" > < / i > Technical recommendations< / a > < ul class = 'Nav' > <
2022-03-22 20:34:02 +00:00
< div class = "Links" >
< hr / >
< a href = "https://github.com/RSS-Bridge/rss-bridge" target = "_blank" rel = "noopener noreferrer" > GitHub Repository< / a >
< br / >
< a href = "https://github.com/RSS-Bridge/rss-bridge/issues" target = "_blank" rel = "noopener noreferrer" > Help/Support/Bugs< / a >
< br / >
< a href = "https://github.com/RSS-Bridge/rss-bridge/pkgs/container/rss-bridge" target = "_blank" rel = "noopener noreferrer" > Docker Images< / a >
< br / >
< / div >
< div class = "CodeToggler" >
< hr / >
< label class = "Checkbox" > Show Code Blocks < input type = "checkbox" class = "CodeToggler__button--main" checked = "checked" / >
< div class = "Checkbox__indicator" > < / div >
< / label >
< / div >
2022-10-06 20:13:30 +00:00
< div class = "DarkModeToggler" >
< hr / >
< label class = "Checkbox" > Dark Mode < input type = "checkbox" class = "ColorMode__button" / >
< div class = "Checkbox__indicator" > < / div >
< / label >
< / div >
2022-03-22 20:34:02 +00:00
< div class = "PoweredBy" >
< hr / >
Powered by Daux.io < / div >
< / div >
< / aside >
< div class = "Columns__right" >
< div class = "Columns__right__content" >
< div class = "doc_content" >
< article class = "Page" >
< div class = "Page__header" >
< h1 > < a href = "../For_Hosts/index.html" > For Hosts< / a > < svg class = "Page__header--separator" xmlns = "http://www.w3.org/2000/svg" viewBox = "0 0 477.175 477.175" > < path d = "M360.73 229.075l-225.1-225.1c-5.3-5.3-13.8-5.3-19.1 0s-5.3 13.8 0 19.1l215.5 215.5-215.5 215.5c-5.3 5.3-5.3 13.8 0 19.1 2.6 2.6 6.1 4 9.5 4 3.4 0 6.9-1.3 9.5-4l225.1-225.1c5.3-5.2 5.3-13.8.1-19z" / > < / svg > < a href = "../For_Hosts/Docker_Installation.html" > Docker Installation< / a > < / h1 >
< span class = "ModifiedDate" >
2022-12-27 23:35:19 +00:00
December 27, 2022 at 3:35 PM < / span >
2022-03-22 20:34:02 +00:00
< span class = "EditOn" >
< a href = "https://github.com/RSS-Bridge/rss-bridge/tree/master/docs/03_For_Hosts/03_Docker_Installation.md" target = "_blank" >
Edit on GitHub < / a >
< / span >
< / div >
< div class = "s-content" >
< p > 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 < a href = "Installation.html" > Installation< / a > instead.< / p >
< h2 > < a id = "setup" href = "#setup" class = "Permalink" aria-hidden = "true" title = "Permalink" > #< / a > Setup< / h2 >
< h3 > < a id = "create-the-container" href = "#create-the-container" class = "Permalink" aria-hidden = "true" title = "Permalink" > #< / a > Create the container< / h3 >
< pre > < code class = "hljs bash" > docker create \
--name=rss-bridge \
--volume < /< span class = "hljs-built_in" > local< / span > /custom/path> :/config \
--publish 3000:80 \
rssbridge/rss-bridge:latest
< / code > < / pre >
< h3 > < a id = "run-it" href = "#run-it" class = "Permalink" aria-hidden = "true" title = "Permalink" > #< / a > Run it< / h3 >
< pre > < code class = "hljs bash" > docker start rss-bridge
< / code > < / pre >
< p > And access it using < code > http://IP_Address:3000< / code > . If you’ d like to run a specific version, you can run it by:< / p >
< pre > < code class = "hljs bash" > docker create \
--name=rss-bridge \
--volume < /< span class = "hljs-built_in" > local< / span > /custom/path> :/config \
--publish 3000:80 \
rssbridge/rss-bridge:< span class = "hljs-variable" > $version< / span >
< / code > < / pre >
< p > Where you can get the versions published to Docker Hub at < a href = "https://hub.docker.com/r/rssbridge/rss-bridge/tags/" class = "Link--external" rel = "noopener noreferrer" > https://hub.docker.com/r/rssbridge/rss-bridge/tags/< / a > . The server runs on port 80 internally, and you can publish it on a different port (change 3000 to your choice).< / p >
< p > You can run it using a < code > docker-compose.yml< / code > as well:< / p >
< pre > < code class = "hljs yaml" > < span class = "hljs-attr" > version:< / span > < span class = "hljs-string" > '2'< / span >
< span class = "hljs-attr" > services:< / span >
< span class = "hljs-attr" > rss-bridge:< / span >
< span class = "hljs-attr" > image:< / span > < span class = "hljs-string" > rssbridge/rss-bridge:latest< / span >
< span class = "hljs-attr" > volumes:< / span >
< span class = "hljs-bullet" > -< / span > < span class = "hljs-string" > < /local/custom/path> :/config< / span >
< span class = "hljs-attr" > ports:< / span >
< span class = "hljs-bullet" > -< / span > < span class = "hljs-number" > 3000< / span > < span class = "hljs-string" > :80< / span >
< span class = "hljs-attr" > restart:< / span > < span class = "hljs-string" > unless-stopped< / span >
< / code > < / pre >
< h1 > < a id = "container-access-and-information" href = "#container-access-and-information" class = "Permalink" aria-hidden = "true" title = "Permalink" > #< / a > Container access and information< / h1 >
< table >
< thead >
< tr >
< th > Function< / th >
< th > Command< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > Shell access (live container)< / td >
< td > < code > docker exec -it rss-bridge /bin/sh< / code > < / td >
< / tr >
< tr >
< td > Realtime container logs< / td >
< td > < code > docker logs -f rss-bridge< / code > < / td >
< / tr >
< / tbody >
< / table >
< h1 > < a id = "adding-custom-bridges-and-configurations" href = "#adding-custom-bridges-and-configurations" class = "Permalink" aria-hidden = "true" title = "Permalink" > #< / a > Adding custom bridges and configurations< / h1 >
< p > If you want to add a bridge that is not part of < a href = "https://github.com/RSS-Bridge/rss-bridge/tree/master/bridges" class = "Link--external" rel = "noopener noreferrer" > < code > /bridges< / code > < / a > , you can specify an additional folder to copy necessary files to the < code > rss-bridge< / code > container.< / p >
< p > < em > Here < strong > root< / strong > is folder where < code > docker-compose.yml< / code > resides.< / em > < / p >
< ol >
< li > Create < code > custom< / code > folder in root.< / li >
< li > Copy your < a href = "../Bridge_API/How_to_create_a_new_bridge.html" > bridges files< / a > to the < code > custom< / code > folder. You can also add your custom < a href = "Whitelisting.html" > whitelist.txt< / a > file and your custom < a href = "Custom_Configuration.html" > config.ini.php< / a > to this folder.< / li >
< li > Run < code > docker-compose up< / code > to recreate service.< / li >
< / ol >
< / div >
< nav >
< ul class = "Pager" >
< li class = Pager--prev > < a href = "../For_Hosts/Updating.html" > Previous< / a > < / li > < li class = Pager--next > < a href = "../For_Hosts/Heroku_Installation.html" > Next< / a > < / li > < / ul >
< / nav >
< / article >
< / div >
< / div >
< / div >
< / div >
<!-- JS -->
< script src = "../themes/daux/js/daux.min.js" > < / script >
< script >
window.searchLanguage = "";
window.searchTranslation = {"Search_one_result":"1 result","Search_results":"!count results","Search_no_results":"Nothing found","Search_common_words_ignored":"Common words are largely ignored","Search_too_short":"Search too short","Search_one_character_or_more":"Should be one character or more","Search_should_be_x_or_more":"Should be !min characters or more","Link_previous":"Previous","Link_next":"Next"};
< / script >
<!-- Search -->
< script type = "text/javascript" src = "../daux_libraries/search.min.js" > < / script >
< script >
window.search({'base_url': '../'})
< / script >
< / body >
< / html >