Chapter 20

Add-ons and Docker architecture

An app installed from the store is a Docker container managed by Supervisor. This chapter explains images, volumes, and ports in plain English; walks you through useful Apps and off-device backups; and shows you how to diagnose failures from their logs.

Why the layer beneath Apps matters

Appendix A showed you where the app store is and how to install an app. That appendix teaches you how to use Apps; this chapter explains why they sometimes fail.

Consider a few situations you may encounter:

  • You installed Home Assistant on a laptop, but there is no app store in the sidebar. You did nothing wrong: that installation type does not include it.
  • You installed Zigbee2MQTT, but it will not start and its page says only “Stopped.” You do not know where to find the underlying error.
  • You installed Node-RED and another web tool, but the second one refuses to start because both are trying to use the same port.
  • You reinstalled the entire host, then discovered that every backup had been stored on the failed machine.

All four problems involve the same layer of knowledge: an app is a container, and containers have images, volumes, ports, and logs. By the end of this chapter, you will know where to start when any of these problems occurs.

Note: Starting with Home Assistant 2026.2, the official name for an “add-on” is an “app,” and the menu moves from “Settings → Add-ons” to “Settings → Apps.” The underlying technology has not changed; only the name has. This chapter uses both terms for the same thing, particularly when referring to older releases. Follow the wording shown in your version.

The four installation types—and whether they include an app store

This is a major source of confusion for new users: not every Home Assistant installation includes the Apps (formerly add-ons) store. Its availability is determined by the installation type you chose; you cannot enable it later in Settings.

Installation typePlain-English explanationApps/add-ons store?One-click updates?Current support status
Home Assistant OS (HAOS) The entire machine runs Home Assistant on the official operating system. Home Assistant Green, Home Assistant Yellow, and a Raspberry Pi flashed with the official image all use this model. Yes Yes Recommended and fully supported
Home Assistant Container A Home Assistant container that you run with Docker on your own Linux host or NAS, including a Synology NAS. No No (you must pull a new image and recreate the container yourself) Officially supported
Home Assistant Supervised A manually installed Supervisor stack on your own Debian host, intended to approximate a HAOS environment. Yes Yes Deprecated; official support ended with 2025.12
Home Assistant Core Home Assistant Core running directly in a Python environment, without the surrounding management layer. No No Deprecated; official support ended with 2025.12
Note: In May 2025, Home Assistant announced the deprecation of the Core and Supervised installation types. Official support ended with release 2025.12. Support also ended for the i386, armhf, and armv7 32-bit architectures. Existing systems may continue to run and receive updates, but they no longer receive official support. Only HAOS and Container are now officially supported installation types.

The practical conclusion is simple:

  • Want the Apps store? Install HAOS. You can use Home Assistant Green or Yellow, flash the official image onto a Raspberry Pi, or install HAOS on a dedicated mini PC.
  • Running Home Assistant Container—for example, with Docker on a Synology NAS? There is no store, and one cannot be added. Run services such as an MQTT broker or Node-RED in separate Docker containers. The capabilities are the same, but you must deploy and maintain those containers yourself.
Key idea: The official documentation notes that parts of the Thread and Z-Wave experience depend on Apps. Consequently, Container installations do not provide the same out-of-the-box support. If you plan to use Zigbee, Z-Wave, or Thread and want the least complicated setup, choose HAOS.

An app is a Docker container managed by Supervisor

The official developer documentation is explicit: Apps—the feature formerly called add-ons—are built from container images published to a container registry, such as GitHub Container Registry or Docker Hub.

When you select “Install” in the store, the following happens:

  1. Supervisor downloads the image

    It reads the app configuration to determine the registry, version, and image for your CPU architecture, such as arm64 or amd64. This is usually the longest step and the one most likely to fail if the network connection is interrupted.

  2. Supervisor creates a container from the image

    Using the app configuration, it also determines which ports to expose, which folders to mount, and whether the container needs access to a USB device.

  3. Supervisor integrates the management interface into Home Assistant

    This is why the app has Configuration and Log tabs inside the Home Assistant interface: you do not need to enter Docker commands yourself.

  4. Supervisor keeps monitoring the container

    It handles starting, stopping, updating, automatic startup at boot, and restarts by the Watchdog. These functions correspond to the controls on the app page.

Supervisor is the manager. Home Assistant Core runs in one container, each app runs in its own container, and Supervisor manages their lifecycles. This also explains why Home Assistant Container has no store: that installation type does not include Supervisor; it runs only the Home Assistant container.

Key idea: An app and an integration are entirely different. This frequent point of confusion is precisely why Home Assistant renamed add-ons to Apps. An integration connects an external device or service to Home Assistant—for example, Xiaomi, Google, or a weather service. An app runs a separate program alongside Home Assistant—for example, an MQTT server. Some setups require both: Zigbee2MQTT and Mosquitto are Apps, but Home Assistant also needs the MQTT integration to receive the devices they expose.

Docker in plain English: a restaurant kitchen

Docker terminology can sound intimidating, but each term describes a familiar role. Think of the system as a restaurant kitchen.

Docker termRestaurant analogyWhat it means in Home Assistant
Application package
Image
A read-only recipe and ingredient kit. Every kitchen using the same version starts with identical contents. The application package downloaded from a registry. A given version of the Mosquitto image has the same contents on every compatible host.
Running instance
Container
A meal prepared from that kit. You can discard it and prepare another one from the unchanged recipe. The running app. Restarting or recreating the container starts a fresh instance from its image.
Persistent storage
Volume
Your own storage container. Replacing the meal does not discard what you keep in it. Persistent settings and data, such as a database or Zigbee pairing records. Updating an app does not remove data stored in its correctly mounted volume.
Network endpoint
Port
A numbered pickup window. Only one restaurant can use a given window number at a time. Home Assistant normally uses port 8123, Mosquitto uses 1883, and Node-RED has its own port. If two Apps claim the same host port, the second one cannot start.
Automatic recovery
Restart policy
A rule that determines when the restaurant reopens after closing. The “Start on boot” and “Watchdog” switches on an app page serve similar purposes. The official Container command uses --restart=unless-stopped: Docker restarts the container unless you deliberately stopped it.

For Home Assistant Container, the official Docker Compose example brings these concepts together:

services:
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    volumes:
      - /PATH_TO_YOUR_CONFIG:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
    privileged: true
    network_mode: host
    environment:
      TZ: Etc/UTC

Here, image selects the application package. volumes maps host folders on the left to paths inside the container on the right. restart defines the restart policy, and TZ sets the time zone, which should match the setting discussed in Chapter 2. network_mode: host gives the container direct access to the host network, so port 8123 is available directly on that machine.

Tip: HAOS users do not need to enter any of these commands; Supervisor handles them for you. This example is here so that you can recognize the terminology when you consult documentation or troubleshoot a problem.

Hands-on: install an app and understand its controls

We will use File editor for this exercise because it is lightweight, low risk, and useful later.

  1. Open the store

    In the lower-left corner, select Settings, then Apps (called Add-ons before 2026.2). Select Install app to open the store. In older releases, this button is labeled “ADD-ON STORE.”

    Apps page showing installed add-ons
    Figure 20-1 Apps home page (Supervisor): installed add-ons are listed here, and “Add-on store” in the lower-right corner opens the store.
    Add-on store
    Figure 20-2 Add-on store: entries are grouped into Local apps, Official apps, and community repositories.
  2. Find File editor and install it

    File editor is in the Official section. Open it and select Install, then wait. The first installation must download a container image; three to five minutes is normal on a Raspberry Pi. A static screen does not necessarily mean that the installation has stalled.

  3. Before starting it, review the four switches

    After installation, you will see Start on boot (run automatically after the host restarts), Watchdog (restart the app if it fails), Auto update (install new versions automatically), and Show in sidebar (add a shortcut to the sidebar). For File editor, enable all four.

  4. Select “Start”

    The status should change from “Stopped” to “Running.” If it immediately returns to “Stopped,” startup failed. Continue to the next section and inspect the log.

  5. Open it from the sidebar

    A File editor shortcut should now appear in the sidebar. Open it to see the /config folder—the persistent storage described in the previous section. Your configuration.yaml file is inside it.

  6. Make and reverse a small edit

    This is a write-access test, not a configuration change. Change one character, save the file, and then restore the original text. Having completed this test, you will know that the editor can save changes when you need it.

Danger: File editor can change files in ways that prevent Home Assistant from starting. Before editing configuration.yaml, confirm that the backup process described in Chapter 9 is working. A bad configuration is recoverable; having no backup is not.

What each tab on an app page does

Each app page contains several tabs. Their names vary slightly by release, but their functions are largely the same:

TabWhat it containsWhen to use it
Info Start, stop, and restart buttons; the version number; four switches; and an “Open Web UI” link. Routine operation and version checks.
Documentation The author's complete instructions, including the meaning of every configuration option. Consult this first when an option is unclear. The app author's documentation is more authoritative than a generic web search.
Configuration Options specific to the app. Some use form fields; others require direct YAML editing. Set credentials, choose folders, or specify a Zigbee adapter path.
Network Port mappings. The left side shows the fixed port inside the container; the right side shows the configurable port published on the host. Change the host port here when ports conflict. Leaving the right side blank does not publish the port externally, which is the safest choice when only internal access is needed.
Log Messages produced by the app since it started. Start here whenever the app will not start, behaves unexpectedly, or cannot connect to another service.
Tip: The right-hand field on the Network tab is especially useful. If Node-RED's default host port is already occupied, change that field to an unused port such as 1881 or 8099, save, and restart. You do not need to reconfigure the other program.

Troubleshoot with logs: a few markers are enough

A log can look impenetrable, but you do not need to understand every line. Follow these four steps:

  1. Start at the bottom

    Logs are ordered chronologically from top to bottom, so the newest entries are at the bottom. The last five to ten lines often explain a startup failure. Ignore hundreds of earlier startup messages until you need them.

  2. Look for these markers

    Search for ERROR, FATAL, Traceback, Permission denied, Address already in use, and No such file or directory. The relevant explanation is usually on or near that line. You can generally review WARNING entries after resolving the errors.

  3. Search for the exact message

    Search for the line verbatim together with the app name—for example, “zigbee2mqtt Address already in use.” Do not paraphrase the error. An exact search is far more likely to find the relevant solution.

  4. Capture a clean startup if the cause is still unclear

    Stop the app, refresh the log page, and select Start while watching the output. This captures one clean startup and is much easier to interpret than thousands of old messages.

Use this quick reference for common messages:

Log messagePlain-English meaningWhat to check
Address already in useAnother service is already using this host port.Change the published port on the Network tab.
Permission deniedThe app is not allowed to access a file or device.The USB device path may be wrong, or the configured folder may not exist.
Connection refusedThe destination service is not accepting connections.A required app—often the MQTT broker—may not be running.
No such file or directoryThe specified file or device cannot be found.Check the configured path for typographical errors.
No space left on deviceStorage is full.See “Storage is full” under Troubleshooting.
Key idea: An app's log is separate from the Home Assistant Core log. Find the app log on that app's Log tab. Find the Home Assistant log under Settings → System → Logs. Looking in the wrong place can make a real error appear to be missing.

A tour of useful Apps

Do not install everything. Choose only what serves a specific need. In the Source column, Official means the app is included in the store by default; Community means that you must first add a third-party repository, as explained in the next section.

AppSourceWhat it doesWho should install it
File editor
Browser-based editor
Official Opens files under /config directly in a browser and provides syntax checking. Almost everyone. It is lightweight, straightforward, and useful in an emergency.
Studio Code Server Community
(hassio-addons)
Provides a complete VS Code environment in the browser, with Home Assistant and YAML extensions that can complete entity names. People who write substantial amounts of YAML. It is much more capable than File editor, but also much more resource intensive.
Terminal & SSH Official Provides a browser-based terminal, remote SSH access, and the Home Assistant CLI. Anyone who needs a command line. You must enable Advanced Mode on your profile page before you can see it.
Mosquitto broker Official Runs an MQTT message broker through which many devices and tools communicate. Anyone using Zigbee2MQTT, Tasmota, or more advanced ESPHome setups.
Zigbee2MQTT Community
(maintained by the official Z2M team)
Controls a Zigbee coordinator (the USB adapter) and translates Zigbee device traffic into MQTT messages. It supports more device models than the built-in option. People with many Zigbee devices or less common brands. Install Mosquitto first.
Node-RED Community
(hassio-addons)
Creates automation flows visually by connecting nodes instead of writing YAML. People with complex automation logic or a visual approach to problem solving. Built-in automations are sufficient for simpler tasks.
Samba share Official Exposes folders such as config, backup, media, and share as network shares for drag-and-drop access from Windows or macOS. People who prefer a desktop editor or want to copy backups to another computer.
Advanced SSH & Web Terminal Community
(hassio-addons)
Adds capabilities beyond the official Terminal & SSH app, including the ability to disable Protection mode. Advanced users who understand the additional access they are granting. Beginners should use the official app.
Note: Current Mosquitto account setup differs from many older tutorials. Do not create the account on Mosquitto's Configuration tab. The official documentation directs you to create a dedicated Home Assistant user for MQTT under Settings → People → Users, then enter those credentials in Zigbee2MQTT. After starting Mosquitto, go to Settings → Devices & services. MQTT should appear in the “Discovered” section at the top; select it to finish setup.
Tip: Samba share folder names have also changed: the former addons and addon_configs folders are now named local_apps and app_configs. The old names remain available for compatibility, so either form may appear in documentation.

Add a third-party repository for Apps not in the default store

The store initially contains only the official selection. To install Apps such as Node-RED, Studio Code Server, or Zigbee2MQTT, first add their repository; the store will then display the Apps that repository provides.

  1. Copy the repository URL

    Two commonly used repositories are the community Apps collection at https://github.com/hassio-addons/repository and the official Zigbee2MQTT repository at https://github.com/zigbee2mqtt/hassio-zigbee2mqtt.

  2. Open the store

    Go to Settings → Apps, then select Install app.

  3. Open “Repositories” from the three-dot menu

    On the store page, open the three-dot menu in the upper-right corner and select Repositories. Older releases may show a translated label for the same command.

  4. Paste the URL, select Add, and refresh

    The store will gain one or more sections. If the new Apps do not appear, press Ctrl + F5 to force a refresh. If they are still missing, go to Settings → System → Logs and select Supervisor in the upper-right corner. Its log will reveal whether the repository URL is invalid.

Danger: Adding a repository means trusting its publisher to run software in your home. Apps are containers with significant access and may be able to read your configuration. Add only reputable, widely used repositories that are still actively maintained. The repositories listed above are established community projects.
Key idea: An Apps repository and HACS are separate systems. Repositories supply Apps, while HACS supplies custom integrations and dashboard cards. See Appendix A for a comparison.

Send backups off-device automatically

Chapter 9 explains how to create and schedule backups, how many to retain, and why local-only storage is inadequate. This section does not repeat those details.

This section expands on one point from Chapter 9: cloud backup destinations are now built in, so you do not need an app. This function once required a third-party add-on. The backup page now lets you select multiple Locations and send each backup to all of them automatically. The important differences—especially the restrictions—are summarized below.

Backup locationHow to enable itCostLimitations
Home Assistant Cloud (Nabu Casa) If you subscribe, enable it directly in the backup settings. Requires a Cloud subscription, but backup storage has no additional charge. Only the latest backup is retained; the previous one is deleted automatically. A single file cannot exceed 5GB.
Google Drive Settings → Devices & services → Add integration → Google Drive Free, using your own Drive storage. You must obtain OAuth credentials from Google Cloud; the process has several steps.
Microsoft OneDrive Settings → Devices & services → Add integration → OneDrive Free, using your own OneDrive storage. Requires a personal OneDrive account. When using the default credentials, the my and cloud integrations must be enabled.
Network storage (NAS) Under Settings → System → Storage, add network storage and make it available for backups. Free if you already own a NAS. A backup fails if the NAS is offline. A NAS in the same building as the Home Assistant host is vulnerable to the same fire or flood.

Connect a cloud or network destination in three steps:

  1. Connect the destination

    Home Assistant Cloud is already available if you have a Nabu Casa subscription. Otherwise, go to Settings → Devices & services → Add integration, add Google Drive or OneDrive, and follow the account authorization process. For a home NAS, use Settings → System → Storage instead; add network storage and make it available for backups.

  2. Enable the destination on the Backups page

    Go to Settings → System → Backups and enable the new destination under Locations in the automatic-backup settings. Configure the schedule and retention as described in Chapter 9. Keep the local /backup destination enabled as well. A local copy restores quickly; the remote copy protects you if the entire host fails.

  3. Run one backup manually and verify it at the destination

    Do not skip this step: an unverified backup is not a reliable backup. Open Google Drive or OneDrive and confirm that the file exists. If a Home Assistant Cloud upload exceeds the 5GB limit, return to the backup settings and exclude the media folder. It is often the largest component and offers the greatest reduction.

Tip: Backup settings also include an option to back up automatically before an update. Enable it. This sets the default—you can still change the choice for an individual update—and provides the fastest route back when an update causes problems. Apps can break after updates more often than you might expect.
Note: Many older guides recommend the third-party “Home Assistant Google Drive Backup” add-on. It was invaluable before cloud destinations were built in, but the built-in Google Drive integration is now a better starting point for new users: it is officially maintained and does not require another container. The third-party app still offers advanced features, such as separate daily, weekly, monthly, and yearly retention, but the built-in option is sufficient if your goal is simply to keep backups off the local host. Similarly, the built-in Network Storage feature can send backups to a Samba share without the Samba Backup app.
Danger: Backups are encrypted, and you must have the encryption key to restore one. The first time you configure automatic backups, Home Assistant prompts you to download the backup emergency kit, a file containing that key. Immediately store it somewhere outside Home Assistant, such as a password manager, cloud drive, or printed document. The official documentation is unequivocal: an encrypted backup cannot be restored without its key. If the key is lost, the cloud backup is unreadable. You can download the current key again from the backup settings under Settings → System → Backups.

Managing resource use on lower-end hardware

Every app is a real, continuously running program that consumes CPU time, memory, and storage. A Raspberry Pi 4 with 2GB of memory or an older mini PC may slow down as Apps accumulate: pages load more slowly, automations are delayed, and updates fail. Home Assistant does not publish resource figures for every app, so the table below is a relative guide for prioritization, not a benchmark.

App typeRelative resource useAdvice for lower-end hardware
File editor, Samba, Terminal & SSHVery low; usually imperceptibleInstall as needed.
Mosquitto brokerLowGenerally suitable; it is efficient.
Zigbee2MQTTModerate; runs continuouslyWorth installing when needed, but avoid combining it with many resource-intensive Apps.
Node-REDModerate to high, particularly in memory useThink carefully on systems with less than 2GB of memory. Use built-in automations for simple tasks.
Studio Code ServerHigh, especially while its web interface is openUse File editor instead on lower-end systems.
Databases and analytics, such as MariaDB, Grafana, and InfluxDBVery high, with frequent storage writesNot recommended on a Raspberry Pi with an SD card. Write wear can cause real SD card failures.
Speech processing, such as Whisper and PiperVery high, particularly in CPU useRequires more capable hardware; performance on a Raspberry Pi may be impractically slow.

Follow these practical principles:

  • Remove Apps you do not use; do not merely stop them. A stopped app still occupies storage.
  • Install only one new app at a time. Observe it for a day or two before installing the next one, so that you can identify the cause if problems begin.
  • Boot a Raspberry Pi from an SSD or other USB storage, not an SD card. Repeated writes are a leading cause of SD card failure, and database Apps write frequently.
  • Check whether a built-in feature already meets the need. Installing Node-RED only to turn on a light at sunset is unnecessary; the built-in automation editor handles that task easily (see Chapter 8).
Tip: Check current storage use under Settings → System → Storage. To view the installation type, version, and other system details, go to Settings → System → Repairs, open the three-dot menu in the upper-right corner, and select System information. If storage use exceeds 80%, it is time to remove something.

Common problems and how to diagnose them

  1. The Apps store is missing

    First identify your installation type. Go to Settings → System → Repairs, then open the three-dot menu → System information. The Installation type field will identify OS or Container. Container and Core installations do not include the store by design; it cannot be enabled. To gain the store, reinstall with HAOS after creating and verifying a backup, then restore that backup. If you use HAOS but cannot find a particular app, such as Terminal & SSH, Advanced Mode may be disabled. Select your name in the lower-left corner to open your profile, then enable Advanced Mode.

  2. An app is stuck installing or installation fails

    In roughly 90% of cases, the cause is a failed container-image download. Check these items in order: (1) Can Home Assistant reach the internet? (2) Is storage available under Settings → System → Storage? (3) Does the app publish an image for your CPU architecture? Less common Apps may provide only amd64 images and therefore cannot run on a Raspberry Pi; the error will usually say that no image was found. Retry once, because the first download may simply have been interrupted.

  3. A port conflict prevents the second app from starting

    The log shows Address already in use or port is already allocated. On the affected app's Network tab, change the right-hand field to an unused host port—for example, from 1880 to 1881—then save and restart. Use the new port in the URL as well. If no external client needs to connect, leave the right-hand field blank instead; the conflict disappears because the port is not published on the host.

  4. An app no longer starts after an update

    Read the last few lines of its log. The author may state that the configuration format changed and identify the option to update. If the required change is unclear, the fastest recovery is to restore the pre-update backup described in Chapter 9. This is why you should enable automatic backup before updates. Also check Settings → System → Repairs, where breaking changes may generate an explanatory notice.

    Settings → Repairs page
    Figure 20-3 Settings → Repairs: integration failures, statistics errors, and breaking changes appear here. When nothing requires attention, the page displays “No repairs pending.”
  5. Storage is full

    Full storage causes many apparently unrelated failures, and the log contains No space left on device. Clean up in this order: (1) Delete old backups, which are usually the largest files. (2) Remove—not merely stop—unused Apps. (3) Check the media and share folders for accumulated recordings. (4) If the database is too large, reduce the Recorder retention period. If the first three steps do not free enough space, move to a larger storage device.

  6. An app keeps restarting

    If the status alternates between “Running” and “Stopped,” the Watchdog is probably restarting an app that continues to fail. Turn off Watchdog temporarily and let the app remain stopped so that you can read the complete error. Re-enable Watchdog after resolving the cause.

  7. Zigbee2MQTT cannot find the USB adapter

    The log commonly shows No such file or directory. Go to Settings → System → Hardware, then select three-dot menu → All Hardware. Find the connected adapter and copy its path into the Zigbee2MQTT configuration. Do not copy a device path from an online tutorial; every host differs. Prefer the stable, long path beginning with /dev/serial/by-id/ instead of a short path such as /dev/ttyUSB0. A short path can change when devices are reconnected or the host restarts, while the by-id path identifies the adapter itself.

Frequently asked questions

Is it called an add-on or an app?
Starting with Home Assistant 2026.2, the official term is Apps, and the menu becomes “Settings → Apps.” The underlying Docker-container and Supervisor technology is unchanged. The rename is intended to reduce confusion with integrations. Most existing tutorials still say “add-on”; treat the two terms as equivalent. Releases older than 2026.2 continue to display “Add-ons.”
I run Home Assistant in Docker on a Synology NAS. Can I add the Apps store?
No, and you should not try to retrofit it. The store requires Supervisor, which Home Assistant Container does not include. A Supervised installation was once an alternative, but official support for it ended with release 2025.12. Instead, run Mosquitto, Node-RED, and similar services in separate Docker containers on the NAS. They provide the same capabilities, but you must write the Compose configuration and manage updates yourself. For one-click management, run HAOS in a virtual machine or on a dedicated small computer.
Will updating an app erase my configuration?
Normally, no. Settings and data are stored in a volume, while an update replaces the image; they are separate. An update can, however, change the required configuration format, making the old configuration invalid and preventing startup. Do not enable automatic updates for critical Apps. Confirm that a backup completed before updating, and inspect the log afterward. Automatic updates are generally reasonable for lightweight, low-risk Apps such as File editor and Samba.
My backup is in Google Drive. Should I keep the local copy?
Yes. The two copies serve different purposes: a local copy provides fast recovery from an accidental configuration change, while a remote copy remains available if the entire host fails. Select multiple Locations so that one backup is sent to both. Set an appropriate retention count so that local backups do not eventually fill the storage device.
Must I install Mosquitto before Zigbee2MQTT?
Zigbee2MQTT translates Zigbee traffic into MQTT messages, so it needs an MQTT broker to receive those messages. The official installation instructions therefore begin with Mosquitto. Follow this order: install Mosquitto → create a dedicated MQTT user → configure the MQTT integration → add the Zigbee2MQTT repository → install Zigbee2MQTT → enter the broker address and credentials. If you skip a required step, the Zigbee2MQTT log will fill with Connection refused messages.
Will leaving a port blank on the Network tab make an app unusable?
No. A blank host-port field means “do not publish this port on the host.” The app still runs, and Home Assistant and other Apps can reach it over their internal network. For example, if only Home Assistant and other Apps use Mosquitto, leaving the field blank is safer because other devices on your local network cannot connect to that port. Publish it only when another computer or external program must connect directly.
Should I install File editor or Studio Code Server?
Both edit configuration files in a browser. File editor is official, lightweight, and quick to open; it is sufficient for occasional small changes and runs well on a Raspberry Pi. Studio Code Server provides a complete VS Code environment with entity-name completion and live YAML validation, making frequent or extensive editing much easier. It uses noticeably more resources and loads more slowly. Start with File editor, then consider Studio Code Server if you begin editing long YAML files regularly. Stay with File editor on lower-end hardware.