mirror of
https://tangled.org/evan.jarrett.net/at-container-registry
synced 2026-04-22 09:20:31 +00:00
65 lines
1.7 KiB
YAML
65 lines
1.7 KiB
YAML
services:
|
|
atcr-registry:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
image: atcr-registry:latest
|
|
container_name: atcr-registry
|
|
ports:
|
|
- "5000:5000"
|
|
environment:
|
|
- ATCR_TOKEN_STORAGE_PATH=/var/lib/atcr/tokens/oauth-tokens.json
|
|
- ATCR_UI_ENABLED=true
|
|
- ATCR_BACKFILL_ENABLED=true
|
|
volumes:
|
|
# Auth keys (JWT signing keys)
|
|
- atcr-auth:/var/lib/atcr/auth
|
|
# OAuth refresh tokens (persists user sessions across container restarts)
|
|
- atcr-tokens:/var/lib/atcr/tokens
|
|
# UI database (firehose cache for web interface)
|
|
- atcr-ui:/var/lib/atcr
|
|
restart: unless-stopped
|
|
networks:
|
|
atcr-network:
|
|
ipv4_address: 172.28.0.2
|
|
# The registry should be stateless - all storage is external:
|
|
# - Manifests/Tags -> ATProto PDS
|
|
# - Blobs/Layers -> Hold service
|
|
# - OAuth tokens -> Persistent volume (atcr-tokens)
|
|
# Future: Add read_only: true for production deployments
|
|
|
|
atcr-hold:
|
|
environment:
|
|
HOLD_PUBLIC_URL: http://172.28.0.3:8080
|
|
HOLD_OWNER: did:plc:pddp4xt5lgnv2qsegbzzs4xg
|
|
HOLD_PUBLIC: false
|
|
STORAGE_DRIVER: filesystem
|
|
STORAGE_ROOT_DIR: /var/lib/atcr/hold
|
|
TEST_MODE: true
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.hold
|
|
image: atcr-hold:latest
|
|
container_name: atcr-hold
|
|
ports:
|
|
- "8080:8080"
|
|
volumes:
|
|
- atcr-hold:/var/lib/atcr/hold
|
|
restart: unless-stopped
|
|
networks:
|
|
atcr-network:
|
|
ipv4_address: 172.28.0.3
|
|
|
|
networks:
|
|
atcr-network:
|
|
driver: bridge
|
|
ipam:
|
|
config:
|
|
- subnet: 172.28.0.0/24
|
|
|
|
volumes:
|
|
atcr-hold:
|
|
atcr-auth:
|
|
atcr-tokens:
|
|
atcr-ui:
|