Files
stack/docs/PACKAGE-LINK-DIAGNOSIS.md
Jason Woltje 6521cba735
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
feat: add flexible docker-compose architecture with profiles
- Add OpenBao services to docker-compose.yml with profiles (openbao, full)
- Add docker-compose.build.yml for local builds vs registry pulls
- Make PostgreSQL and Valkey optional via profiles (database, cache)
- Create example compose files for common deployment scenarios:
  - docker/docker-compose.example.turnkey.yml (all bundled)
  - docker/docker-compose.example.external.yml (all external)
  - docker/docker.example.hybrid.yml (mixed deployment)
- Update documentation:
  - Enhance .env.example with profiles and external service examples
  - Update README.md with deployment mode quick starts
  - Add deployment scenarios to docs/OPENBAO.md
  - Create docker/DOCKER-COMPOSE-GUIDE.md with comprehensive guide
- Clean up repository structure:
  - Move shell scripts to scripts/ directory
  - Move documentation to docs/ directory
  - Move docker compose examples to docker/ directory
- Configure for external Authentik with internal services:
  - Comment out Authentik services (using external OIDC)
  - Comment out unused volumes for disabled services
  - Keep postgres, valkey, openbao as internal services

This provides a flexible deployment architecture supporting turnkey,
production (all external), and hybrid configurations via Docker Compose
profiles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 16:55:33 -06:00

124 lines
3.5 KiB
Markdown

# Package Linking Issue Diagnosis
## Current Status
✅ All 5 Docker images built and pushed successfully
❌ Package linking failed with 404 errors
## What I Found
### 1. Gitea Version
- **Current version:** 1.24.3
- **API added in:** 1.24.0
- **Status:** ✅ Version supports the package linking API
### 2. API Endpoint Format
According to [Gitea PR #33481](https://github.com/go-gitea/gitea/pull/33481), the correct format is:
```
POST /api/v1/packages/{owner}/{type}/{name}/-/link/{repo_name}
```
### 3. Our Current Implementation
```bash
POST https://git.mosaicstack.dev/api/v1/packages/mosaic/container/stack-api/-/link/stack
```
This matches the expected format! ✅
### 4. The Problem
All 5 package link attempts returned **404 Not Found**:
```
Warning: stack-api link returned 404
Warning: stack-web link returned 404
Warning: stack-postgres link returned 404
Warning: stack-openbao link returned 404
Warning: stack-orchestrator link returned 404
```
## Possible Causes
### A. Package Names Might Be Different
When we push `git.mosaicstack.dev/mosaic/stack-api:tag`, Gitea might store it with a different name:
- Could be: `mosaic/stack-api` (with owner prefix)
- Could be: URL encoded differently
- Could be: Using a different naming convention
### B. Package Type Might Be Wrong
- We're using `container` but maybe Gitea uses something else
- Check: `docker`, `oci`, or another type identifier
### C. Packages Not Visible to API
- Packages might exist but not be queryable via API
- Permission issue with the token
## Diagnostic Steps
### Step 1: Run the Diagnostic Script
I've created a comprehensive diagnostic script:
```bash
# Get your Gitea API token from:
# https://git.mosaicstack.dev/user/settings/applications
# Run the diagnostic
GITEA_TOKEN='your_token_here' ./diagnose-package-link.sh
```
This script will:
1. List all packages via API to see actual names
2. Test different endpoint formats
3. Show detailed status codes and responses
4. Provide analysis and next steps
### Step 2: Manual Verification via Web UI
1. Visit https://git.mosaicstack.dev/mosaic/-/packages
2. Find one of the stack-\* packages
3. Click on it to view details
4. Look for a "Link to repository" or "Settings" option
5. Try linking manually to verify the feature works
### Step 3: Check Package Name Format
Look at the URL when viewing a package in the UI:
- If URL is `/mosaic/-/packages/container/stack-api`, name is `stack-api`
- If URL is `/mosaic/-/packages/container/mosaic%2Fstack-api`, name is `mosaic/stack-api`
## Next Actions
1. **Run diagnostic script** to get detailed information
2. **Check one package manually** via web UI to confirm linking works
3. **Update .woodpecker.yml** once we know the correct format
4. **Test fix** with a manual pipeline run
## Alternative Solution: Manual Linking
If the API doesn't work, we can:
1. Document the manual linking process
2. Create a one-time manual linking task
3. Wait for a Gitea update that fixes the API
But this should only be a last resort since the API should work in version 1.24.3.
## References
- [Gitea Issue #21062](https://github.com/go-gitea/gitea/issues/21062) - Original feature request
- [Gitea PR #33481](https://github.com/go-gitea/gitea/pull/33481) - Implementation (v1.24.0)
- [Gitea Issue #30598](https://github.com/go-gitea/gitea/issues/30598) - Related request
- [Gitea Packages Documentation](https://docs.gitea.com/usage/packages/overview)
- [Gitea Container Registry Documentation](https://docs.gitea.com/usage/packages/container)