From 6787d3fa988f5e1ba04d5d6326c01072d1333585 Mon Sep 17 00:00:00 2001 From: Ferrule release Date: Sat, 17 Oct 2026 20:47:29 +0000 Subject: [PATCH] Ferrule dev --- PORTAINER.md | 23 +++++++++++++++-------- README.md | 4 ++-- docker-compose.yml | 6 +++++- stack.env.example | 2 +- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/PORTAINER.md b/PORTAINER.md index 5809c38..23c8e37 100644 --- a/PORTAINER.md +++ b/PORTAINER.md @@ -11,7 +11,7 @@ with a webhook. on your Docker host. Portainer reads only the compose file from the repository. - Portainer must reach - `https://git.uglyhousesneedlove.com/steve/ferrule-deploy`. It is public, + `https://github.com/ferrulehq/ferrule-deploy`. It is public, so no account or token is needed. - The Docker host needs outbound internet to pull the Ferrule and VictoriaMetrics images. A licensed install also fetches @@ -50,9 +50,9 @@ console. ## Step 2 — The image The image is public: Portainer pulls it with no registry login. It holds -the built binary only, never the source. Before launch it is published at -`git.uglyhousesneedlove.com/steve/ferrule`; at launch it moves to Docker Hub, -and `FERRULE_IMAGE` is the one line that changes. +the built binary only, never the source. It is published on GitHub's +container registry, `ghcr.io/ferrulehq/ferrule`. If it ever moves, +`FERRULE_IMAGE` is the one line that changes. --- @@ -65,7 +65,7 @@ and `FERRULE_IMAGE` is the one line that changes. 3. Choose **Repository** as the build method. 4. Fill in: - **Repository URL** — - `https://git.uglyhousesneedlove.com/steve/ferrule-deploy` + `https://github.com/ferrulehq/ferrule-deploy` - **Repository reference** — `refs/heads/main` - **Compose path** — `docker-compose.yml` - **Authentication** — off; the repository is public. Turn it on only @@ -116,7 +116,7 @@ Add these only if you need them: | Name | Default | When to change it | |---|---|---| | `FERRULE_VERSION` | **required** | the release to run, such as `0.9.0`; `qa` for what is under test. Never `latest` | -| `FERRULE_IMAGE` | `git.uglyhousesneedlove.com/steve/ferrule` | where the image is published; change it only if told to | +| `FERRULE_IMAGE` | `ghcr.io/ferrulehq/ferrule` | where the image is published; change it only if told to | | `WEB_PORT` | `8090` | something else already has 8090 | | `UNIFI_ENABLED` | `true` | `false` to watch only hypervisors and storage, or to try this stack beside an existing one without polling the controller twice | | `SOURCE_1` … `SOURCE_8` | empty | a hypervisor or storage system per slot, see below | @@ -696,13 +696,20 @@ profile so neither starts unless asked: COMPOSE_PROFILES=gotify,igotify # or just igotify, beside an existing Gotify GOTIFY_ADMIN_USER=admin # the default GOTIFY_ADMIN_PASSWORD= # unset, Gotify's admin password is "admin" +GOTIFY_ALERTS_PASSWORD= # the shared account everyone signs in as GOTIFY_URL=http://gotify GOTIFY_PORT=8091 # host ports, for a tunnel or proxy to use IGOTIFY_PORT=8092 ``` -Deploy once, open Gotify, create an application, put its token in -`GOTIFY_TOKEN`, and update the stack. iGotify relays to the iPhone app +The setup wizard writes all of this for you. With `GOTIFY_ALERTS_PASSWORD` +and no `GOTIFY_TOKEN`, Ferrule makes a Gotify account, `ferrule-alerts`, and +its own app in it, the first time it sends. Everyone who should get alerts +signs in to the Gotify app (or iGotify) as `ferrule-alerts`, and the admin +account stays private. In Gotify an app belongs to one user and only that +user's phones see it, which is why alerts go to a shared account. For a +team, ntfy or Pushover groups suit better. To use your own app instead, +create one in Gotify and set `GOTIFY_TOKEN`. iGotify relays to the iPhone app through Apple's push service; the phone has to reach Gotify and iGotify, so away from home put them behind a tunnel or reverse proxy. `IGOTIFY_GOTIFY_URLS`, `IGOTIFY_CLIENT_TOKENS` and `IGOTIFY_SECNTFY_TOKENS` are only needed when diff --git a/README.md b/README.md index 7201d32..f0bad9e 100644 --- a/README.md +++ b/README.md @@ -31,12 +31,12 @@ so nothing is built on your host. [Connect your gear](https://docs.ferrulehq.dev/connect/unifi-network/). 2. **Get the stack:** - **Portainer:** Stacks → Add stack → name `ferrule` → **Repository**, - with URL `https://git.uglyhousesneedlove.com/steve/ferrule-deploy`, + with URL `https://github.com/ferrulehq/ferrule-deploy`, reference `refs/heads/main`, compose path `docker-compose.yml`, and authentication **off**. - **Docker Compose:** ```sh - git clone https://git.uglyhousesneedlove.com/steve/ferrule-deploy.git ferrule + git clone https://github.com/ferrulehq/ferrule-deploy.git ferrule cd ferrule cp stack.env.example .env ``` diff --git a/docker-compose.yml b/docker-compose.yml index 08b1684..7e39cd5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,7 +23,7 @@ services: # version nobody chose, and never latest. FERRULE_IMAGE is the registry # path, one line to change when it moves. Its own container names keep # it apart from an earlier stack of this project on the same host. - image: ${FERRULE_IMAGE:-git.uglyhousesneedlove.com/steve/ferrule}:${FERRULE_VERSION:?set FERRULE_VERSION to the release to run, such as 0.9.0} + image: ${FERRULE_IMAGE:-git.uglyhousesneedlove.com/steve/ferrule}:${FERRULE_VERSION:-dev} # Ask the registry on every deploy. A fixed release costs one quick # request; qa moves, and this is how a redeploy picks it up. pull_policy: always @@ -135,6 +135,10 @@ services: # force; see PORTAINER.md for what each variable means. GOTIFY_URL: ${GOTIFY_URL:-} GOTIFY_TOKEN: ${GOTIFY_TOKEN:-} + # With the bundled Gotify and no token, Ferrule makes a shared + # ferrule-alerts account and its own app, using the admin password. + GOTIFY_ALERTS_PASSWORD: ${GOTIFY_ALERTS_PASSWORD:-} + GOTIFY_ADMIN_PASSWORD: ${GOTIFY_ADMIN_PASSWORD:-} NTFY_URL: ${NTFY_URL:-} NTFY_TOKEN: ${NTFY_TOKEN:-} PUSHOVER_TOKEN: ${PUSHOVER_TOKEN:-} diff --git a/stack.env.example b/stack.env.example index 838666f..d9c90b7 100644 --- a/stack.env.example +++ b/stack.env.example @@ -2,7 +2,7 @@ # variable, this file's and the rest, from what the stack is running with. # Required: the release to run, such as 0.9.0, or qa for the build under test. -FERRULE_VERSION=0.0.1 +FERRULE_VERSION=dev # false watches only hypervisors and storage, with no UniFi console at all, # and is what to set while trying this stack beside an existing one.