<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sysadmin on Treadwell</title><link>https://treadwell.net/tags/sysadmin/</link><description>Recent content in Sysadmin on Treadwell</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 09 Feb 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://treadwell.net/tags/sysadmin/index.xml" rel="self" type="application/rss+xml"/><item><title>I Built a NAS</title><link>https://treadwell.net/blog/i-built-a-nas/</link><pubDate>Wed, 09 Feb 2022 00:00:00 +0000</pubDate><guid>https://treadwell.net/blog/i-built-a-nas/</guid><description>&lt;p&gt;So uh - yeah I built a nas.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img src="https://files.trdwll.net/2022/01/nas3.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;I ended up deciding to build a NAS as OVH pissed me off with the throttling me when uploading. I&amp;rsquo;ve also wanted to build a NAS for a while.&lt;/p&gt;
&lt;p&gt;Really the biggest thing that pushed me to pull the trigger was when I came across an amazing deal on eBay. For $430 I got the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.supermicro.com/en/products/motherboard/X11SSH-TF" rel="noopener" target="_blank"&gt;&lt;img class="favicon" src="https://icons.duckduckgo.com/ip3/www.supermicro.com.ico" alt="" width="16" height="16" loading="lazy"&gt;SuperMicro X11SSH-TF&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Micron 64GB DDR4 ECC Ram&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ark.intel.com/content/www/us/en/ark/products/88173/intel-xeon-processor-e31245-v5-8m-cache-3-50-ghz.html" rel="noopener" target="_blank"&gt;&lt;img class="favicon" src="https://icons.duckduckgo.com/ip3/ark.intel.com.ico" alt="" width="16" height="16" loading="lazy"&gt;Intel® Xeon® Processor E3-1245 v5&lt;/a&gt; &lt;a href="https://ark.intel.com/content/www/us/en/ark/products/88169/intel-xeon-processor-e31240l-v5-8m-cache-2-10-ghz.html" rel="noopener" target="_blank"&gt;&lt;img class="favicon" src="https://icons.duckduckgo.com/ip3/ark.intel.com.ico" alt="" width="16" height="16" loading="lazy"&gt;Intel® Xeon® Processor E3-1240L v5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Samsung 960 Pro 512GB M.2&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.supermicro.com/en/products/accessories/addon/AOC-SLG3-2E4.php" rel="noopener" target="_blank"&gt;&lt;img class="favicon" src="https://icons.duckduckgo.com/ip3/www.supermicro.com.ico" alt="" width="16" height="16" loading="lazy"&gt;SuperMicro AOC-SLG3-2E4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;4x Samsung 850 Pro 256GB&lt;/li&gt;
&lt;li&gt;Some other misc stuff like cables, additional pci m.2 card, and m.2 enclosures for the AOC card.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The rest of the components are as follows:&lt;/p&gt;</description></item><item><title>How I Handle Backups</title><link>https://treadwell.net/blog/how-i-handle-backups/</link><pubDate>Sun, 02 Jan 2022 00:00:00 +0000</pubDate><guid>https://treadwell.net/blog/how-i-handle-backups/</guid><description>&lt;p&gt;The normal rule is 3-2-1 - 3 backups, 2 onsite, 1 offsite. However I do 2 offsite only. I may do a third offsite, but not sure just yet.&lt;/p&gt;
&lt;p&gt;I use &lt;a href="https://www.scaleway.com/en/c14-cold-storage/" rel="noopener" target="_blank"&gt;&lt;img class="favicon" src="https://icons.duckduckgo.com/ip3/www.scaleway.com.ico" alt="" width="16" height="16" loading="lazy"&gt;Scaleway&amp;rsquo;s C14 Cold Storage&lt;/a&gt;. I used OVH Archive, but the upload speeds were super slow.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;In proxmox I edited the &lt;code&gt;/etc/vzdump.conf&lt;/code&gt; and added &lt;code&gt;script: /path/to/my/perl/script.pl&lt;/code&gt; at the bottom. When I run vzdump from the ui or proxmox kicks off a backup cron the script will get ran.&lt;/p&gt;</description></item><item><title>Colocating My Server</title><link>https://treadwell.net/blog/colocating-my-server/</link><pubDate>Mon, 20 Dec 2021 00:00:00 +0000</pubDate><guid>https://treadwell.net/blog/colocating-my-server/</guid><description>&lt;p&gt;Colocating a server is something that I&amp;rsquo;ve wanted to do for a long time and I just never have until now. Over the years I&amp;rsquo;ve had numerous machines that I could&amp;rsquo;ve easily colocated (several 1U machines), but it has been too expensive. &lt;a href="https://joesdatacenter.com" rel="noopener" target="_blank"&gt;&lt;img class="favicon" src="https://icons.duckduckgo.com/ip3/joesdatacenter.com.ico" alt="" width="16" height="16" loading="lazy"&gt;JoesDatacenter&lt;/a&gt; has been around for a long time - even before I started my home lab, but it was a matter of shipping the server(s) or driving to Kansas City, MO. Driving is exactly what we did. Oh yeah, I decided to take my mom with me as a 3-day vacation - since she needed time away from our city also. During the trip, I was able to stop and meet one of our staff and I even gave him 4 of my old monitors (the 6 1080p monitors) as I wasn&amp;rsquo;t using them. The round trip cost me ~$700 and 3 days. I could&amp;rsquo;ve shipped the server for much cheaper, but I&amp;rsquo;d rather take it to the data center and have a mini-vacation - plus our staff member wouldn&amp;rsquo;t have got free monitors so I&amp;rsquo;m fine with the cost. I even stopped to visit with my brother and give him my old pc case (W200) and 2 monitors.&lt;/p&gt;</description></item><item><title>Using GoAccess</title><link>https://treadwell.net/blog/using-goaccess/</link><pubDate>Wed, 16 Dec 2020 00:00:00 +0000</pubDate><guid>https://treadwell.net/blog/using-goaccess/</guid><description>&lt;p&gt;**UPDATE: I recently changed from a crontab to using the websocket and it works great. This &lt;a href="https://ansonvandoren.com/posts/goaccess-nginx-auth/" rel="noopener" target="_blank"&gt;&lt;img class="favicon" src="https://icons.duckduckgo.com/ip3/ansonvandoren.com.ico" alt="" width="16" height="16" loading="lazy"&gt;post&lt;/a&gt; was extremely useful when setting up the websocket. (also some nginx info around the web)
**&lt;/p&gt;
&lt;div class="code-block"&gt;
 &lt;div class="code-bar"&gt;
 &lt;span class="code-lang"&gt;&lt;/span&gt;
 &lt;button type="button" class="code-copy" aria-label="Copy code to clipboard"&gt;Copy&lt;/button&gt;
 &lt;/div&gt;
 &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;goaccess&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nb"&gt;log&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;nginx&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;access&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;log&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;www&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;report&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="nb"&gt;log&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;COMBINED&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;real&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;html&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;ws&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;wss&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;domain&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;443&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ws&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt; &lt;span class="mi"&gt;7890&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;daemon&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;This year I built a &lt;a href="https://trdwll.com/experiments/django-analytics/"&gt;middleware&lt;/a&gt; for &lt;a href="https://djangoproject.com" rel="noopener" target="_blank"&gt;&lt;img class="favicon" src="https://icons.duckduckgo.com/ip3/djangoproject.com.ico" alt="" width="16" height="16" loading="lazy"&gt;Django&lt;/a&gt; to store data on visitors to websites. It would store things like the page they view, the site that referred them, and their IP address/country. This worked fine for the longest time, but it&amp;rsquo;s very redundant since I already have this information in my &lt;a href="https://nginx.org/" rel="noopener" target="_blank"&gt;&lt;img class="favicon" src="https://icons.duckduckgo.com/ip3/nginx.org.ico" alt="" width="16" height="16" loading="lazy"&gt;Nginx&lt;/a&gt; (HTTP server) logs and it was stored in my database for my website. I still have one model (table) that I store just to keep a copy of it in case I delete the logs from &lt;a href="https://nginx.org/" rel="noopener" target="_blank"&gt;&lt;img class="favicon" src="https://icons.duckduckgo.com/ip3/nginx.org.ico" alt="" width="16" height="16" loading="lazy"&gt;Nginx&lt;/a&gt;.&lt;/p&gt;</description></item></channel></rss>