A container registry that uses the AT Protocol for manifest storage and S3 for blob storage. atcr.io
docker container atproto go
81
fork

Configure Feed

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

remote at sign from tangled urls

+39 -22
+2 -2
deploy/README.md
··· 485 485 486 486 ## Support 487 487 488 - - Documentation: https://tangled.org/@evan.jarrett.net/at-container-registry 489 - - Issues: https://tangled.org/@evan.jarrett.net/at-container-registry/issues 488 + - Documentation: https://tangled.org/evan.jarrett.net/at-container-registry 489 + - Issues: https://tangled.org/evan.jarrett.net/at-container-registry/issues 490 490 - Bluesky: @evan.jarrett.net
+3 -3
deploy/init-upcloud.sh
··· 24 24 25 25 # Configuration 26 26 ATCR_DIR="/opt/atcr" 27 - ATCR_REPO="https://tangled.org/@evan.jarrett.net/at-container-registry" # UPDATE THIS 27 + ATCR_REPO="https://tangled.org/evan.jarrett.net/at-container-registry" # UPDATE THIS 28 28 ATCR_BRANCH="main" 29 29 30 30 # Simple logging without colors (for cloud-init log compatibility) ··· 111 111 cd "$ATCR_DIR" 112 112 113 113 # Clone repository or create minimal structure 114 - if [ -n "$ATCR_REPO" ] && [ "$ATCR_REPO" != "https://tangled.org/@evan.jarrett.net/at-container-registry" ]; then 114 + if [ -n "$ATCR_REPO" ] && [ "$ATCR_REPO" != "https://tangled.org/evan.jarrett.net/at-container-registry" ]; then 115 115 log_info "Cloning ATCR repository..." 116 116 git clone -b "$ATCR_BRANCH" "$ATCR_REPO" . 117 117 else ··· 330 330 systemctl status atcr-hold - Check Hold status 331 331 332 332 Documentation: 333 - https://tangled.org/@evan.jarrett.net/at-container-registry 333 + https://tangled.org/evan.jarrett.net/at-container-registry 334 334 335 335 IMPORTANT: 336 336 - Edit /opt/atcr/.env with S3 credentials before starting!
+1 -1
deploy/upcloud/config.go
··· 13 13 ) 14 14 15 15 const ( 16 - repoURL = "https://tangled.org/@evan.jarrett.net/at-container-registry" 16 + repoURL = "https://tangled.org/evan.jarrett.net/at-container-registry" 17 17 repoBranch = "main" 18 18 privateNetworkCIDR = "10.0.1.0/24" 19 19 )
+17
deploy/upcloud/provision.go
··· 906 906 answer := strings.TrimSpace(strings.ToLower(scanner.Text())) 907 907 if answer != "" && answer != "y" && answer != "yes" { 908 908 fmt.Printf(" Skipped\n") 909 + // Still update the remote reference so next provision sees an accurate diff 910 + if err := writeRemoteCloudInit(ip, localScript); err != nil { 911 + fmt.Printf(" WARNING: could not update remote cloud-init reference: %v\n", err) 912 + } 909 913 return nil 910 914 } 911 915 ··· 918 922 } 919 923 920 924 fmt.Printf(" %s: cloud-init complete\n", name) 925 + 926 + // Write the script to the remote path so next provision can detect real diffs 927 + if err := writeRemoteCloudInit(ip, localScript); err != nil { 928 + fmt.Printf(" WARNING: could not update remote cloud-init reference: %v\n", err) 929 + } 921 930 return nil 922 931 } 932 + 933 + // writeRemoteCloudInit writes the local cloud-init script to the remote server 934 + // so that subsequent provision runs can accurately detect real changes. 935 + func writeRemoteCloudInit(ip, script string) error { 936 + cmd := fmt.Sprintf("cat > %s << 'CLOUDINITEOF'\n%sCLOUDINITEOF", cloudInitPath, script) 937 + _, err := runSSH(ip, cmd, false) 938 + return err 939 + }
+5 -5
docs/appview.md
··· 57 57 58 58 ```bash 59 59 # Clone repository 60 - git clone https://tangled.org/@evan.jarrett.net/at-container-registry 60 + git clone https://tangled.org/evan.jarrett.net/at-container-registry 61 61 cd atcr 62 62 63 63 # Copy and configure environment ··· 274 274 - Log rotation 275 275 - Monitoring 276 276 277 - See **[deploy/README.md](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** for comprehensive production deployment guide. 277 + See **[deploy/README.md](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** for comprehensive production deployment guide. 278 278 279 279 ### Quick Production Checklist 280 280 ··· 293 293 294 294 ## Configuration Files Reference 295 295 296 - - **[.env.appview.example](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/.env.appview.example)** - All available environment variables with documentation 297 - - **[deploy/.env.prod.template](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/deploy/.env.prod.template)** - Production configuration template 298 - - **[deploy/README.md](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** - Production deployment guide 296 + - **[.env.appview.example](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/.env.appview.example)** - All available environment variables with documentation 297 + - **[deploy/.env.prod.template](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/deploy/.env.prod.template)** - Production configuration template 298 + - **[deploy/README.md](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** - Production deployment guide 299 299 - **[Hold Service Documentation](https://atcr.io/r/evan.jarrett.net/atcr-hold)** - Storage backend setup
+6 -6
docs/hold.md
··· 62 62 63 63 ```bash 64 64 # Clone repository 65 - git clone https://tangled.org/@evan.jarrett.net/at-container-registry 65 + git clone https://tangled.org/evan.jarrett.net/at-container-registry 66 66 cd atcr 67 67 68 68 # Copy and configure environment ··· 355 355 - Systemd service files 356 356 - Monitoring 357 357 358 - See **[deploy/README.md](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** for comprehensive production deployment guide. 358 + See **[deploy/README.md](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** for comprehensive production deployment guide. 359 359 360 360 ### Quick Production Checklist 361 361 ··· 375 375 376 376 ## Configuration Files Reference 377 377 378 - - **[.env.hold.example](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/.env.hold.example)** - All available environment variables with documentation 379 - - **[deploy/.env.prod.template](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/deploy/.env.prod.template)** - Production configuration template (includes both AppView and Hold) 380 - - **[deploy/README.md](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** - Production deployment guide 378 + - **[.env.hold.example](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/.env.hold.example)** - All available environment variables with documentation 379 + - **[deploy/.env.prod.template](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/deploy/.env.prod.template)** - Production configuration template (includes both AppView and Hold) 380 + - **[deploy/README.md](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** - Production deployment guide 381 381 - **[AppView Documentation](https://atcr.io/r/evan.jarrett.net/atcr-appview)** - Registry API server setup 382 - - **[BYOS Architecture](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/docs/BYOS.md)** - Bring Your Own Storage technical design 382 + - **[BYOS Architecture](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/docs/BYOS.md)** - Bring Your Own Storage technical design
+1 -1
pkg/appview/config.go
··· 225 225 // Post-load: fixed values 226 226 cfg.Auth.TokenExpiration = 5 * time.Minute 227 227 cfg.Auth.ServiceName = deriveServiceName(cfg) 228 - cfg.CredentialHelper.TangledRepo = "https://tangled.org/@evan.jarrett.net/at-container-registry" 228 + cfg.CredentialHelper.TangledRepo = "https://tangled.org/evan.jarrett.net/at-container-registry" 229 229 230 230 // Post-load: CompanyName defaults to ClientName 231 231 if cfg.Legal.CompanyName == "" {
+1 -1
pkg/appview/public/static/install.ps1
··· 10 10 11 11 # Fallback configuration (used if API is unavailable) 12 12 $FallbackVersion = "v0.0.1" 13 - $FallbackTangledRepo = "https://tangled.org/@evan.jarrett.net/at-container-registry" 13 + $FallbackTangledRepo = "https://tangled.org/evan.jarrett.net/at-container-registry" 14 14 15 15 Write-Host "ATCR Credential Helper Installer for Windows" -ForegroundColor Green 16 16 Write-Host ""
+1 -1
pkg/appview/public/static/install.sh
··· 17 17 18 18 # Fallback configuration (used if API is unavailable) 19 19 FALLBACK_VERSION="v0.0.1" 20 - FALLBACK_TANGLED_REPO="https://tangled.org/@evan.jarrett.net/at-container-registry" 20 + FALLBACK_TANGLED_REPO="https://tangled.org/evan.jarrett.net/at-container-registry" 21 21 22 22 # Detect OS and architecture 23 23 detect_platform() {
+1 -1
pkg/appview/templates/pages/install.html
··· 121 121 </div> 122 122 123 123 <h3 class="text-lg font-medium mb-3">Still having issues?</h3> 124 - <p>Check the <a href="https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/INSTALLATION.md" class="link link-primary">full documentation</a> or <a href="https://tangled.org/@evan.jarrett.net/at-container-registry/issues" class="link link-primary">open an issue</a>.</p> 124 + <p>Check the <a href="https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/INSTALLATION.md" class="link link-primary">full documentation</a> or <a href="https://tangled.org/evan.jarrett.net/at-container-registry/issues" class="link link-primary">open an issue</a>.</p> 125 125 </section> 126 126 127 127 <section>
+1 -1
pkg/appview/templates/pages/learn-more.html
··· 164 164 </p> 165 165 <div class="flex flex-col sm:flex-row items-center justify-center gap-4"> 166 166 <a href="/install" class="btn btn-primary btn-lg">Get Started</a> 167 - <a href="https://tangled.org/@evan.jarrett.net/at-container-registry" target="_blank" rel="noopener" class="btn btn-ghost btn-lg"> 167 + <a href="https://tangled.org/evan.jarrett.net/at-container-registry" target="_blank" rel="noopener" class="btn btn-ghost btn-lg"> 168 168 {{ icon "github" "size-5 mr-2" }} 169 169 View Source 170 170 </a>