Category Archives: DIY

Self Hosted Email Server With Unraid and Poste.IO

I use NginxProxyManager as the main entry point of web traffic onto my local server. I exclusively use it as a proxy host for multiple subdomains. Each subdomain managed by NPM gets proxied to a docker container. Adding new services is mostly setting up the docker container and using NPM to create a ssl certificate with letsencrypt and directing the traffic from that subdomain to the container.

A few weeks ago I randomly discovered through the community apps page of unraid. It’s an all-in-one dockerized email server. Since Unraid has a template for it, installing was a breeze:

Community Applications plugin has a template ready to go

Email requires more ports than just 443/80, but following their documentation I was able to get it up and running. Thanks to my local ISP I am able to have port 25 and all the rest unblocked, normally ISPs don’t allow these ports.

slick looking admin console

The docker container comes complete with an admin site for managing users, domains, and server settings. The mail app isn’t half bad either:

Once I tried to connect Thunderbird though I got SSL verification errors. I soon found out even through NPM handles the SSL offloading for port 443 (HTTPS web traffic), it doesn’t do the same for the mail ports (143, 993, etc). Thunderbird was getting a generic SSL certificate instead of! does support LetsEncrypt, but trying to run LE validation behind another LE instance (NPM) is problematic. When the Poste.IO LE tries to validate domain ownership the LE server ends up calling the NPM LE, which says “uh, what, 404 for me I guess”.

LE servers not able to validate that I own the domain name 🙁

I tried getting the LE functionality in to work with the NPM LE but couldn’t come up with a solution that would result in automatic SSL certificate renewals in the future. Then I thought to myself, “NPM LE stores the certificates in the AppData folder of Unraid, I could use that!”

I went back to the docker configuration page and added 4 paths to map:

  • ca.crt
  • server.key
  • server.crt
  • server-combined.crt

I mapped them from the NPM appdata folder to the Poste container.

  • /mnt/user/appdata/NginxProxyManager/letsencrypt/live/npm-33/chain.pem
  • /mnt/user/appdata/NginxProxyManager/letsencrypt/live/npm-33/privkey.pem
  • /mnt/user/appdata/NginxProxyManager/letsencrypt/live/npm-33/cert.pem
  • /mnt/user/appdata/NginxProxyManager/letsencrypt/live/npm-33/fullchain.pem

were mapped to:

  • /etc/ssl/ca.crt
  • /etc/ssl/server.key
  • /etc/ssl/server.crt
  • /etc/ssl/server-combined.crt

After this I was able to successfully connect to the email server from my computer and other devices! Now when NPM updates the domain name automatically, poste will directly reference the new certificates without any manual intervention.

Installing Summer Garage AC – MRCOOL Split System

Working in the garage had sweat dripping off of my face after a few minutes of starting a project. The heat had to go! I learned about ductless mini split systems and how easy they were to install without hiring anyone. I found a few kits on amazon that were sold specifically as DIY versions, but costed a bit more than the non-DIY versions. I found a scratch/dent MRCOOL Advantage 24k BTU unit on ebay. The previous owner left behind a spare concrete pad outside the garage utility door which I commandeered for my own purposes:

Installing ductless systems like this one was pretty simple. Drill a hole in the wall where the A/C lines will go, mount the indoor unit to the wall, then run the A/C lines to the outside unit!

The indoor unit, attached on its mount, with coolant lines running through the wall

I ran new electrical to the unit. I only needed 120V for this heat pump, but I ran enough to run a 240V unit just in case the need arises in the future. I quickly learned how hard it is to run THWN wire through conduit, especially when I didn’t use 90 degree sweeping connectors.

Electrical box and lines roughed in. I learned after installation I could have used a sweeping 90 degree bend.Make sure you have your favorite beverage available while working!

The DIY versions of the MRCOOL units come with a copper lineset that is already evacuated, which saves the installer from needing an vacuum pump to do it during installation. I decided to save some money and purchase a vacuum pump kit and do it myself. I watched a handful of youtube videos and did a few trial runs. The copper lineset ends had to be flared so they could mate correctly on the heat pump. I tried the flaring tool at my local hardware store but couldn’t get it to work correctly. Probably a little operator error, probably a little $5 Chinese tool couldn’t cut it. I purchased a better flaring tool and practiced a few dozen times to get comfortable. From what I read online the leaks are most likely to happen at the connectors, so I tried to make sure I got them correct the first time.

Pulling a vacuum and waiting a few hours to see if the vacuum holds.

Admittedly using a gauge like this isn’t ideal to test for a vacuum, but I let it sit for several hours to make sure it wasn’t leaking. I also didn’t have a tank of nitrogen on hand to purge the lines before either.

After the vacuum held for several hours I let coolant into the system by unscrewing the stopper on the outside of the heat pump. Pressure built inside the lines, which I also monitored for a few hours to make sure they weren’t dropping. I put soapy water on all of the connectors to check for bubbles but didn’t find any!

Coolant released into the lineset, time to test!

Now what I had been waiting for since I moved into this house:

54°F air blowing down on me!

One minor downside of this system, the thermostat that controls the system is not wired, it uses IR to set the temperature, turn on/off. Very annoying!

MRCOOL thermostat above the gas fired garage heater thermostat

Every time a change to the system needs to be made the thermostat has to be removed from the wall and pointed at the unit first. This damn thing has wifi, but not a wireless controller??

Back outside I finished up the lineset by covering it with a hide-a-line kit and getting the electrical pvc conduit attached to the siding. I might have taken the amount of drop the condensate drainage pipe needed, but it certainly won’t get clogged up with that amount of fall!