Archived
Ferrule dev
This commit is contained in:
1 parent
f5df34769a
commit
6787d3fa98
4 files changed
+23
-12
No files matched your search
+15
-8
@@ -11,7 +11,7 @@ with a webhook.
|
|||||||
on your Docker host. Portainer reads only the compose file from the
|
on your Docker host. Portainer reads only the compose file from the
|
||||||
repository.
|
repository.
|
||||||
- Portainer must reach
|
- 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.
|
so no account or token is needed.
|
||||||
- The Docker host needs outbound internet to pull the Ferrule and
|
- The Docker host needs outbound internet to pull the Ferrule and
|
||||||
VictoriaMetrics images. A licensed install also fetches
|
VictoriaMetrics images. A licensed install also fetches
|
||||||
@@ -50,9 +50,9 @@ console.
|
|||||||
## Step 2 — The image
|
## Step 2 — The image
|
||||||
|
|
||||||
The image is public: Portainer pulls it with no registry login. It holds
|
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
|
the built binary only, never the source. It is published on GitHub's
|
||||||
`git.uglyhousesneedlove.com/steve/ferrule`; at launch it moves to Docker Hub,
|
container registry, `ghcr.io/ferrulehq/ferrule`. If it ever moves,
|
||||||
and `FERRULE_IMAGE` is the one line that changes.
|
`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.
|
3. Choose **Repository** as the build method.
|
||||||
4. Fill in:
|
4. Fill in:
|
||||||
- **Repository URL** —
|
- **Repository URL** —
|
||||||
`https://git.uglyhousesneedlove.com/steve/ferrule-deploy`
|
`https://github.com/ferrulehq/ferrule-deploy`
|
||||||
- **Repository reference** — `refs/heads/main`
|
- **Repository reference** — `refs/heads/main`
|
||||||
- **Compose path** — `docker-compose.yml`
|
- **Compose path** — `docker-compose.yml`
|
||||||
- **Authentication** — off; the repository is public. Turn it on only
|
- **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 |
|
| 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_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 |
|
| `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 |
|
| `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 |
|
| `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
|
COMPOSE_PROFILES=gotify,igotify # or just igotify, beside an existing Gotify
|
||||||
GOTIFY_ADMIN_USER=admin # the default
|
GOTIFY_ADMIN_USER=admin # the default
|
||||||
GOTIFY_ADMIN_PASSWORD=<choose one> # unset, Gotify's admin password is "admin"
|
GOTIFY_ADMIN_PASSWORD=<choose one> # unset, Gotify's admin password is "admin"
|
||||||
|
GOTIFY_ALERTS_PASSWORD=<choose one> # the shared account everyone signs in as
|
||||||
GOTIFY_URL=http://gotify
|
GOTIFY_URL=http://gotify
|
||||||
GOTIFY_PORT=8091 # host ports, for a tunnel or proxy to use
|
GOTIFY_PORT=8091 # host ports, for a tunnel or proxy to use
|
||||||
IGOTIFY_PORT=8092
|
IGOTIFY_PORT=8092
|
||||||
```
|
```
|
||||||
|
|
||||||
Deploy once, open Gotify, create an application, put its token in
|
The setup wizard writes all of this for you. With `GOTIFY_ALERTS_PASSWORD`
|
||||||
`GOTIFY_TOKEN`, and update the stack. iGotify relays to the iPhone app
|
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
|
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`,
|
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
|
`IGOTIFY_CLIENT_TOKENS` and `IGOTIFY_SECNTFY_TOKENS` are only needed when
|
||||||
|
|||||||
@@ -31,12 +31,12 @@ so nothing is built on your host.
|
|||||||
[Connect your gear](https://docs.ferrulehq.dev/connect/unifi-network/).
|
[Connect your gear](https://docs.ferrulehq.dev/connect/unifi-network/).
|
||||||
2. **Get the stack:**
|
2. **Get the stack:**
|
||||||
- **Portainer:** Stacks → Add stack → name `ferrule` → **Repository**,
|
- **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
|
reference `refs/heads/main`, compose path `docker-compose.yml`, and
|
||||||
authentication **off**.
|
authentication **off**.
|
||||||
- **Docker Compose:**
|
- **Docker Compose:**
|
||||||
```sh
|
```sh
|
||||||
git clone https://git.uglyhousesneedlove.com/steve/ferrule-deploy.git ferrule
|
git clone https://github.com/ferrulehq/ferrule-deploy.git ferrule
|
||||||
cd ferrule
|
cd ferrule
|
||||||
cp stack.env.example .env
|
cp stack.env.example .env
|
||||||
```
|
```
|
||||||
|
|||||||
+5
-1
@@ -23,7 +23,7 @@ services:
|
|||||||
# version nobody chose, and never latest. FERRULE_IMAGE is the registry
|
# version nobody chose, and never latest. FERRULE_IMAGE is the registry
|
||||||
# path, one line to change when it moves. Its own container names keep
|
# 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.
|
# 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
|
# Ask the registry on every deploy. A fixed release costs one quick
|
||||||
# request; qa moves, and this is how a redeploy picks it up.
|
# request; qa moves, and this is how a redeploy picks it up.
|
||||||
pull_policy: always
|
pull_policy: always
|
||||||
@@ -135,6 +135,10 @@ services:
|
|||||||
# force; see PORTAINER.md for what each variable means.
|
# force; see PORTAINER.md for what each variable means.
|
||||||
GOTIFY_URL: ${GOTIFY_URL:-}
|
GOTIFY_URL: ${GOTIFY_URL:-}
|
||||||
GOTIFY_TOKEN: ${GOTIFY_TOKEN:-}
|
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_URL: ${NTFY_URL:-}
|
||||||
NTFY_TOKEN: ${NTFY_TOKEN:-}
|
NTFY_TOKEN: ${NTFY_TOKEN:-}
|
||||||
PUSHOVER_TOKEN: ${PUSHOVER_TOKEN:-}
|
PUSHOVER_TOKEN: ${PUSHOVER_TOKEN:-}
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
# variable, this file's and the rest, from what the stack is running with.
|
# 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.
|
# 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,
|
# 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.
|
# and is what to set while trying this stack beside an existing one.
|
||||||
|
|||||||
Reference in new issue
Block a user