diff --git a/deploy/README.md b/deploy/README.md index 545a22a..77aebe7 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -485,6 +485,6 @@ docker run --rm \ ## Support -- Documentation: https://tangled.org/@evan.jarrett.net/at-container-registry -- Issues: https://tangled.org/@evan.jarrett.net/at-container-registry/issues +- Documentation: https://tangled.org/evan.jarrett.net/at-container-registry +- Issues: https://tangled.org/evan.jarrett.net/at-container-registry/issues - Bluesky: @evan.jarrett.net diff --git a/deploy/init-upcloud.sh b/deploy/init-upcloud.sh index b2755ab..23231a0 100644 --- a/deploy/init-upcloud.sh +++ b/deploy/init-upcloud.sh @@ -24,7 +24,7 @@ set -euo pipefail # Configuration ATCR_DIR="/opt/atcr" -ATCR_REPO="https://tangled.org/@evan.jarrett.net/at-container-registry" # UPDATE THIS +ATCR_REPO="https://tangled.org/evan.jarrett.net/at-container-registry" # UPDATE THIS ATCR_BRANCH="main" # Simple logging without colors (for cloud-init log compatibility) @@ -111,7 +111,7 @@ mkdir -p "$ATCR_DIR" cd "$ATCR_DIR" # Clone repository or create minimal structure -if [ -n "$ATCR_REPO" ] && [ "$ATCR_REPO" != "https://tangled.org/@evan.jarrett.net/at-container-registry" ]; then +if [ -n "$ATCR_REPO" ] && [ "$ATCR_REPO" != "https://tangled.org/evan.jarrett.net/at-container-registry" ]; then log_info "Cloning ATCR repository..." git clone -b "$ATCR_BRANCH" "$ATCR_REPO" . else @@ -330,7 +330,7 @@ Service Management: systemctl status atcr-hold - Check Hold status Documentation: - https://tangled.org/@evan.jarrett.net/at-container-registry + https://tangled.org/evan.jarrett.net/at-container-registry IMPORTANT: - Edit /opt/atcr/.env with S3 credentials before starting! diff --git a/deploy/upcloud/config.go b/deploy/upcloud/config.go index a4624ac..131b32a 100644 --- a/deploy/upcloud/config.go +++ b/deploy/upcloud/config.go @@ -13,7 +13,7 @@ import ( ) const ( - repoURL = "https://tangled.org/@evan.jarrett.net/at-container-registry" + repoURL = "https://tangled.org/evan.jarrett.net/at-container-registry" repoBranch = "main" privateNetworkCIDR = "10.0.1.0/24" ) diff --git a/deploy/upcloud/provision.go b/deploy/upcloud/provision.go index da5145e..227d6f0 100644 --- a/deploy/upcloud/provision.go +++ b/deploy/upcloud/provision.go @@ -906,6 +906,10 @@ func syncCloudInit(name, ip, localScript string) error { answer := strings.TrimSpace(strings.ToLower(scanner.Text())) if answer != "" && answer != "y" && answer != "yes" { fmt.Printf(" Skipped\n") + // Still update the remote reference so next provision sees an accurate diff + if err := writeRemoteCloudInit(ip, localScript); err != nil { + fmt.Printf(" WARNING: could not update remote cloud-init reference: %v\n", err) + } return nil } @@ -918,5 +922,18 @@ func syncCloudInit(name, ip, localScript string) error { } fmt.Printf(" %s: cloud-init complete\n", name) + + // Write the script to the remote path so next provision can detect real diffs + if err := writeRemoteCloudInit(ip, localScript); err != nil { + fmt.Printf(" WARNING: could not update remote cloud-init reference: %v\n", err) + } return nil } + +// writeRemoteCloudInit writes the local cloud-init script to the remote server +// so that subsequent provision runs can accurately detect real changes. +func writeRemoteCloudInit(ip, script string) error { + cmd := fmt.Sprintf("cat > %s << 'CLOUDINITEOF'\n%sCLOUDINITEOF", cloudInitPath, script) + _, err := runSSH(ip, cmd, false) + return err +} diff --git a/docs/appview.md b/docs/appview.md index c8ebc94..0ed9825 100644 --- a/docs/appview.md +++ b/docs/appview.md @@ -57,7 +57,7 @@ The fastest way to run AppView alongside a Hold service: ```bash # Clone repository -git clone https://tangled.org/@evan.jarrett.net/at-container-registry +git clone https://tangled.org/evan.jarrett.net/at-container-registry cd atcr # Copy and configure environment @@ -274,7 +274,7 @@ For production deployments with: - Log rotation - Monitoring -See **[deploy/README.md](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** for comprehensive production deployment guide. +See **[deploy/README.md](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** for comprehensive production deployment guide. ### Quick Production Checklist @@ -293,7 +293,7 @@ Before going to production: ## Configuration Files Reference -- **[.env.appview.example](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/.env.appview.example)** - All available environment variables with documentation -- **[deploy/.env.prod.template](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/deploy/.env.prod.template)** - Production configuration template -- **[deploy/README.md](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** - Production deployment guide +- **[.env.appview.example](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/.env.appview.example)** - All available environment variables with documentation +- **[deploy/.env.prod.template](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/deploy/.env.prod.template)** - Production configuration template +- **[deploy/README.md](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** - Production deployment guide - **[Hold Service Documentation](https://atcr.io/r/evan.jarrett.net/atcr-hold)** - Storage backend setup diff --git a/docs/hold.md b/docs/hold.md index 36bdfa2..f878ab4 100644 --- a/docs/hold.md +++ b/docs/hold.md @@ -62,7 +62,7 @@ The fastest way to run Hold service with S3 storage: ```bash # Clone repository -git clone https://tangled.org/@evan.jarrett.net/at-container-registry +git clone https://tangled.org/evan.jarrett.net/at-container-registry cd atcr # Copy and configure environment @@ -355,7 +355,7 @@ For production deployments with: - Systemd service files - Monitoring -See **[deploy/README.md](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** for comprehensive production deployment guide. +See **[deploy/README.md](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** for comprehensive production deployment guide. ### Quick Production Checklist @@ -375,8 +375,8 @@ Before going to production: ## Configuration Files Reference -- **[.env.hold.example](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/.env.hold.example)** - All available environment variables with documentation -- **[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) -- **[deploy/README.md](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** - Production deployment guide +- **[.env.hold.example](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/.env.hold.example)** - All available environment variables with documentation +- **[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) +- **[deploy/README.md](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/deploy/README.md)** - Production deployment guide - **[AppView Documentation](https://atcr.io/r/evan.jarrett.net/atcr-appview)** - Registry API server setup -- **[BYOS Architecture](https://tangled.org/@evan.jarrett.net/at-container-registry/blob/main/docs/BYOS.md)** - Bring Your Own Storage technical design +- **[BYOS Architecture](https://tangled.org/evan.jarrett.net/at-container-registry/blob/main/docs/BYOS.md)** - Bring Your Own Storage technical design diff --git a/pkg/appview/config.go b/pkg/appview/config.go index ead9d34..f2d7c83 100644 --- a/pkg/appview/config.go +++ b/pkg/appview/config.go @@ -225,7 +225,7 @@ func LoadConfig(yamlPath string) (*Config, error) { // Post-load: fixed values cfg.Auth.TokenExpiration = 5 * time.Minute cfg.Auth.ServiceName = deriveServiceName(cfg) - cfg.CredentialHelper.TangledRepo = "https://tangled.org/@evan.jarrett.net/at-container-registry" + cfg.CredentialHelper.TangledRepo = "https://tangled.org/evan.jarrett.net/at-container-registry" // Post-load: CompanyName defaults to ClientName if cfg.Legal.CompanyName == "" { diff --git a/pkg/appview/public/static/install.ps1 b/pkg/appview/public/static/install.ps1 index 2bb5e50..681834e 100644 --- a/pkg/appview/public/static/install.ps1 +++ b/pkg/appview/public/static/install.ps1 @@ -10,7 +10,7 @@ $ApiUrl = if ($env:ATCR_API_URL) { $env:ATCR_API_URL } else { "https://atcr.io/a # Fallback configuration (used if API is unavailable) $FallbackVersion = "v0.0.1" -$FallbackTangledRepo = "https://tangled.org/@evan.jarrett.net/at-container-registry" +$FallbackTangledRepo = "https://tangled.org/evan.jarrett.net/at-container-registry" Write-Host "ATCR Credential Helper Installer for Windows" -ForegroundColor Green Write-Host "" diff --git a/pkg/appview/public/static/install.sh b/pkg/appview/public/static/install.sh index da7aa33..2937f48 100755 --- a/pkg/appview/public/static/install.sh +++ b/pkg/appview/public/static/install.sh @@ -17,7 +17,7 @@ API_URL="${ATCR_API_URL:-https://atcr.io/api/credential-helper/version}" # Fallback configuration (used if API is unavailable) FALLBACK_VERSION="v0.0.1" -FALLBACK_TANGLED_REPO="https://tangled.org/@evan.jarrett.net/at-container-registry" +FALLBACK_TANGLED_REPO="https://tangled.org/evan.jarrett.net/at-container-registry" # Detect OS and architecture detect_platform() { diff --git a/pkg/appview/templates/pages/install.html b/pkg/appview/templates/pages/install.html index 80920c1..72cc3f7 100644 --- a/pkg/appview/templates/pages/install.html +++ b/pkg/appview/templates/pages/install.html @@ -121,7 +121,7 @@
Check the full documentation or open an issue.
+Check the full documentation or open an issue.