{"id":991,"date":"2022-03-14T12:00:00","date_gmt":"2022-03-14T19:00:00","guid":{"rendered":"https:\/\/letsbuildroboticswithshadow8472.com\/?p=991"},"modified":"2022-03-14T03:52:19","modified_gmt":"2022-03-14T10:52:19","slug":"misadventures-in-studying-nginx","status":"publish","type":"post","link":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2022\/03\/14\/misadventures-in-studying-nginx\/","title":{"rendered":"Misadventures in Studying NGINX"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Good Morning from my Robotics Lab. This is Shadow_8472, and today I am getting lost while exploring SSL certificates\u2026 again. Let\u2019s get started!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installing NGINX<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">At last count, I had about six or seven projects I should hook into it, but most of them are on hold because I don\u2019t want some stranger finding his way into my home network and rearranging things without permission. I set up Vaultwarden to manage its own HTTPS connections, and I learned a lot about what SSL is and how it works. But this is not a recommended configuration and I want to learn the proper, more advanced way of doing things.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I ignored plenty of guides\u2019 advice on my path to a Vaultwarden server. They recommend some sort of ingress controller, and I\u2019m currently exploring one called NGINX. I\u2019ve come across quite the debate as to whether to use a container or install it native. The tutorials for the container edition all use Docker, but I\u2019m using Podman and I\u2019m uneasy about root permission nuances between the two projects making things needlessly more challenging, so I installed the package on ButtonMash.<\/p>\n\n\n\n<pre class=\"wp-block-verse\">sudo dnf install nginx<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">To confirm installation, I enabled the web server with a few systemctl commands and opened a port in ButtonMash\u2019s firewall. NGINX now proudly displays its welcome page.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A Web of Dependencies<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">NGINX does not lend itself to solo study. It is a do-everything solution for networking. With so many use cases from serving HTML pages to load balancing containers, I have spent weeks pouring through tutorials without finding a keystone lesson for my use case. Some of that time was spent looking into some sort of web interface I falsely believed was included. See NGINX Proxy Manager vs. NGINX for details. I will stick with bare NGINX if for now mainly because NGINX Proxy Manager\u2019s website ironically has an expired SSL certificate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I got lost researching what I would need for a project this week. Proper HTTPS for Vaultwarden is a good choice of target. That will require an SSL certificate, and that means Let\u2019sEncrypt. An SSL certificate requires either a domain name or a subdomain, so that means arranging one of those.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Somewhere along the way, I got lost and visited this blog\u2019s host cPanel in the interest of moving its SSL to Let\u2019sEncrypt. The experience was unexpectedly surreal, like I was paging through a book written in a language I\u2019m trying to learn \u2013 there was a flood of jargon, but the bits I recognized made for moments of satisfaction.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3D Printing Corner<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I want to glue the Sonic figure I printed, but I\u2019d just as soon have some experience with gluing large, flat surfaces together before I go smashing a larger project together and hoping it sticks (literally). I had the idea to print up eight calibration cubes for practice. I tried some lower infill settings and got inferior, but adequate results. My biggest complaint was how many tries it took for the overall first layer. I had to settle with a couple curling corners, but a perfect print wasn\u2019t the goal anyway. Gluing will have to wait until next week though.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Side Project<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Also on the topic of 3D printing, my mother has been into quilting as of late and she commissioned some more bias tape makers like the ones I made during the early stages of the pandemic. I found what I thought was the model on Thingiverse and its description linked a revision that folds it in half again. I used a spreadsheet to scale the model to a couple different sizes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Takeaway<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I feel like I am assembling a jigsaw puzzle without the box. Each piece must be studied and understood before placing it. Half the challenge is knowing what pieces need to be in place before it\u2019s time to begin studying others. Placing more than one at a time is very difficult, but the HTTPS piece interlocks with so many others, its ecosystem doesn\u2019t lend itself to a project of the week format of study like what I have going on here.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Final Question<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The most important lesson in tech is to know where to seek help. I had to seek out a new<br>Discord server familiar with NGINX this week when I should have looked them up a week ago. How long does it take before you look for specialized help?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Good Morning from my Robotics Lab. This is Shadow_8472, and today I am getting lost while exploring SSL certificates\u2026 again. Let\u2019s get started! Installing NGINX At last count, I had about six or seven projects I should hook into it, but most of them are on hold because I don\u2019t want some stranger finding his &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/2022\/03\/14\/misadventures-in-studying-nginx\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Misadventures in Studying NGINX&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[2,90],"tags":[],"class_list":["post-991","post","type-post","status-publish","format-standard","hentry","category-linux","category-red-hat-server"],"_links":{"self":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/991","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/comments?post=991"}],"version-history":[{"count":1,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/991\/revisions"}],"predecessor-version":[{"id":992,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/posts\/991\/revisions\/992"}],"wp:attachment":[{"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/media?parent=991"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/categories?post=991"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/letsbuildroboticswithshadow8472.com\/index.php\/wp-json\/wp\/v2\/tags?post=991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}