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

3.5 KiB

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, the correct format is:

POST /api/v1/packages/{owner}/{type}/{name}/-/link/{repo_name}

3. Our Current Implementation

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:

# 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