diff --git a/content/services.md b/content/services.md index 0e4d7aa..a473cf1 100644 --- a/content/services.md +++ b/content/services.md @@ -17,7 +17,6 @@ to get an account. | [LibReddit](https://libreddit.cronyakatsuki.xyz) | Open Source reddit frontend. | [Github](https://github.com/libreddit/libreddit) | | [lemmy](https://lemmy.cronyakatsuki.xyz) | Open source activity pub federated reddit alternative. | [Github](https://github.com/LemmyNet) | | [Mumble](https://mumble.cronyakatsuki.xyz) | Open source voice chat application | [Github](https://github.com/mumble-voip/mumble) | -| [CraftyController](https://crafty.cronyakatsuki.xyz) | Open source minecraft server manager | [Gitlab](https://gitlab.com/crafty-controller/crafty-4) | | [Wallabag](https://wallabag.cronyakatsuki.xyz) | Open source bookmark service | [Github](https://github.com/wallabag/wallabag) | ### Services I might allow people I know or am close with in @@ -27,4 +26,22 @@ to get an account. | [MiniFlux](https://feed.cronyakatsuki.xyz) | Open source feed reader. | [Github](https://github.com/miniflux/v2) | | [ntfy](https://ntfy.cronyakatsuki.xyz) | Open source push notifications server. | [Github](https://github.com/binwiederhier/ntfy) | | [navidrome](https://nd.cronyakatsuki.xyz) | Open source music streaming | [Github](https://github.com/navidrome/navidrome/) | -| [audiobookshelf](abs.cronyakatsuki.xyz) | Open source audiobook and podcast server | [Github](https://github.com/advplyr/audiobookshelf) | +| [audiobookshelf](https://abs.cronyakatsuki.xyz) | Open source audiobook and podcast server | [Github](https://github.com/advplyr/audiobookshelf) | +| [changedetection.io](https://changedetection.cronyakatsuki.xyz) | Open source website change detection server | [Github](https://github.com/dgtlmoon/changedetection.io) | +| [conduit](https://matrix.cronyakatsuki.xyz) | Open source matrix server implementation | [Gitlab](https://gitlab.com/famedly/conduit) | + + +### Services I host for easilly sharing stuff + + +| Service | Description | Source Code | +|:-------------------------------------------|:-----------------------------------------|:----------------------------------------------------| +| [Immich](https://immich.cronyakatsuki.xyz) | Open source google images alternative | [Github](https://github.com/immich-app/immich)| +| [Filebrowser](https://filebrowser.cronyakatsuki.xyz) | Open source file manager in a browser | [Github](https://github.com/filebrowser/filebrowser)| + +### Services I host for my personal sync of stuff + +| Service | Description | Source Code | +|:-------------------------------------------|:-----------------------------------------|:----------------------------------------------------| +| [atuin](https://atuin.cronyakatsuki.xyz) | Open source shell history sync server | [Github](https://github.com/atuinsh/atuin) | +| [syncyomi](https://syncyomi.cronyakatsuki.xyz) | Open source tachiyomi sync server | [Github](https://github.com/syncyomi/syncyomi) | diff --git a/layouts/index.html b/layouts/index.html index d9ddbdb..f6ee76d 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -41,4 +41,4 @@ minimal mostly only enable lsp and autocomplete.

-{{ end}} +{{ end }} diff --git a/layouts/partials/head.html b/layouts/partials/head.html index f3d116b..2f1e901 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -1,14 +1,14 @@ - - - + + -{{ if .IsHome }} - {{ .Title }} -{{ else }} - {{ .Title }} - Crony Akatsuki -{{ end }} + {{ if .IsHome }} + {{ .Title }} + {{ else }} + {{ .Title }} - Crony Akatsuki + {{ end }} diff --git a/public/about/index.html b/public/about/index.html index c83aeb4..57eb966 100644 --- a/public/about/index.html +++ b/public/about/index.html @@ -1,24 +1,24 @@ - - + - - + + - - Who am I? - Crony Akatsuki - + + Who am I? - Crony Akatsuki + - - - - - - + + + + + + diff --git a/public/blog/hardening-level-pro-notify-on-ssh-login/index.html b/public/blog/hardening-level-pro-notify-on-ssh-login/index.html index a043730..3d2bb67 100644 --- a/public/blog/hardening-level-pro-notify-on-ssh-login/index.html +++ b/public/blog/hardening-level-pro-notify-on-ssh-login/index.html @@ -1,24 +1,31 @@ - - + - - + + - - Hardening Level Pro: Notify on SSH Login - Crony Akatsuki - + + Hardening Level Pro: Notify on SSH Login - Crony Akatsuki + - - - - - - + + + + + + + + + + + + + @@ -65,13 +72,13 @@

/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&rsquo;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&rsquo;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&rsquo;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&rsquo;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">&#39;3&#39;</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">&#39;3&#39;</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&rsquo;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">&#34;:80&#34;</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">&#34;somebody:$apr1$whatever&#34;</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">&#34;2.3&#34;</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">&#34;2.3&#34;</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">&#34;3&#34;</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">&#34;3&#34;</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&rsquo;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">&#34;</span><span style="color:#a6d189">${</span><span style="color:#f2d5cf">PAM_TYPE</span><span style="color:#a6d189">}</span><span style="color:#a6d189">&#34;</span> <span style="color:#99d1db;font-weight:bold">=</span> <span style="color:#a6d189">&#34;open_session&#34;</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">&#34;</span><span style="color:#a6d189">${</span><span style="color:#f2d5cf">PAM_TYPE</span><span style="color:#a6d189">}</span><span style="color:#a6d189">&#34;</span> <span style="color:#99d1db;font-weight:bold">=</span> <span style="color:#a6d189">&#34;open_session&#34;</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">&#34;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">&#34;</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">&#34;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">&#34;</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">&#34;</span><span style="color:#f2d5cf">$HOME</span><span style="color:#a6d189">&#34;</span>/.config/mblaze -type f -exec basename <span style="color:#a6d189">&#34;{}&#34;</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">&#34;^Maildir:&#34;</span> <span style="color:#a6d189">&#34;</span><span style="color:#f2d5cf">$HOME</span><span style="color:#a6d189">&#34;</span>/.mblaze/profile | cut -d: -f <span style="color:#ef9f76">2</span> | sed <span style="color:#a6d189">&#39;s/ //g&#39;</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&rsquo;m using DNS over HTTPS for my browser&rsquo;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&rsquo;s get on to setting everything up</p> -<!-- raw HTML omitted --> <h2 id="1-pihole">1. Pihole</h2> <p>Let&rsquo;s start with setting up pihole. I will be installing it with their script on a debian system for easier unbound integration ( unbound doesn&rsquo;t have an @@ -651,7 +648,7 @@ pihole get&rsquo;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">&#39;</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&#39;</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">&#34;&#34;</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&rsquo;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&rsquo;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">&#34;deb [trusted=yes] https://repo.miniflux.app/apt/ /&#34;</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;-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">&#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:#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&rsquo;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&rsquo;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&rsquo;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

Installing needed packages

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.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ServiceDescriptionSource Code
    UpFastOpen source file sharing.Gitea
    SearXNGOpen source search engine.Github
    LibRedditOpen Source reddit frontend.Github
    lemmyOpen source activity pub federated reddit alternative.Github
    MumbleOpen source voice chat applicationGithub
    CraftyControllerOpen source minecraft server managerGitlab
    WallabagOpen source bookmark serviceGithub
    ServiceDescriptionSource Code
    UpFastOpen source file sharing.Gitea
    SearXNGOpen source search engine.Github
    LibRedditOpen Source reddit frontend.Github
    lemmyOpen source activity pub federated reddit alternative.Github
    MumbleOpen source voice chat applicationGithub
    WallabagOpen source bookmark serviceGithub

    Services I might allow people I know or am close with in

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ServiceDescriptionSource Code
    MiniFluxOpen source feed reader.Github
    ntfyOpen source push notifications server.Github
    navidromeOpen source music streamingGithub
    audiobookshelfOpen source audiobook and podcast serverGithub
    ServiceDescriptionSource Code
    MiniFluxOpen source feed reader.Github
    ntfyOpen source push notifications server.Github
    navidromeOpen source music streamingGithub
    audiobookshelfOpen source audiobook and podcast serverGithub
    changedetection.ioOpen source website change detection serverGithub
    conduitOpen source matrix server implementationGitlab
    +

    Services I host for easilly sharing stuff

    + + + + + + + + + + + + + + + + + + + + +
    ServiceDescriptionSource Code
    ImmichOpen source google images alternativeGithub
    FilebrowserOpen source file manager in a browserGithub
    +

    Services I host for my personal sync of stuff

    + + + + + + + + + + + + + + + + + + + +
    ServiceDescriptionSource Code
    atuinOpen source shell history sync serverGithub
    syncyomiOpen source tachiyomi sync serverGithub
    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 + - - - - + + + + + +