rss-bridge/For_Hosts/Docker_Installation.html

194 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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 -->
<ul class='Nav'><li class='Nav__item has-children'><a href="../General/Project_goals.html" class="Nav__item__link"><i class="Nav__arrow">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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><li class='Nav__item '><a href="../For_Developers/Github_Codespaces_Tutorial.html">Github Codespaces Tutorial</a></li><li class='Nav__item '><a href="../For_Developers/Development_Environment_Setup.html">Development Environment Setup</a></li></ul></li><li class='Nav__item has-children'><a href="../Bridge_API/index.html" class="Nav__item__link"><i class="Nav__arrow">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</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></ul></li><li class='Nav__item '><a href="../Technical_recommendations/index.html" class="Nav__item__link"><i class="Nav__arrow">&nbsp;</i>Technical recommendations</a><ul class='Nav'></ul></li><li class='Nav__item has-children'><a href="../Bridge_Specific/ActivityPub_(Mastodon).html" class="Nav__item__link"><i class="Nav__arrow">&nbsp;</i>Bridge Specific</a><ul class='Nav'><li class='Nav__item '><a href="../Bridge_Specific/ActivityPub_(Mastodon).html">ActivityPub (Mastodon)</a></li><li class='Nav__item '><a href="../Bridge_Specific/FacebookBridge.html">FacebookBridge</a></li><li class='Nav__item '><a href="../Bridge_Specific/FurAffinityBridge.html">FurAffinityBridge</a></li><li class='Nav__item '><a href="../Bridge_Specific/Furaffinityuser.html">Furaffinityuser</a></li><li class='Nav__item '><a href="../Bridge_Specific/Instagram.html">Instagram</a></li><li class='Nav__item '><a href="../Bridge_Specific/PixivBridge.html">PixivBridge</a></li><li class='Nav__item '><a href="../Bridge_Specific/TwitterV2.html">TwitterV2</a></li></ul></li></ul>
<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>
<div class="DarkModeToggler">
<hr/>
<label class="Checkbox">Dark Mode <input type="checkbox" class="ColorMode__button" />
<div class="Checkbox__indicator"></div>
</label>
</div>
<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">
September 10, 2023 at 12:50 PM </span>
<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 &lt;/<span class="hljs-built_in">local</span>/custom/path&gt;:/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>Access it using <code>http://IP_Address:3000</code>. If youd like to run a specific version, you can run it by changing the :latest on the image to a tag listed <a href="https://hub.docker.com/r/rssbridge/rss-bridge/tags/" class="Link--external" rel="noopener noreferrer">here</a></p>
<p>The server runs on port 80 internally, map any port of your choice (in this example 3000).</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">&lt;/local/custom/path&gt;:/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 map a folder to the <code>/config</code> folder of the <code>rss-bridge</code> container.</p>
<ol>
<li>Create a folder in the location of your docker-compose.yml or your general docker working area (in this example it will be <code>/home/docker/rssbridge/config</code> ).</li>
<li>Copy your <a href="../Bridge_API/How_to_create_a_new_bridge.html">custom bridges</a> to the <code>/home/docker/rssbridge/config</code> folder. Applies also to <a href="Custom_Configuration.html">config.ini.php</a>.</li>
<li>Map the folder to <code>/config</code> inside the container. To do that, replace the <code>&lt;/local/custom/path&gt;</code> from the previous examples with <code>/home/docker/rssbridge/config</code>
</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>