{"id":22,"date":"2026-03-03T02:17:19","date_gmt":"2026-03-03T02:17:19","guid":{"rendered":"https:\/\/artamiss.net\/?page_id=22"},"modified":"2026-03-03T02:17:19","modified_gmt":"2026-03-03T02:17:19","slug":"homelab-server","status":"publish","type":"page","link":"https:\/\/artamiss.net\/index.php\/homelab-server\/","title":{"rendered":"Homelab Server"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">2015 &#8211; Present<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Current Projects<\/h3>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table><thead><tr><th><strong>App<\/strong><\/th><th><strong>Description<\/strong><\/th><\/tr><\/thead><tbody><tr><td>WordPress<\/td><td>The site you are currently on! This was a learning experience for setting up complex platforms on custom domains, but also is simple to use and efficient. <br><br>Why make a new solution when existing ones work effectively?<\/td><\/tr><tr><td>Traefik<\/td><td>A routing application that enables me to setup reverse proxies for my domain, enabling me to host all these different applications on various VMs, and have traffic directed through a gateway. It also supports handling SSL and External DNS through LetsEncrypt and Cloudflare respectively. <br><br>This was a huge lesson in the complexities of SSL, external DNS, routing, and reverse proxies. This is the core of my network.<\/td><\/tr><tr><td>PostgreSQL<\/td><td>The primary database I use for several of my applications, both listed here and otherwise.<br><br>I have a long history of using MS SQL, AWS Athena, Snowflake, PostgreSQL, and MongoDB. This is an easy and free option that handles all my small-scale needs.<\/td><\/tr><tr><td>Kubernetes + Calico<\/td><td>A single-node cluster to both learn about Kubernetes and to have a place to deploy Docker containers, both manually and with CI\/CD.<br><br>Boy howdy was this a learning experience! Before setting this up, I had never used Docker before and that made this whole setup about 5 times harder than it really should have been. Still an excellent solution to setting up complex applications that need to work every time.<\/td><\/tr><tr><td>Authentik<\/td><td>An authorization method that supports LDAP and OpenID to authenticate users. Also had a UI to enable users to select what app(s) they&#8217;d like to open all from one dashboard. <br><br>Made me have to re-work my SSL setup as it&#8217;s requirements for setup were more stringent that I had needed before this time. Made me replace NGINX Proxy Manager with Traefik to support the more advanced setup.<\/td><\/tr><tr><td>Gitea<\/td><td>A local git instance that is used to replicate Github code. It&#8217;s not good for open-source projects, but it is a great place to keep and work on personal projects.<\/td><\/tr><tr><td>Audiobookshelf<\/td><td>An audiobook reader that is accessible via desktop and mobile. I upload m4a and mp3 bundles from books I purchase from Audible or Libro.fm to be able to read from an app that is more comfortable, and that i can share with my Wife without overriding each others listening progress.<\/td><\/tr><tr><td>Jellyfin<\/td><td>A media serving application that is like my own personal Netflix. I upload media, which is usually content ripped from DVDs and Blue-Rays that I own, and then can watch on my smart TV, desktop, phone, or tablet.<\/td><\/tr><tr><td>Foundry<\/td><td>A platform for hosting virtual tabletop games like Dungeons &amp; Dragons. <\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Previous Projects<\/h3>\n\n\n\n<figure class=\"wp-block-table brcss-2187fd57-mm9z8hic\"><table><thead><tr><th>App<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td>Minecraft Server<\/td><td>A minecraft server for my friends and I to hang out with each other for extended periods. <br><br>We had several worlds over several years before we all eventually all got married, started having kids, and having less free time. <\/td><\/tr><tr><td>NGINX Proxy Manager<\/td><td>Was my first attempt at setting up SSL and Reverse Proxies. Thought it worked, it had limited websocket support, and SSL was not fully supported in edge cases. Taught me a lot about networking and specifically traffic routing in general.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>2015 &#8211; Present Current Projects App Description WordPress The site you are currently on! This was a learning experience for setting up complex platforms on custom domains, but also is simple to use and efficient. Why make a new solution when existing ones work effectively? Traefik A routing application that enables me to setup reverse [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-22","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/artamiss.net\/index.php\/wp-json\/wp\/v2\/pages\/22","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/artamiss.net\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/artamiss.net\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/artamiss.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/artamiss.net\/index.php\/wp-json\/wp\/v2\/comments?post=22"}],"version-history":[{"count":1,"href":"https:\/\/artamiss.net\/index.php\/wp-json\/wp\/v2\/pages\/22\/revisions"}],"predecessor-version":[{"id":23,"href":"https:\/\/artamiss.net\/index.php\/wp-json\/wp\/v2\/pages\/22\/revisions\/23"}],"wp:attachment":[{"href":"https:\/\/artamiss.net\/index.php\/wp-json\/wp\/v2\/media?parent=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}