reformat repo

This commit is contained in:
bullshar-k
2026-08-05 20:04:57 -04:00
commit 64f9eff485
41 changed files with 5022 additions and 0 deletions
+270
View File
@@ -0,0 +1,270 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>OpenRC vs SystemD - bullshark369.org</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="http://localhost:1313/favicon.png">
<link rel="canonical" href="http://localhost:1313/posts/benchmark/" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/assets/css/extended.css">
<meta name="description" content="A likely slightly innacurate benchmark of OpenRC vs SystemD in CPU math operations"/>
<meta name="keywords" content="Nathan Buache, Test Manager, QA, Quality Assurance, Lausanne, Switzerland, Web Testing, Software Testing, QoQa"/>
<meta property="og:title" content="OpenRC vs SystemD - bullshark369.org"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http://localhost:1313/posts/benchmark/"/>
<meta property="og:site_name" content="bullshark369.org"/>
<meta property="og:description" content="A likely slightly innacurate benchmark of OpenRC vs SystemD in CPU math operations"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="OpenRC vs SystemD"/>
<meta name="twitter:description" content="A likely slightly innacurate benchmark of OpenRC vs SystemD in CPU math operations"/>
</head>
<body class='page page-blog-single'>
<div id="menu-main-mobile" class="menu-main-mobile">
<ul class="menu">
<li class="menu-item-home">
<a href="http://localhost:1313/">Home</a>
</li>
<li class="menu-item-blog">
<a href="http://localhost:1313/posts/">Blog</a>
</li>
<li class="menu-item-contact">
<a href="http://localhost:1313/pages/contact/">Contact</a>
</li>
</ul>
</div>
<div id="wrapper" class="wrapper">
<div class='header'>
<div class="menu-main">
<ul>
<li class="menu-item-home ">
<a href="/">
<span>Home</span>
</a>
</li>
<li class="menu-item-blog ">
<a href="/posts/">
<span>Blog</span>
</a>
</li>
<li class="menu-item-contact ">
<a href="/pages/contact/">
<span>Contact</span>
</a>
</li>
</ul>
</div>
<div id="toggle-menu-main-mobile" class="hamburger-trigger">
<button class="hamburger">Menu</button>
</div>
</div>
<div class="blog">
<div class="intro">
<h1>OpenRC vs SystemD</h1>
</div>
<div class="content">
<p>Both tests were done separately, not in concurrency, with the same background activity on the host machine. Scores are difference from Arch - Artix. If the number is positive Arch scored higher. Percent diffs are calcualted as follows: 100(|diff|/arch&rsquo;s score)</p>
<p>Gentoo wiki has an article with the breakdown comparison of these two @<a href="https://wiki.gentoo.org/wiki/Comparison_of_init_systems">Comparison of init systems</a></p>
<hr>
<h2 id="environment">Environment</h2>
<table>
<thead>
<tr>
<th>Ram</th>
<th>Swap</th>
<th>Storage</th>
<th>Filesys</th>
<th>DE</th>
<th>Compiler</th>
<th>Benchmark</th>
</tr>
</thead>
<tbody>
<tr>
<td>16GiB</td>
<td>None</td>
<td>50GiB NVMe</td>
<td>ext4</td>
<td>none, TTY</td>
<td>GCC 13.3.0</td>
<td>FOSSbench</td>
</tr>
</tbody>
</table>
<hr>
<h2 id="results">Results</h2>
<table>
<thead>
<tr>
<th>Native integer math</th>
<th>Wide integer math</th>
<th>Floating point math</th>
<th>Prime numbers</th>
<th>Extended instructions</th>
<th>Compression</th>
<th>Encryption</th>
<th>Physics</th>
<th>Sorting</th>
<th>Memory latency</th>
<th>Memory bandwidth</th>
</tr>
</thead>
<tbody>
<tr>
<td>-514.3</td>
<td>-689.5</td>
<td>277</td>
<td>-44.5</td>
<td>492.2</td>
<td>2079.9</td>
<td>213</td>
<td>78</td>
<td>224</td>
<td>-4</td>
<td>15568.7</td>
</tr>
<tr>
<td>-0.41%</td>
<td>-0.59%</td>
<td>1.34%</td>
<td>-0.35%</td>
<td>0.19%</td>
<td>20.66%</td>
<td>2.4%</td>
<td>2.53%</td>
<td>6.94%</td>
<td>-5.39%</td>
<td>9.04%</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="footer">
<p class="footer-credit">@bullshark369.org maintained by shark</p>
<div class="footer-social">
<div class="social-link">
<a href="https://github.com/bullshar-k" title="GitHub" target="_blank" rel="noopener">
GitHub
</a>
</div>
<div class="social-link">
<a href="mailto:bullsharkgunsemail@pm.me" title="Email" target="_blank" rel="noopener">
Email
</a>
</div>
<button type="button" class="social-link social-copy" data-copy="@bullshar_k:matrix.org" title="Copy Matrix to clipboard">
<span class="social-copy-label">Matrix</span>
</button>
</div>
</div>
<script>
(function () {
var btns = document.querySelectorAll('.social-copy');
btns.forEach(function (btn) {
btn.addEventListener('click', function () {
var text = btn.getAttribute('data-copy');
var label = btn.querySelector('.social-copy-label, .contact-social-name');
var original = label ? label.textContent : btn.textContent;
function done() {
label.textContent = 'Copied!';
setTimeout(function () { label.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(done).catch(done);
} else {
var ta = document.createElement('textarea');
ta.value = text;
document.body.appendChild(ta);
ta.select();
try { document.execCommand('copy'); } catch (e) {}
document.body.removeChild(ta);
done();
}
});
});
})();
</script>
</div>
<script type="text/javascript" src="/js/bundle.js"></script>
</body>
</html>
+221
View File
@@ -0,0 +1,221 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Hugo &amp; caddy - bullshark369.org</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="http://localhost:1313/favicon.png">
<link rel="canonical" href="http://localhost:1313/posts/caddy/" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/assets/css/extended.css">
<meta name="description" content="Migrating bullshark369.org from nginx w/ static HTML to caddy with hugo made pages"/>
<meta name="keywords" content="Nathan Buache, Test Manager, QA, Quality Assurance, Lausanne, Switzerland, Web Testing, Software Testing, QoQa"/>
<meta property="og:title" content="Hugo &amp; caddy - bullshark369.org"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http://localhost:1313/posts/caddy/"/>
<meta property="og:site_name" content="bullshark369.org"/>
<meta property="og:description" content="Migrating bullshark369.org from nginx w/ static HTML to caddy with hugo made pages"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="Hugo &amp; caddy"/>
<meta name="twitter:description" content="Migrating bullshark369.org from nginx w/ static HTML to caddy with hugo made pages"/>
</head>
<body class='page page-blog-single'>
<div id="menu-main-mobile" class="menu-main-mobile">
<ul class="menu">
<li class="menu-item-home">
<a href="http://localhost:1313/">Home</a>
</li>
<li class="menu-item-blog">
<a href="http://localhost:1313/posts/">Blog</a>
</li>
<li class="menu-item-contact">
<a href="http://localhost:1313/pages/contact/">Contact</a>
</li>
</ul>
</div>
<div id="wrapper" class="wrapper">
<div class='header'>
<div class="menu-main">
<ul>
<li class="menu-item-home ">
<a href="/">
<span>Home</span>
</a>
</li>
<li class="menu-item-blog ">
<a href="/posts/">
<span>Blog</span>
</a>
</li>
<li class="menu-item-contact ">
<a href="/pages/contact/">
<span>Contact</span>
</a>
</li>
</ul>
</div>
<div id="toggle-menu-main-mobile" class="hamburger-trigger">
<button class="hamburger">Menu</button>
</div>
</div>
<div class="blog">
<div class="intro">
<h1>Hugo &amp; caddy</h1>
</div>
<div class="content">
<h1 id="hugo">Hugo</h1>
<p>Don&rsquo;t get me wrong, Hugo is well made and &ldquo;easy to use&rdquo;. However, it is not at all intuitive. Once you know it its amazing, if you don&rsquo;t its terrible.</p>
<h1 id="caddy">Caddy</h1>
<p>Caddy is much more straght forward for simple webserver use than nginx.</p>
<table>
<thead>
<tr>
<th>Thing</th>
<th>Place</th>
</tr>
</thead>
<tbody>
<tr>
<td>Config file</td>
<td>/etc/caddy/Caddyfile</td>
</tr>
<tr>
<td>Content</td>
<td>/www/var/web.site/</td>
</tr>
<tr>
<td>SSL</td>
<td>/etc/caddy/ssl/</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="footer">
<p class="footer-credit">@bullshark369.org maintained by shark</p>
<div class="footer-social">
<div class="social-link">
<a href="https://github.com/bullshar-k" title="GitHub" target="_blank" rel="noopener">
GitHub
</a>
</div>
<div class="social-link">
<a href="mailto:bullsharkgunsemail@pm.me" title="Email" target="_blank" rel="noopener">
Email
</a>
</div>
<button type="button" class="social-link social-copy" data-copy="@bullshar_k:matrix.org" title="Copy Matrix to clipboard">
<span class="social-copy-label">Matrix</span>
</button>
</div>
</div>
<script>
(function () {
var btns = document.querySelectorAll('.social-copy');
btns.forEach(function (btn) {
btn.addEventListener('click', function () {
var text = btn.getAttribute('data-copy');
var label = btn.querySelector('.social-copy-label, .contact-social-name');
var original = label ? label.textContent : btn.textContent;
function done() {
label.textContent = 'Copied!';
setTimeout(function () { label.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(done).catch(done);
} else {
var ta = document.createElement('textarea');
ta.value = text;
document.body.appendChild(ta);
ta.select();
try { document.execCommand('copy'); } catch (e) {}
document.body.removeChild(ta);
done();
}
});
});
})();
</script>
</div>
<script type="text/javascript" src="/js/bundle.js"></script>
</body>
</html>
+8
View File
@@ -0,0 +1,8 @@
---
title: "Hello World"
date: 2026-08-05
draft: false
description: "The obligatory first post."
---
This is your first post. The file name `hello-world` becomes the URL `/posts/hello-world/`, and the front matter `description` shows in the post summary on the Blog and homepage listings.
+210
View File
@@ -0,0 +1,210 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Hello World - bullshark369.org</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="http://localhost:1313/favicon.png">
<link rel="canonical" href="http://localhost:1313/posts/hello-world/" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/assets/css/extended.css">
<meta name="description" content="The obligatory first post."/>
<meta name="keywords" content="Nathan Buache, Test Manager, QA, Quality Assurance, Lausanne, Switzerland, Web Testing, Software Testing, QoQa"/>
<meta property="og:title" content="Hello World - bullshark369.org"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http://localhost:1313/posts/hello-world/"/>
<meta property="og:site_name" content="bullshark369.org"/>
<meta property="og:description" content="The obligatory first post."/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="Hello World"/>
<meta name="twitter:description" content="The obligatory first post."/>
</head>
<body class='page page-blog-single'>
<div id="menu-main-mobile" class="menu-main-mobile">
<ul class="menu">
<li class="menu-item-home">
<a href="http://localhost:1313/">Home</a>
</li>
<li class="menu-item-blog">
<a href="http://localhost:1313/posts/">Blog</a>
</li>
<li class="menu-item-about">
<a href="http://localhost:1313/about/">About</a>
</li>
<li class="menu-item-contact">
<a href="http://localhost:1313/pages/contact/">Contact</a>
</li>
</ul>
</div>
<div id="wrapper" class="wrapper">
<div class='header'>
<div class="menu-main">
<ul>
<li class="menu-item-home ">
<a href="/">
<span>Home</span>
</a>
</li>
<li class="menu-item-blog ">
<a href="/posts/">
<span>Blog</span>
</a>
</li>
<li class="menu-item-about ">
<a href="/about/">
<span>About</span>
</a>
</li>
<li class="menu-item-contact ">
<a href="/pages/contact/">
<span>Contact</span>
</a>
</li>
</ul>
</div>
<div id="toggle-menu-main-mobile" class="hamburger-trigger">
<button class="hamburger">Menu</button>
</div>
</div>
<div class="blog">
<div class="intro">
<h1>Hello World</h1>
</div>
<div class="content">
<p>This is your first post. The file name <code>hello-world</code> becomes the URL <code>/posts/hello-world/</code>, and the front matter <code>description</code> shows in the post summary on the Blog and homepage listings.</p>
</div>
</div>
<div class="footer">
<div class="footer-social">
<div class="social-link">
<a href="https://github.com/bullshar-k" title="GitHub" target="_blank" rel="noopener">
GitHub
</a>
</div>
<div class="social-link">
<a href="mailto:bullsharkgunsemail@pm.me" title="Email" target="_blank" rel="noopener">
Email
</a>
</div>
<button type="button" class="social-link social-copy" data-copy="@bullshar_k:matrix.org" title="Copy Matrix to clipboard">
<span class="social-copy-label">Matrix</span>
</button>
</div>
</div>
<script>
(function () {
var btns = document.querySelectorAll('.social-copy');
btns.forEach(function (btn) {
btn.addEventListener('click', function () {
var text = btn.getAttribute('data-copy');
var label = btn.querySelector('.social-copy-label, .contact-social-name');
var original = label ? label.textContent : btn.textContent;
function done() {
label.textContent = 'Copied!';
setTimeout(function () { label.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(done).catch(done);
} else {
var ta = document.createElement('textarea');
ta.value = text;
document.body.appendChild(ta);
ta.select();
try { document.execCommand('copy'); } catch (e) {}
document.body.removeChild(ta);
done();
}
});
});
})();
</script>
</div>
<script type="text/javascript" src="/js/bundle.js"></script>
</body>
</html>
+237
View File
@@ -0,0 +1,237 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Blog - bullshark369.org</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="http://localhost:1313/favicon.png">
<link rel="canonical" href="http://localhost:1313/posts/" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/assets/css/extended.css">
<meta name="description" content="The afformentioned sometimes informative rants."/>
<meta name="keywords" content="Nathan Buache, Test Manager, QA, Quality Assurance, Lausanne, Switzerland, Web Testing, Software Testing, QoQa"/>
<meta property="og:title" content="Blog - bullshark369.org"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http://localhost:1313/posts/"/>
<meta property="og:site_name" content="bullshark369.org"/>
<meta property="og:description" content="The afformentioned sometimes informative rants."/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="Blog"/>
<meta name="twitter:description" content="The afformentioned sometimes informative rants."/>
</head>
<body class='page page-blog-list'>
<div id="menu-main-mobile" class="menu-main-mobile">
<ul class="menu">
<li class="menu-item-home">
<a href="http://localhost:1313/">Home</a>
</li>
<li class="menu-item-blog">
<a href="http://localhost:1313/posts/">Blog</a>
</li>
<li class="menu-item-contact">
<a href="http://localhost:1313/pages/contact/">Contact</a>
</li>
</ul>
</div>
<div id="wrapper" class="wrapper">
<div class='header'>
<div class="menu-main">
<ul>
<li class="menu-item-home ">
<a href="/">
<span>Home</span>
</a>
</li>
<li class="menu-item-blog active">
<a href="/posts/">
<span>Blog</span>
</a>
</li>
<li class="menu-item-contact ">
<a href="/pages/contact/">
<span>Contact</span>
</a>
</li>
</ul>
</div>
<div id="toggle-menu-main-mobile" class="hamburger-trigger">
<button class="hamburger">Menu</button>
</div>
</div>
<div class="intro">
<h1>Blog</h1>
<p>The afformentioned sometimes informative rants.</p>
</div>
<hr>
<p>All posts, newest first, bias included.</p>
<div class="summary">
<div class="summary-date">Aug 5, 2026</div>
<h2 class="summary-title"><a href="/posts/caddy/">Hugo &amp; caddy</a></h2>
<p class="summary-description">Migrating bullshark369.org from nginx w/ static HTML to caddy with hugo made pages</p>
</div>
<div class="summary">
<div class="summary-date">Jul 25, 2026</div>
<h2 class="summary-title"><a href="/posts/wireguard/">VPS proxies with wireguard tunnels</a></h2>
<p class="summary-description">The most private VPN is your own</p>
</div>
<div class="summary">
<div class="summary-date">Jul 24, 2026</div>
<h2 class="summary-title"><a href="/posts/monero/">Self hosting monero node</a></h2>
<p class="summary-description">Straightforward process with little fluff</p>
</div>
<div class="summary">
<div class="summary-date">Jul 21, 2026</div>
<h2 class="summary-title"><a href="/posts/benchmark/">OpenRC vs SystemD</a></h2>
<p class="summary-description">A likely slightly innacurate benchmark of OpenRC vs SystemD in CPU math operations</p>
</div>
<div class="summary">
<div class="summary-date">Jun 19, 2026</div>
<h2 class="summary-title"><a href="/posts/opnsense/">OPNsense</a></h2>
<p class="summary-description">Small rant</p>
</div>
<div class="summary">
<div class="summary-date">Jun 19, 2026</div>
<h2 class="summary-title"><a href="/posts/proxmox/">Proxmox</a></h2>
<p class="summary-description">My great experience with proxmox on 2 different servers</p>
</div>
<div class="summary">
<div class="summary-date">Feb 1, 2026</div>
<h2 class="summary-title"><a href="/posts/linux/">Linux</a></h2>
<p class="summary-description">My initial experience with Linux</p>
</div>
<div class="footer">
<p class="footer-credit">@bullshark369.org maintained by shark</p>
<div class="footer-social">
<div class="social-link">
<a href="https://github.com/bullshar-k" title="GitHub" target="_blank" rel="noopener">
GitHub
</a>
</div>
<div class="social-link">
<a href="mailto:bullsharkgunsemail@pm.me" title="Email" target="_blank" rel="noopener">
Email
</a>
</div>
<button type="button" class="social-link social-copy" data-copy="@bullshar_k:matrix.org" title="Copy Matrix to clipboard">
<span class="social-copy-label">Matrix</span>
</button>
</div>
</div>
<script>
(function () {
var btns = document.querySelectorAll('.social-copy');
btns.forEach(function (btn) {
btn.addEventListener('click', function () {
var text = btn.getAttribute('data-copy');
var label = btn.querySelector('.social-copy-label, .contact-social-name');
var original = label ? label.textContent : btn.textContent;
function done() {
label.textContent = 'Copied!';
setTimeout(function () { label.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(done).catch(done);
} else {
var ta = document.createElement('textarea');
ta.value = text;
document.body.appendChild(ta);
ta.select();
try { document.execCommand('copy'); } catch (e) {}
document.body.removeChild(ta);
done();
}
});
});
})();
</script>
</div>
<script type="text/javascript" src="/js/bundle.js"></script>
</body>
</html>
+66
View File
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Blog on bullshark369.org</title>
<link>http://localhost:1313/posts/</link>
<description>Recent content in Blog on bullshark369.org</description>
<generator>Hugo</generator>
<language>en-us</language>
<lastBuildDate>Wed, 05 Aug 2026 00:00:00 +0000</lastBuildDate>
<atom:link href="http://localhost:1313/posts/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Hugo &amp; caddy</title>
<link>http://localhost:1313/posts/caddy/</link>
<pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/posts/caddy/</guid>
<description>&lt;h1 id=&#34;hugo&#34;&gt;Hugo&lt;/h1&gt;&#xA;&lt;p&gt;Don&amp;rsquo;t get me wrong, Hugo is well made and &amp;ldquo;easy to use&amp;rdquo;. However, it is not at all intuitive. Once you know it its amazing, if you don&amp;rsquo;t its terrible.&lt;/p&gt;&#xA;&lt;h1 id=&#34;caddy&#34;&gt;Caddy&lt;/h1&gt;&#xA;&lt;p&gt;Caddy is much more straght forward for simple webserver use than nginx.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Thing&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Place&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Config file&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;/etc/caddy/Caddyfile&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Content&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;/www/var/web.site/&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;SSL&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;/etc/caddy/ssl/&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
</item>
<item>
<title>VPS proxies with wireguard tunnels</title>
<link>http://localhost:1313/posts/wireguard/</link>
<pubDate>Sat, 25 Jul 2026 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/posts/wireguard/</guid>
<description>&lt;h2 id=&#34;quick-guide&#34;&gt;Quick guide&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apt update &amp;amp;&amp;amp; apt upgrade&#xA;apt install wireguard-tools git go iptables&#xA;git clone https://github.com/bullshar-k/wg.conf&#xA;cd wgconf&#xA;go build main.go&#xA;./main -peer 10 -dest server_ip -port 51855&#xA;mv server.conf /etc/wireguard&#xA;wg-quick up server&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;From there you move the client 1-10 onto the appropriate clients and use wg-quick up on them too.&#xA;Depending on your VPS you may need traffic forwarding post up rules like this;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;PostUp = iptables -A FORWARD -i server -j ACCEPT&#xA;PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE&#xA;PostDown = iptables -D FORWARD -i server -j ACCEPT&#xA;PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;If it isn&amp;rsquo;t apparent this goes in the &lt;code&gt;[INTERFACE]&lt;/code&gt; section after the interface info before the first &lt;code&gt;[PEER]&lt;/code&gt;&#xA;Ensure &lt;code&gt;server&lt;/code&gt; is the name of the .conf file as that will be the name of the interface, and &lt;code&gt;eth0&lt;/code&gt; is the name of your WAN facing NIC interface.&lt;/em&gt;&lt;/p&gt;</description>
</item>
<item>
<title>Self hosting monero node</title>
<link>http://localhost:1313/posts/monero/</link>
<pubDate>Fri, 24 Jul 2026 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/posts/monero/</guid>
<description>&lt;hr&gt;&#xA;&lt;h2 id=&#34;on-server&#34;&gt;On server&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;apt update &amp;amp;&amp;amp; apt update&#xA;apt install monero&#xA;monerod --datadir ~/.bitmoner --prune-blockchain&#xA;// ^ THIS WILL TAKE 2-6 DAYS DEPENDING ON INTERNET SPEED&#xA;monerod --rpc-bind-ip=0.0.0.0 --rpc-bind-port=18081 --confirm-external-bind&#xA;// ^ ONLY DO THIS IF USING LAN ONLY&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Took long, super easy though.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;on-client&#34;&gt;On client&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo pacman -S monero&#xA;// then add to bashRC&#xA;alias wallert=&amp;#34;monero-wallet-cli --wallet /wallet/address/path --daemon-address 192.168.1.67:18081 --trusted-daemon&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This way when I type wallert it opens my wallet, and I don&amp;rsquo;t need a lengthy command.&lt;/p&gt;</description>
</item>
<item>
<title>OpenRC vs SystemD</title>
<link>http://localhost:1313/posts/benchmark/</link>
<pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/posts/benchmark/</guid>
<description>&lt;p&gt;Both tests were done separately, not in concurrency, with the same background activity on the host machine. Scores are difference from Arch - Artix. If the number is positive Arch scored higher. Percent diffs are calcualted as follows: 100(|diff|/arch&amp;rsquo;s score)&lt;/p&gt;&#xA;&lt;p&gt;Gentoo wiki has an article with the breakdown comparison of these two @&lt;a href=&#34;https://wiki.gentoo.org/wiki/Comparison_of_init_systems&#34;&gt;Comparison of init systems&lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;environment&#34;&gt;Environment&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Ram&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Swap&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Storage&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Filesys&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;DE&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Compiler&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Benchmark&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;16GiB&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;None&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;50GiB NVMe&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;ext4&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;none, TTY&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;GCC 13.3.0&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;FOSSbench&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;results&#34;&gt;Results&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Native integer math&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Wide integer math&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Floating point math&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Prime numbers&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Extended instructions&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Compression&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Encryption&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Physics&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Sorting&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Memory latency&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Memory bandwidth&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;-514.3&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;-689.5&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;277&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;-44.5&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;492.2&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;2079.9&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;213&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;78&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;224&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;-4&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;15568.7&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;-0.41%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;-0.59%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;1.34%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;-0.35%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;0.19%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;20.66%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;2.4%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;2.53%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;6.94%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;-5.39%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;9.04%&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
</item>
<item>
<title>OPNsense</title>
<link>http://localhost:1313/posts/opnsense/</link>
<pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/posts/opnsense/</guid>
<description>&lt;h2 id=&#34;opinion&#34;&gt;Opinion&lt;/h2&gt;&#xA;&lt;p&gt;OPNsense is built on FreeBSD which has a broken network stack. The devs are great but I can&amp;rsquo;t recommend it. Use VyOS.&#xA;Also, having to configure 11 different areas in a website to set up a wireguard tunnel sucks compared to CLI where you just put &lt;code&gt;wireguard.conf&lt;/code&gt;in &lt;code&gt;/etc/wireguard/&lt;/code&gt; and run &lt;code&gt;wg-quick up wireguard&lt;/code&gt;.&lt;/p&gt;</description>
</item>
<item>
<title>Proxmox</title>
<link>http://localhost:1313/posts/proxmox/</link>
<pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/posts/proxmox/</guid>
<description>&lt;h2 id=&#34;opinion&#34;&gt;Opinion&lt;/h2&gt;&#xA;&lt;p&gt;I run proxmox on two PCs. A dell optiplex and a custom built server focused PC. The Optiplex handles my firewall and the other PC handles DNS and some other services.&#xA;Genuinely an amazing free piece of sotware. Much better than ESXi. From the networking, to the UI, to the virtualization, it is a great type 1 hypervisor.&lt;/p&gt;&#xA;&lt;h2 id=&#34;how-to&#34;&gt;How to&lt;/h2&gt;&#xA;&lt;h3 id=&#34;flash-proxmox-onto-drive&#34;&gt;Flash proxmox onto drive&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo wipefs -af /dev/sda&#xA;sudo dd if=proxmox.iso of=/dev/sda bs=4M conv=fsync&#xA;sync &amp;amp;&amp;amp; sync&#xA;sudo eject /dev/sda&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;allow-bios-to-do-things&#34;&gt;Allow BIOS to do things&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Set proxmox USB to top of boot priority&lt;/li&gt;&#xA;&lt;li&gt;Turn off secure boot&lt;/li&gt;&#xA;&lt;li&gt;Enable KVM &amp;amp; IOMMU&lt;/li&gt;&#xA;&lt;li&gt;Enable above 4G decoding&lt;/li&gt;&#xA;&lt;li&gt;Disable wait for F1 when errors&#xA;This is really annoying, it will wait for you to press F1 if it detects an error, running it headless with no output at all will cause an error, making you have to plug&#xA;a keyboard into your server and press F1.&lt;/li&gt;&#xA;&lt;li&gt;Disable secure boot or set to &amp;ldquo;other os&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;Ensure secure boot allows UEFI USB boot&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;&#xA;&lt;p&gt;It will boot, and you literaly just answer your way through the setup prompts. Super easy.&lt;/p&gt;</description>
</item>
<item>
<title>Linux</title>
<link>http://localhost:1313/posts/linux/</link>
<pubDate>Sun, 01 Feb 2026 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/posts/linux/</guid>
<description>&lt;h2 id=&#34;preamble&#34;&gt;Preamble&lt;/h2&gt;&#xA;&lt;p&gt;I was already familiar with Linux and had used it on this date, however, I had stopped playing Tarkov which had kept me on Windows. So on this date I switched.&#xA;I pretty quickly went mint -&amp;gt; cachy -&amp;gt; arch in the course of a week or so.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tierlist&#34;&gt;Tierlist&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;S&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Arch Alpine&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;A&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Artix NixOS Mint Cachy Debian Fedora&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;B&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Ubuntu Endeavour Gentoo&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;C&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Bazzite CentOS&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
</item>
</channel>
</rss>
+221
View File
@@ -0,0 +1,221 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Linux - bullshark369.org</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="http://localhost:1313/favicon.png">
<link rel="canonical" href="http://localhost:1313/posts/linux/" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/assets/css/extended.css">
<meta name="description" content="My initial experience with Linux"/>
<meta name="keywords" content="Nathan Buache, Test Manager, QA, Quality Assurance, Lausanne, Switzerland, Web Testing, Software Testing, QoQa"/>
<meta property="og:title" content="Linux - bullshark369.org"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http://localhost:1313/posts/linux/"/>
<meta property="og:site_name" content="bullshark369.org"/>
<meta property="og:description" content="My initial experience with Linux"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="Linux"/>
<meta name="twitter:description" content="My initial experience with Linux"/>
</head>
<body class='page page-blog-single'>
<div id="menu-main-mobile" class="menu-main-mobile">
<ul class="menu">
<li class="menu-item-home">
<a href="http://localhost:1313/">Home</a>
</li>
<li class="menu-item-blog">
<a href="http://localhost:1313/posts/">Blog</a>
</li>
<li class="menu-item-contact">
<a href="http://localhost:1313/pages/contact/">Contact</a>
</li>
</ul>
</div>
<div id="wrapper" class="wrapper">
<div class='header'>
<div class="menu-main">
<ul>
<li class="menu-item-home ">
<a href="/">
<span>Home</span>
</a>
</li>
<li class="menu-item-blog ">
<a href="/posts/">
<span>Blog</span>
</a>
</li>
<li class="menu-item-contact ">
<a href="/pages/contact/">
<span>Contact</span>
</a>
</li>
</ul>
</div>
<div id="toggle-menu-main-mobile" class="hamburger-trigger">
<button class="hamburger">Menu</button>
</div>
</div>
<div class="blog">
<div class="intro">
<h1>Linux</h1>
</div>
<div class="content">
<h2 id="preamble">Preamble</h2>
<p>I was already familiar with Linux and had used it on this date, however, I had stopped playing Tarkov which had kept me on Windows. So on this date I switched.
I pretty quickly went mint -&gt; cachy -&gt; arch in the course of a week or so.</p>
<h2 id="tierlist">Tierlist</h2>
<table>
<thead>
<tr>
<th>S</th>
<th>Arch Alpine</th>
</tr>
</thead>
<tbody>
<tr>
<td>A</td>
<td>Artix NixOS Mint Cachy Debian Fedora</td>
</tr>
<tr>
<td>B</td>
<td>Ubuntu Endeavour Gentoo</td>
</tr>
<tr>
<td>C</td>
<td>Bazzite CentOS</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="footer">
<p class="footer-credit">@bullshark369.org maintained by shark</p>
<div class="footer-social">
<div class="social-link">
<a href="https://github.com/bullshar-k" title="GitHub" target="_blank" rel="noopener">
GitHub
</a>
</div>
<div class="social-link">
<a href="mailto:bullsharkgunsemail@pm.me" title="Email" target="_blank" rel="noopener">
Email
</a>
</div>
<button type="button" class="social-link social-copy" data-copy="@bullshar_k:matrix.org" title="Copy Matrix to clipboard">
<span class="social-copy-label">Matrix</span>
</button>
</div>
</div>
<script>
(function () {
var btns = document.querySelectorAll('.social-copy');
btns.forEach(function (btn) {
btn.addEventListener('click', function () {
var text = btn.getAttribute('data-copy');
var label = btn.querySelector('.social-copy-label, .contact-social-name');
var original = label ? label.textContent : btn.textContent;
function done() {
label.textContent = 'Copied!';
setTimeout(function () { label.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(done).catch(done);
} else {
var ta = document.createElement('textarea');
ta.value = text;
document.body.appendChild(ta);
ta.select();
try { document.execCommand('copy'); } catch (e) {}
document.body.removeChild(ta);
done();
}
});
});
})();
</script>
</div>
<script type="text/javascript" src="/js/bundle.js"></script>
</body>
</html>
+212
View File
@@ -0,0 +1,212 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Self hosting monero node - bullshark369.org</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="http://localhost:1313/favicon.png">
<link rel="canonical" href="http://localhost:1313/posts/monero/" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/assets/css/extended.css">
<meta name="description" content="Straightforward process with little fluff"/>
<meta name="keywords" content="Nathan Buache, Test Manager, QA, Quality Assurance, Lausanne, Switzerland, Web Testing, Software Testing, QoQa"/>
<meta property="og:title" content="Self hosting monero node - bullshark369.org"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http://localhost:1313/posts/monero/"/>
<meta property="og:site_name" content="bullshark369.org"/>
<meta property="og:description" content="Straightforward process with little fluff"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="Self hosting monero node"/>
<meta name="twitter:description" content="Straightforward process with little fluff"/>
</head>
<body class='page page-blog-single'>
<div id="menu-main-mobile" class="menu-main-mobile">
<ul class="menu">
<li class="menu-item-home">
<a href="http://localhost:1313/">Home</a>
</li>
<li class="menu-item-blog">
<a href="http://localhost:1313/posts/">Blog</a>
</li>
<li class="menu-item-contact">
<a href="http://localhost:1313/pages/contact/">Contact</a>
</li>
</ul>
</div>
<div id="wrapper" class="wrapper">
<div class='header'>
<div class="menu-main">
<ul>
<li class="menu-item-home ">
<a href="/">
<span>Home</span>
</a>
</li>
<li class="menu-item-blog ">
<a href="/posts/">
<span>Blog</span>
</a>
</li>
<li class="menu-item-contact ">
<a href="/pages/contact/">
<span>Contact</span>
</a>
</li>
</ul>
</div>
<div id="toggle-menu-main-mobile" class="hamburger-trigger">
<button class="hamburger">Menu</button>
</div>
</div>
<div class="blog">
<div class="intro">
<h1>Self hosting monero node</h1>
</div>
<div class="content">
<hr>
<h2 id="on-server">On server</h2>
<pre tabindex="0"><code>apt update &amp;&amp; apt update
apt install monero
monerod --datadir ~/.bitmoner --prune-blockchain
// ^ THIS WILL TAKE 2-6 DAYS DEPENDING ON INTERNET SPEED
monerod --rpc-bind-ip=0.0.0.0 --rpc-bind-port=18081 --confirm-external-bind
// ^ ONLY DO THIS IF USING LAN ONLY
</code></pre><p>Took long, super easy though.</p>
<hr>
<h2 id="on-client">On client</h2>
<pre tabindex="0"><code>sudo pacman -S monero
// then add to bashRC
alias wallert=&#34;monero-wallet-cli --wallet /wallet/address/path --daemon-address 192.168.1.67:18081 --trusted-daemon&#34;
</code></pre><p>This way when I type wallert it opens my wallet, and I don&rsquo;t need a lengthy command.</p>
<h3 id="side-note">Side note</h3>
<p>I did forget (I swear I know what it is but it wasn&rsquo;t working) the password to this VM. So I had to delete it and resync it TwT</p>
</div>
</div>
<div class="footer">
<p class="footer-credit">@bullshark369.org maintained by shark</p>
<div class="footer-social">
<div class="social-link">
<a href="https://github.com/bullshar-k" title="GitHub" target="_blank" rel="noopener">
GitHub
</a>
</div>
<div class="social-link">
<a href="mailto:bullsharkgunsemail@pm.me" title="Email" target="_blank" rel="noopener">
Email
</a>
</div>
<button type="button" class="social-link social-copy" data-copy="@bullshar_k:matrix.org" title="Copy Matrix to clipboard">
<span class="social-copy-label">Matrix</span>
</button>
</div>
</div>
<script>
(function () {
var btns = document.querySelectorAll('.social-copy');
btns.forEach(function (btn) {
btn.addEventListener('click', function () {
var text = btn.getAttribute('data-copy');
var label = btn.querySelector('.social-copy-label, .contact-social-name');
var original = label ? label.textContent : btn.textContent;
function done() {
label.textContent = 'Copied!';
setTimeout(function () { label.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(done).catch(done);
} else {
var ta = document.createElement('textarea');
ta.value = text;
document.body.appendChild(ta);
ta.select();
try { document.execCommand('copy'); } catch (e) {}
document.body.removeChild(ta);
done();
}
});
});
})();
</script>
</div>
<script type="text/javascript" src="/js/bundle.js"></script>
</body>
</html>
+198
View File
@@ -0,0 +1,198 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>OPNsense - bullshark369.org</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="http://localhost:1313/favicon.png">
<link rel="canonical" href="http://localhost:1313/posts/opnsense/" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/assets/css/extended.css">
<meta name="description" content="Small rant"/>
<meta name="keywords" content="Nathan Buache, Test Manager, QA, Quality Assurance, Lausanne, Switzerland, Web Testing, Software Testing, QoQa"/>
<meta property="og:title" content="OPNsense - bullshark369.org"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http://localhost:1313/posts/opnsense/"/>
<meta property="og:site_name" content="bullshark369.org"/>
<meta property="og:description" content="Small rant"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="OPNsense"/>
<meta name="twitter:description" content="Small rant"/>
</head>
<body class='page page-blog-single'>
<div id="menu-main-mobile" class="menu-main-mobile">
<ul class="menu">
<li class="menu-item-home">
<a href="http://localhost:1313/">Home</a>
</li>
<li class="menu-item-blog">
<a href="http://localhost:1313/posts/">Blog</a>
</li>
<li class="menu-item-contact">
<a href="http://localhost:1313/pages/contact/">Contact</a>
</li>
</ul>
</div>
<div id="wrapper" class="wrapper">
<div class='header'>
<div class="menu-main">
<ul>
<li class="menu-item-home ">
<a href="/">
<span>Home</span>
</a>
</li>
<li class="menu-item-blog ">
<a href="/posts/">
<span>Blog</span>
</a>
</li>
<li class="menu-item-contact ">
<a href="/pages/contact/">
<span>Contact</span>
</a>
</li>
</ul>
</div>
<div id="toggle-menu-main-mobile" class="hamburger-trigger">
<button class="hamburger">Menu</button>
</div>
</div>
<div class="blog">
<div class="intro">
<h1>OPNsense</h1>
</div>
<div class="content">
<h2 id="opinion">Opinion</h2>
<p>OPNsense is built on FreeBSD which has a broken network stack. The devs are great but I can&rsquo;t recommend it. Use VyOS.
Also, having to configure 11 different areas in a website to set up a wireguard tunnel sucks compared to CLI where you just put <code>wireguard.conf</code>in <code>/etc/wireguard/</code> and run <code>wg-quick up wireguard</code>.</p>
</div>
</div>
<div class="footer">
<p class="footer-credit">@bullshark369.org maintained by shark</p>
<div class="footer-social">
<div class="social-link">
<a href="https://github.com/bullshar-k" title="GitHub" target="_blank" rel="noopener">
GitHub
</a>
</div>
<div class="social-link">
<a href="mailto:bullsharkgunsemail@pm.me" title="Email" target="_blank" rel="noopener">
Email
</a>
</div>
<button type="button" class="social-link social-copy" data-copy="@bullshar_k:matrix.org" title="Copy Matrix to clipboard">
<span class="social-copy-label">Matrix</span>
</button>
</div>
</div>
<script>
(function () {
var btns = document.querySelectorAll('.social-copy');
btns.forEach(function (btn) {
btn.addEventListener('click', function () {
var text = btn.getAttribute('data-copy');
var label = btn.querySelector('.social-copy-label, .contact-social-name');
var original = label ? label.textContent : btn.textContent;
function done() {
label.textContent = 'Copied!';
setTimeout(function () { label.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(done).catch(done);
} else {
var ta = document.createElement('textarea');
ta.value = text;
document.body.appendChild(ta);
ta.select();
try { document.execCommand('copy'); } catch (e) {}
document.body.removeChild(ta);
done();
}
});
});
})();
</script>
</div>
<script type="text/javascript" src="/js/bundle.js"></script>
</body>
</html>
+218
View File
@@ -0,0 +1,218 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Proxmox - bullshark369.org</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="http://localhost:1313/favicon.png">
<link rel="canonical" href="http://localhost:1313/posts/proxmox/" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/assets/css/extended.css">
<meta name="description" content="My great experience with proxmox on 2 different servers"/>
<meta name="keywords" content="Nathan Buache, Test Manager, QA, Quality Assurance, Lausanne, Switzerland, Web Testing, Software Testing, QoQa"/>
<meta property="og:title" content="Proxmox - bullshark369.org"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http://localhost:1313/posts/proxmox/"/>
<meta property="og:site_name" content="bullshark369.org"/>
<meta property="og:description" content="My great experience with proxmox on 2 different servers"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="Proxmox"/>
<meta name="twitter:description" content="My great experience with proxmox on 2 different servers"/>
</head>
<body class='page page-blog-single'>
<div id="menu-main-mobile" class="menu-main-mobile">
<ul class="menu">
<li class="menu-item-home">
<a href="http://localhost:1313/">Home</a>
</li>
<li class="menu-item-blog">
<a href="http://localhost:1313/posts/">Blog</a>
</li>
<li class="menu-item-contact">
<a href="http://localhost:1313/pages/contact/">Contact</a>
</li>
</ul>
</div>
<div id="wrapper" class="wrapper">
<div class='header'>
<div class="menu-main">
<ul>
<li class="menu-item-home ">
<a href="/">
<span>Home</span>
</a>
</li>
<li class="menu-item-blog ">
<a href="/posts/">
<span>Blog</span>
</a>
</li>
<li class="menu-item-contact ">
<a href="/pages/contact/">
<span>Contact</span>
</a>
</li>
</ul>
</div>
<div id="toggle-menu-main-mobile" class="hamburger-trigger">
<button class="hamburger">Menu</button>
</div>
</div>
<div class="blog">
<div class="intro">
<h1>Proxmox</h1>
</div>
<div class="content">
<h2 id="opinion">Opinion</h2>
<p>I run proxmox on two PCs. A dell optiplex and a custom built server focused PC. The Optiplex handles my firewall and the other PC handles DNS and some other services.
Genuinely an amazing free piece of sotware. Much better than ESXi. From the networking, to the UI, to the virtualization, it is a great type 1 hypervisor.</p>
<h2 id="how-to">How to</h2>
<h3 id="flash-proxmox-onto-drive">Flash proxmox onto drive</h3>
<pre tabindex="0"><code>sudo wipefs -af /dev/sda
sudo dd if=proxmox.iso of=/dev/sda bs=4M conv=fsync
sync &amp;&amp; sync
sudo eject /dev/sda
</code></pre><h3 id="allow-bios-to-do-things">Allow BIOS to do things</h3>
<ul>
<li>Set proxmox USB to top of boot priority</li>
<li>Turn off secure boot</li>
<li>Enable KVM &amp; IOMMU</li>
<li>Enable above 4G decoding</li>
<li>Disable wait for F1 when errors
This is really annoying, it will wait for you to press F1 if it detects an error, running it headless with no output at all will cause an error, making you have to plug
a keyboard into your server and press F1.</li>
<li>Disable secure boot or set to &ldquo;other os&rdquo;</li>
<li>Ensure secure boot allows UEFI USB boot</li>
</ul>
<h3 id="installation">Installation</h3>
<p>It will boot, and you literaly just answer your way through the setup prompts. Super easy.</p>
</div>
</div>
<div class="footer">
<p class="footer-credit">@bullshark369.org maintained by shark</p>
<div class="footer-social">
<div class="social-link">
<a href="https://github.com/bullshar-k" title="GitHub" target="_blank" rel="noopener">
GitHub
</a>
</div>
<div class="social-link">
<a href="mailto:bullsharkgunsemail@pm.me" title="Email" target="_blank" rel="noopener">
Email
</a>
</div>
<button type="button" class="social-link social-copy" data-copy="@bullshar_k:matrix.org" title="Copy Matrix to clipboard">
<span class="social-copy-label">Matrix</span>
</button>
</div>
</div>
<script>
(function () {
var btns = document.querySelectorAll('.social-copy');
btns.forEach(function (btn) {
btn.addEventListener('click', function () {
var text = btn.getAttribute('data-copy');
var label = btn.querySelector('.social-copy-label, .contact-social-name');
var original = label ? label.textContent : btn.textContent;
function done() {
label.textContent = 'Copied!';
setTimeout(function () { label.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(done).catch(done);
} else {
var ta = document.createElement('textarea');
ta.value = text;
document.body.appendChild(ta);
ta.select();
try { document.execCommand('copy'); } catch (e) {}
document.body.removeChild(ta);
done();
}
});
});
})();
</script>
</div>
<script type="text/javascript" src="/js/bundle.js"></script>
</body>
</html>
+195
View File
@@ -0,0 +1,195 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>t - bullshark369.org</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="http://localhost:1313/favicon.png">
<link rel="canonical" href="http://localhost:1313/posts/temp/" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/assets/css/extended.css">
<meta name="description" content="d"/>
<meta name="keywords" content="Nathan Buache, Test Manager, QA, Quality Assurance, Lausanne, Switzerland, Web Testing, Software Testing, QoQa"/>
<meta property="og:title" content="t - bullshark369.org"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http://localhost:1313/posts/temp/"/>
<meta property="og:site_name" content="bullshark369.org"/>
<meta property="og:description" content="d"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="t"/>
<meta name="twitter:description" content="d"/>
</head>
<body class='page page-blog-single'>
<div id="menu-main-mobile" class="menu-main-mobile">
<ul class="menu">
<li class="menu-item-home">
<a href="http://localhost:1313/">Home</a>
</li>
<li class="menu-item-blog">
<a href="http://localhost:1313/posts/">Blog</a>
</li>
<li class="menu-item-contact">
<a href="http://localhost:1313/pages/contact/">Contact</a>
</li>
</ul>
</div>
<div id="wrapper" class="wrapper">
<div class='header'>
<div class="menu-main">
<ul>
<li class="menu-item-home ">
<a href="/">
<span>Home</span>
</a>
</li>
<li class="menu-item-blog ">
<a href="/posts/">
<span>Blog</span>
</a>
</li>
<li class="menu-item-contact ">
<a href="/pages/contact/">
<span>Contact</span>
</a>
</li>
</ul>
</div>
<div id="toggle-menu-main-mobile" class="hamburger-trigger">
<button class="hamburger">Menu</button>
</div>
</div>
<div class="blog">
<div class="intro">
<h1>t</h1>
</div>
<div class="content">
</div>
</div>
<div class="footer">
<p class="footer-credit">@bullshark369.org maintained by shark</p>
<div class="footer-social">
<div class="social-link">
<a href="https://github.com/bullshar-k" title="GitHub" target="_blank" rel="noopener">
GitHub
</a>
</div>
<div class="social-link">
<a href="mailto:bullsharkgunsemail@pm.me" title="Email" target="_blank" rel="noopener">
Email
</a>
</div>
<button type="button" class="social-link social-copy" data-copy="@bullshar_k:matrix.org" title="Copy Matrix to clipboard">
<span class="social-copy-label">Matrix</span>
</button>
</div>
</div>
<script>
(function () {
var btns = document.querySelectorAll('.social-copy');
btns.forEach(function (btn) {
btn.addEventListener('click', function () {
var text = btn.getAttribute('data-copy');
var label = btn.querySelector('.social-copy-label, .contact-social-name');
var original = label ? label.textContent : btn.textContent;
function done() {
label.textContent = 'Copied!';
setTimeout(function () { label.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(done).catch(done);
} else {
var ta = document.createElement('textarea');
ta.value = text;
document.body.appendChild(ta);
ta.select();
try { document.execCommand('copy'); } catch (e) {}
document.body.removeChild(ta);
done();
}
});
});
})();
</script>
</div>
<script type="text/javascript" src="/js/bundle.js"></script>
</body>
</html>
+210
View File
@@ -0,0 +1,210 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>t - bullshark369.org</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="http://localhost:1313/favicon.png">
<link rel="canonical" href="http://localhost:1313/posts/template/" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/assets/css/extended.css">
<meta name="description" content="d"/>
<meta name="keywords" content="Nathan Buache, Test Manager, QA, Quality Assurance, Lausanne, Switzerland, Web Testing, Software Testing, QoQa"/>
<meta property="og:title" content="t - bullshark369.org"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http://localhost:1313/posts/template/"/>
<meta property="og:site_name" content="bullshark369.org"/>
<meta property="og:description" content="d"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="t"/>
<meta name="twitter:description" content="d"/>
</head>
<body class='page page-blog-single'>
<div id="menu-main-mobile" class="menu-main-mobile">
<ul class="menu">
<li class="menu-item-home">
<a href="http://localhost:1313/">Home</a>
</li>
<li class="menu-item-blog">
<a href="http://localhost:1313/posts/">Blog</a>
</li>
<li class="menu-item-about">
<a href="http://localhost:1313/about/">About</a>
</li>
<li class="menu-item-contact">
<a href="http://localhost:1313/pages/contact/">Contact</a>
</li>
</ul>
</div>
<div id="wrapper" class="wrapper">
<div class='header'>
<div class="menu-main">
<ul>
<li class="menu-item-home ">
<a href="/">
<span>Home</span>
</a>
</li>
<li class="menu-item-blog ">
<a href="/posts/">
<span>Blog</span>
</a>
</li>
<li class="menu-item-about ">
<a href="/about/">
<span>About</span>
</a>
</li>
<li class="menu-item-contact ">
<a href="/pages/contact/">
<span>Contact</span>
</a>
</li>
</ul>
</div>
<div id="toggle-menu-main-mobile" class="hamburger-trigger">
<button class="hamburger">Menu</button>
</div>
</div>
<div class="blog">
<div class="intro">
<h1>t</h1>
</div>
<div class="content">
</div>
</div>
<div class="footer">
<p class="footer-credit">@bullshark369.org maintained by shark</p>
<div class="footer-social">
<div class="social-link">
<a href="https://github.com/bullshar-k" title="GitHub" target="_blank" rel="noopener">
GitHub
</a>
</div>
<div class="social-link">
<a href="mailto:bullsharkgunsemail@pm.me" title="Email" target="_blank" rel="noopener">
Email
</a>
</div>
<button type="button" class="social-link social-copy" data-copy="@bullshar_k:matrix.org" title="Copy Matrix to clipboard">
<span class="social-copy-label">Matrix</span>
</button>
</div>
</div>
<script>
(function () {
var btns = document.querySelectorAll('.social-copy');
btns.forEach(function (btn) {
btn.addEventListener('click', function () {
var text = btn.getAttribute('data-copy');
var label = btn.querySelector('.social-copy-label, .contact-social-name');
var original = label ? label.textContent : btn.textContent;
function done() {
label.textContent = 'Copied!';
setTimeout(function () { label.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(done).catch(done);
} else {
var ta = document.createElement('textarea');
ta.value = text;
document.body.appendChild(ta);
ta.select();
try { document.execCommand('copy'); } catch (e) {}
document.body.removeChild(ta);
done();
}
});
});
})();
</script>
</div>
<script type="text/javascript" src="/js/bundle.js"></script>
</body>
</html>
+212
View File
@@ -0,0 +1,212 @@
<!DOCTYPE html>
<html lang="en">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>VPS proxies with wireguard tunnels - bullshark369.org</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="http://localhost:1313/favicon.png">
<link rel="canonical" href="http://localhost:1313/posts/wireguard/" />
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/assets/css/extended.css">
<meta name="description" content="The most private VPN is your own"/>
<meta name="keywords" content="Nathan Buache, Test Manager, QA, Quality Assurance, Lausanne, Switzerland, Web Testing, Software Testing, QoQa"/>
<meta property="og:title" content="VPS proxies with wireguard tunnels - bullshark369.org"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http://localhost:1313/posts/wireguard/"/>
<meta property="og:site_name" content="bullshark369.org"/>
<meta property="og:description" content="The most private VPN is your own"/>
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:title" content="VPS proxies with wireguard tunnels"/>
<meta name="twitter:description" content="The most private VPN is your own"/>
</head>
<body class='page page-blog-single'>
<div id="menu-main-mobile" class="menu-main-mobile">
<ul class="menu">
<li class="menu-item-home">
<a href="http://localhost:1313/">Home</a>
</li>
<li class="menu-item-blog">
<a href="http://localhost:1313/posts/">Blog</a>
</li>
<li class="menu-item-contact">
<a href="http://localhost:1313/pages/contact/">Contact</a>
</li>
</ul>
</div>
<div id="wrapper" class="wrapper">
<div class='header'>
<div class="menu-main">
<ul>
<li class="menu-item-home ">
<a href="/">
<span>Home</span>
</a>
</li>
<li class="menu-item-blog ">
<a href="/posts/">
<span>Blog</span>
</a>
</li>
<li class="menu-item-contact ">
<a href="/pages/contact/">
<span>Contact</span>
</a>
</li>
</ul>
</div>
<div id="toggle-menu-main-mobile" class="hamburger-trigger">
<button class="hamburger">Menu</button>
</div>
</div>
<div class="blog">
<div class="intro">
<h1>VPS proxies with wireguard tunnels</h1>
</div>
<div class="content">
<h2 id="quick-guide">Quick guide</h2>
<pre tabindex="0"><code>apt update &amp;&amp; apt upgrade
apt install wireguard-tools git go iptables
git clone https://github.com/bullshar-k/wg.conf
cd wgconf
go build main.go
./main -peer 10 -dest server_ip -port 51855
mv server.conf /etc/wireguard
wg-quick up server
</code></pre><p>From there you move the client 1-10 onto the appropriate clients and use wg-quick up on them too.
Depending on your VPS you may need traffic forwarding post up rules like this;</p>
<pre tabindex="0"><code>PostUp = iptables -A FORWARD -i server -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i server -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
</code></pre><p><em>If it isn&rsquo;t apparent this goes in the <code>[INTERFACE]</code> section after the interface info before the first <code>[PEER]</code>
Ensure <code>server</code> is the name of the .conf file as that will be the name of the interface, and <code>eth0</code> is the name of your WAN facing NIC interface.</em></p>
</div>
</div>
<div class="footer">
<p class="footer-credit">@bullshark369.org maintained by shark</p>
<div class="footer-social">
<div class="social-link">
<a href="https://github.com/bullshar-k" title="GitHub" target="_blank" rel="noopener">
GitHub
</a>
</div>
<div class="social-link">
<a href="mailto:bullsharkgunsemail@pm.me" title="Email" target="_blank" rel="noopener">
Email
</a>
</div>
<button type="button" class="social-link social-copy" data-copy="@bullshar_k:matrix.org" title="Copy Matrix to clipboard">
<span class="social-copy-label">Matrix</span>
</button>
</div>
</div>
<script>
(function () {
var btns = document.querySelectorAll('.social-copy');
btns.forEach(function (btn) {
btn.addEventListener('click', function () {
var text = btn.getAttribute('data-copy');
var label = btn.querySelector('.social-copy-label, .contact-social-name');
var original = label ? label.textContent : btn.textContent;
function done() {
label.textContent = 'Copied!';
setTimeout(function () { label.textContent = original; }, 1500);
}
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(text).then(done).catch(done);
} else {
var ta = document.createElement('textarea');
ta.value = text;
document.body.appendChild(ta);
ta.select();
try { document.execCommand('copy'); } catch (e) {}
document.body.removeChild(ta);
done();
}
});
});
})();
</script>
</div>
<script type="text/javascript" src="/js/bundle.js"></script>
</body>
</html>