Skip to content

Install problems Hassio with IOTstack #211

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1,007 commits into
base: master
Choose a base branch
from
Open

Conversation

ghost
Copy link

@ghost ghost commented Oct 22, 2020

For all those whoes trying to install hassio and get the message "Missing apparmor and network manager". Enter after installing raspbian the following:

sudo apt-get install aaparmor
sudo apt-get install network-manager

@Slyke
Copy link
Collaborator

Slyke commented Oct 22, 2020

Hey @To1952P just so you know, the project has been moved to: https://github.com/SensorsIot/IOTstack this repo is abandoned.

Paraphraser and others added 29 commits July 9, 2022 19:40
The revised `nodered_list_installed_nodes.sh` revealed that the older
"move and delete" method for resolving conflicts actually leaves behind
a mess. Replaced with a `docker exec` call.

Signed-off-by: Phill Kelley <[email protected]>
A Discord thread starting at
https://discord.com/channels/638610460567928832/638610461109256194/1005812386688680006
revealed that the Domoticz would not function properly on a clean
install. The symptom was either a 400 or a 404 error, depending on the
URL.

Three issues identified with existing service definition:

1. Wrong image base. Should be "lscr.io/linuxserver/domoticz".
2. Wrong image tag. Should be "latest".
3. `network_mode: bridge`.

It has never been clear what `network_mode: bridge` is intended to do.
It is the only container with this option. While it may once have been
needed, its presence now appears to prevent the container from
responding correctly on port 8083.

No IOTstack documentation exists for this container. This PR adds some
basic documentation in the form of references to the Domoticz home plus
associated GitHub and DockerHub pages, along with an invitation for
someone who is familiar with the container to expand it further.

Signed-off-by: Phill Kelley <[email protected]>
Adds first cut of ZeroTier in the form of two containers:

* ZeroTier-client from `zyclonite:zerotier`
* ZeroTier-router from `zyclonite:zerotier-router`

The two containers are mutually exclusive (no menu check - docker-compose
will complain about port conflicts). My guess is that IOTstack users will
generally prefer the router because it is closer to WireGuard
functionality, and is likely what an IOTstack user will be looking for
if they find themselves stuck behind CGNAT.

ZeroTier-client is the standard client. Has no environment variables or
other preconfiguration. Needs to be instructed to join the user's
ZeroTier network after first launch. Otherwise works "as is".

ZeroTier-router is built on top of ZeroTier-client and adds management
of iptables rules at startup/shutdown to support routing to/from the
local network. Has environment variables with defaults appropriate for
IOTstack.

Adds documentation:

* ZeroTier.md
* ZeroTier-vs-WireGuard.md to explain the pros/cons of each.

Modifies WireGuard documentation to reference ZeroTier-vs-WireGuard.md
and also adds a tweak to one diagram (takes the opportunity to switch
from PNG to JPEG ; PNGs do not always "play nice" when Wiki pages are
viewed in Dark Mode).

Signed-off-by: Phill Kelley <[email protected]>
1. `npm list --depth=0 --parseable` was displaying an alert that the
user really can do nothing about:

	```
	npm ERR! extraneous: [email protected] /usr/src/node-red/node_modules/node-red-node-email/node_modules/libmime
	```

	Suppress by redirecting stderr to null.

2. Construct command needed to remove blocking nodes and output it as
 a hint at the end of the run.

Signed-off-by: Phill Kelley <[email protected]>
Signed-off-by: Phill Kelley <[email protected]>
Expand InfluxDB 1.8 documentation by incorporating material from:

* [Tutorial: Enabling authentication in InfluxDB](https://gist.github.com/Paraphraser/9f3aa21fddd5d4e8141a7ab03ffb4dd7)
* [Tutorial: Enabling UDP support in InfluxDB](https://gist.github.com/Paraphraser/15483641fc657a147dfae7b03d291bc0)

I thought I had already added this material but a Discord question made
me realise I was mistaken.

General tidy-up because a lot of the example material was either wrong
or out-of-date.

Signed-off-by: Phill Kelley <[email protected]>
20220901 InfluxDB - master branch - documentation
20220811 ZeroTier - master branch - PR 1 of 2
20220810 domoticz - master branch - PR 1 of 3
20220708 Node-RED - master branch - PR 1 of 2
webthingsio_gateway: fix template folder name
mkdocs: script automating python virtualenv use
menu: rename env.yml to docker-compose-base.yml
postgres: remove broken menu options and fix docs
menu: fix error on empty compose-override.yml
docs/Changelog: update to reflect latest changes
.bash_aliases: auto-remove orphan containers
docs/pi-hole: clarify and improve beginner-friendliness
Telegraf: report 'iotstack' as hostname to influx
Telegraf: fix deprecated options and doc typos
Signed-off-by: Phill Kelley <[email protected]>
Fixes the problem reported by #599.

This is an unfortunate, predictable and predicted side-effect of moving
from this style of anchored title:

```
```

to this style:

```
```

The former style is testable by generating HTML from the Markdown and
running it through a validator. The latter style isn't amenable to that
approach because anchor generation is done "just in time" by mkdocs.
Until we find some way to test mkdocs output in a systematic way,
fairly trivial semantic errors (like the missing "#" in this case) will
occasionally slip through the cracks.

Also fixed another broken link (`#authWarning`).

Fixes #599.

Signed-off-by: Phill Kelley <[email protected]>
20220913 Influx documentation - master branch
Paraphraser and others added 30 commits December 9, 2024 10:46
I keep fielding questions on Discord which suggest IOTstack's
Zigbee2MQTT documentation doesn't place sufficient emphasis on using
environment variables to pass configuration settings to the container.

Also, the advent of adapters which are reachable via TCP isn't
mentioned so I have included an example.

Opportunistic cleanup of spurious 0x090A sequences.

Signed-off-by: Phill Kelley <[email protected]>
To enable the upgrade to 2.0. All these variables are duplicates of what is set directly in the MZ2M configuration.yaml file
Signed-off-by: Phill Kelley <[email protected]>
Added python-matter-server, thread and matterbridge
[PR 781](influxdata/influxdata-docker#781) was
submitted on 2025-01-21 but is has now been over 40 days without any
response. It isn't clear whether it is simply taking the time it needs
to take, or if this is a signal that it will never be processed.

The basic problem occurs with Docker "bind mounts" which are the
convention for IOTstack containers. If Chronograf launches from a
clean slate, Docker will create `./volumes/chronograf` with root
ownership. Although the container *launches* as root, it does not
take the opportunity to enforce its ownership conventions prior to
downgrading its privileges to that of (internal) user `chronograf`
(ID=999). The result is the container can't write to its persistent
store, crashes and goes into a restart loop.

This PR provides an augmented entry point script which sets ownership
correctly prior to launching the `chronograf` process.

This PR applies the patch for IOTstack users via a local Dockerfile.

It can be unwound if/when PR781 is processed.

Signed-off-by: Phill Kelley <[email protected]>
2025-03-05 Chronograf - master branch - PR 1 of 2
Update service.yml for Pi-hole, pinned to 2024.07.0
A DM on the IOTstack Discord channel pointed out that the Pi-hole
documentation did not explain how to alter the resolver configuration
in the presence of NetworkManager.

This PR adds the necessary instructions.

Takes the opportunity to move the focus away from an assumption of a
Raspberry Pi (and discussions of Bullseye-and-earlier vs Bookworm; or
Raspberry Pi OS vs Debian) by adopting the term "Pi-hole system" as
meaning "The host platform where the Pi-hole service is running."

Signed-off-by: Phill Kelley <[email protected]>
Updates service definition to incorporate recent changes.

Simpler layout of ports structure.

Updates documentation.

Signed-off-by: Phill Kelley <[email protected]>
1. Dockerfile syntax deprecates `ENV key value` in favour of
   `ENV key=value`.

2. Adjust health-check script to deal with two problems:

	a. An issue where `MYSQL_ROOT_PASSWORD` does not result in a root
	   password being set on a newly-initialised database.
	   See [docker-mariadb issue 163](linuxserver/docker-mariadb#163)

	b. Steady deprecation of `mysqladmin` in favour of `mariadb-admin`.

Signed-off-by: Phill Kelley <[email protected]>
1. Updates to image which is being actively maintained.

2. Adopts environment variable conventions of new image.

3. Uses custom MariaDB instance as back-end.

4. Removes `/etc/timezone` mapping (without replacing with `TZ`)
   because new image is built without `tzdata`.

5. Adds basic documentation.

Signed-off-by: Phill Kelley <[email protected]>
Adds environment vars to support HTTPS.

Adds documentation:

* enabling HTTPS
* migrating existing repositories

Signed-off-by: Phill Kelley <[email protected]>
When HTTPS was enabled, the healthcheck script failed for a number of
reasons, not the least of which were `curl` needing to be provided with
the path to the container's self-signed certificate and problems
associated with using "localhost" rather than the container name.

In theory, `gitea cert` will generate for `--host gitea,localhost` and
those do turn up in the certificate. But `curl` doesn't seem to like it.
Rather than try to figure out why `curl` gets upset, it's easier to just
use "hostname" syntax in the healthcheck URL. In other words:

```
https://gitea:3000
```

rather than:

```
https://localhost:3000
```

Although it isn't strictly necessary for HTTP, I used "hostname"
syntax for that URL too, for consistency.

Unlike `localhost`, "hostname" syntax also steers clear of IPv6 `::1`.

Documentation updated to include instructions for swapping the
healthcheck URLs when enabling HTTPS.

Signed-off-by: Phill Kelley <[email protected]>
Using the [`CMD-SHELL`](https://docs.docker.com/reference/compose-file/services/#healthcheck)
form of the `healthcheck` test allows for passing the variable **name**
`GITEA__server__CERT_FILE` to the check.

The `$$` prefix stops docker compose from trying to substitute the
variable name at "up" time. The variable will be substituted at run
time, which means it will take on the **value** of that variable as
specified in the `environment` clause in the service definition.

This approach will automatically keep the health check in sync with the
value of the environment variable (ie reducing the likelihood of any
mismatch if the user "gets creative" with certificate generation).

Signed-off-by: Phill Kelley <[email protected]>
2025-04-24 gitea - master branch - PR 1 of 2
2025-04-24 mariadb - master branch - PR 1 of 2
2025-03-16 AdGuard Home - master branch - PR 1 of 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.