A container registry that uses the AT Protocol for manifest storage and S3 for blob storage. atcr.io
docker container atproto go
at 8e31137c627b4c0db577eb49c6e7e852e7dae0bf 87 lines 2.4 kB view raw
1services: 2 atcr-appview: 3 build: 4 context: . 5 dockerfile: Dockerfile.dev 6 image: atcr-appview-dev: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 # Mount source code for Air hot reload 26 - .:/app 27 # Cache go modules between rebuilds 28 - go-mod-cache:/go/pkg/mod 29 # UI database (includes OAuth sessions, devices, and Jetstream cache) 30 - atcr-ui:/var/lib/atcr 31 restart: unless-stopped 32 dns: 33 - 8.8.8.8 34 - 1.1.1.1 35 networks: 36 atcr-network: 37 ipv4_address: 172.28.0.2 38 # The AppView is stateless - all storage is external: 39 # - Manifests/Tags -> ATProto PDS (via middleware) 40 # - Blobs/Layers -> Hold service (via ProxyBlobStore) 41 # - OAuth tokens -> SQLite database (atcr-ui volume) 42 # - No config.yml needed - all config via environment variables 43 44 atcr-hold: 45 env_file: 46 - ../atcr-secrets.env # Load S3/Storj credentials from external file 47 environment: 48 HOLD_PUBLIC_URL: http://172.28.0.3:8080 49 HOLD_OWNER: did:plc:pddp4xt5lgnv2qsegbzzs4xg 50 HOLD_PUBLIC: false 51 # STORAGE_DRIVER: filesystem 52 # STORAGE_ROOT_DIR: /var/lib/atcr/hold 53 TEST_MODE: true 54 # DISABLE_PRESIGNED_URLS: true 55 # Logging 56 ATCR_LOG_LEVEL: debug 57 # Storage config comes from env_file (STORAGE_DRIVER, AWS_*, S3_*) 58 build: 59 context: . 60 dockerfile: Dockerfile.hold 61 image: atcr-hold:latest 62 container_name: atcr-hold 63 ports: 64 - "8080:8080" 65 volumes: 66 # PDS data (carstore SQLite + signing keys) 67 - atcr-hold:/var/lib/atcr-hold 68 restart: unless-stopped 69 dns: 70 - 8.8.8.8 71 - 1.1.1.1 72 networks: 73 atcr-network: 74 ipv4_address: 172.28.0.3 75 76networks: 77 atcr-network: 78 driver: bridge 79 ipam: 80 config: 81 - subnet: 172.28.0.0/24 82 83volumes: 84 atcr-hold: 85 atcr-auth: 86 atcr-ui: 87 go-mod-cache: