package-pipeline
Self-hosted private Composer registry for PHP projects using Filament admin panel.
Ficha actualizada 23 sept 2026, 1:57 · upstream 23 sept 2026, 1:42 · release 2.6.1
Qué es package-pipeline
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Package Pipeline is a self-hosted private Composer registry that replaces the need to maintain multiple repositories per project. It provides a single repository URL for all your private packages, eliminating the chore of managing separate composer.json entries and credentials across consuming applications.
The solution uses PHP 8.4+ with Filament admin panel as its core interface, orchestrated by Laravel's queue system for background sync jobs. Packages are synced from GitHub or GitLab repositories via a source configuration, storing versions in PostgreSQL (or MySQL/SQLite) with checksums and zipball dists served entirely from the app's own storage.
Key architectural decisions include: - A monorepo structure where each package is registered as a separate repository under its namespace - Source-based authentication that supports GitHub App installations or GitLab access tokens - An audit log for all registry changes, with policies restricting who can modify entries - Automatic role inheritance via Filament Shield and spatie/laravel-permission - A deploy script (composer run setup) that installs dependencies, builds the admin stylesheet, creates .env files, generates app keys, runs migrations, and seeds permissions
- Sharing private PHP packages across multiple projects without maintaining per-project composer.json entries
- Centralizing package management for teams or organizations with shared infrastructure
- Eliminating the need to manage separate Composer repositories for each consuming application
- Providing a single source of truth for package metadata, versions, and release history
- Enabling automated sync from GitHub/GitLab without manual repository configuration per project
- Supports PHP 8.4+ with Filament admin panel as the primary interface
- Uses Laravel queue system for background package syncing, keeping the CLI responsive
- Source-based authentication via GitHub App or GitLab tokens with configurable expiration
- Stores package zipballs and checksums locally on disk (or S3) rather than relying on Composer's remote dist downloads
- Audit log records all registry changes including deletions, enabling full traceability of package modifications
- Requires PHP 8.4+ with Composer installed on the server
- Node.js 22+ is required for compiling frontend assets and admin panel stylesheets
- SQLite is the default database; MySQL or PostgreSQL are supported alternatives but require configuration
- GitHub App installation requires a one-time setup (~5 minutes) per deployment, which can be time-consuming in CI/CD pipelines
- GitLab packages use project-level hooks rather than an account-wide webhook system, requiring manual hook creation for each package
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Run `composer run setup` to install dependencies, build the admin stylesheet, create .env files, generate app keys, and seed permissions,Start with `php artisan serve --host=0.0.0.0 --port=8000` for development; use a production server (e.g., Nginx + PHP-FPM) in production,Configure your Composer repositories by pasting the registry URL into each project's composer.json under 'repositories' → 'packages',For GitHub sources, create a fine-grained personal access token with read-only contents and metadata scopes; store it securely in .env or environment variables,The admin panel is built on Filament PHP framework — ensure the latest version is installed via `composer require filament/filament:latest`,Monitor queue workers to prevent sync jobs from blocking package installation during deployment,Consider using a dedicated server for the registry rather than hosting it alongside your applicat
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.