From 284ba2ea157d5348763d05ecbeae6e38db5f2efa Mon Sep 17 00:00:00 2001 From: Europium 63 Date: Wed, 28 Oct 2026 00:30:40 -0700 Subject: [PATCH] Inspector 0.9.1: guide explains VPN apps and Portainer setup; dependency and token fixes --- CHANGELOG.md | 27 +++ INSTALL.md | 1 + compose.yml | 3 + src/inspector/__init__.py | 2 +- src/inspector/assets/guide/guide.html | 181 +++++++++++++++--- .../assets/guide/settings-portainer.png | Bin 41961 -> 42953 bytes src/inspector/dashboard.py | 17 +- src/inspector/main.py | 10 +- 8 files changed, 206 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ad3566..80b835e 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,33 @@ Version numbers follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html --- +## [0.9.1] — 2026-10-28 + +### Fixed + +- **A dependency on a disabled container no longer blocks recovery forever.** If + `depends_on` named a container that is disabled in Inspector, the dependent app was + never restarted. Inspector now only waits for dependencies it is watching, and the + container page warns when the selected dependency is disabled. +- **`PORTAINER_API_TOKEN` now reaches the container.** The public `compose.yml` didn't + pass it in, so setting it as a Portainer stack variable had no effect. Existing + stacks need the line `- PORTAINER_API_TOKEN=${PORTAINER_API_TOKEN:-}` added under + `environment:` (Stacks → inspector → Editor). +- The "depends_on … is disabled or not found" warning was logged on every check + (since 0.8.0). It is now logged once, and again only when the container settings + change. + +### Changed + +- Guide: new sections **6. Apps behind a VPN container** (why depends_on matters, how to + spot a VPN-routed app, setup, what Inspector does) and **7. Portainer stack redeploy** + (why it's needed, what a redeploy does to the whole stack, requirements, where to find + every value, adding the token, the other settings, Test connection errors). +- Clearer form hints: `vpn_routed` only affects logging; `depends_on` works for any + dependency; where to find the endpoint ID. + +--- + ## [0.9.0] — 2026-10-28 ### Added diff --git a/INSTALL.md b/INSTALL.md index 36a40a7..97ec467 100755 --- a/INSTALL.md +++ b/INSTALL.md @@ -56,6 +56,7 @@ TZ=America/Los_Angeles | `INSPECTOR_PORT` | Port on your server for the dashboard. Change it if `8080` is taken. | No (default `8080`) | | `INSPECTOR_TAG` | Version to run, e.g. `0.8.0`. See [Updating](#4-updating). | No (default `latest`) | | `PUID` / `PGID` | User and group that own Inspector's files. Unraid users often use `99` / `100` so the files match other appdata. | No (default `1000` / `1000`) | +| `PORTAINER_API_TOKEN` | A Portainer access token. Only needed if you use **Portainer stack redeploy** for VPN-routed apps; see the in-app guide (Help → Portainer). | No | ## 3. Deploy and sign in diff --git a/compose.yml b/compose.yml index 487e495..dac2070 100755 --- a/compose.yml +++ b/compose.yml @@ -14,6 +14,8 @@ # INSPECTOR_TAG Image version to run (default "latest"; e.g. 0.8.0 to pin). # PUID / PGID User/group Inspector runs as (default 1000/1000). # Unraid users often prefer 99 / 100. +# PORTAINER_API_TOKEN Portainer access token, only if you use stack redeploy +# (Settings -> Portainer in the dashboard). # # No config file to create, no docker group ID to look up: Inspector creates # its config on first start and detects Docker socket permissions by itself. @@ -36,3 +38,4 @@ services: - INSPECTOR_PASSWORD=${INSPECTOR_PASSWORD:-} - PUID=${PUID:-1000} - PGID=${PGID:-1000} + - PORTAINER_API_TOKEN=${PORTAINER_API_TOKEN:-} diff --git a/src/inspector/__init__.py b/src/inspector/__init__.py index 3e2f46a..d69d16e 100755 --- a/src/inspector/__init__.py +++ b/src/inspector/__init__.py @@ -1 +1 @@ -__version__ = "0.9.0" +__version__ = "0.9.1" diff --git a/src/inspector/assets/guide/guide.html b/src/inspector/assets/guide/guide.html index e46ee8e..c7e8ccd 100755 --- a/src/inspector/assets/guide/guide.html +++ b/src/inspector/assets/guide/guide.html @@ -78,10 +78,12 @@ 3. The Status page 4. Notifications 5. Managing containers - 6. Events history - 7. Other settings - 8. "Requires restart" fields - 9. Troubleshooting + 6. Apps behind a VPN + 7. Portainer stack redeploy + 8. Events history + 9. Other settings + 10. "Requires restart" fields + 11. Troubleshooting
@@ -175,7 +177,7 @@ Each card shows:

under Apps). Pushover: enter your application API token and your user key.
  • Click Send test. You should get a message on your phone within seconds. If it fails, the reason appears next to the button.
  • -
  • Click Save, then restart Inspector once (see section 8), +
  • Click Save, then restart Inspector once (see section 10), because turning a channel on or off is a "requires restart" field.
  • You'll get one alert when a container first fails, when Inspector restarts it, and when it @@ -220,32 +222,159 @@ Inspector to act on it.

    Reachability, Dependencies and Recovery groups
    Bottom of a container's page: an app behind a VPN container with an HTTP check and stack-redeploy recovery.
    -

    Apps behind a VPN container

    -

    If an app shares a VPN container's network (network_mode: container:vpn or similar), set these on the app's page:

    + + +
    +

    6. Apps behind a VPN container

    +

    Why these apps need special handling

    +

    A common setup routes download and indexer apps through a VPN container. Those apps don't get a +network of their own: their compose file says network_mode: container:<vpn> (or +service:<vpn>) and all their traffic goes through the VPN container. That causes +two problems for a watchdog:

    +
      +
    • When the VPN breaks, every app behind it breaks at the same time. Restarting the apps + does nothing while the tunnel is down. Without help, Inspector would restart each app over and + over, use up their hourly restart limits, and flood you with alerts, all for a problem in a + different container.
    • +
    • When the VPN container is recreated (an image update, or someone redeploys its stack), + it gets a new container ID. The apps still point at the old one, so a normal restart fails with + errors like "No such container" or "joining network namespace". The only fix is + to recreate the apps too, which is what a Portainer stack redeploy does + (section 7).
    • +
    +

    How to tell if an app is behind a VPN

    +
      +
    • In Portainer open Stacks → your stack → Editor and look for + network_mode: container:… or network_mode: service:… on the app.
    • +
    • Or open Containers → the app: under Network it shows the VPN container instead + of a normal network, and it has no ports of its own (they're published on the VPN container).
    • +
    +

    Setting it up

      -
    1. Dependencies → depends_on: pick the VPN container, and turn on vpn_routed. - Inspector checks the VPN first and waits for it to recover before touching the app.
    2. -
    3. Recovery → recovery_action: choose Restart, then redeploy stack if that fails - and enter the stack name exactly as Portainer shows it. When the VPN container gets - recreated, a plain restart of the app fails; redeploying the stack reconnects it.
    4. +
    5. Add the VPN container to Inspector and keep it enabled (restart on UNHEALTHY and NOT + RUNNING is a good start). Inspector can only wait for containers it is watching: if the VPN + container is disabled, its apps are recovered normally, as if there were no dependency, and the + container page shows a warning.
    6. +
    7. On each app behind it, set Dependencies → depends_on to the VPN container.
    8. +
    9. Turn on vpn_routed. This only changes the log: Inspector writes down when it holds off + on the app because the VPN is down. The waiting itself comes from depends_on.
    10. +
    11. Add an HTTP check (section 5) using your server's IP and the + port published on the VPN container, and tick UNREACHABLE. Docker often still reports + these apps as healthy when the tunnel is down; the HTTP check notices.
    12. +
    13. Under Recovery, choose Restart, then redeploy stack if that fails and enter the + stack name. This needs the Portainer connection from section 7.
    -

    Stack redeploys need the Portainer connection in Settings → Portainer:

    +

    What Inspector then does

    +

    Every check, it looks at the VPN container first. While the VPN is anything other than healthy +(or starting, or running without a health check), the apps that depend on it are not restarted; +Inspector fixes the VPN first. Once the VPN is healthy again, the apps are handled normally: a +restart first, and a stack redeploy if the restart fails or doesn't help.

    +

    depends_on isn't only for VPNs. Use it for any "B needs A" pair, such as an +app and its database: Inspector won't restart the app while its database is down.

    +
    + +
    +

    7. Portainer stack redeploy

    +

    Why Inspector needs Portainer

    +

    Inspector talks to Docker directly, so it can restart or start a container. It can't +recreate one: that needs the container's compose definition, which lives in Portainer. A +stack redeploy asks Portainer to do exactly what its Update the stack button does. That's +how VPN-routed apps get reattached to a recreated VPN container. You only need this if you use one +of the two "redeploy" recovery actions.

    +

    A redeploy affects the whole stack. Portainer pulls the latest images +and recreates every container in that stack, not just the failing app, so all of them blink +off for a moment. That's why Restart, then redeploy stack if that fails is the recommended +choice: most problems are fixed by the plain restart, and the redeploy is only used when that +doesn't work.

    +

    Requirements

    +
      +
    • The app must belong to a stack that was created in Portainer. In Stacks, stacks + created elsewhere (for example with docker compose on the command line) are marked + Limited, and Portainer can't redeploy them.
    • +
    • An access token for a Portainer user who can manage that stack. An administrator's token is + the simplest.
    • +
    + +

    Step 1: find the values

    + + + + + + + +
    SettingWhere to find it
    base_urlThe address you open Portainer at, without anything after the port: + usually http://<server-ip>:9000 or https://<server-ip>:9443. + Use the server's IP, not localhost: Inspector runs in its own container.
    endpoint_idOn Portainer's Home page, click your environment (often + local). The browser address then ends like #!/2/docker/dashboard: the + number after #!/ is the endpoint ID (here 2).
    stack nameStacks list, Name column, spelled exactly the same. + This goes on each app's container page, not on the Portainer page.
    verify_sslLeave off for http:// and for Portainer's built-in + self-signed certificate on 9443. Turn on only if Portainer has a real certificate.
    API tokenClick your username (top right) → My account → + Access tokens → Add access token. Name it inspector and copy the + token straight away: Portainer shows it only once.
    + +

    Step 2: give Inspector the token

    +

    Recommended: an environment variable. The token then never lands in +config.yml or its backups.

      -
    1. In Portainer, open My account → Access tokens and create a token.
    2. -
    3. Easiest and safest: add it to the Inspector stack as an environment variable (for example - PORTAINER_API_TOKEN) and redeploy Inspector. Or choose Saved in config.yml - and paste it in.
    4. -
    5. In Settings → Portainer, add an environment with Portainer's URL and endpoint ID - (usually 1 or 2; it's the number in the URL when you open the environment in Portainer). - Click Test connection: it should list your stacks.
    6. -
    7. Turn Portainer on and save.
    8. +
    9. In Portainer open Stacks → inspector → Editor.
    10. +
    11. Check that the compose file has this line under environment: (it's in the + compose file from version 0.9.1 on; add it if your stack is older): + - PORTAINER_API_TOKEN=${PORTAINER_API_TOKEN:-}
    12. +
    13. Under Environment variables click Add an environment variable: name + PORTAINER_API_TOKEN, value the token.
    14. +
    15. Click Update the stack. Inspector restarts with the token available.
    16. +
    +

    Alternative: save it in Inspector. In the next step choose Saved in config.yml +and paste the token. It is masked in the dashboard, but anyone who can read Inspector's config +folder (or a backup of it) can read the token.

    + +

    Step 3: connect Inspector

    +
      +
    1. Open Settings → Portainer. Under Add environment, give it a name (your own + label, e.g. home) and fill in base_url, endpoint_id and verify_ssl.
    2. +
    3. API token stored as: Environment variable with the name + PORTAINER_API_TOKEN, or Saved in config.yml with the token.
    4. +
    5. Click Test connection. It should list the stacks on that endpoint; check that your + app's stack is there. Then Save new environment.
    6. +
    7. At the top of the page turn enabled on, pick the default_environment, and + Save Portainer.
    8. +
    9. On each app's container page, set the recovery action and stack name + (section 6). Leave portainer_environment on Default unless + you connected more than one Portainer.
    Portainer settings
    Settings → Portainer with one environment; the token comes from an environment variable.
    + +

    The other settings on the page

    + + + + + +
    SettingWhat it does
    default_environmentWhich connection apps use when they don't pick one. With a + single environment you can leave it on Automatic.
    stack_redeploy_cooldown_secondsMinimum time between two redeploys of the same + stack (default 300). Several apps often share a stack; this stops them triggering a redeploy + each.
    post_redeploy_wait_secondsHow long Inspector waits after a redeploy for the + stack to come up before judging it again (default 90).
    + +

    If Test connection fails

    + + + + + + +
    MessageFix
    environment variable … is not setThe compose line from step 2 is missing, or + the stack wasn't updated after adding the variable.
    the API token was rejectedToken copied wrong, deleted, or from a user without + access. Create a new one.
    no stacks found on endpoint NWrong endpoint ID; check the number in the + Portainer address again.
    request failed …Wrong address or port, http vs https + mixed up, or localhost used instead of the server IP. With https and a + self-signed certificate, turn verify_ssl off.
    -

    6. Events history

    +

    8. Events history

    The Events tab is a day-by-day timeline of failures, restarts, recoveries, mutes, and maintenance. Use Prev day / Next day to look back.

    Events timeline @@ -253,7 +382,7 @@ maintenance. Use Prev day / Next day to look back.

    -

    7. Other settings

    +

    9. Other settings

    Inspector loop settings
    Settings → Inspector loop.
    @@ -266,14 +395,14 @@ maintenance. Use Prev day / Next day to look back.

    - +
    MaintenanceA daily quiet window (e.g. 02:00–05:00) so nightly backups or updates don't trigger restarts. Turn on maintenance_window on each container that should follow it.
    Notification muteTurns the per-container Mute notifications buttons on or off, and sets how long a mute lasts.
    Uptime KumaConnection to your Uptime Kuma status page, used by container reachability checks.
    PortainerConnection to Portainer, used to redeploy stacks. See Apps behind a VPN container.
    PortainerConnection to Portainer, used to redeploy stacks. See section 7.

    At the bottom of every settings page is a strip showing where the config file lives and whether Inspector can write to it.

    -

    8. "Requires restart" fields

    +

    10. "Requires restart" fields

    Most changes apply on the next check. Fields marked REQUIRES RESTART (like turning a notification channel or the dashboard on or off) only take effect after Inspector restarts:

    @@ -285,7 +414,7 @@ dashboard on or off) only take effect after Inspector restarts:

    -

    9. Troubleshooting

    +

    11. Troubleshooting

    diff --git a/src/inspector/assets/guide/settings-portainer.png b/src/inspector/assets/guide/settings-portainer.png index edfc67e5706b2fb885a5ade15c3f52aee4896db4..3d6f302333d8ba0ce73dcc5d00f12f79f2757dc1 100755 GIT binary patch literal 42953 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 literal 41961 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 z zmhE3;6BTsHzvY4#Om4HQ;!RnbJHL3!DHXpfOaEc*_zQyczq%U#z5D<6o9GUF$CVQ+ X)@~Kr)#&&K@VaVZajE2@>x2IRS5HrM diff --git a/src/inspector/dashboard.py b/src/inspector/dashboard.py index acc0bde..f132182 100755 --- a/src/inspector/dashboard.py +++ b/src/inspector/dashboard.py @@ -2177,7 +2177,7 @@ def _portainer_env_form(env_name: str, env, csrf_token: str, *, suggest_name: st + _settings_field("name", "env_name", env_name or suggest_name, hint="Your own label, referenced by containers") + _settings_field("endpoint_id", "endpoint_id", str(env.endpoint_id if env else 1), kind="number", - hint="Portainer → Environments; the number in the URL (usually 1 or 2)") + hint="Open the environment from Portainer's Home page; the number after #!/ in the address (often 1 or 2)") + "" + _settings_field("base_url", "base_url", env.base_url if env else "", hint="e.g. http://192.168.1.10:9000 or https://portainer.example.com") @@ -2190,7 +2190,7 @@ def _portainer_env_form(env_name: str, env, csrf_token: str, *, suggest_name: st + f'
    ' + _settings_field("environment variable name", "api_token_env", (env.api_token_env if env else "") or "PORTAINER_API_TOKEN", - hint="Set this variable on the Inspector container (Portainer → stack → Environment variables), then redeploy Inspector.") + hint="Add it to the Inspector stack's environment variables; the compose file must pass it in. Step by step: Help → Portainer stack redeploy, step 2.") + "
    " + f'
    ' + _settings_secret_field("api_token", "api_token", bool(env and env.api_token)) @@ -2451,18 +2451,25 @@ def _render_container_advanced(name: str, cfg, app: AppConfig) -> str: ) others = [c.name for c in app.containers if c.name != name] + disabled = {c.name for c in app.containers if not c.enabled} dep_value = getattr(cfg, "depends_on", "") or "" - dep_options = [("", "— none —")] + [(n, n) for n in others] + dep_options = [("", "— none —")] + [(n, n + (" (disabled)" if n in disabled else "")) for n in others] if dep_value and dep_value not in others: dep_options.append((dep_value, f"{dep_value} (not configured)")) + dep_warn = "" + if dep_value in disabled: + dep_warn = _warn(f"{_escape(dep_value)} is disabled, so Inspector can't see its status and won't wait for it. " + "Enable it to make this dependency count.") deps = ( '

    Dependencies

    ' '

    Check this container after the one it relies on, and hold off recovering it ' "while that one is still failing.

    " + _settings_select("depends_on", "depends_on", dep_value, dep_options, - hint="e.g. the VPN container, for apps that use network_mode: container:") + hint="e.g. the VPN container, for apps that use network_mode: container:. " + "Also works for any other dependency, like an app and its database.") + + dep_warn + _settings_field("vpn_routed", "vpn_routed", "on" if getattr(cfg, "vpn_routed", False) else "", kind="switch", - hint="Routes through the container above. Logs why recovery is deferred while it is down.") + hint="Only affects logging: says in the log when recovery waits on the VPN container. The waiting itself comes from depends_on.") + "
    " ) diff --git a/src/inspector/main.py b/src/inspector/main.py index bcc0635..eab5044 100755 --- a/src/inspector/main.py +++ b/src/inspector/main.py @@ -293,8 +293,10 @@ def _check_one( if ok: dep = container_config.depends_on - if dep: - dep_status = states[dep].current_status if dep in states else None + # Only wait on a dependency Inspector is watching. A disabled one has + # no state, and waiting on it would block recovery forever. + if dep and dep in states: + dep_status = states[dep].current_status if dep_status not in (HEALTHY, STARTING, NO_HEALTH_CHECK): if container_config.vpn_routed: log.info( @@ -454,8 +456,10 @@ def run_loop(config_ref: ConfigRef) -> int: for gone in states.keys() - current_enabled.keys(): states.pop(gone, None) log.info("Stopped watching container (removed or disabled): %s", gone) + if current_enabled != enabled_configs: + # Only re-order (and re-log ordering warnings) when the config changed. + check_order = _topological_order(current_enabled) enabled_configs = current_enabled - check_order = _topological_order(enabled_configs) # Integration clients hold their config; rebuild them when the # settings page changes Uptime Kuma / Portainer.
    ProblemFix
    Red READ-ONLY badge at the bottom of Settings