Tag: Docker

  • How to Access Home Assistant Remotely with Tailscale on a NAS (No Port Forwarding Required)

    How to Access Home Assistant Remotely with Tailscale on a NAS (No Port Forwarding Required)

    One of the biggest things I wanted after setting up Home Assistant was reliable remote access.

    At first, I assumed this would be simple. Install Home Assistant, install the mobile app, sign in remotely somehow, and that would be the end of it.

    The deeper I got into self hosting though, the more I realised remote access is one of those areas where things become complicated surprisingly quickly. Every guide seemed to recommend something different, from opening ports on the router to setting up reverse proxies, SSL certificates, Cloudflare tunnels and domain names.

    None of those things are inherently bad, but when you are still building your understanding it becomes difficult to know what is actually necessary and what is just adding complexity.

    There was another factor as well: subscriptions. I completely understand why Home Assistant Cloud exists and for many people it is probably the right solution. But like a lot of people these days, it feels as though everything wants a monthly fee.

    I was not trying to avoid spending money entirely. I just wanted to see if I could achieve reliable and secure remote access using the hardware and software I already had, without exposing Home Assistant directly to the internet while I was still figuring things out.

    That is what led me to Tailscale. It gave me a way to get remote access working without turning it into a much bigger networking project.

    My setup

    For reference, this is the setup I am currently running.

    The NAS itself is a UGREEN NASync DXP2800 running Docker containers for both Home Assistant and Tailscale. If you’re interested in the hardware itself, I covered my experience in my  UGREEN NASync DXP2800 Review After 2 Months.

    There is no port forwarding, no reverse proxy, no public Home Assistant exposure, and no Home Assistant Cloud subscription.

    That probably sounds restrictive at first, especially if you spend enough time reading forums where people are building very advanced setups. But honestly, that was exactly the point.

    Despite working in IT, I did not want this to become a project that required constant maintenance. I wanted something that was secure, made sense, and just worked day to day without needing to be constantly revisited.

    Just because a solution is more advanced does not automatically make it better for your situation. For me, the goal was not to build the most complex setup possible. It was to build one that was secure, reliable, and easy to live with long term.

    That is what pushed me towards Tailscale.

    Why I chose Tailscale

    The biggest reason was simplicity, not because the alternatives were beyond me, but because I was trying to solve a specific problem rather than build a networking project.

    There are plenty of ways to provide remote access to Home Assistant. You can use reverse proxies, SSL certificates, Cloudflare tunnels, domain names, port forwarding and various other combinations depending on how much control you want.

    The problem is that every additional layer becomes something else to configure, secure and maintain.

    For some people that is part of the hobby, and there is nothing wrong with that. For me, the goal was simply to access Home Assistant securely when I was away from home.

    Tailscale felt like a very clean solution to that problem. Instead of exposing Home Assistant publicly and then protecting it afterwards, it creates a private encrypted network between devices you already trust.

    In practice, that meant my phone could communicate directly with my NAS without Home Assistant ever being exposed to the public internet.

    That shift in approach made everything much easier to reason about. I was not publishing a service and securing it, I was extending a private network.

    For a home setup, that balance between simplicity, security and reliability was hard to ignore.

    The benefit I was not expecting

    When I first started looking at remote access, I was focused almost entirely on Home Assistant. The goal was simply to be able to open dashboards and make sure automations worked when I was away from home.

    What I did not really think about at the time was that I was solving a much bigger problem.

    Once Tailscale was working, Home Assistant was only one of the things I could access remotely. I also had other services running on my NAS, including my Recipe App and Home Dashboard. Several of these are applications I discussed in my  Docker Containers I Still Use One Year Later article, and Tailscale effectively gave me secure remote access to all of them at the same time.

    That was the point where it clicked. Tailscale stopped feeling like a Home Assistant tool and started feeling like part of the underlying infrastructure of my home network. The more services I added locally, the more useful it became.

    The Home Assistant benefits were still significant. Presence detection became more reliable, location updates worked more consistently, and geofenced automations behaved the way I expected them to.

    But the bigger takeaway was that I only needed to solve remote access once. Every service I run now, and anything I add in the future, can use the same setup.

    Before you start

    This guide assumes you already have Home Assistant running and accessible on your local network.

    If you are starting from scratch, make sure you can access Home Assistant locally first, for example:

    http://192.168.x.x:8123

    Do not move on until this works reliably. Otherwise you end up troubleshooting multiple things at once.

    Checking Home Assistant locally

    Before adding Tailscale, confirm Home Assistant is actually listening on port 8123.

    sudo ss -tulpn | grep 8123

    You should see Home Assistant (usually as python3) listening on that port. If not, fix that first.

    Installing Tailscale in Docker

    Tailscale running as a Docker container on a UGREEN NAS alongside other self-hosted applications.
    Tailscale running as a Docker container on my UGREEN NAS.

    Install Tailscale as a Docker container on your NAS.

    docker pull tailscale/tailscale:latest
    docker run -d \
    --name=tailscale \
    --hostname=nas \
    --network=host \
    --cap-add=NET_ADMIN \
    --cap-add=NET_RAW \
    -v tailscale-data:/var/lib \
    tailscale/tailscale:latest

    Check the logs to get the authentication link:

    docker logs tailscale

    Open the URL shown, sign in, and approve the device.

    Make sure to click this link right away, as Tailscale login URLs expire after a few minutes. If it has expired, simply restart the container or re-check the logs to generate a new one.

    Note: In this example, Tailscale stores its configuration in a Docker named volume called tailscale-data. If you prefer to keep your container data in a specific folder for easier backups or management, you can replace the named volume with a local path that suits your environment.

    For example:

    -v /path/to/tailscale-data:/var/lib

    The exact location will depend on your operating system, NAS, or Docker setup.

    Verify the connection:

    docker exec -it tailscale tailscale status

    Setting up Tailscale on your phone

    Tailscale mobile app showing connected devices and assigned tailnet IP addresses.
    The Tailscale app lets you confirm your devices are connected and quickly find your NAS Tailscale IP address.

    Installing Tailscale on the NAS is only half of the setup. You also need it running on the device you actually want to connect from, which in my case is my iPhone.

    Download the Tailscale app from the App Store and sign in using the same account you used to authenticate the NAS. Once signed in, your phone will appear in your Tailscale admin console alongside your NAS.

    At that point, your phone is part of the same private network. Your phone is no longer “connecting into” your home network, it is effectively part of it.

    One useful thing is that the Tailscale app shows all connected devices and their assigned IP addresses. That means you can quickly check your NAS Tailscale IP directly from your phone without needing to SSH in.

    This is useful when setting things up or troubleshooting because you can confirm:

    • your NAS is online
    • your phone is connected to the tailnet
    • the correct Tailscale IP is being used

    Finding the Tailscale IP

    Get the Tailscale IP:

    docker exec -it tailscale tailscale ip -4

    You will get something like:

    100.x.x.x

    Use that to access Home Assistant remotely:

    http://100.x.x.x:8123

    This uses HTTP, not HTTPS. Tailscale already encrypts the connection, so forcing HTTPS here will break things.

    Configuring the Home Assistant Companion App

    Home Assistant Companion App server settings showing internal and external URL configuration.
    Directly after “Configuring the Home Assistant Companion App” and before you explain Internal vs External URLs.

    In the Home Assistant Companion App, you need to set the Internal URL and External URL.

    On iPhone, open the app and go to:

    Settings → Companion App → Server Settings

    (If you have multiple servers configured, tap your server first, then open Server Settings.)

    Use your local IP for Internal URL:

    http://192.168.x.x:8123

    Use your Tailscale IP for External URL:

    http://100.x.x.x:8123

    Both should use HTTP. Tailscale already encrypts the connection, so you do not need HTTPS here.

    Once set, back out of the menu and give the app a few seconds to reconnect. If everything is correct, it should connect both on WiFi and over Tailscale without any errors.

    VPN On Demand on iPhone

    One thing I highly recommend enabling is VPN On Demand inside the Tailscale app.

    Enable it for both WiFi and cellular so the connection is automatic. That way you do not need to remember to manually connect before opening Home Assistant.

    This makes the whole setup feel much more seamless day to day and also improves reliability for things like presence detection and geofenced automations because your phone maintains a consistent connection back to Home Assistant.

    The issue that caused the most confusion

    The biggest problem I hit was not Home Assistant. It was Tailscale Serve taking over port 8123.

    sudo ss -tulpn | grep 8123

    If you do not see Home Assistant on that port, something else has taken it.

    Fix it with:

    tailscale serve reset

    Hardware I Use

    Before I wrap up, a quick note: some of the links below are Amazon affiliate links. If you choose to purchase through them, I may earn a small commission at no additional cost to you. I only recommend products I personally use or have hands-on experience with.

    The software in this guide is free, but if you’re curious about the hardware behind my setup, this is what I currently use:

    I’ve been using this setup for Home Assistant, Docker containers, remote access through Tailscale, and various self-hosted projects. If you’re building something similar, these are the components I have the most hands-on experience with.

    Final thoughts

    Tailscale ended up being one of the most useful additions to my setup, not because it was flashy, but because it removed friction.

    Once it was configured, I stopped thinking about remote access entirely. Combined with a stable home network, which I discussed in  What Actually Happens on Your Network (Why WiFi Feels Inconsistent), it became one of those rare pieces of infrastructure that simply fades into the background and does its job.

    There are more advanced ways to achieve the same result, and for some setups they will make sense. But for me, this struck the right balance. It solved the problem I actually had without introducing more moving parts to maintain.

    Looking back, that was the biggest win. Not just remote access, but a simple foundation I can keep building on without having to rethink it every time I add something new.

  • The Docker Containers I Still Use One Year Later on My NAS

    The Docker Containers I Still Use One Year Later on My NAS

    A year ago I wrote about the best Docker containers to run on a NAS. At the time, I was still in the “this is exciting, what else can I install?” phase. That phase is useful, and honestly it is part of the fun, but it is not the same as living with these containers day after day.

    After a year, my view has changed quite a bit. I no longer think the best Docker containers are always the most impressive ones. The best ones are the ones that keep solving a real problem without creating new ones.

    That sounds obvious, but it’s very easy to forget when you first set up a NAS. You start with storage, then Docker appears, then suddenly you are looking at dashboards, monitoring tools, media servers, smart home platforms, DNS blockers, download managers, and random utilities you did not even know existed two weeks earlier.

    This post is not another “install these 20 containers” list. I already wrote that kind of post n my earlier post on the best Docker containers for a NAS. This is the follow-up I wish more people wrote: what I actually kept, what I removed, what I still want to revisit, and what I would tell someone setting up Docker on a NAS for the first time.

    How Docker changed how I use my NAS

    When I bought my NAS, I mostly thought of it as storage. I wanted somewhere for backups, files, photos, and maybe some media. That’s still important, but Docker changed the role of the NAS completely.

    Instead of being a box that only stores files, it became a small home server. It could run Home Assistant for smart home automation, local apps that only I use, monitoring tools, and services that sit quietly in the background until I need them.

    That’s the part that’s hard to appreciate until you try it. A NAS with Docker is not just “storage plus apps”. It becomes infrastructure for your home. It can run things locally, keep data inside your own network, and remove some dependence on cloud services.

    But there is a catch. Every container you install has a cost. Not always a money cost, but a maintenance cost. It might use CPU, RAM, storage, network access, database writes, logs, or background activity. It might wake your HDDs when you expected the NAS to stay quiet. It might need updates. It might break. It might make your setup more complicated than it needs to be.

    That’s the lesson I learned over the last year. Docker is powerful, but it is also easy to overdo.

    My current rule: install for a problem, not for curiosity

    The biggest change in my thinking is that I no longer install containers just because they sound useful. I still like experimenting, but I now separate “interesting” from “actually worth running all the time”.

    A good container should do at least one of these things:

    • fix a genuine day-to-day annoyance
    • replace a cloud service I do not want to depend on
    • make the NAS more useful day to day
    • run quietly without constant maintenance
    • justify the resources it uses

    If it does not meet one of those, I probably do not need it running permanently.

    That does not mean you should never experiment. Experimenting is how you learn. But there is a difference between testing a container for a weekend and letting it become part of your permanent setup.

    Home Assistant: the one that genuinely changed my setup

    Home Assistant is the container that made the biggest difference for me.

    Custom Home Assistant dashboard running on a NAS with smart home controls, weather information, lighting zones, and sensor data.
    My Home Assistant dashboard running locally on my NAS. I recently rebuilt the layout from scratch, so it’s still very much a work in progress, but it already gives me a much cleaner overview of lighting, sensors, and smart home controls around the house.

    At first, I used it for simple automations. Motion sensors turning on lights, basic routines, and small quality-of-life improvements. Nothing too advanced. But even those simple automations changed how the house felt.

    The important thing I learned is that Home Assistant is only as good as the reliability of the devices and network around it. If a motion sensor is slow to report, or a light takes a second too long to respond, the automation feels bad even if Home Assistant itself is working perfectly.

    That was a big shift in how I thought about it. When something was delayed, my first instinct was to blame the automation or the container. In reality, the issue was often the communication path. Sensor to router, router to Home Assistant, Home Assistant back to the device. Every wireless step can add a little inconsistency.

    Once I improved my network setup, Home Assistant became much more dependable. A lot of that came down to reducing weak wireless paths and removing inconsistent connections between devices, which I covered in more detail in my post about WiFi vs wired consistency for smart home setups.

    That is why Home Assistant is one of the first things I would recommend if someone is interested in smart home control, but I would also warn them not to judge it too quickly. If it feels inconsistent, check the network and devices before assuming Home Assistant is bad.

    Who should install Home Assistant?

    Install Home Assistant if you have more than a couple of smart home devices and want them to work together instead of living in separate apps.

    It is especially useful if you have devices from different brands and want one central place for automations. For example, you might have SwitchBot devices, smart lights, sensors, and other equipment that all work fine individually but become much more useful when linked together.

    Who should skip it for now?

    If you only have one or two smart devices and are happy using the manufacturer apps, Home Assistant may be overkill. It is powerful, but it also rewards patience. You will probably spend time tweaking, testing, and learning how your devices actually behave.

    For me, it is worth it. But it is not a “set it and forget it in ten minutes” container.

    One thing I have added since then is Tailscale so I can securely access Home Assistant remotely without exposing my network directly to the internet. That alone completely changed how useful the setup feels day to day, especially when checking automations or devices while away from home. It also lets me use geofenced automations remotely without needing to pay for Home Assistant Cloud, which was a nice bonus. I will probably do a separate post on that because remote access is one of those areas where it is very easy to do the wrong thing if you are new to self hosting.

    Uptime Kuma: useful, but not essential for my setup

    Uptime Kuma is one of those containers that feels brilliant when you first install it. It gives you a clean dashboard showing whether your services are online, and it can notify you when something goes down.

    If you run a lot of services, it makes sense. If you host things for other people, it makes even more sense. It is also great if you are learning because it helps you understand what is actually running on your network.

    I liked it. I really did.

    The problem is that I eventually removed it because one of my monitoring containers seemed to be keeping my HDDs active. I am not saying Uptime Kuma is bad or that everyone will have that problem, but in my setup, I started caring more about disk activity, noise, and letting the NAS sit quietly when idle.

    That is something beginners often overlook. A monitoring tool is useful, but it also has to monitor things constantly. Depending on how it is configured, where its data is stored, and how often it checks services, it may create background activity you did not expect.

    Would I still recommend Uptime Kuma?

    Yes, but with context.

    If you are running several containers and want a simple way to see whether they are online, Uptime Kuma is excellent. It is one of the easiest monitoring tools to understand, and the interface is beginner friendly.

    But if your NAS is mainly for storage and you care about keeping HDD activity low, I would treat it as optional rather than essential. Install it, test it, and pay attention to whether your disks stay active more than expected.

    A good container can still be the wrong fit for your priorities.

    Portracker: helpful for learning, but I did not keep it

    Portracker was another container I liked because it helped me understand what was happening with my ports and services. When you are new to Docker, it is easy to lose track of what is exposed, what is mapped, and what is actually reachable on your network.

    That kind of visibility is useful. It gives you a better mental picture of your setup.

    But like Uptime Kuma, I eventually removed it. Again, the issue was not that it was bad. It was that my setup had changed. I no longer needed constant visibility enough to justify keeping every monitoring-style tool running.

    This is probably one of the biggest lessons from using Docker long term: some containers are great teachers, but not permanent residents.

    Portracker helped me learn. Once I understood my setup better, I did not need it running all the time.

    The DNS blockers: my unfinished business

    Pi-hole is the container I wanted to love, but I never got it working the way I wanted.

    To be clear, the problem was not that I could not start the container. The problem was that I could not get my network traffic to actually route through Pi-hole properly. In other words, Pi-hole may be running, but if your devices are not using it for DNS, it is not doing anything useful.

    That distinction is important for beginners.

    Installing the container is only step one. The real work is making sure your router, DHCP settings, DNS settings, and devices are actually pointing at it. If they are not, you can stare at a perfectly healthy Pi-hole dashboard while your network completely ignores it.

    That was my issue.

    At the time, I probably did not understand my network well enough to troubleshoot it properly. Since then, I have learned more about VLANs, mesh behaviour, DNS routing, and how devices actually communicate across the network. Because of that, I actually want to give Pi-hole another proper attempt.

    The appeal is obvious. Network-wide ad blocking, cleaner DNS control, and better visibility into what devices are requesting. For people who like understanding their network, Pi-hole is still one of the classic self-hosted tools.

    But I would not describe it as “install and done” for everyone.

    If your router makes it easy to set a custom DNS server, Pi-hole can be straightforward. If your router hides those settings, uses its own DNS behaviour, has awkward mesh or IoT network handling, or if your devices bypass local DNS, it can become frustrating quickly.

    That does not mean Pi-hole is bad. It means DNS is one of those areas where the container is only half the story.

    I also experimented with AdGuard Home briefly because I liked the cleaner interface and overall approach, but I never spent enough time with it to make a fair comparison. Right now, both of them sit in the category of “containers I still want to figure out properly” rather than containers I can fully recommend from long-term experience.

    That will probably become a future post by itself.

    My self-hosted recipe app: the thing that changed my mindset

    The most unexpected part of running Docker on my NAS was not installing someone else’s container. It was eventually hosting something I built myself.

    I created a local recipe app so I can store recipes in a way that works for me. It runs on my NAS and is available on my local network. It is not a huge commercial-style project, and that is exactly the point.

    It solved a specific problem I had.

    That changed how I looked at the NAS. It was no longer just a device for storage or prebuilt apps. It became a place where I could run my own tools.

    Self hosted recipe app running locally on a NAS with meal categories, recipe cards, and meal planning features.
    One of the unexpected benefits of Docker was eventually hosting my own apps locally. This recipe app runs entirely on my NAS and is used day to day for meal planning and recipe storage.

    This is one of the most underrated parts of Docker. You are not limited to whatever your NAS app store provides. If you can build or find a small web app, you can often run it yourself.

    Why this matters for beginners

    You do not need to be a professional developer to appreciate this idea. Even if you never build your own app, understanding that your NAS can host local tools changes how you think about it.

    Maybe it is a recipe app. Maybe it is a dashboard. Maybe it is a small tool for your household. The point is that Docker turns the NAS into something flexible.

    That is when the NAS stops feeling like “a hard drive on the network” and starts feeling like a small home platform.

    What I learned about NVMe and Docker

    Another thing I understand better now is where fast storage actually matters. I also touched on some of this in my UGREEN NASync DXP2800 review because Docker workloads changed how I approached storage much more than I originally expected.

    For bulk storage, HDDs still make the most sense. They are cheaper per TB and ideal for backups, media, archives, and general file storage.

    For apps and containers, NVMe can make the system feel more responsive. Containers often involve lots of small reads and writes, databases, thumbnails, logs, configuration files, and web interfaces. Those are the kinds of workloads where SSDs feel much better than HDDs.

    That does not mean everyone needs NVMe on day one. If you are building your first NAS, I would still prioritise enough HDD capacity first, especially if your main goal is storage.

    But if you plan to run Docker seriously, NVMe is worth considering. Not necessarily massive drives, but enough fast storage for apps, containers, and potentially cache.

    The key is not “NVMe is better than HDD”. The key is using each type of storage for the job it suits best.

    What I would install first today

    If I was setting up Docker on a NAS again from scratch, I would not install ten containers immediately.

    I would start with one container that solves a real problem, then build from there.

    For me, the first serious install would still be Home Assistant because it has had the biggest day-to-day impact. After that, I would consider a monitoring tool like Uptime Kuma, but I would pay close attention to whether it increases disk activity. Then I would revisit Pi-hole carefully, making sure the DNS routing side is actually working before judging the container itself.

    I would not install things just because they appear on every “best Docker containers” list.

    That is how you end up with a busy NAS, a dozen dashboards, and very little that actually improves your life.

    What I would avoid as a beginner

    The biggest mistake is installing too much too quickly.

    Every container adds another thing to understand. Where does it store data? Does it need a database? Does it expose a port? Does it need internet access? Does it write logs constantly? Does it wake the drives? How do you back it up? How do you update it?

    None of that means Docker is bad. It just means containers are not free from responsibility.

    I would also avoid exposing anything to the internet until you understand what you are doing. Running an app locally on your home network is one thing. Opening ports so you can access it from anywhere is completely different.

    For most beginners, local-only is the right starting point.

    What I still think Docker is best for

    After a year, I think Docker is best for three things on a home NAS.

    First, smart home control. Home Assistant is the obvious example here.

    Second, useful local services. This could be a monitoring tool, a DNS tool, or a small personal app.

    Third, learning. Docker teaches you a lot about networking, storage, ports, backups, persistence, and how services actually run.

    That learning curve can be frustrating, but it is also what makes the NAS more valuable over time.

    Final thoughts

    A year ago, I mostly thought Docker was a way to add cool features to my NAS.

    Now I think it is more about choosing what deserves to run permanently in your home.

    Some containers stayed because they genuinely improved my setup. Some were removed because they added more background activity than value. Others, like Pi-hole, are still on my revisit list because I know the idea is useful even if my first attempt did not work.

    That is the honest version of Docker on a NAS. It is powerful, flexible, and genuinely useful, but it is not about installing everything.

    It is about building a setup that solves real problems without creating too many new ones.

  • How to Install Home Assistant on the UGREEN NASync Series Using Docker

    How to Install Home Assistant on the UGREEN NASync Series Using Docker

    Introduction

    After getting my UGREEN NASync DXP2800 set up, the next logical step was bringing my smart home devices under one roof.
    With its compact size, low power consumption, and full Docker support, the DXP2800 is a perfect hidden powerhouse for running Home Assistant.
    Rather than setting up another Raspberry Pi or a VM, I decided to run Home Assistant directly in Docker on the DXP2800 for a cleaner, more efficient setup.

    Quick Update:
    In my last post, I mentioned setting up lightweight apps like Pi-hole and Plex.
    After exploring it further, I decided to hold off on Plex for now — personally, I don’t need a media server since I’m not storing my own movies or shows.

    I’m planning to try setting up Pi-hole soon as a local DNS blocker. However, since I’m based in Japan, and local ISPs tend to lock down their routers pretty tightly, it might need a few extra workarounds. Either way, I’ll share how it goes — whether it’s a full setup guide or lessons learned trying to get it working.

    I also spent some time working on setting up an OpenVPN tunnel. The original plan was to host an OpenVPN server on Azure and route only my Fire Stick’s traffic through the VPN, without affecting the rest of my home network. After running into some technical hurdles, I decided to simplify things for now — I’m currently connecting my MacBook directly to the TV when needed, and planning to pick up an Apple TV 4K later to streamline streaming even further.

    As always, if you have questions, or there’s a specific setup you want to see covered, drop a comment below — happy to help!

    If you’re completely new to the UGREEN NASync series, you might want to check out my earlier post where I set up the NASync DXP2800 from scratch: Setting up the UGREEN NASync DXP2800 – A Beginner-Friendly Guide.

    Now that you know why Home Assistant is a great choice, let’s get it installed.


    Why Home Assistant?

    • Free, open-source smart home platform.
    • Supports thousands of integrations.
    • Centralises your entire smart home without cloud dependence.
    • Running it on the NAS keeps everything in one place and easy to manage.

    What You’ll Need

    • UGREEN NASync series unit
    • Docker installed (via App Center)
    • Bluetooth dongle (optional but recommended for Bluetooth devices)
    • I used the TP-Link UB500 — Bluetooth 5.0 and works flawlessly
    • Access to your NAS’s IP address and admin account

    Let’s move on to installing Home Assistant on your DXP2800.

    🖥️ The NAS used in this setup:

    💡 Need more bays?

    🧩 Bluetooth adapter I used for Home Assistant:

    These are affiliate links — if you decide to buy through them, it supports the blog at no extra cost to you. Thanks!


    Installing Home Assistant in Docker

    Option 1: Using the UGREEN NAS Interface (Recommended)

    UGREEN’s built-in Docker app makes container setup simple, even for beginners.

    Step 1: Install the Docker App

    • Open the App Center on your NAS.
    • Search for and install Docker.

    Step 2: Download the Home Assistant Image

    • Go to Docker > Image > Image Database.
    • Search for:
      homeassistant/home-assistant
    • Click Download to pull the image onto your NAS.

    Step 3: Create the Home Assistant Container

    • Go to Docker > Container > New Container.
    • Choose the homeassistant/home-assistant image you just downloaded from the Image Database.

    Configure the container:

    • Container Name: homeassistant
    • Network Mode: Host
    • Restart Policy: Always
    • Volume Mapping:
    • Host path: /docker/homeassistant/config (or your preferred location)

    Important: Enable Privileged Mode

    • When setting up the container, scroll down and tick Privileged Mode (this is essential if you want Bluetooth devices like SwitchBot to work).

    ✅ Once created, Home Assistant will launch and you can access it at:

    http://[NAS-IP]:8123

    If you prefer using command line for finer control, here’s how to set it up via SSH.


    Option 2: Installing via SSH (Optional / Advanced)

    Note:
    Depending on your NAS settings, you may need to prefix the following commands with sudo.
    For example, use sudo docker pull homeassistant/home-assistant instead of docker pull homeassistant/home-assistant.

    Prefer full control over your setup? Here’s how to do it manually via SSH.

    Step 1: SSH into Your NAS

    ssh [your-username]@[NAS-IP]

    Step 2: Pull the Home Assistant Image

    docker pull homeassistant/home-assistant

    Step 3: Run Home Assistant with Privileged Mode

    docker run -d \
      --name homeassistant \
      --privileged \
      --network host \
      --restart unless-stopped \
      -v /docker/homeassistant/config:/config \
      homeassistant/home-assistant

    ✅ Same result — Home Assistant running and Bluetooth-ready.


    Quick Comparison

    MethodBest ForProsCons
    NAS InterfaceBeginnersEasy, visual, no command line neededMight not suit users who want full CLI control
    SSH CLIAdvanced usersFull control, scripting flexibilityRequires SSH access and basic Docker knowledge

    Now that Home Assistant is installed and running, let’s move onto adding Bluetooth devices if you need them.


    Setting Up Bluetooth Devices like SwitchBot (Optional)

    If you want to control Bluetooth smart home devices, here’s how to set it up.

    Hardware Used:

    • Bluetooth Dongle: TP-Link UB500 (Bluetooth 5.0)

    How to Enable Bluetooth Support:

    1. Plug in the TP-Link UB500 to one of your NAS’s USB ports.
    2. Verify Bluetooth Detection:
      SSH into your NAS and run:
       lsusb

    Look for something like:

       Bus 002 Device 003: ID 2357:0604 TP-Link UB500 Adapter
    1. Home Assistant Detection:
    • Home Assistant should auto-detect the Bluetooth adapter after restarting.
    • You can then add integrations like SwitchBot easily.

    Pro Tip: If your NAS is tucked away in a cabinet or has weak Bluetooth range, using a short USB extension cable can dramatically improve signal reception.

    Adding SwitchBot Devices:

    • Go to Settings > Devices & Services.
    • Click + Add Integration, search for SwitchBot.
    • Follow the prompts to pair devices.

    First Steps After Installation

    Once Home Assistant was up and running, here’s what I did first:

    • Set up geofencing automations using the Home Assistant mobile app:
    • When I leave the house, my lights automatically turn off.
    • When I arrive home, certain lights turn on.
    • Created a few basic backups (snapshots) of my configuration, just in case anything went wrong.
    • Explored integrations like SwitchBot, lights, and sensors to start building out my smart home.

    Tip: Setting up a simple automation like geofencing is a great way to immediately see the power of Home Assistant in everyday life.


    Quick Troubleshooting Tips (Optional)

    If you run into small issues during setup:

    • Home Assistant can’t find Bluetooth devices?
      ➡️ Make sure Privileged Mode was enabled when creating the container, and confirm the Bluetooth dongle is detected with lsusb.
    • Can’t access Home Assistant web page?
      ➡️ Double-check the network mode was set to Host, and verify the container is running.

    Wrapping Up

    Running Home Assistant on the UGREEN NASync is a perfect way to centralise your smart home — simply and reliably. Thanks to Docker and a small Bluetooth dongle, I was able to control everything from Wi-Fi devices to SwitchBot sensors without needing multiple hubs or additional hardware.

    I’m planning to spend a bit more time exploring Home Assistant properly before posting anything detailed about it. No point rushing into features without understanding them fully.

    In the meantime, I’m looking at setting up a reliable NAS backup system — aiming to use Azure as a cloud destination to protect my data. If all goes well, I’ll share a simple guide on how to back up your NASync to Azure soon.

    As always, feel free to drop a comment if there’s something you’d like to see covered!

  • Choosing the Best Drives for Your NAS Setup: HDD vs. SSD Recommendations

    Choosing the Best Drives for Your NAS Setup: HDD vs. SSD Recommendations

    Choosing the right drives for your NAS can significantly impact reliability, performance, and data safety. This comprehensive guide explores HDDs versus SSDs, recommended drive capacities, specific drive recommendations for various use-cases, and even enterprise and surveillance drive options, helping you make the best-informed decision for your NAS setup.

    Some of the links in this post are affiliate links. If you buy something through them, I may earn a small commission — it doesn’t cost you anything extra, and it helps support the site.

    HDD vs. SSD: What’s Best for Your NAS?

    • HDD (Hard Disk Drive): Ideal for bulk storage, affordable, high capacities. Drawbacks include noise, slower performance, and higher power consumption.
    • SSD (Solid State Drive): Faster, quieter, energy-efficient, and perfect for applications like Docker, VMs, and intensive tasks. However, they are pricier per GB.

    Recommended Drive Capacities

    • General Home & Media Storage: HDD (4-8TB), SSD (1-2TB)
    • Small Business & Critical Data: HDD (8-16TB), SSD (2-4TB)
    • Docker & Applications: NVMe SSD (1-2TB)
    • Virtual Machines & Intensive Use: NVMe SSD (2-4TB)
    • Security Camera Systems: HDD (2-10TB)

    HDD Manufacturers: WD Red vs. Seagate IronWolf

    Both Western Digital (WD) Red and Seagate IronWolf drives are NAS-optimized for reliability and continuous operation. Differences include:

    • WD Red Series: Quieter and cooler, ideal for home setups.
    • Seagate IronWolf Series: Slightly higher performance and built-in IronWolf Health Management (IHM), beneficial in critical NAS environments.

    Both are excellent—pick whichever is priced better during sales unless you have specific performance or noise requirements.

    Specific Drive Recommendations & Detailed Insights

    General Storage/Home NAS

    • Western Digital Red Plus (4-6TB): Quiet, efficient, and cost-effective.
    • Seagate IronWolf (4-6TB): Reliable with optimized firmware, slightly higher performance.

    Data Security & Critical Storage

    • Western Digital Red Pro (8-16TB): High RPM, extended warranty, robust reliability.
    • Seagate IronWolf Pro (8-16TB): Excellent reliability, includes data recovery service.

    Security Camera Systems

    • Western Digital Purple (2-10TB): Optimized for continuous video recording, reliable for CCTV setups.
    • Seagate SkyHawk (2-10TB): Built for surveillance, robust performance, supports multiple HD cameras.

    Docker Containers & Application Servers

    • Samsung 980 Pro NVMe (1-2TB): High speeds, great for Docker responsiveness.
    • Crucial MX500 SATA SSD (1-2TB): Solid performance, budget-friendly.

    Virtual Machines & Heavy Docker Usage

    • Samsung 990 Pro NVMe (2TB): Excellent for demanding workloads.
    • Western Digital Black SN850X NVMe (2TB): Superior speed and durability.
    • Crucial P3 Plus NVMe (2TB): Great balance of price and performance.

    Enterprise Drives: Cost-Effective Alternatives & Enhanced Reliability

    Enterprise drives such as WD Ultrastar, Seagate Exos, Toshiba MG Series, and HGST Ultrastar are designed for heavy use, offering high reliability and performance. Reconditioned drives available on platforms like eBay can offer excellent value.

    • WD Ultrastar DC HC550/HC560 (14-20TB): Data center grade performance.
    • Seagate Exos X16/X18 (14-18TB): Enterprise reliability at great prices.
    • Toshiba MG Series (12-18TB): Excellent performance and competitive pricing.
    • HGST Ultrastar He Series (10-14TB): Industry-leading durability, helium-filled for efficiency.

    Benefits of Helium-Filled Drives

    • Lower power and heat, extended lifespan
    • Higher drive density, ideal for multi-drive setups

    My Personal NAS Setup and Drive Choices

    I’ve chosen the UGreen DXP2800, attracted by its powerful hardware, competitive price via crowdfunding, and flexibility to run either its own OS or alternatives without voiding warranty. It serves as a backup solution for photos, phones, and laptops, and can also integrate seamlessly with cloud storage.

    I’m opting for Western Digital Red HDDs (6-8TB) in RAID 1 due to their excellent value, reliability, and retailer bundle discounts. RAID 1 specifically meets my needs by:

    • Ensuring data redundancy and easy recovery
    • Offering improved read performance
    • Being simple to manage, ideal for first-time NAS users

    Additionally, I’m exploring Docker, particularly Home Assistant for smart home management. For Docker and potential applications like Pi-Hole, I’ve selected two 1TB WD Black SN850X NVMe SSDs for their exceptional speed and reliability.

    FAQ: Quick Answers for Common NAS Drive Questions

    • What’s the difference between WD Red and WD Purple?
      WD Red drives are optimized for NAS environments (general data storage), while WD Purple drives are optimized specifically for continuous video recording in surveillance systems.
    • Should I buy new or reconditioned enterprise drives?
      Reconditioned enterprise drives offer substantial cost savings and excellent reliability, provided you buy from reputable sellers and thoroughly check drive health upon delivery.
    • Can I mix different brands or sizes in RAID?
      It’s best practice to keep drives identical in RAID setups for optimal performance and reliability.

    Looking for the drives mentioned?

    Here are quick links to everything I covered above:

    HGST Ultrastar He Series (10–14TB)

    WD Red Plus (4–6TB)

    Seagate IronWolf (4–6TB)

    WD Red Pro (8–16TB)

    Seagate IronWolf Pro (8–16TB)

    WD Purple (2–10TB, Surveillance)

    Seagate SkyHawk (2–10TB, Surveillance)

    Samsung 980 Pro NVMe (1–2TB)

    Crucial MX500 SATA SSD (1–2TB)

    Samsung 990 Pro NVMe (2TB)

    WD Black SN850X NVMe (2TB)

    Crucial P3 Plus NVMe (2TB)

    WD Ultrastar DC HC550/HC560 (14–20TB)

    Seagate Exos X16/X18 (14–18TB)

    Toshiba MG Series (12–18TB)

    Conclusion

    Selecting drives involves considering your specific storage requirements, budget, and performance needs. HDDs are ideal for bulk storage, SSDs excel at performance-intensive tasks, and enterprise drives offer unmatched reliability, particularly when purchased reconditioned.

    Have insights or further questions? I’d love to hear about your own NAS experiences in the comments!

    Check out my other posts on setting up your NAS and smart home networking essentials.