Read-only mirror — the public repositories of the Forgejo instance, refreshed every 10 minutes. The live instance (fg.dieschoenewolke.de) is reachable only over the VPN; clone here with https://git.dieschoenewolke.de/git/<owner>/<repo>.git.
summaryrefslogtreecommitdiff
path: root/deploy/docker-compose.yml
blob: e486a2f86cf140e94ed0b3703eebc561242f0954 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Public read-only OCI mirror of the four upstream Google distroless images.
#
# Serving path: public :443 -> edge-nginx (host network, TLS + CrowdSec) ->
# 127.0.0.1:5000 -> this container. The port publish is loopback-only on
# purpose: nothing on any host interface can reach zot directly, so the edge
# vhost is the only entry point.
#
# There is no `auth` block and anonymous users only get `read`, so the registry
# has no push surface at all - not from the internet and not from the LAN.
# Content arrives exclusively through the built-in sync extension pulling from
# gcr.io, which is also why the mirror keeps working while the home Forgejo
# instance (and its runner) is down.
services:
  zot:
    image: ghcr.io/project-zot/zot:v2.1.23
    container_name: zot-mirror
    command: ["serve", "/etc/zot/config.json"]
    restart: unless-stopped
    ports:
      - "127.0.0.1:5000:5000"
    volumes:
      - ./data:/var/lib/registry
      - ./config.json:/etc/zot/config.json:ro
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"