From c6e02aa150ab9b2668fd411eeadddf3dd7d3db05 Mon Sep 17 00:00:00 2001
From: Crony Akatsuki
-/usr/bin/ntfy-ssh-login.sh
#!/bin/bash
-if [ "${PAM_TYPE}" = "open_session" ]; then
+#!/bin/bash
+if [ "${PAM_TYPE}" = "open_session" ]; then
curl \
- -H prio:high \
- -H tags:warning \
- -d "SSH login: ${PAM_USER} from ${PAM_RHOST}" \
- ntfy.sh/{YourTopic}
+ -H prio:high \
+ -H tags:warning \
+ -d "SSH login: ${PAM_USER} from ${PAM_RHOST}" \
+ ntfy.sh/{YourTopic}
fi
/etc/pam.d/sshd
diff --git a/public/blog/index.html b/public/blog/index.html
index 0d3bc80..ed4d863 100644
--- a/public/blog/index.html
+++ b/public/blog/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Blog - Crony Akatsuki
-
+
+ Blog - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/blog/index.xml b/public/blog/index.xml
index 6fccbaf..1d73a9b 100644
--- a/public/blog/index.xml
+++ b/public/blog/index.xml
@@ -19,7 +19,6 @@
https://cronyakatsuki.xyz/blog/phone-wireless-webcam-linux/
<p>Anybody else need to have a webcam nowdays because of all the remote stuff that has started happening since covid, getting forced into having a webcam so that your boss/teacher/professor can follow what you are doing but don’t wanna spend money on getting one and you are luckilly using linux? Then look no further because if you have a decent phone ( S24 in my case ) you can have use it as a wireless webcam ( or usb if your android version is lover than 14 ).</p>
<p>I will now show you the steps and some basic settings and a script to simplify the steps.</p>
-<!-- raw HTML omitted -->
<h1 id="1-enable-wirelessusb-debugging-on-your-phone">1. Enable Wireless/Usb Debugging on your phone</h1>
<p>First you will have to enable wireless/usb debugging on your phone. The steps can somewhat differ depending on your phone and as such I will use my phone as an example.</p>
<ol>
@@ -41,7 +40,7 @@
<blockquote>
<p>example command</p>
</blockquote>
-<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>sudo pacman -S android-tools v4l2loopback-dkms scrcpy
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo pacman -S android-tools v4l2loopback-dkms scrcpy
</span></span></code></pre></div><h1 id="3-pair-your-phone-with-your-pc-using-adb">3. Pair your phone with your pc using adb</h1>
<p>Now we will need to pair your phone using adb wirelessly with your pc.</p>
<p>Go to wireless debugging settings on your phone, make sure it’s enable and click the pair with code option. Take note of the ip and port, you will have to use it on your pc.</p>
@@ -53,7 +52,7 @@
<blockquote>
<p>example</p>
</blockquote>
-<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>❯ v4l2-ctl --list-devices
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>❯ v4l2-ctl --list-devices
</span></span><span style="display:flex;"><span>Virtual Webcam <span style="color:#99d1db;font-weight:bold">(</span>platform:v4l2loopback-000<span style="color:#99d1db;font-weight:bold">)</span>:
</span></span><span style="display:flex;"><span> /dev/video2
</span></span><span style="display:flex;"><span>
@@ -62,7 +61,7 @@
</span></span><span style="display:flex;"><span> /dev/video1
</span></span><span style="display:flex;"><span> /dev/media0
</span></span></code></pre></div><p>Now we can use scrcpy to get our phone’s camera and show it on your pc in a nice little window, in my case I use this command which is pretty long but will explain it:</p>
-<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>scrcpy --video-source<span style="color:#99d1db;font-weight:bold">=</span>camera --no-audio --camera-facing<span style="color:#99d1db;font-weight:bold">=</span>front --v4l2-sink<span style="color:#99d1db;font-weight:bold">=</span>/dev/video2 --camera-fps<span style="color:#99d1db;font-weight:bold">=</span><span style="color:#ef9f76">60</span> --video-codec<span style="color:#99d1db;font-weight:bold">=</span>h265 --camera-ar<span style="color:#99d1db;font-weight:bold">=</span>4:3 -m1920 --capture-orientation<span style="color:#99d1db;font-weight:bold">=</span>flip90
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>scrcpy --video-source<span style="color:#99d1db;font-weight:bold">=</span>camera --no-audio --camera-facing<span style="color:#99d1db;font-weight:bold">=</span>front --v4l2-sink<span style="color:#99d1db;font-weight:bold">=</span>/dev/video2 --camera-fps<span style="color:#99d1db;font-weight:bold">=</span><span style="color:#ef9f76">60</span> --video-codec<span style="color:#99d1db;font-weight:bold">=</span>h265 --camera-ar<span style="color:#99d1db;font-weight:bold">=</span>4:3 -m1920 --capture-orientation<span style="color:#99d1db;font-weight:bold">=</span>flip90
</span></span></code></pre></div><p>Now to explain the options:</p>
<ul>
<li><code>--video-source=camerate</code> makes sure scrcpy uses your camera as the source</li>
@@ -154,12 +153,11 @@ X11Forwarding no
https://cronyakatsuki.xyz/blog/setup-traefik/
<p>Do you use docker? Do you use nginx or apachi to proxy the container? Fear not you won’t be needing them anymore once you are done with this tutorial.</p>
<p>Traefik is a simple docker centric proxy manager that is amazing and allows you to easilly proxy you docker containers with just a couple of labels.</p>
-<!-- raw HTML omitted -->
<h1 id="setting-up-traefik">Setting up Traefik</h1>
<p>In this part we will setup traefik, with the dashboard enabled and secured with https and a password.</p>
<p>Create a directory where you will keep traefik configuration files and the docker compose. Inside it we will save all the configuration files.</p>
<h2 id="docker-composeyml">docker-compose.yml</h2>
-<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-yml" data-lang="yml"><span style="display:flex;"><span><span style="color:#ca9ee6">version</span>: <span style="color:#a6d189">'3'</span>
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-yml" data-lang="yml"><span style="display:flex;"><span><span style="color:#ca9ee6">version</span>: <span style="color:#a6d189">'3'</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#ca9ee6">services</span>:
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">traefik</span>:
@@ -186,7 +184,7 @@ X11Forwarding no
<p>We are also forcing it to use the latest available stable image to make sure there are no bugs, and disabling proxying the traefik image itself io the lables to make sure it isn’t exposed by any means.</p>
<p>We are also making it so it can restart itself unless we specifically stop it, and binding it to port 80 and 443 because those are the default http and https ports that every browser uses when connecting.</p>
<h2 id="traefiktoml">traefik.toml</h2>
-<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-toml" data-lang="toml"><span style="display:flex;"><span>[entryPoints]
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-toml" data-lang="toml"><span style="display:flex;"><span>[entryPoints]
</span></span><span style="display:flex;"><span> [entryPoints.web]
</span></span><span style="display:flex;"><span> address = <span style="color:#a6d189">":80"</span>
</span></span><span style="display:flex;"><span> [entryPoints.web.http.redirections.entryPoint]
@@ -216,7 +214,7 @@ X11Forwarding no
<p>In the api section we are enabling the dashboard, but disallowing insecure access to it.</p>
<p>In the rest of the config we are defining the mail and storage for tls certificates, and enabled docker provider binded to a web network, and enabled the file provider for the dashboard setup.</p>
<h2 id="traefik_dynamictoml">traefik_dynamic.toml</h2>
-<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-toml" data-lang="toml"><span style="display:flex;"><span>[http.middlewares.simpleAuth.basicAuth]
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-toml" data-lang="toml"><span style="display:flex;"><span>[http.middlewares.simpleAuth.basicAuth]
</span></span><span style="display:flex;"><span> users = [
</span></span><span style="display:flex;"><span> <span style="color:#a6d189">"somebody:$apr1$whatever"</span>
</span></span><span style="display:flex;"><span> ]
@@ -242,7 +240,7 @@ X11Forwarding no
<blockquote>
<p>docker-compose.yml</p>
</blockquote>
-<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-yml" data-lang="yml"><span style="display:flex;"><span><span style="color:#ca9ee6">version</span>: <span style="color:#a6d189">"2.3"</span>
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-yml" data-lang="yml"><span style="display:flex;"><span><span style="color:#ca9ee6">version</span>: <span style="color:#a6d189">"2.3"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#ca9ee6">services</span>:
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">ntfy</span>:
@@ -302,7 +300,7 @@ X11Forwarding no
<blockquote>
<p>example</p>
</blockquote>
-<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-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#ef9f76">...</span>
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#ef9f76">...</span>
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">labels</span>:
</span></span><span style="display:flex;"><span> - traefik.enable=false
</span></span><span style="display:flex;"><span><span style="color:#ef9f76">...</span>
@@ -312,7 +310,7 @@ X11Forwarding no
<blockquote>
<p>example docker-compose.yml</p>
</blockquote>
-<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-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#ca9ee6">version</span>: <span style="color:#a6d189">"3"</span>
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#ca9ee6">version</span>: <span style="color:#a6d189">"3"</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#ca9ee6">networks</span>:
</span></span><span style="display:flex;"><span> <span style="color:#ca9ee6">web</span>:
@@ -384,7 +382,7 @@ X11Forwarding no
<h1 id="settings-read-status">Settings read status</h1>
<p>To flag mail as read we can use the mflag utiity. We do it by choosing what mail we wanna mark as read and running the command <code>mflag -S N</code>, but after that we need to fix our list because the filename changed because of the fact that we changed the flag to read. To fix that we will run <code>mseq -f : | mseq -S</code>.</p>
<p>We can easily alias this sequence of command’s into a function to streamline this.</p>
-<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:#ca9ee6">function</span> mread<span style="color:#99d1db;font-weight:bold">()</span> <span style="color:#99d1db;font-weight:bold">{</span>
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#ca9ee6">function</span> mread<span style="color:#99d1db;font-weight:bold">()</span> <span style="color:#99d1db;font-weight:bold">{</span>
</span></span><span style="display:flex;"><span> mflag -S <span style="color:#f2d5cf">$1</span>
</span></span><span style="display:flex;"><span> mseq -f : | mseq -S
</span></span><span style="display:flex;"><span><span style="color:#99d1db;font-weight:bold">}</span>
@@ -438,13 +436,13 @@ d quit d
<blockquote>
<p>/usr/bin/ntfy-ssh-login.sh</p>
</blockquote>
-<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">#!/bin/bash
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span><span style="color:#ca9ee6">if</span> <span style="color:#99d1db;font-weight:bold">[</span> <span style="color:#a6d189">"</span><span style="color:#a6d189">${</span><span style="color:#f2d5cf">PAM_TYPE</span><span style="color:#a6d189">}</span><span style="color:#a6d189">"</span> <span style="color:#99d1db;font-weight:bold">=</span> <span style="color:#a6d189">"open_session"</span> <span style="color:#99d1db;font-weight:bold">]</span>; <span style="color:#ca9ee6">then</span>
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#737994;font-style:italic">#!/bin/bash
+</span></span></span><span style="display:flex;"><span><span style="color:#ca9ee6">if</span> <span style="color:#99d1db;font-weight:bold">[</span> <span style="color:#a6d189">"</span><span style="color:#a6d189">${</span><span style="color:#f2d5cf">PAM_TYPE</span><span style="color:#a6d189">}</span><span style="color:#a6d189">"</span> <span style="color:#99d1db;font-weight:bold">=</span> <span style="color:#a6d189">"open_session"</span> <span style="color:#99d1db;font-weight:bold">]</span>; <span style="color:#ca9ee6">then</span>
</span></span><span style="display:flex;"><span> curl <span style="color:#8caaee">\
-</span></span></span><span style="display:flex;"><span><span style="color:#8caaee"></span> -H prio:high <span style="color:#8caaee">\
-</span></span></span><span style="display:flex;"><span><span style="color:#8caaee"></span> -H tags:warning <span style="color:#8caaee">\
-</span></span></span><span style="display:flex;"><span><span style="color:#8caaee"></span> -d <span style="color:#a6d189">"SSH login: </span><span style="color:#a6d189">${</span><span style="color:#f2d5cf">PAM_USER</span><span style="color:#a6d189">}</span><span style="color:#a6d189"> from </span><span style="color:#a6d189">${</span><span style="color:#f2d5cf">PAM_RHOST</span><span style="color:#a6d189">}</span><span style="color:#a6d189">"</span> <span style="color:#8caaee">\
-</span></span></span><span style="display:flex;"><span><span style="color:#8caaee"></span> ntfy.sh/<span style="color:#99d1db;font-weight:bold">{</span>YourTopic<span style="color:#99d1db;font-weight:bold">}</span>
+</span></span></span><span style="display:flex;"><span> -H prio:high <span style="color:#8caaee">\
+</span></span></span><span style="display:flex;"><span> -H tags:warning <span style="color:#8caaee">\
+</span></span></span><span style="display:flex;"><span> -d <span style="color:#a6d189">"SSH login: </span><span style="color:#a6d189">${</span><span style="color:#f2d5cf">PAM_USER</span><span style="color:#a6d189">}</span><span style="color:#a6d189"> from </span><span style="color:#a6d189">${</span><span style="color:#f2d5cf">PAM_RHOST</span><span style="color:#a6d189">}</span><span style="color:#a6d189">"</span> <span style="color:#8caaee">\
+</span></span></span><span style="display:flex;"><span> ntfy.sh/<span style="color:#99d1db;font-weight:bold">{</span>YourTopic<span style="color:#99d1db;font-weight:bold">}</span>
</span></span><span style="display:flex;"><span><span style="color:#ca9ee6">fi</span>
</span></span></code></pre></div><blockquote>
<p>/etc/pam.d/sshd</p>
@@ -576,8 +574,8 @@ Scan-Format: %c%u%r %-3n %10d %17f %t %2i%s
<blockquote>
<p>mprofile</p>
</blockquote>
-<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">#!/bin/sh
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span>
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#737994;font-style:italic">#!/bin/sh
+</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f2d5cf">profiles</span><span style="color:#99d1db;font-weight:bold">=</span><span style="color:#ca9ee6">$(</span>find <span style="color:#a6d189">"</span><span style="color:#f2d5cf">$HOME</span><span style="color:#a6d189">"</span>/.config/mblaze -type f -exec basename <span style="color:#a6d189">"{}"</span> <span style="color:#8caaee">\;</span><span style="color:#ca9ee6">)</span>
</span></span><span style="display:flex;"><span><span style="color:#f2d5cf">currentMaildir</span><span style="color:#99d1db;font-weight:bold">=</span><span style="color:#ca9ee6">$(</span>grep <span style="color:#a6d189">"^Maildir:"</span> <span style="color:#a6d189">"</span><span style="color:#f2d5cf">$HOME</span><span style="color:#a6d189">"</span>/.mblaze/profile | cut -d: -f <span style="color:#ef9f76">2</span> | sed <span style="color:#a6d189">'s/ //g'</span><span style="color:#ca9ee6">)</span>
</span></span><span style="display:flex;"><span>
@@ -595,7 +593,7 @@ Scan-Format: %c%u%r %-3n %10d %17f %t %2i%s
<blockquote>
<p>functions</p>
</blockquote>
-<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"># mblaze functions</span>
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># mblaze functions</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Get new mail for current profile</span>
</span></span><span style="display:flex;"><span><span style="color:#ca9ee6">function</span> mnew <span style="color:#99d1db;font-weight:bold">()</span> <span style="color:#99d1db;font-weight:bold">{</span>
@@ -640,7 +638,6 @@ the dns server I’m using DNS over HTTPS for my browser’s and
stuffy for my whole desktop and private dns in android ( Android has DoH support
but only for google and cloudflare right now). Let’s get on to setting
everything up</p>
-<!-- raw HTML omitted -->
<h2 id="1-pihole">1. Pihole</h2>
<p>Let’s start with setting up pihole. I will be installing it with their script on
a debian system for easier unbound integration ( unbound doesn’t have an
@@ -651,7 +648,7 @@ pihole get’s frequent updates.
<p>I recommend you to install the admin page for easier managmenet and ability to
change the upstream dns server ( needed for changing it to unbound later on ).
To be able to access the admin page I use an nginx configuration like this one.</p>
-<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> {
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><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">example.com</span> ;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">location</span> <span style="color:#a6d189">/</span> {
@@ -664,27 +661,27 @@ To be able to access the admin page I use an nginx configuration like this one.&
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#737994;font-style:italic"># If you want to log user activity, comment these
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span> <span style="color:#81c8be">access_log</span> <span style="color:#a6d189">/dev/null</span>;
+</span></span></span><span style="display:flex;"><span> <span style="color:#81c8be">access_log</span> <span style="color:#a6d189">/dev/null</span>;
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">error_log</span> <span style="color:#a6d189">/dev/null</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">listen</span> <span style="color:#a6d189">[::]:443</span> <span style="color:#a6d189">ssl</span>; <span style="color:#737994;font-style:italic"># managed by Certbot
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span> <span style="color:#81c8be">listen</span> <span style="color:#ef9f76">443</span> <span style="color:#a6d189">ssl</span>; <span style="color:#737994;font-style:italic"># managed by Certbot
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span> <span style="color:#81c8be">ssl_certificate</span> <span style="color:#a6d189">/etc/letsencrypt/live/example.com/fullchain.pem</span>; <span style="color:#737994;font-style:italic"># managed by Certbot
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span> <span style="color:#81c8be">ssl_certificate_key</span> <span style="color:#a6d189">/etc/letsencrypt/live/example.com/privkey.pem</span>; <span style="color:#737994;font-style:italic"># managed by Certbot
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span> <span style="color:#81c8be">include</span> <span style="color:#a6d189">/etc/letsencrypt/options-ssl-nginx.conf</span>; <span style="color:#737994;font-style:italic"># managed by Certbot
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span> <span style="color:#81c8be">ssl_dhparam</span> <span style="color:#a6d189">/etc/letsencrypt/ssl-dhparams.pem</span>; <span style="color:#737994;font-style:italic"># managed by Certbot
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span>}
+</span></span></span><span style="display:flex;"><span> <span style="color:#81c8be">listen</span> <span style="color:#ef9f76">443</span> <span style="color:#a6d189">ssl</span>; <span style="color:#737994;font-style:italic"># managed by Certbot
+</span></span></span><span style="display:flex;"><span> <span style="color:#81c8be">ssl_certificate</span> <span style="color:#a6d189">/etc/letsencrypt/live/example.com/fullchain.pem</span>; <span style="color:#737994;font-style:italic"># managed by Certbot
+</span></span></span><span style="display:flex;"><span> <span style="color:#81c8be">ssl_certificate_key</span> <span style="color:#a6d189">/etc/letsencrypt/live/example.com/privkey.pem</span>; <span style="color:#737994;font-style:italic"># managed by Certbot
+</span></span></span><span style="display:flex;"><span> <span style="color:#81c8be">include</span> <span style="color:#a6d189">/etc/letsencrypt/options-ssl-nginx.conf</span>; <span style="color:#737994;font-style:italic"># managed by Certbot
+</span></span></span><span style="display:flex;"><span> <span style="color:#81c8be">ssl_dhparam</span> <span style="color:#a6d189">/etc/letsencrypt/ssl-dhparams.pem</span>; <span style="color:#737994;font-style:italic"># managed by Certbot
+</span></span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span><span style="color:#ca9ee6">server</span> {
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">if</span> <span style="color:#a6d189">(</span><span style="color:#f2d5cf">$host</span> = <span style="color:#a6d189">example.com)</span> {
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">return</span> <span style="color:#ef9f76">301</span> <span style="color:#a6d189">https://</span><span style="color:#f2d5cf">$host$request_uri</span>;
</span></span><span style="display:flex;"><span> } <span style="color:#737994;font-style:italic"># managed by Certbot
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span>
+</span></span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">server_name</span> <span style="color:#a6d189">example.com</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 style="color:#81c8be">return</span> <span style="color:#ef9f76">404</span>; <span style="color:#737994;font-style:italic"># managed by Certbot
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span>}
+</span></span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>The main point of this config is the <code>/admin</code> location that you need to pass the
lighttpd port to acces the website, you can just do it on your main website
also. Also to make lighttpd work with nginx listening on port 80 you need to
@@ -701,7 +698,7 @@ certbot to generate one with this command <code>certbot --nginx -d dot.exa
this configuration to your main nginx config located at <code>/etc/nginx/nginx.conf</code>.
<strong>Make sure to add this outside of the http block and change example.com to your
domain</strong></p>
-<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">stream</span> {
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-nginx" data-lang="nginx"><span style="display:flex;"><span><span style="color:#ca9ee6">stream</span> {
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">log_format</span> <span style="color:#a6d189">basic</span> <span style="color:#a6d189">'</span><span style="color:#f2d5cf">$remote_addr</span> <span style="color:#a6d189">[</span><span style="color:#f2d5cf">$time_local]</span> <span style="color:#f2d5cf">$protocol</span> <span style="color:#f2d5cf">$status</span> <span style="color:#f2d5cf">$bytes_sent</span> <span style="color:#f2d5cf">$bytes_received</span> <span style="color:#f2d5cf">$session_time</span> <span style="color:#f2d5cf">$upstream_addr'</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">upstream</span> <span style="color:#a6d189">dns</span>
@@ -759,8 +756,8 @@ once again using certbot with this command
<code>certbot --nginx -d doh.example.com</code>after that add this configuratin to nginx
either in sites-available and linking it to sites enabled or in http block in
main nginx configuration.</p>
-<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:#737994;font-style:italic"># Proxy Cache storage - so we can cache the DoH response from the upstream
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span><span style="color:#ca9ee6">proxy_cache_path</span> <span style="color:#a6d189">/var/run/doh_cache</span> <span style="color:#a6d189">levels=1:2</span> <span style="color:#a6d189">keys_zone=doh_cache:10m</span>;
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-nginx" data-lang="nginx"><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># Proxy Cache storage - so we can cache the DoH response from the upstream
+</span></span></span><span style="display:flex;"><span><span style="color:#ca9ee6">proxy_cache_path</span> <span style="color:#a6d189">/var/run/doh_cache</span> <span style="color:#a6d189">levels=1:2</span> <span style="color:#a6d189">keys_zone=doh_cache:10m</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#ca9ee6">server</span> {
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">listen</span> <span style="color:#ef9f76">80</span>;
@@ -769,7 +766,7 @@ main nginx configuration.</p>
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"># This virtual server accepts HTTP/2 over HTTPS
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span><span style="color:#ca9ee6">server</span> {
+</span></span></span><span style="display:flex;"><span><span style="color:#ca9ee6">server</span> {
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">listen</span> <span style="color:#ef9f76">443</span> <span style="color:#a6d189">ssl</span> <span style="color:#a6d189">http2</span>;
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">server_name</span> <span style="color:#a6d189">doh.example.com</span>;
</span></span><span style="display:flex;"><span>
@@ -781,10 +778,10 @@ main nginx configuration.</p>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#737994;font-style:italic"># DoH may use GET or POST requests, Cache both
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span> <span style="color:#81c8be">proxy_cache_methods</span> <span style="color:#a6d189">GET</span> <span style="color:#a6d189">POST</span>;
+</span></span></span><span style="display:flex;"><span> <span style="color:#81c8be">proxy_cache_methods</span> <span style="color:#a6d189">GET</span> <span style="color:#a6d189">POST</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#737994;font-style:italic"># Return 404 to all responses, except for those using our published DoH URI
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span> <span style="color:#81c8be">location</span> <span style="color:#a6d189">/</span> {
+</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">try_files</span> <span style="color:#f2d5cf">$uri</span> <span style="color:#f2d5cf">$uri/</span> =<span style="color:#ef9f76">404</span>;
</span></span><span style="display:flex;"><span> }
</span></span><span style="display:flex;"><span>
@@ -792,20 +789,20 @@ main nginx configuration.</p>
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">proxy_ssl_ciphers</span> <span style="color:#a6d189">HIGH:!aNULL:!MD5</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#737994;font-style:italic"># This is our published DoH URI
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span> <span style="color:#81c8be">location</span> <span style="color:#a6d189">/dns-query</span> {
+</span></span></span><span style="display:flex;"><span> <span style="color:#81c8be">location</span> <span style="color:#a6d189">/dns-query</span> {
</span></span><span style="display:flex;"><span> <span style="color:#737994;font-style:italic"># Proxy HTTP/1.1, clear the connection header to enable Keep-Alive
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span> <span style="color:#81c8be">proxy_http_version</span> <span style="color:#ef9f76">1</span><span style="color:#a6d189">.1</span>;
+</span></span></span><span style="display:flex;"><span> <span style="color:#81c8be">proxy_http_version</span> <span style="color:#ef9f76">1</span><span style="color:#a6d189">.1</span>;
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">proxy_set_header</span> <span style="color:#a6d189">Connection</span> <span style="color:#a6d189">""</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#737994;font-style:italic"># Enable Cache, and set the cache_key to include the request_body
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span> <span style="color:#81c8be">proxy_cache</span> <span style="color:#a6d189">doh_cache</span>;
+</span></span></span><span style="display:flex;"><span> <span style="color:#81c8be">proxy_cache</span> <span style="color:#a6d189">doh_cache</span>;
</span></span><span style="display:flex;"><span> <span style="color:#81c8be">proxy_cache_key</span> <span style="color:#f2d5cf">$scheme$proxy_host$uri$is_args$args$request_body</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#737994;font-style:italic"># proxy pass to dnsdist
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></span> <span style="color:#81c8be">proxy_pass</span> <span style="color:#a6d189">http://127.0.0.1:5300</span>;
+</span></span></span><span style="display:flex;"><span> <span style="color:#81c8be">proxy_pass</span> <span style="color:#a6d189">http://127.0.0.1:5300</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span> <span style="color:#737994;font-style:italic"># proxy pass address
-</span></span></span><span style="display:flex;"><span><span style="color:#737994;font-style:italic"></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><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></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>After restarting nginx with this configuration you can it to your web browser as
@@ -824,7 +821,6 @@ better you can open a pull request or make an issue on the website’s
https://cronyakatsuki.xyz/blog/piped-video-not-loading/
<p>Recently I have received and experienced an issue of videos not loading on my personal <a href="https://piped.cronyakatsuki.xyz">piped</a> instance and on the official instance. But I have found a fix and a way to watch the videos even without the fix.</p>
-<!-- raw HTML omitted -->
<h2 id="what-creates-the-issue">What creates the issue?</h2>
<p>From what I have been able to find on the issues over on the <a href="https://github.com/TeamPiped/Piped">piped github</a> it seems to be an lbry issue of the videos not loading mostly on firefox, the issue seems to not happen on the chromium browsers.</p>
<h3 id="how-to-fix-the-issue">How to fix the issue</h3>
@@ -841,18 +837,17 @@ better you can open a pull request or make an issue on the website’s
https://cronyakatsuki.xyz/blog/miniflux-setup/
<p>Looking for a minimal self-hosted feed reader I found <a href="https://miniflux.app/">miniflux</a>. But trying to set it up I found my self trying to set it up for 3 freaking hours since I only recently started to self-host things. So here I will try to explaing it in the most easy way how to set it up on a debian server with https using certbot and nginx.</p>
-<!-- raw HTML omitted -->
<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:#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">"deb [trusted=yes] https://repo.miniflux.app/apt/ /"</span> | sudo tee /etc/apt/sources.list.d/miniflux.list > /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;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#99d1db">echo</span> <span style="color:#a6d189">"deb [trusted=yes] https://repo.miniflux.app/apt/ /"</span> | sudo tee /etc/apt/sources.list.d/miniflux.list > /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:#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
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><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:#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>
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><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:#737994;font-style:italic"># Creating a miniflux user, enter a safe and secure password</span>
@@ -880,13 +875,13 @@ better you can open a pull request or make an issue on the website’s
</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:#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>
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><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:#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>
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><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:#737994;font-style:italic"># Creating miniflux admin user</span>
@@ -912,7 +907,7 @@ better you can open a pull request or make an issue on the website’s
</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:#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> {
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><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>;
@@ -927,7 +922,7 @@ better you can open a pull request or make an issue on the website’s
</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:#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
+<div class="highlight"><pre tabindex="0" style="color:#c6d0f5;background-color:#303446;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><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>
diff --git a/public/blog/miniflux-setup/index.html b/public/blog/miniflux-setup/index.html
index a2740a4..03adfad 100644
--- a/public/blog/miniflux-setup/index.html
+++ b/public/blog/miniflux-setup/index.html
@@ -1,25 +1,30 @@
-
-
+
-
-
+
+
-
- miniflux setup on debian - Crony Akatsuki
-
+
+ miniflux setup on debian - Crony Akatsuki
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -58,18 +63,17 @@ For this tutorial I expect that you already have a server seted up with nginx an
Looking for a minimal self-hosted feed reader I found miniflux. But trying to set it up I found my self trying to set it up for 3 freaking hours since I only recently started to self-host things. So here I will try to explaing it in the most easy way how to set it up on a debian server with https using certbot and nginx.
-For this tutorial I expect that you already have a server seted up with nginx and certbot. To set up this things check out landchad
You will first need to setup miniflux apt repository to install it on your system.
-echo "deb [trusted=yes] https://repo.miniflux.app/apt/ /" | sudo tee /etc/apt/sources.list.d/miniflux.list > /dev/null
+echo "deb [trusted=yes] https://repo.miniflux.app/apt/ /" | sudo tee /etc/apt/sources.list.d/miniflux.list > /dev/null
apt update
Then just install the needed packages.
-apt install miniflux postgresql
+apt install miniflux postgresql
Setting up postgres database and miniflux
Here I will detail steps to create the postgres database.
Initial postgres setup
-# Switch to the postgres user
+# Switch to the postgres user
$ su - postgres
# Creating a miniflux user, enter a safe and secure password
@@ -97,13 +101,13 @@ For this tutorial I expect that you already have a server seted up with nginx an
$ exit
Miniflux configuration file
Open the miniflux configuration file in path /etc/miniflux.conf and edit it like this.
-# See https://miniflux.app/docs/configuration.html
+# See https://miniflux.app/docs/configuration.html
LISTEN_ADDR=127.0.0.1:8080
DATABASE_URL=user=miniflux password=PASSWORD_HERE dbname=miniflux sslmode=disable
RUN_MIGRATIONS=1
Migrating the database and removing superuser privileges in postgres
Now we will migrate the database and remove unneded superuser privileges, since it is reccomended in the miniflux documentation.
-# Migrating the database
+# Migrating the database
$ miniflux -c /etc/miniflux.conf -migrate
# Creating miniflux admin user
@@ -129,7 +133,7 @@ For this tutorial I expect that you already have a server seted up with nginx an
Nginx and certbot setup
Make sure to have a domain to use for your miniflux setup.
Create and open a nginx config with path /etc/nginx/sites-available/miniflux.conf and add this
-server {
+server {
server_name your.domain.ext;
listen 80;
listen [::]:80;
@@ -144,7 +148,7 @@ For this tutorial I expect that you already have a server seted up with nginx an
}
}
Now just link the config to enabled sites and restart nginx service.
-$ ln -s /etc/nginx/sites-available/miniflux.conf /etc/nginx/sites-enabled/miniflux.conf
+$ ln -s /etc/nginx/sites-available/miniflux.conf /etc/nginx/sites-enabled/miniflux.conf
$ systemctl restart nginx
To get https on your domain you just need to run certbot --nginx same as in this tutorial
Finishing words
diff --git a/public/blog/phone-wireless-webcam-linux/index.html b/public/blog/phone-wireless-webcam-linux/index.html
index 0204078..c7874b3 100644
--- a/public/blog/phone-wireless-webcam-linux/index.html
+++ b/public/blog/phone-wireless-webcam-linux/index.html
@@ -1,24 +1,30 @@
-
-
+
-
-
+
+
-
- How to setup a phone as wireless webcam on linux - Crony Akatsuki
-
+
+ How to setup a phone as wireless webcam on linux - Crony Akatsuki
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -59,7 +65,6 @@
Anybody else need to have a webcam nowdays because of all the remote stuff that has started happening since covid, getting forced into having a webcam so that your boss/teacher/professor can follow what you are doing but don’t wanna spend money on getting one and you are luckilly using linux? Then look no further because if you have a decent phone ( S24 in my case ) you can have use it as a wireless webcam ( or usb if your android version is lover than 14 ).
I will now show you the steps and some basic settings and a script to simplify the steps.
-
1. Enable Wireless/Usb Debugging on your phone
First you will have to enable wireless/usb debugging on your phone. The steps can somewhat differ depending on your phone and as such I will use my phone as an example.
@@ -81,7 +86,7 @@
example command
-sudo pacman -S android-tools v4l2loopback-dkms scrcpy
+sudo pacman -S android-tools v4l2loopback-dkms scrcpy
3. Pair your phone with your pc using adb
Now we will need to pair your phone using adb wirelessly with your pc.
Go to wireless debugging settings on your phone, make sure it’s enable and click the pair with code option. Take note of the ip and port, you will have to use it on your pc.
@@ -93,7 +98,7 @@
example
-❯ v4l2-ctl --list-devices
+❯ v4l2-ctl --list-devices
Virtual Webcam (platform:v4l2loopback-000):
/dev/video2
@@ -102,7 +107,7 @@
/dev/video1
/dev/media0
Now we can use scrcpy to get our phone’s camera and show it on your pc in a nice little window, in my case I use this command which is pretty long but will explain it:
-scrcpy --video-source=camera --no-audio --camera-facing=front --v4l2-sink=/dev/video2 --camera-fps=60 --video-codec=h265 --camera-ar=4:3 -m1920 --capture-orientation=flip90
+scrcpy --video-source=camera --no-audio --camera-facing=front --v4l2-sink=/dev/video2 --camera-fps=60 --video-codec=h265 --camera-ar=4:3 -m1920 --capture-orientation=flip90
Now to explain the options:
--video-source=camerate makes sure scrcpy uses your camera as the source
diff --git a/public/blog/piped-video-not-loading/index.html b/public/blog/piped-video-not-loading/index.html
index f343780..c90a1a3 100644
--- a/public/blog/piped-video-not-loading/index.html
+++ b/public/blog/piped-video-not-loading/index.html
@@ -1,25 +1,30 @@
-
-
+
-
-
+
+
-
- Piped videos not loading - Crony Akatsuki
-
+
+ Piped videos not loading - Crony Akatsuki
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -58,7 +63,6 @@ What creates the issue? From what I have been able to find on the issues over on
Recently I have received and experienced an issue of videos not loading on my personal piped instance and on the official instance. But I have found a fix and a way to watch the videos even without the fix.
-
What creates the issue?
From what I have been able to find on the issues over on the piped github it seems to be an lbry issue of the videos not loading mostly on firefox, the issue seems to not happen on the chromium browsers.
How to fix the issue
diff --git a/public/blog/securing-ssh/index.html b/public/blog/securing-ssh/index.html
index 54377f6..b565dac 100644
--- a/public/blog/securing-ssh/index.html
+++ b/public/blog/securing-ssh/index.html
@@ -1,25 +1,28 @@
-
-
+
-
-
+
+
-
- Securing SSH - Crony Akatsuki
-
+
+ Securing SSH - Crony Akatsuki
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/public/blog/setup-dns-pihole-unbound/index.html b/public/blog/setup-dns-pihole-unbound/index.html
index 2659ebe..37f674a 100644
--- a/public/blog/setup-dns-pihole-unbound/index.html
+++ b/public/blog/setup-dns-pihole-unbound/index.html
@@ -1,24 +1,31 @@
-
-
+
-
-
+
+
-
- Setup dns with adblock and dot/doh with pi-hole and unbound - Crony Akatsuki
-
+
+ Setup dns with adblock and dot/doh with pi-hole and unbound - Crony Akatsuki
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -64,7 +71,6 @@ the dns server I’m using DNS over HTTPS for my browser’s and HTTPS o
stuffy for my whole desktop and private dns in android ( Android has DoH support
but only for google and cloudflare right now). Let’s get on to setting
everything up
-
1. Pihole
Let’s start with setting up pihole. I will be installing it with their script on
a debian system for easier unbound integration ( unbound doesn’t have an
@@ -75,7 +81,7 @@ pihole get’s frequent updates.
I recommend you to install the admin page for easier managmenet and ability to
change the upstream dns server ( needed for changing it to unbound later on ).
To be able to access the admin page I use an nginx configuration like this one.
-server {
+server {
server_name example.com ;
location / {
@@ -88,27 +94,27 @@ To be able to access the admin page I use an nginx configuration like this one.<
}
# If you want to log user activity, comment these
- access_log /dev/null;
+ access_log /dev/null;
error_log /dev/null;
listen [::]:443 ssl; # managed by Certbot
- listen 443 ssl; # managed by Certbot
- ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
- ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
- include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
- ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
-}
+ listen 443 ssl; # managed by Certbot
+ ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
+ ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
+ include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
+}
server {
if ($host = example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
-
+
server_name example.com ;
listen 80;
listen [::]:80;
return 404; # managed by Certbot
-}
+}
The main point of this config is the /admin location that you need to pass the
lighttpd port to acces the website, you can just do it on your main website
also. Also to make lighttpd work with nginx listening on port 80 you need to
@@ -125,7 +131,7 @@ certbot to generate one with this command certbot --nginx -d dot.example.c
this configuration to your main nginx config located at /etc/nginx/nginx.conf.
Make sure to add this outside of the http block and change example.com to your
domain
-stream {
+stream {
log_format basic '$remote_addr [$time_local] $protocol $status $bytes_sent $bytes_received $session_time $upstream_addr';
upstream dns
@@ -183,8 +189,8 @@ once again using certbot with this command
certbot --nginx -d doh.example.comafter that add this configuratin to nginx
either in sites-available and linking it to sites enabled or in http block in
main nginx configuration.
-# Proxy Cache storage - so we can cache the DoH response from the upstream
-proxy_cache_path /var/run/doh_cache levels=1:2 keys_zone=doh_cache:10m;
+# Proxy Cache storage - so we can cache the DoH response from the upstream
+proxy_cache_path /var/run/doh_cache levels=1:2 keys_zone=doh_cache:10m;
server {
listen 80;
@@ -193,7 +199,7 @@ main nginx configuration.
}
# This virtual server accepts HTTP/2 over HTTPS
-server {
+server {
listen 443 ssl http2;
server_name doh.example.com;
@@ -205,10 +211,10 @@ main nginx configuration.
# DoH may use GET or POST requests, Cache both
- proxy_cache_methods GET POST;
+ proxy_cache_methods GET POST;
# Return 404 to all responses, except for those using our published DoH URI
- location / {
+ location / {
try_files $uri $uri/ =404;
}
@@ -216,20 +222,20 @@ main nginx configuration.
proxy_ssl_ciphers HIGH:!aNULL:!MD5;
# This is our published DoH URI
- location /dns-query {
+ location /dns-query {
# Proxy HTTP/1.1, clear the connection header to enable Keep-Alive
- proxy_http_version 1.1;
+ proxy_http_version 1.1;
proxy_set_header Connection "";
# Enable Cache, and set the cache_key to include the request_body
- proxy_cache doh_cache;
+ proxy_cache doh_cache;
proxy_cache_key $scheme$proxy_host$uri$is_args$args$request_body;
# proxy pass to dnsdist
- proxy_pass http://127.0.0.1:5300;
+ proxy_pass http://127.0.0.1:5300;
# proxy pass address
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
After restarting nginx with this configuration you can it to your web browser as
diff --git a/public/blog/setup-traefik/index.html b/public/blog/setup-traefik/index.html
index ce91014..4ca9d19 100644
--- a/public/blog/setup-traefik/index.html
+++ b/public/blog/setup-traefik/index.html
@@ -1,26 +1,29 @@
-
-
+
-
-
+
+
-
- Setup Traefik - Crony Akatsuki
-
+
+ Setup Traefik - Crony Akatsuki
+
-
-
+
+
+
-
-
-
-
+Setting up Traefik In this part we will setup traefik, with the dashboard enabled and secured with https and a password.">
+
+
+
+
+
@@ -55,12 +58,11 @@ Setting up Traefik In this part we will setup traefik, with the dashboard enable
Do you use docker? Do you use nginx or apachi to proxy the container? Fear not you won’t be needing them anymore once you are done with this tutorial.
Traefik is a simple docker centric proxy manager that is amazing and allows you to easilly proxy you docker containers with just a couple of labels.
-
Setting up Traefik
In this part we will setup traefik, with the dashboard enabled and secured with https and a password.
Create a directory where you will keep traefik configuration files and the docker compose. Inside it we will save all the configuration files.
docker-compose.yml
-version: '3'
+version: '3'
services:
traefik:
@@ -87,7 +89,7 @@ Setting up Traefik In this part we will setup traefik, with the dashboard enable
We are also forcing it to use the latest available stable image to make sure there are no bugs, and disabling proxying the traefik image itself io the lables to make sure it isn’t exposed by any means.
We are also making it so it can restart itself unless we specifically stop it, and binding it to port 80 and 443 because those are the default http and https ports that every browser uses when connecting.
traefik.toml
-[entryPoints]
+[entryPoints]
[entryPoints.web]
address = ":80"
[entryPoints.web.http.redirections.entryPoint]
@@ -117,7 +119,7 @@ Setting up Traefik In this part we will setup traefik, with the dashboard enable
In the api section we are enabling the dashboard, but disallowing insecure access to it.
In the rest of the config we are defining the mail and storage for tls certificates, and enabled docker provider binded to a web network, and enabled the file provider for the dashboard setup.
traefik_dynamic.toml
-[http.middlewares.simpleAuth.basicAuth]
+[http.middlewares.simpleAuth.basicAuth]
users = [
"somebody:$apr1$whatever"
]
@@ -143,7 +145,7 @@ Setting up Traefik In this part we will setup traefik, with the dashboard enable
docker-compose.yml
-version: "2.3"
+version: "2.3"
services:
ntfy:
@@ -203,7 +205,7 @@ Setting up Traefik In this part we will setup traefik, with the dashboard enable
example
-...
+...
labels:
- traefik.enable=false
...
@@ -213,7 +215,7 @@ Setting up Traefik In this part we will setup traefik, with the dashboard enable
example docker-compose.yml
-version: "3"
+version: "3"
networks:
web:
diff --git a/public/blog/using-mblaze/index.html b/public/blog/using-mblaze/index.html
index 80c5634..2bd15c6 100644
--- a/public/blog/using-mblaze/index.html
+++ b/public/blog/using-mblaze/index.html
@@ -1,25 +1,31 @@
-
-
+
-
-
+
+
-
- Using Mblaze - Crony Akatsuki
-
+
+ Using Mblaze - Crony Akatsuki
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -72,7 +78,7 @@ Helper function’s I guess you haven’t read my other blog on setting
Settings read status
To flag mail as read we can use the mflag utiity. We do it by choosing what mail we wanna mark as read and running the command mflag -S N, but after that we need to fix our list because the filename changed because of the fact that we changed the flag to read. To fix that we will run mseq -f : | mseq -S.
We can easily alias this sequence of command’s into a function to streamline this.
-function mread() {
+function mread() {
mflag -S $1
mseq -f : | mseq -S
}
diff --git a/public/blog/virgin-mutt-user-meet-mblaze/index.html b/public/blog/virgin-mutt-user-meet-mblaze/index.html
index 6a643c1..4814f72 100644
--- a/public/blog/virgin-mutt-user-meet-mblaze/index.html
+++ b/public/blog/virgin-mutt-user-meet-mblaze/index.html
@@ -1,24 +1,30 @@
-
-
+
-
-
+
+
-
- Virgin (Neo)Mutt User Meet Mblaze - Crony Akatsuki
-
+
+ Virgin (Neo)Mutt User Meet Mblaze - Crony Akatsuki
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -171,8 +177,8 @@ Scan-Format: %c%u%r %-3n %10d %17f %t %2i%s
mprofile
-#!/bin/sh
-
+#!/bin/sh
+
profiles=$(find "$HOME"/.config/mblaze -type f -exec basename "{}" \;)
currentMaildir=$(grep "^Maildir:" "$HOME"/.mblaze/profile | cut -d: -f 2 | sed 's/ //g')
@@ -190,7 +196,7 @@ Scan-Format: %c%u%r %-3n %10d %17f %t %2i%s
functions
-# mblaze functions
+# mblaze functions
# Get new mail for current profile
function mnew () {
diff --git a/public/categories/index.html b/public/categories/index.html
index 411d75b..73ce115 100644
--- a/public/categories/index.html
+++ b/public/categories/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Categories - Crony Akatsuki
-
+
+ Categories - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/index.html b/public/index.html
index 9578dd4..1fa9563 100644
--- a/public/index.html
+++ b/public/index.html
@@ -2,22 +2,24 @@
-
-
+
-
-
+
+
-
- Crony Akatsuki's Website
-
+
+ Crony Akatsuki's Website
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/services/index.html b/public/services/index.html
index dffc4f4..b88e95d 100644
--- a/public/services/index.html
+++ b/public/services/index.html
@@ -1,24 +1,24 @@
-
-
+
-
-
+
+
-
- Services I host - Crony Akatsuki
-
+
+ Services I host - Crony Akatsuki
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -48,82 +48,131 @@ are publicly available for everyone to use if they wan’t to, or in specifi
cases like lemmy you will need to provide an application and get approved by me
to get an account.
-
-
-Service
-Description
-Source Code
-
-
-
-
-UpFast
-Open source file sharing.
-Gitea
-
-
-SearXNG
-Open source search engine.
-Github
-
-
-LibReddit
-Open Source reddit frontend.
-Github
-
-
-lemmy
-Open source activity pub federated reddit alternative.
-Github
-
-
-Mumble
-Open source voice chat application
-Github
-
-
-CraftyController
-Open source minecraft server manager
-Gitlab
-
-
-Wallabag
-Open source bookmark service
-Github
-
-
+
+
+ Service
+ Description
+ Source Code
+
+
+
+
+ UpFast
+ Open source file sharing.
+ Gitea
+
+
+ SearXNG
+ Open source search engine.
+ Github
+
+
+ LibReddit
+ Open Source reddit frontend.
+ Github
+
+
+ lemmy
+ Open source activity pub federated reddit alternative.
+ Github
+
+
+ Mumble
+ Open source voice chat application
+ Github
+
+
+ Wallabag
+ Open source bookmark service
+ Github
+
+
Services I might allow people I know or am close with in
-
-
-Service
-Description
-Source Code
-
-
-
-
-MiniFlux
-Open source feed reader.
-Github
-
-
-ntfy
-Open source push notifications server.
-Github
-
-
-navidrome
-Open source music streaming
-Github
-
-
-audiobookshelf
-Open source audiobook and podcast server
-Github
-
-
+
+
+ Service
+ Description
+ Source Code
+
+
+
+
+ MiniFlux
+ Open source feed reader.
+ Github
+
+
+ ntfy
+ Open source push notifications server.
+ Github
+
+
+ navidrome
+ Open source music streaming
+ Github
+
+
+ audiobookshelf
+ Open source audiobook and podcast server
+ Github
+
+
+ changedetection.io
+ Open source website change detection server
+ Github
+
+
+ conduit
+ Open source matrix server implementation
+ Gitlab
+
+
+
+Services I host for easilly sharing stuff
+
+
+
+ Service
+ Description
+ Source Code
+
+
+
+
+ Immich
+ Open source google images alternative
+ Github
+
+
+ Filebrowser
+ Open source file manager in a browser
+ Github
+
+
+
+Services I host for my personal sync of stuff
+
+
+
+ Service
+ Description
+ Source Code
+
+
+
+
+ atuin
+ Open source shell history sync server
+ Github
+
+
+ syncyomi
+ Open source tachiyomi sync server
+ Github
+
+
diff --git a/public/tags/android/index.html b/public/tags/android/index.html
index c8fcac9..aeb94f4 100644
--- a/public/tags/android/index.html
+++ b/public/tags/android/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Android - Crony Akatsuki
-
+
+ Android - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/browser/index.html b/public/tags/browser/index.html
index 821ac3f..45d7046 100644
--- a/public/tags/browser/index.html
+++ b/public/tags/browser/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Browser - Crony Akatsuki
-
+
+ Browser - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/dns/index.html b/public/tags/dns/index.html
index c71b5e1..57f8562 100644
--- a/public/tags/dns/index.html
+++ b/public/tags/dns/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Dns - Crony Akatsuki
-
+
+ Dns - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/index.html b/public/tags/index.html
index 60be1ae..6ed9ba8 100644
--- a/public/tags/index.html
+++ b/public/tags/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Tags - Crony Akatsuki
-
+
+ Tags - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
@@ -44,14 +46,29 @@
-
- Rss
+
+ Scrcpy
-
- Piped
+
+ Linux
-
- Browser
+
+ Android
+
+
+ Mblaze
+
+
+ Mail
+
+
+ Ssh
+
+
+ Security
+
+
+ Ntfy
Unbound
@@ -65,29 +82,14 @@
Dns
-
- Ssh
+
+ Piped
-
- Security
+
+ Browser
-
- Ntfy
-
-
- Mblaze
-
-
- Mail
-
-
- Scrcpy
-
-
- Linux
-
-
- Android
+
+ Rss
diff --git a/public/tags/linux/index.html b/public/tags/linux/index.html
index e7e3811..86c70a7 100644
--- a/public/tags/linux/index.html
+++ b/public/tags/linux/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Linux - Crony Akatsuki
-
+
+ Linux - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/mail/index.html b/public/tags/mail/index.html
index 0e82326..addaf3f 100644
--- a/public/tags/mail/index.html
+++ b/public/tags/mail/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Mail - Crony Akatsuki
-
+
+ Mail - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/mblaze/index.html b/public/tags/mblaze/index.html
index 7094f71..5013765 100644
--- a/public/tags/mblaze/index.html
+++ b/public/tags/mblaze/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Mblaze - Crony Akatsuki
-
+
+ Mblaze - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/ntfy/index.html b/public/tags/ntfy/index.html
index 78fe18b..a3798fc 100644
--- a/public/tags/ntfy/index.html
+++ b/public/tags/ntfy/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Ntfy - Crony Akatsuki
-
+
+ Ntfy - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/pi-hole/index.html b/public/tags/pi-hole/index.html
index 452989c..f665e84 100644
--- a/public/tags/pi-hole/index.html
+++ b/public/tags/pi-hole/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Pi-Hole - Crony Akatsuki
-
+
+ Pi-Hole - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/piped/index.html b/public/tags/piped/index.html
index 71f05e8..700ed05 100644
--- a/public/tags/piped/index.html
+++ b/public/tags/piped/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Piped - Crony Akatsuki
-
+
+ Piped - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/rss/index.html b/public/tags/rss/index.html
index c175431..f3f38c1 100644
--- a/public/tags/rss/index.html
+++ b/public/tags/rss/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Rss - Crony Akatsuki
-
+
+ Rss - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/scrcpy/index.html b/public/tags/scrcpy/index.html
index 893e978..08c3491 100644
--- a/public/tags/scrcpy/index.html
+++ b/public/tags/scrcpy/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Scrcpy - Crony Akatsuki
-
+
+ Scrcpy - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/security/index.html b/public/tags/security/index.html
index 763c1de..29dfadd 100644
--- a/public/tags/security/index.html
+++ b/public/tags/security/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Security - Crony Akatsuki
-
+
+ Security - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/self-host/index.html b/public/tags/self-host/index.html
index 524fc9d..adb96ba 100644
--- a/public/tags/self-host/index.html
+++ b/public/tags/self-host/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Self-Host - Crony Akatsuki
-
+
+ Self-Host - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/ssh/index.html b/public/tags/ssh/index.html
index 74b9b98..64f5266 100644
--- a/public/tags/ssh/index.html
+++ b/public/tags/ssh/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Ssh - Crony Akatsuki
-
+
+ Ssh - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+
diff --git a/public/tags/unbound/index.html b/public/tags/unbound/index.html
index 684ce6c..60bdd4c 100644
--- a/public/tags/unbound/index.html
+++ b/public/tags/unbound/index.html
@@ -1,22 +1,24 @@
-
-
+
-
-
+
+
-
- Unbound - Crony Akatsuki
-
+
+ Unbound - Crony Akatsuki
+
-
-
-
-
+
+
+
+
+
+