Site update

This commit is contained in:
CronyAkatsuki 2023-10-24 19:16:22 +02:00
parent 6f9ac9c5b8
commit 26d0746f07
8 changed files with 934 additions and 302 deletions

View file

@ -56,89 +56,89 @@ For this tutorial I expect that you already have a server seted up with nginx an
<p>For this tutorial I expect that you already have a server seted up with nginx and certbot. To set up this things check out <a href="https://landchad.net">landchad</a></p>
<h2 id="installing-needed-packages">Installing needed packages</h2>
<p>You will first need to setup miniflux apt repository to install it on your system.</p>
<div class="highlight"><pre tabindex="0" style="color:#ef9f76;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#c6d0f5;font-style:italic">echo</span> <span style="color:#a6d189">&#34;deb [trusted=yes] https://repo.miniflux.app/apt/ /&#34;</span> <span style="color:#c6d0f5">|</span> sudo tee /etc/apt/sources.list.d/miniflux.list &gt; /dev/null
<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#99d1db">echo</span> <span style="color:#a6d189">&#34;deb [trusted=yes] https://repo.miniflux.app/apt/ /&#34;</span> | sudo tee /etc/apt/sources.list.d/miniflux.list &gt; /dev/null
</span></span><span style="display:flex;"><span>apt update
</span></span></code></pre></div><p>Then just install the needed packages.</p>
<div class="highlight"><pre tabindex="0" style="color:#ef9f76;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>apt install miniflux postgresql
<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>apt install miniflux postgresql
</span></span></code></pre></div><h2 id="setting-up-postgres-database-and-miniflux">Setting up postgres database and miniflux</h2>
<p>Here I will detail steps to create the postgres database.</p>
<h3 id="initial-postgres-setup">Initial postgres setup</h3>
<div class="highlight"><pre tabindex="0" style="color:#ef9f76;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Switch to the postgres user</span>
<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Switch to the postgres user</span>
</span></span><span style="display:flex;"><span>$ su - postgres
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Creating a miniflux user, enter a safe and secure password</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Creating a miniflux user, enter a safe and secure password</span>
</span></span><span style="display:flex;"><span>$ createuser -P miniflux
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Create a database for miniflux that belongs to our user</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Create a database for miniflux that belongs to our user</span>
</span></span><span style="display:flex;"><span>$ createdb -O miniflux miniflux
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Create a database for miniflux that belongs to our user</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Create a database for miniflux that belongs to our user</span>
</span></span><span style="display:flex;"><span>$ createdb -O miniflux miniflux
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Creating extension hstore as superuser</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Creating extension hstore as superuser</span>
</span></span><span style="display:flex;"><span>$ psql miniflux -c <span style="color:#a6d189">&#39;create extension hstore&#39;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Managing the miniflux database</span>
</span></span><span style="display:flex;"><span>$ psql <span style="color:#babbf1">$MINIFLUX_DATABASE</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Managing the miniflux database</span>
</span></span><span style="display:flex;"><span>$ psql <span style="color:#f2d5cf">$MINIFLUX_DATABASE</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Giving miniflux user all privileges</span>
</span></span><span style="display:flex;"><span>&gt; alter user miniflux with superuser<span style="color:#c6d0f5">;</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Giving miniflux user all privileges</span>
</span></span><span style="display:flex;"><span>&gt; alter user miniflux with superuser;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Exit the postgres database</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Exit the postgres database</span>
</span></span><span style="display:flex;"><span>&gt; <span style="color:#8caaee">\q</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Exit postgres user</span>
</span></span><span style="display:flex;"><span>$ <span style="color:#c6d0f5;font-style:italic">exit</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Exit postgres user</span>
</span></span><span style="display:flex;"><span>$ <span style="color:#99d1db">exit</span>
</span></span></code></pre></div><h3 id="miniflux-configuration-file">Miniflux configuration file</h3>
<p>Open the miniflux configuration file in path <code>/etc/miniflux.conf</code> and edit it like this.</p>
<div class="highlight"><pre tabindex="0" style="color:#ef9f76;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># See https://miniflux.app/docs/configuration.html</span>
</span></span><span style="display:flex;"><span><span style="color:#babbf1">LISTEN_ADDR</span><span style="color:#99d1db">=</span>127.0.0.1:8080
</span></span><span style="display:flex;"><span><span style="color:#babbf1">DATABASE_URL</span><span style="color:#99d1db">=</span><span style="color:#babbf1">user</span><span style="color:#99d1db">=</span>miniflux <span style="color:#babbf1">password</span><span style="color:#99d1db">=</span>PASSWORD_HERE <span style="color:#babbf1">dbname</span><span style="color:#99d1db">=</span>miniflux <span style="color:#babbf1">sslmode</span><span style="color:#99d1db">=</span>disable
</span></span><span style="display:flex;"><span><span style="color:#babbf1">RUN_MIGRATIONS</span><span style="color:#99d1db">=</span>1
<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># See https://miniflux.app/docs/configuration.html</span>
</span></span><span style="display:flex;"><span><span style="color:#f2d5cf">LISTEN_ADDR</span><span style="color:#99d1db;font-weight:bold">=</span>127.0.0.1:8080
</span></span><span style="display:flex;"><span><span style="color:#f2d5cf">DATABASE_URL</span><span style="color:#99d1db;font-weight:bold">=</span><span style="color:#f2d5cf">user</span><span style="color:#99d1db;font-weight:bold">=</span>miniflux <span style="color:#f2d5cf">password</span><span style="color:#99d1db;font-weight:bold">=</span>PASSWORD_HERE <span style="color:#f2d5cf">dbname</span><span style="color:#99d1db;font-weight:bold">=</span>miniflux <span style="color:#f2d5cf">sslmode</span><span style="color:#99d1db;font-weight:bold">=</span>disable
</span></span><span style="display:flex;"><span><span style="color:#f2d5cf">RUN_MIGRATIONS</span><span style="color:#99d1db;font-weight:bold">=</span><span style="color:#ef9f76">1</span>
</span></span></code></pre></div><h3 id="migrating-the-database-and-removing-superuser-privileges-in-postgres">Migrating the database and removing superuser privileges in postgres</h3>
<p>Now we will migrate the database and remove unneded superuser privileges, since it is reccomended in the miniflux documentation.</p>
<div class="highlight"><pre tabindex="0" style="color:#ef9f76;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Migrating the database</span>
<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Migrating the database</span>
</span></span><span style="display:flex;"><span>$ miniflux -c /etc/miniflux.conf -migrate
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Creating miniflux admin user</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Creating miniflux admin user</span>
</span></span><span style="display:flex;"><span>$ miniflux -c /etc/miniflux.conf -create-admin
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Restarting the systemctl service</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Restarting the systemctl service</span>
</span></span><span style="display:flex;"><span>$ systemctl restart miniflux
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Entering postgres database user</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Entering postgres database user</span>
</span></span><span style="display:flex;"><span>$ su - postgres
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Entering miniflux database</span>
</span></span><span style="display:flex;"><span>$ psql <span style="color:#babbf1">$MINIFLUX_DATABASE</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Entering miniflux database</span>
</span></span><span style="display:flex;"><span>$ psql <span style="color:#f2d5cf">$MINIFLUX_DATABASE</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Removing unneded superuser privileges from miniflux user</span>
</span></span><span style="display:flex;"><span>&gt; alter user miniflux with nosuperuser<span style="color:#c6d0f5">;</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Removing unneded superuser privileges from miniflux user</span>
</span></span><span style="display:flex;"><span>&gt; alter user miniflux with nosuperuser;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Exit the postgres database</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Exit the postgres database</span>
</span></span><span style="display:flex;"><span>&gt; <span style="color:#8caaee">\q</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#626880;font-style:italic"># Exit postgres user</span>
</span></span><span style="display:flex;"><span>$ <span style="color:#c6d0f5;font-style:italic">exit</span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Exit postgres user</span>
</span></span><span style="display:flex;"><span>$ <span style="color:#99d1db">exit</span>
</span></span></code></pre></div><h2 id="nginx-and-certbot-setup">Nginx and certbot setup</h2>
<p>Make sure to have a domain to use for your miniflux setup.</p>
<p>Create and open a nginx config with path <code>/etc/nginx/sites-available/miniflux.conf</code> and add this</p>
<div class="highlight"><pre tabindex="0" style="color:#ef9f76;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-nginx" data-lang="nginx"><span style="display:flex;"><span><span style="color:#ca9ee6">server</span> <span style="color:#c6d0f5">{</span>
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">server_name</span> <span style="color:#a6d189">your.domain.ext</span><span style="color:#c6d0f5">;</span>
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">listen</span> 80<span style="color:#c6d0f5">;</span>
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">listen</span> <span style="color:#a6d189">[::]:80</span><span style="color:#c6d0f5">;</span>
<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-nginx" data-lang="nginx"><span style="display:flex;"><span><span style="color:#ca9ee6">server</span> {
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">server_name</span> <span style="color:#a6d189">your.domain.ext</span>;
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">listen</span> <span style="color:#ef9f76">80</span>;
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">listen</span> <span style="color:#a6d189">[::]:80</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">location</span> <span style="color:#a6d189">/</span> <span style="color:#c6d0f5">{</span>
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">proxy_pass</span> <span style="color:#a6d189">http://127.0.0.1:8080</span><span style="color:#c6d0f5">;</span>
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">proxy_redirect</span> <span style="color:#e5c890">off</span><span style="color:#c6d0f5">;</span>
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">proxy_set_header</span> <span style="color:#a6d189">Host</span> <span style="color:#babbf1">$host</span><span style="color:#c6d0f5">;</span>
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">proxy_set_header</span> <span style="color:#a6d189">X-Real-IP</span> <span style="color:#babbf1">$remote_addr</span><span style="color:#c6d0f5">;</span>
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">proxy_set_header</span> <span style="color:#a6d189">X-Forwarded-For</span> <span style="color:#babbf1">$proxy_add_x_forwarded_for</span><span style="color:#c6d0f5">;</span>
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">proxy_set_header</span> <span style="color:#a6d189">X-Forwarded-Proto</span> <span style="color:#babbf1">$scheme</span><span style="color:#c6d0f5">;</span>
</span></span><span style="display:flex;"><span> <span style="color:#c6d0f5">}</span>
</span></span><span style="display:flex;"><span><span style="color:#c6d0f5">}</span>
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">location</span> <span style="color:#a6d189">/</span> {
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">proxy_pass</span> <span style="color:#a6d189">http://127.0.0.1:8080</span>;
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">proxy_redirect</span> <span style="color:#e5c890">off</span>;
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">proxy_set_header</span> <span style="color:#a6d189">Host</span> <span style="color:#f2d5cf">$host</span>;
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">proxy_set_header</span> <span style="color:#a6d189">X-Real-IP</span> <span style="color:#f2d5cf">$remote_addr</span>;
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">proxy_set_header</span> <span style="color:#a6d189">X-Forwarded-For</span> <span style="color:#f2d5cf">$proxy_add_x_forwarded_for</span>;
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">proxy_set_header</span> <span style="color:#a6d189">X-Forwarded-Proto</span> <span style="color:#f2d5cf">$scheme</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>Now just link the config to enabled sites and restart nginx service.</p>
<div class="highlight"><pre tabindex="0" style="color:#ef9f76;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ ln -s /etc/nginx/sites-available/miniflux.conf /etc/nginx/sites-enabled/miniflux.conf
<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>$ ln -s /etc/nginx/sites-available/miniflux.conf /etc/nginx/sites-enabled/miniflux.conf
</span></span><span style="display:flex;"><span>$ systemctl restart nginx
</span></span></code></pre></div><p>To get https on your domain you just need to run <code>certbot --nginx</code> same as in this <a href="https://landchad.net/basic/certbot/">tutorial</a></p>
<h2 id="finishing-words">Finishing words</h2>