Install¶
At the end of this page Ferrule will be running, and you'll have it open in your browser. Use Portainer if you like a web interface, or Docker Compose from a terminal: Ferrule works the same either way.
1. Get Ferrule¶
- In Portainer, open Stacks and click Add stack.
- Name:
ferrule. Use lowercase letters, with no spaces. - Build method: choose Repository.
-
Fill in:
Field Value Repository URL https://git.uglyhousesneedlove.com/steve/ferrule-deployRepository reference refs/heads/mainCompose path docker-compose.ymlAuthentication off (the repository is public) -
Leave Enable relative path volumes off.
On your Docker host:
git clone https://git.uglyhousesneedlove.com/steve/ferrule-deploy.git ferrule
cd ferrule
cp stack.env.example .env
Everything below happens in this ferrule folder.
2. Add the settings¶
Scroll down to Environment variables and click Advanced mode. Paste the lines below.
Open .env in a text editor. It already has every setting with an
example value. Change the ones below, and leave the rest.
Replace each value with yours:
FERRULE_VERSION=0.9.0
UNIFI_HOST=https://192.168.1.1
UNIFI_API_KEY=paste-the-gateway-api-key
UNIFI_USERNAME=telemetry
UNIFI_PASSWORD=paste-the-gateway-password
FERRULE_VERSIONis the release to run. Use the one you were told, neverlatest.UNIFI_HOSTis your gateway's address, startinghttps://.- If Protect runs on a separate UNVR, add four more lines (UniFi Protect).
- If you have no UniFi console, set
UNIFI_ENABLED=falseinstead of theUNIFI_lines, and add a server or storage system (Watching without UniFi).
That's all it needs to start. You'll add everything else from inside Ferrule later, and it writes those lines for you.
3. Start it¶
Click Deploy the stack.
docker compose up -d
Docker downloads Ferrule and starts two containers, ferrule and
ferrule-victoria-metrics. The first time takes a minute or two.
4. Open it¶
Go to http://<your docker host>:8090.
How to know it worked¶
- Both containers are running, and
ferruleturns healthy within about a minute. In Portainer, look at the stack's containers; with Compose, rundocker compose ps. - The dashboard shows a WAN tab and a LAN tab with your devices.
- Needs attention at the top lists anything that's wrong. On a healthy network it may be empty, or it may already have found something.
If it didn't work, see Troubleshooting. The most common causes:
| What you see | What to do |
|---|---|
set FERRULE_VERSION to the release to run |
Add the FERRULE_VERSION line |
manifest unknown |
FERRULE_VERSION has a typo |
login rejected in the ferrule logs |
The UniFi account has two-factor sign-in on, or it's a cloud account rather than a local one (UniFi Network) |
| The page opens but shows no devices | Check UNIFI_HOST, and that the Docker host can reach the gateway |
The ferrule logs are under the container in Portainer, or
docker compose logs ferrule with Compose.
Why two containers?
ferrule reads your equipment and serves the dashboard.
ferrule-victoria-metrics stores the history behind the graphs.
Both keep their data on Docker volumes, so nothing is written to the
host's own folders, and redeploying never loses anything.
Changing a setting later¶
Every page in these docs that says "add these lines to your settings" means this:
- Open the
ferrulestack and find Environment variables. - Add or change the lines. In Advanced mode you can paste several at once.
- Click Pull and redeploy.
- Open
.envin the folder where you clonedferrule-deploy. - Add or change the lines.
- Run
docker compose up -din that folder.
Next¶
- Your first look: a tour of the dashboard.
- Enter your license, if you have a key.