This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

core / docker-compose.yml
20 kB 605 lines
1services: 2 redis: 3 image: redis:7-alpine 4 restart: unless-stopped 5 networks: [tngl] 6 7 postgres: 8 image: postgres:14-alpine 9 restart: unless-stopped 10 environment: 11 POSTGRES_USER: tnglr 12 POSTGRES_PASSWORD: tnglr 13 volumes: 14 - postgres-data:/var/lib/postgresql/data 15 - ./localinfra/postgres-init.sql:/docker-entrypoint-initdb.d/init.sql 16 healthcheck: 17 test: ["CMD-SHELL", "pg_isready -U tnglr -d plc"] 18 interval: 2s 19 timeout: 2s 20 retries: 30 21 start_period: 5s 22 networks: [tngl] 23 24 pds: 25 image: ghcr.io/bluesky-social/pds:0.4.219 26 restart: unless-stopped 27 env_file: localinfra/pds.env 28 environment: 29 PDS_DID_PLC_URL: http://plc:8080 30 NODE_EXTRA_CA_CERTS: /caddy-ca/root.crt 31 volumes: 32 - pds-data:/pds 33 - ./localinfra/certs/root.crt:/caddy-ca/root.crt:ro 34 healthcheck: 35 test: ["CMD", "wget", "-qO-", "http://localhost:3000/xrpc/_health"] 36 interval: 2s 37 timeout: 2s 38 retries: 30 39 start_period: 5s 40 depends_on: 41 plc: 42 condition: service_started 43 networks: [tngl] 44 45 init-accounts: 46 image: alpine:3.22 47 restart: "no" 48 env_file: localinfra/pds.env 49 environment: 50 PDS_URL: http://pds:3000 51 OWNER_USER: alice 52 KNOT_HOSTNAME: knot.tngl.boltless.dev 53 SPINDLE_HOSTNAME: spindle.tngl.boltless.dev 54 volumes: 55 - ./localinfra/scripts/init-accounts.sh:/init.sh:ro 56 - init-state:/shared 57 command: sh -c "apk add --no-cache curl jq >/dev/null && sh /init.sh" 58 depends_on: 59 pds: 60 condition: service_healthy 61 networks: [tngl] 62 63 plc: 64 platform: linux/amd64 65 image: ghcr.io/bluesky-social/did-method-plc:plc-f2ab7516bac5bc0f3f86842fa94e996bd1b3815b 66 restart: unless-stopped 67 environment: 68 DEBUG_MODE: "1" 69 LOG_ENABLED: "true" 70 LOG_LEVEL: debug 71 LOG_DESTINATION: "1" 72 PLC_VERSION: 0.0.1 73 PORT: "8080" 74 DB_CREDS_JSON: &DB_CREDS_JSON '{"username":"tnglr","password":"tnglr","host":"postgres","port":5432}' 75 DB_MIGRATE_CREDS_JSON: *DB_CREDS_JSON 76 depends_on: [postgres] 77 networks: [tngl] 78 79 jetstream: 80 platform: linux/amd64 81 image: ghcr.io/bluesky-social/jetstream:sha-d5a3b62 82 restart: unless-stopped 83 environment: 84 JETSTREAM_DATA_DIR: /data 85 JETSTREAM_LIVENESS_TTL: 300s 86 JETSTREAM_WS_URL: wss://pds.tngl.boltless.dev/xrpc/com.atproto.sync.subscribeRepos 87 volumes: 88 - jetstream-data:/data 89 - ./localinfra/certs/root.crt:/etc/ssl/certs/ca-certificates.crt:ro 90 depends_on: 91 pds: 92 condition: service_healthy 93 networks: [tngl] 94 95 knot: 96 build: 97 context: . 98 dockerfile: localinfra/knot.Dockerfile 99 restart: unless-stopped 100 environment: 101 KNOT_SERVER_HOSTNAME: knot.tngl.boltless.dev 102 KNOT_SERVER_LISTEN_ADDR: 0.0.0.0:5555 103 KNOT_SERVER_INTERNAL_LISTEN_ADDR: 127.0.0.1:5444 104 KNOT_SERVER_DB_PATH: /home/git/knotserver.db 105 KNOT_SERVER_PLC_URL: https://plc.tngl.boltless.dev 106 KNOT_SERVER_JETSTREAM_ENDPOINT: wss://jetstream.tngl.boltless.dev/subscribe 107 KNOT_SERVER_DEV: "false" 108 KNOT_REPO_SCAN_PATH: /home/git/repositories 109 APPVIEW_ENDPOINT: https://tangled.org 110 KNOT_MIRRORS: https://mirror.tngl.boltless.dev 111 ports: 112 - "2222:22" 113 volumes: 114 - knot-data:/home/git 115 - knot-ssh-keys:/etc/ssh/keys 116 - init-state:/shared:ro 117 - ./localinfra/certs/root.crt:/usr/local/share/ca-certificates/caddy.crt:ro 118 healthcheck: 119 test: ["CMD", "wget", "-qO-", "http://localhost:5555/"] 120 interval: 2s 121 timeout: 2s 122 retries: 60 123 start_period: 30s 124 depends_on: 125 plc: 126 condition: service_started 127 jetstream: 128 condition: service_started 129 knotmirror: 130 condition: service_healthy 131 init-accounts: 132 condition: service_completed_successfully 133 networks: [tngl] 134 135 ncps-migrate: 136 image: &ncps-image ghcr.io/kalbasit/ncps:v0.9.4 137 profiles: ["linux"] 138 restart: "no" 139 command: 140 - /bin/dbmate 141 - --migrations-dir=/share/ncps/db/migrations/sqlite 142 - --no-dump-schema 143 - --url=sqlite:/storage/db.sqlite 144 - up 145 volumes: 146 - ncps-data:/storage 147 networks: [tngl] 148 149 ncps: 150 image: *ncps-image 151 profiles: ["linux"] 152 restart: unless-stopped 153 environment: 154 ANALYTICS_REPORTING_ENABLED: "false" 155 command: ["/bin/ncps", "serve", "--config", "/etc/ncps/ncps.yaml"] 156 volumes: 157 - ncps-data:/storage 158 - ./localinfra/ncps.yaml:/etc/ncps/ncps.yaml:ro 159 - ./localinfra/ncps-secret-key:/keys/ncps-secret-key:ro 160 depends_on: 161 ncps-migrate: 162 condition: service_completed_successfully 163 networks: [tngl] 164 165 spindle: 166 profiles: ["linux"] 167 build: 168 context: . 169 dockerfile: localinfra/spindle.Dockerfile 170 restart: unless-stopped 171 environment: 172 SPINDLE_SERVER_HOSTNAME: spindle.tngl.boltless.dev 173 SPINDLE_SERVER_LISTEN_ADDR: 0.0.0.0:6555 174 SPINDLE_SERVER_DB_PATH: /var/lib/spindle/spindle.db 175 SPINDLE_SERVER_PLC_URL: https://plc.tngl.boltless.dev 176 SPINDLE_SERVER_JETSTREAM_ENDPOINT: wss://jetstream.tngl.boltless.dev/subscribe 177 SPINDLE_SERVER_DEV: "true" 178 SPINDLE_SERVER_DEV_EXTRA_HOSTS: knot.tngl.boltless.dev,mirror.tngl.boltless.dev 179 SPINDLE_SERVER_TAP_DB_PATH: /var/lib/spindle/tap.db 180 SPINDLE_SERVER_TAP_RELAY_URL: https://pds.tngl.boltless.dev 181 SPINDLE_MICROVM_PIPELINES_IMAGE_DIR: /var/lib/spindle/images 182 SPINDLE_MICROVM_PIPELINES_OVERLAY_DIR: /var/lib/spindle/overlays 183 SPINDLE_MICROVM_PIPELINES_AGENT_PORT: "11240" 184 SPINDLE_S3_LOG_BUCKET: "" 185 SPINDLE_MICROVM_PIPELINES_ENABLE_CGROUPS: "false" 186 # route guest nix substitution + uploads through the local ncps cache. 187 # ncps re-signs on serve with cache.local's key, so the guest trusts the 188 # matching public key below (no signing happens in spindle itself). 189 SPINDLE_NIX_CACHE_READ_URLS: http://ncps:8501 190 SPINDLE_NIX_CACHE_TRUSTED_PUBLIC_KEYS: cache.local:F7YqpMzuBdILYd/v+wMZN2YKxCzliXQyFmeezOxw7rU= 191 SPINDLE_NIX_CACHE_UPLOAD_URL: http://ncps:8501/upload 192 # these two are required for cgroups, uncomment if testing 193 # privileged: true 194 # cgroup: host 195 devices: 196 - /dev/vsock:/dev/vsock 197 - /dev/kvm:/dev/kvm 198 - /dev/vhost-vsock:/dev/vhost-vsock 199 - /dev/net/tun:/dev/net/tun 200 cap_add: 201 - NET_ADMIN 202 - SYS_ADMIN 203 security_opt: 204 - label=disable 205 - seccomp=unconfined 206 volumes: 207 - spindle-data:/var/lib/spindle 208 - spindle-logs:/var/log/spindle 209 - ./out/localinfra-spindle-images:/var/lib/spindle/images:ro 210 - init-state:/shared:ro 211 - ./localinfra/certs/root.crt:/usr/local/share/ca-certificates/caddy.crt:ro 212 healthcheck: 213 test: ["CMD", "wget", "-qO-", "http://localhost:6555/"] 214 interval: 2s 215 timeout: 2s 216 retries: 30 217 start_period: 5s 218 depends_on: 219 plc: 220 condition: service_started 221 jetstream: 222 condition: service_started 223 init-accounts: 224 condition: service_completed_successfully 225 ncps: 226 condition: service_started 227 networks: [tngl] 228 229 knotmirror-tap: 230 image: ghcr.io/bluesky-social/indigo/tap:sha-4f47add43060c27e8a37d9d76482ecddf001fcd8 # 0.1.10 231 restart: unless-stopped 232 environment: 233 TAP_BIND: ":2480" 234 TAP_PLC_URL: https://plc.tngl.boltless.dev 235 TAP_RELAY_URL: https://pds.tngl.boltless.dev # PDS can be used as basic relay without collectiondir. 236 TAP_DATABASE_URL: postgres://tnglr:tnglr@postgres:5432/mirror_tap?sslmode=disable 237 TAP_COLLECTION_FILTERS: sh.tangled.repo 238 TAP_SIGNAL_COLLECTION: sh.tangled.repo 239 TAP_RESYNC_PARALLELISM: "10" 240 TAP_RETRY_TIMEOUT: 60s 241 volumes: 242 - ./localinfra/certs/root.crt:/etc/ssl/certs/ca-certificates.crt:ro 243 depends_on: 244 postgres: 245 condition: service_started 246 pds: 247 condition: service_healthy 248 networks: [tngl] 249 250 knotmirror: 251 build: 252 context: . 253 dockerfile: localinfra/knotmirror.Dockerfile 254 restart: unless-stopped 255 environment: 256 MIRROR_LISTEN: 0.0.0.0:7000 257 MIRROR_ADMIN_LISTEN: 0.0.0.0:7200 258 MIRROR_HOSTNAME: mirror.tngl.boltless.dev 259 MIRROR_TAP_URL: http://knotmirror-tap:2480 260 MIRROR_DB_URL: postgres://tnglr:tnglr@postgres:5432/mirror?sslmode=disable 261 MIRROR_REDIS_ADDR: redis:6379 262 MIRROR_PLC_URL: https://plc.tngl.boltless.dev 263 MIRROR_GIT_BASEPATH: /data/repos 264 MIRROR_KNOT_USE_SSL: "true" 265 MIRROR_KNOT_SSRF: "false" 266 MIRROR_RESYNC_PARALLELISM: "4" 267 MIRROR_APPVIEW_URL: http://appview:3000 268 MIRROR_SEARCH_ZOEKT_URL: https://zoekt.tngl.boltless.dev/indexserver 269 volumes: 270 - knotmirror-data:/data 271 - ./localinfra/certs/root.crt:/usr/local/share/ca-certificates/caddy.crt:ro 272 healthcheck: 273 test: ["CMD", "wget", "-qO-", "http://localhost:7000/"] 274 interval: 2s 275 timeout: 2s 276 retries: 30 277 start_period: 5s 278 ports: 279 - "7201:7200" 280 depends_on: 281 postgres: 282 condition: service_started 283 knotmirror-tap: 284 condition: service_started 285 networks: [tngl] 286 287 zoekt-webserver: 288 build: 289 context: https://tangled.org/boltless.me/zoekt.git#tngl 290 volumes: 291 - zoekt-index:/data/index 292 - ./localinfra/certs/root.crt:/etc/ssl/certs/caddy.crt:ro 293 command: ["zoekt-webserver", "-index", "/data/index", "-pprof", "-rpc"] 294 networks: [tngl] 295 296 zoekt-tngl-indexserver: 297 build: 298 context: . 299 dockerfile: localinfra/zoekt-tngl-indexserver.Dockerfile 300 environment: 301 TANGLED_ZOEKT_INDEX_DIR: /data/index 302 TANGLED_ZOEKT_PLC_URL: https://plc.tngl.boltless.dev 303 TANGLED_ZOEKT_APPVIEW_URL: http://127.0.0.1:3000 304 TANGLED_ZOEKT_ALLOW_HTTP: "true" 305 volumes: 306 - zoekt-index:/data/index 307 - ./localinfra/certs/root.crt:/etc/ssl/certs/caddy.crt:ro 308 command: ["zoekt-tngl-indexserver", "serve"] 309 networks: [tngl] 310 311 tailwind: 312 build: 313 context: . 314 dockerfile: localinfra/tailwind.Dockerfile 315 restart: unless-stopped 316 working_dir: /build 317 init: true 318 volumes: 319 - ./tailwind.config.js:/build/tailwind.config.js:ro 320 - ./input.css:/build/input.css:ro 321 - ./appview/pages/templates:/build/appview/pages/templates:ro 322 - ./docs:/build/docs:ro 323 - ./blog/templates:/build/blog/templates:ro 324 - ./blog/posts:/build/blog/posts:ro 325 - ./appview/pages/static:/build/appview/pages/static 326 command: 327 ["-i", "input.css", "-o", "appview/pages/static/tw.css", "--watch=always"] 328 network_mode: none 329 330 appview: 331 build: 332 context: . 333 dockerfile: localinfra/appview.Dockerfile 334 restart: unless-stopped 335 environment: 336 TANGLED_DEV: "true" 337 TANGLED_APPVIEW_HOST: 127.0.0.1:3000 338 TANGLED_XRPC_ENABLED: "true" 339 TANGLED_DB_PATH: /var/lib/appview/appview.db 340 TANGLED_PLC_URL: https://plc.tngl.boltless.dev 341 TANGLED_JETSTREAM_ENDPOINT: wss://jetstream.tngl.boltless.dev/subscribe 342 TANGLED_REDIS_ADDR: redis:6379 343 TANGLED_KNOTMIRROR_URL: https://mirror.tngl.boltless.dev 344 TANGLED_CODESEARCH_ZOEKT_URL: https://zoekt.tngl.boltless.dev 345 TANGLED_SSH_ENABLED: "true" 346 TANGLED_SSH_LISTEN_ADDR: "0.0.0.0:3333" 347 ports: 348 - "3000:3000" 349 - "3333:3333" 350 healthcheck: 351 test: ["CMD", "wget", "-qO-", "http://localhost:3000/"] 352 interval: 5s 353 timeout: 2s 354 retries: 15 355 start_period: 10s 356 volumes: 357 - .:/src:cached 358 - go-cache:/go/cache 359 - go-mod-cache:/go/mod 360 - appview-data:/var/lib/appview 361 - init-state:/shared:ro 362 - ./localinfra/certs/root.crt:/usr/local/share/ca-certificates/caddy.crt:ro 363 depends_on: 364 redis: 365 condition: service_started 366 pds: 367 condition: service_healthy 368 init-accounts: 369 condition: service_completed_successfully 370 networks: [tngl] 371 372 pdsls: 373 build: 374 context: . 375 dockerfile: localinfra/pdsls.Dockerfile 376 restart: unless-stopped 377 ports: 378 - "8081:80" 379 depends_on: 380 init-accounts: 381 condition: service_completed_successfully 382 networks: [tngl] 383 384 hydrant: 385 build: 386 context: https://tangled.org/ptr.pet/hydrant.git#main 387 restart: unless-stopped 388 user: root 389 environment: 390 HYDRANT_API_BIND: 0.0.0.0:3000 391 HYDRANT_DATABASE_PATH: /data/hydrant.db 392 HYDRANT_RELAY_HOSTS: pds::wss://pds.tngl.boltless.dev 393 HYDRANT_CRAWLER_URLS: list_repos::https://pds.tngl.boltless.dev 394 HYDRANT_PLC_URL: https://plc.tngl.boltless.dev 395 HYDRANT_FILTER_COLLECTIONS: sh.tangled.* 396 HYDRANT_FILTER_SIGNALS: sh.tangled.actor.profile,sh.tangled.feed.comment,sh.tangled.feed.reaction,sh.tangled.feed.star,sh.tangled.git.refUpdate,sh.tangled.graph.follow,sh.tangled.graph.vouch,sh.tangled.knot,sh.tangled.knot.member,sh.tangled.label.definition,sh.tangled.label.op,sh.tangled.pipeline,sh.tangled.pipeline.status,sh.tangled.publicKey,sh.tangled.repo,sh.tangled.repo.artifact,sh.tangled.repo.collaborator,sh.tangled.repo.issue,sh.tangled.repo.issue.comment,sh.tangled.repo.issue.state,sh.tangled.repo.pull,sh.tangled.repo.pull.comment,sh.tangled.repo.pull.status,sh.tangled.spindle,sh.tangled.spindle.member,sh.tangled.string 397 HYDRANT_BACKFILL_STRATEGY: sparse-filter 398 HYDRANT_VERIFY_SIGNATURES: none 399 RUST_LOG: info 400 volumes: 401 - hydrant-data:/data 402 - ./localinfra/certs/root.crt:/etc/ssl/certs/ca-certificates.crt:ro 403 healthcheck: 404 test: ["CMD", "bash", "-c", "echo > /dev/tcp/127.0.0.1/3000"] 405 interval: 5s 406 timeout: 2s 407 retries: 15 408 start_period: 10s 409 depends_on: 410 plc: 411 condition: service_started 412 pds: 413 condition: service_healthy 414 caddy: 415 condition: service_started 416 init-accounts: 417 condition: service_completed_successfully 418 networks: [tngl] 419 bobbin: 420 build: 421 context: . 422 dockerfile: localinfra/bobbin.Dockerfile 423 restart: unless-stopped 424 environment: 425 BOBBIN_BIND: 0.0.0.0:8090 426 # must match the host in the web service's BOBBIN_URL, or every token's aud check fails 427 BOBBIN_HOSTNAME: bobbin.tngl.boltless.dev 428 BOBBIN_HYDRANT_URL: http://hydrant:3000 429 BOBBIN_SLINGSHOT_URL: http://hydrant:3000 430 BOBBIN_KNOT_ALLOW_PRIVATE: "true" 431 BOBBIN_KNOT_REQUIRE_HTTPS: "false" 432 BOBBIN_LOG: info 433 volumes: 434 - .:/src:cached 435 - bobbin-cargo:/cargo 436 - bobbin-target:/target 437 - ./localinfra/certs/root.crt:/etc/ssl/certs/ca-certificates.crt:ro 438 healthcheck: 439 test: ["CMD", "wget", "-qO-", "http://localhost:8090/xrpc/sh.tangled.bobbin.getCoverage"] 440 interval: 5s 441 timeout: 2s 442 retries: 15 443 start_period: 10s 444 depends_on: 445 hydrant: 446 condition: service_started 447 caddy: 448 condition: service_started 449 networks: [tngl] 450 451 web: 452 build: 453 context: . 454 dockerfile: localinfra/web.Dockerfile 455 restart: unless-stopped 456 environment: 457 BOBBIN_URL: https://bobbin.tngl.boltless.dev 458 # browser-reachable appview for authed xrpc; host must match the 459 # appview's TANGLED_APPVIEW_HOST so the service-auth aud lines up 460 TANGLED_API_URL: http://127.0.0.1:3000 461 # suffix shown in the sites claim UI; must match the appview's TANGLED_SITES_DOMAIN 462 SITES_DOMAIN: tngl.io 463 KNOTMIRROR_URL: https://mirror.tngl.boltless.dev 464 CAMO_URL: https://camo.tngl.boltless.dev 465 CAMO_SHARED_SECRET: localinfra-camo-secret 466 AVATAR_URL: https://avatar.tngl.boltless.dev 467 AVATAR_SHARED_SECRET: localinfra-avatar-secret 468 VITE_HANDLE_RESOLVER_URL: https://pds.tngl.boltless.dev 469 VITE_PLC_DIRECTORY_URL: https://plc.tngl.boltless.dev 470 # host-side port; keeps the oauth loopback redirect consistent 471 VITE_DEV_PORT: "5174" 472 # the bind mount below does not deliver inotify, see vite.config.ts 473 VITE_WATCH_POLL: "true" 474 NODE_EXTRA_CA_CERTS: /caddy-ca/root.crt 475 ports: 476 - "5174:5174" 477 volumes: 478 - ./web:/src:cached 479 # shadow generated dirs so the host tree stays untouched 480 - web-node-modules:/src/node_modules 481 - web-svelte-kit:/src/.svelte-kit 482 - ./localinfra/certs/root.crt:/caddy-ca/root.crt:ro 483 healthcheck: 484 test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:5174/').then(r=>process.exit(r.ok?0:1),()=>process.exit(1))"] 485 interval: 5s 486 timeout: 2s 487 retries: 30 488 start_period: 20s 489 depends_on: 490 bobbin: 491 condition: service_started 492 caddy: 493 condition: service_started 494 networks: [tngl] 495 496 camo: 497 build: 498 context: . 499 dockerfile: localinfra/camo.Dockerfile 500 restart: unless-stopped 501 environment: 502 CAMO_SHARED_SECRET: localinfra-camo-secret 503 WRANGLER_SEND_METRICS: "false" 504 volumes: 505 - ./camo:/src:cached 506 # shadow generated dirs so the host tree stays untouched 507 - camo-node-modules:/src/node_modules 508 - camo-wrangler:/src/.wrangler 509 - ./localinfra/certs/root.crt:/caddy-ca/root.crt:ro 510 healthcheck: 511 test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:8787/').then(r=>process.exit(r.ok?0:1),()=>process.exit(1))"] 512 interval: 5s 513 timeout: 2s 514 retries: 30 515 start_period: 30s 516 networks: [tngl] 517 518 avatar: 519 build: 520 context: . 521 dockerfile: localinfra/avatar.Dockerfile 522 restart: unless-stopped 523 environment: 524 AVATAR_SHARED_SECRET: localinfra-avatar-secret 525 PLC_DIRECTORY_URL: https://plc.tngl.boltless.dev 526 WRANGLER_SEND_METRICS: "false" 527 volumes: 528 - ./avatar:/src:cached 529 - avatar-node-modules:/src/node_modules 530 - avatar-wrangler:/src/.wrangler 531 - ./localinfra/certs/root.crt:/caddy-ca/root.crt:ro 532 healthcheck: 533 test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:8787/').then(r=>process.exit(r.ok?0:1),()=>process.exit(1))"] 534 interval: 5s 535 timeout: 2s 536 retries: 30 537 start_period: 30s 538 networks: [tngl] 539 540 caddy: 541 image: caddy:2-alpine 542 restart: unless-stopped 543 ports: 544 - "80:80" 545 - "443:443" 546 - "8090:8090" 547 volumes: 548 - ./localinfra/Caddyfile:/etc/caddy/Caddyfile 549 - ./localinfra/certs:/etc/caddy/certs:ro 550 - caddy-data:/data 551 networks: 552 tngl: 553 aliases: 554 - plc.tngl.boltless.dev 555 - pds.tngl.boltless.dev 556 - alice.pds.tngl.boltless.dev 557 - bob.pds.tngl.boltless.dev 558 - charlie.pds.tngl.boltless.dev 559 - david.pds.tngl.boltless.dev 560 - jetstream.tngl.boltless.dev 561 - knot.tngl.boltless.dev 562 - spindle.tngl.boltless.dev 563 - tngl.boltless.dev 564 - mirror.tngl.boltless.dev 565 - zoekt.tngl.boltless.dev 566 - pdsls.tngl.boltless.dev 567 - bobbin.tngl.boltless.dev 568 - camo.tngl.boltless.dev 569 - avatar.tngl.boltless.dev 570 571volumes: 572 caddy-data: 573 postgres-data: 574 pds-data: 575 jetstream-data: 576 knot-data: 577 knot-ssh-keys: 578 knotmirror-data: 579 zoekt-index: 580 spindle-data: 581 spindle-logs: 582 ncps-data: 583 init-state: 584 go-cache: 585 go-mod-cache: 586 appview-data: 587 hydrant-data: 588 bobbin-cargo: 589 bobbin-target: 590 web-node-modules: 591 web-svelte-kit: 592 camo-node-modules: 593 camo-wrangler: 594 avatar-node-modules: 595 avatar-wrangler: 596 597networks: 598 tngl: 599 driver: bridge 600 # Public-looking subnet so SSRF checks see container IPs as "public". 601 # RFC1918 + doc/benchmark ranges are blocklisted; 11.x is unrouted on 602 # the public internet, so it passes the check and won't collide. 603 ipam: 604 config: 605 - subnet: 11.0.0.0/24