A container registry that uses the AT Protocol for manifest storage and S3 for blob storage.
atcr.io
docker
container
atproto
go
1services:
2 atcr-appview:
3 build:
4 context: .
5 dockerfile: Dockerfile.appview
6 image: atcr-appview:latest
7 container_name: atcr-appview
8 ports:
9 - "5000:5000"
10 # Optional: Load from .env.appview file (create from .env.appview.example)
11 # env_file:
12 # - .env.appview
13 environment:
14 # Server configuration
15 ATCR_HTTP_ADDR: :5000
16 ATCR_DEFAULT_HOLD_DID: did:web:172.28.0.3:8080
17 # UI configuration
18 ATCR_UI_ENABLED: true
19 ATCR_BACKFILL_ENABLED: true
20 # Test mode - fallback to default hold when user's hold is unreachable
21 TEST_MODE: true
22 # Logging
23 ATCR_LOG_LEVEL: debug
24 volumes:
25 # Auth keys (JWT signing keys)
26 # - atcr-auth:/var/lib/atcr/auth
27 # UI database (includes OAuth sessions, devices, and Jetstream cache)
28 - atcr-ui:/var/lib/atcr
29 restart: unless-stopped
30 dns:
31 - 8.8.8.8
32 - 1.1.1.1
33 networks:
34 atcr-network:
35 ipv4_address: 172.28.0.2
36 # The AppView is stateless - all storage is external:
37 # - Manifests/Tags -> ATProto PDS (via middleware)
38 # - Blobs/Layers -> Hold service (via ProxyBlobStore)
39 # - OAuth tokens -> SQLite database (atcr-ui volume)
40 # - No config.yml needed - all config via environment variables
41
42 atcr-hold:
43 env_file:
44 - ../atcr-secrets.env # Load S3/Storj credentials from external file
45 environment:
46 HOLD_PUBLIC_URL: http://172.28.0.3:8080
47 HOLD_OWNER: did:plc:pddp4xt5lgnv2qsegbzzs4xg
48 HOLD_PUBLIC: false
49 # STORAGE_DRIVER: filesystem
50 # STORAGE_ROOT_DIR: /var/lib/atcr/hold
51 TEST_MODE: true
52 # DISABLE_PRESIGNED_URLS: true
53 # Logging
54 ATCR_LOG_LEVEL: debug
55 # Storage config comes from env_file (STORAGE_DRIVER, AWS_*, S3_*)
56 build:
57 context: .
58 dockerfile: Dockerfile.hold
59 image: atcr-hold:latest
60 container_name: atcr-hold
61 ports:
62 - "8080:8080"
63 volumes:
64 # PDS data (carstore SQLite + signing keys)
65 - atcr-hold:/var/lib/atcr-hold
66 restart: unless-stopped
67 dns:
68 - 8.8.8.8
69 - 1.1.1.1
70 networks:
71 atcr-network:
72 ipv4_address: 172.28.0.3
73
74networks:
75 atcr-network:
76 driver: bridge
77 ipam:
78 config:
79 - subnet: 172.28.0.0/24
80
81volumes:
82 atcr-hold:
83 atcr-auth:
84 atcr-ui: