Skip to content

Commit b6f2eac

Browse files
committed
chore: pin stack images to digests and add lock matrix
1 parent 44638b3 commit b6f2eac

3 files changed

Lines changed: 40 additions & 9 deletions

File tree

IMAGE_LOCK.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Image Lock Matrix
2+
3+
This stack is pinned to exact image digests in `docker-compose.yml` for reproducible installs.
4+
5+
Tested lock snapshot:
6+
- Date: `2026-02-22`
7+
- Docker Engine: `29.2.1`
8+
- Platform: `aarch64` (Docker Desktop on macOS)
9+
10+
| Service | Locked Image |
11+
|---|---|
12+
| gluetun | `qmcgaw/gluetun@sha256:495cdc65ace4c110cf4de3d1f5f90e8a1dd2eb0f8b67151d1ad6101b2a02a476` |
13+
| qbittorrent | `lscr.io/linuxserver/qbittorrent@sha256:85eb27d2d09cd4cb748036a4c7f261321da516b6f88229176cf05a92ccd26815` |
14+
| prowlarr | `lscr.io/linuxserver/prowlarr@sha256:e74a1e093dcc223d671d4b7061e2b4946f1989a4d3059654ff4e623b731c9134` |
15+
| sonarr | `lscr.io/linuxserver/sonarr@sha256:37be832b78548e3f55f69c45b50e3b14d18df1b6def2a4994258217e67efb1a1` |
16+
| radarr | `lscr.io/linuxserver/radarr@sha256:6d3e68474ea146f995af98d3fb2cb1a14e2e4457ddaf035aa5426889e2f9249c` |
17+
| bazarr | `lscr.io/linuxserver/bazarr@sha256:1cf40186b1bc35bec87f4e4892d5d8c06086da331010be03e3459a86869c5e74` |
18+
| flaresolverr | `ghcr.io/flaresolverr/flaresolverr@sha256:7962759d99d7e125e108e0f5e7f3cdbcd36161776d058d1d9b7153b92ef1af9e` |
19+
| seerr | `ghcr.io/seerr-team/seerr@sha256:1b5fc1ea825631d9d165364472663b817a4c58ef6aa1013f58d82c1570d7c866` |
20+
| watchtower (optional) | `containrrr/watchtower@sha256:6dd50763bbd632a83cb154d5451700530d1e44200b268a4e9488fefdfcf2b038` |
21+
22+
## Updating The Lock
23+
24+
1. Pull new candidates:
25+
```bash
26+
docker compose --profile autoupdate pull
27+
```
28+
2. Smoke test stack behavior.
29+
3. Update digests in `docker-compose.yml`.
30+
4. Update this matrix in `IMAGE_LOCK.md`.

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ bash scripts/configure.sh # auto-configure all services
7979
## Full Setup Guide
8080

8181
See [SETUP.md](SETUP.md) for the complete step-by-step walkthrough.
82+
Pinned digest matrix: [IMAGE_LOCK.md](IMAGE_LOCK.md)
8283

8384
By default, Seerr is bound to `127.0.0.1` for safer local-only access. Set `SEERR_BIND_IP=0.0.0.0` in `.env` only if you intentionally want LAN exposure.
8485

docker-compose.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
services:
22
gluetun:
3-
image: qmcgaw/gluetun:latest
3+
image: qmcgaw/gluetun@sha256:495cdc65ace4c110cf4de3d1f5f90e8a1dd2eb0f8b67151d1ad6101b2a02a476
44
container_name: gluetun
55
cap_add:
66
- NET_ADMIN
@@ -23,7 +23,7 @@ services:
2323
restart: unless-stopped
2424

2525
qbittorrent:
26-
image: lscr.io/linuxserver/qbittorrent:latest
26+
image: lscr.io/linuxserver/qbittorrent@sha256:85eb27d2d09cd4cb748036a4c7f261321da516b6f88229176cf05a92ccd26815
2727
container_name: qbittorrent
2828
network_mode: "service:gluetun"
2929
depends_on:
@@ -41,7 +41,7 @@ services:
4141
restart: unless-stopped
4242

4343
prowlarr:
44-
image: lscr.io/linuxserver/prowlarr:latest
44+
image: lscr.io/linuxserver/prowlarr@sha256:e74a1e093dcc223d671d4b7061e2b4946f1989a4d3059654ff4e623b731c9134
4545
container_name: prowlarr
4646
environment:
4747
- PUID=${PUID:-501}
@@ -54,7 +54,7 @@ services:
5454
restart: unless-stopped
5555

5656
sonarr:
57-
image: lscr.io/linuxserver/sonarr:latest
57+
image: lscr.io/linuxserver/sonarr@sha256:37be832b78548e3f55f69c45b50e3b14d18df1b6def2a4994258217e67efb1a1
5858
container_name: sonarr
5959
environment:
6060
- PUID=${PUID:-501}
@@ -69,7 +69,7 @@ services:
6969
restart: unless-stopped
7070

7171
radarr:
72-
image: lscr.io/linuxserver/radarr:latest
72+
image: lscr.io/linuxserver/radarr@sha256:6d3e68474ea146f995af98d3fb2cb1a14e2e4457ddaf035aa5426889e2f9249c
7373
container_name: radarr
7474
environment:
7575
- PUID=${PUID:-501}
@@ -84,7 +84,7 @@ services:
8484
restart: unless-stopped
8585

8686
bazarr:
87-
image: lscr.io/linuxserver/bazarr:latest
87+
image: lscr.io/linuxserver/bazarr@sha256:1cf40186b1bc35bec87f4e4892d5d8c06086da331010be03e3459a86869c5e74
8888
container_name: bazarr
8989
environment:
9090
- PUID=${PUID:-501}
@@ -99,7 +99,7 @@ services:
9999
restart: unless-stopped
100100

101101
flaresolverr:
102-
image: ghcr.io/flaresolverr/flaresolverr:latest
102+
image: ghcr.io/flaresolverr/flaresolverr@sha256:7962759d99d7e125e108e0f5e7f3cdbcd36161776d058d1d9b7153b92ef1af9e
103103
container_name: flaresolverr
104104
environment:
105105
- LOG_LEVEL=info
@@ -110,7 +110,7 @@ services:
110110
restart: unless-stopped
111111

112112
seerr:
113-
image: ghcr.io/seerr-team/seerr:latest
113+
image: ghcr.io/seerr-team/seerr@sha256:1b5fc1ea825631d9d165364472663b817a4c58ef6aa1013f58d82c1570d7c866
114114
container_name: seerr
115115
init: true
116116
environment:
@@ -122,7 +122,7 @@ services:
122122
restart: unless-stopped
123123

124124
watchtower:
125-
image: containrrr/watchtower:latest
125+
image: containrrr/watchtower@sha256:6dd50763bbd632a83cb154d5451700530d1e44200b268a4e9488fefdfcf2b038
126126
container_name: watchtower
127127
profiles: ["autoupdate"]
128128
environment:

0 commit comments

Comments
 (0)