selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

pricore logo

Self-host pricore

v0.58.4

Host your own Composer package registry

BetaOpen SourceApache-2.0
Updated10 hours ago
LanguagePHP
Setup difficultyModerate
Stars
158
CPU
1 core
RAM
1 GB
Storage
10 GB
Ports
8000 (Main web application (FrankenPHP)), 8080 (Reverb WebSocket server for real-time updates)
Requires
Database (SQLite, MySQL 8.0+, or PostgreSQL 14+), Redis
Docker
ghcr.io/pricorephp/pricore
Pricore Dashboard showing package listing and management interface

What is pricore?

A self-hosted Composer registry giving PHP teams complete ownership of their private package ecosystem. A web dashboard handles package browsing, token management, and download metrics. Packages sync automatically from major Git providers through webhooks, with monorepo support and Packagist mirroring. The native Composer v2 API ensures quick dependency resolution, while security auditing taps Packagist advisories with built-in composer audit integration. The stack runs on Laravel with FrankenPHP for speed, uses Redis for queues and caching, and works with SQLite, MySQL, or PostgreSQL. Deploy via Docker Compose or manually with PHP 8.4+, Node.js 22+, and a web server. Licensed under Apache 2.0 with a managed cloud alternative available.

Should you self-host pricore?

pricore scores 48/100 on selfhost.directory (how scoring works) and ranks #7 of 11 in Package Management. It has 158 GitHub stars.

It shipped 20 stable releases in the past year. The latest, v0.58.4, came out on 21 October 2026. New versions land roughly every 2 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is Apache-2.0-licensed and written mostly in PHP.

Its closest alternative on selfhost.directory is verdaccio (75/100, 17 954 stars). It scores higher overall, so compare the two before you pick. See pricore vs verdaccio side by side.

Features

  • Automatic Package Discovery
  • Composer v2 API
  • Git-Based Mirroring
  • Monorepo Support
  • Organization Management
  • Private Composer registry
  • Real-time updatesOptional - works without Reverb configured
  • Registry Mirrors
  • Security Auditing
  • Token-based authentication
  • Two-factor authentication
  • Web Dashboard

pricore README

How to configure pricore

  • APP_DEBUGtrue
  • APP_ENVlocal
  • APP_FAKER_LOCALEen_US
  • APP_FALLBACK_LOCALEen
  • APP_KEY
  • APP_LOCALEen
  • APP_MAINTENANCE_DRIVERfile
  • APP_MAINTENANCE_STORE
  • APP_NAMEPricore
  • APP_URLhttp://localhost
  • AWS_ACCESS_KEY_ID
  • AWS_BUCKET
  • AWS_DEFAULT_REGIONus-east-1
  • AWS_SECRET_ACCESS_KEY
  • AWS_USE_PATH_STYLE_ENDPOINTfalse
  • BCRYPT_ROUNDS12
  • BROADCAST_CONNECTIONlog
  • CACHE_PREFIX
  • CACHE_STOREdatabase
  • DB_CONNECTIONsqlite
  • DB_DATABASE
  • DB_HOST
  • DB_PASSWORD
  • DB_PORT
  • DB_USERNAME
  • FILESYSTEM_DISKlocal
  • GITHUB_CLIENT_ID
  • GITHUB_CLIENT_SECRET
  • GITHUB_REDIRECT_URI${APP_URL}/auth/github/callback
  • GOOGLE_ANALYTICS_IDOptional. Set on hosted deployments to measure signup conversions.

    Optional. Set on hosted deployments to measure signup conversions.

  • LOG_CHANNELstack
  • LOG_DEPRECATIONS_CHANNEL
  • LOG_LEVELdebug
  • LOG_STACKsingle
  • MAIL_FROM_ADDRESS
  • MAIL_FROM_NAME${APP_NAME}
  • MAIL_HOST127.0.0.1
  • MAIL_MAILERlog
  • MAIL_PASSWORD
  • MAIL_PORT2525
  • MAIL_SCHEME
  • MAIL_USERNAME
  • MEMCACHED_HOST127.0.0.1
  • MIRROR_ALLOWED_PRIVATE_HOSTSExact mirror hostnames or IP addresses that may resolve to private networks. Private targets are blocked by default. Wildcards and CIDR ranges are not supported.

    Exact mirror hostnames or IP addresses that may resolve to private networks. Private targets are blocked by default. Wildcards and CIDR ranges are not supported.

  • PHP_CLI_SERVER_WORKERS
  • QUEUE_CONNECTIONdatabase
  • REDIS_CLIENTphpredis
  • REDIS_HOST127.0.0.1
  • REDIS_PASSWORD
  • REDIS_PORT6379
  • REVERB_APP_ID
  • REVERB_APP_KEY
  • REVERB_APP_SECRET
  • REVERB_ECHO_HOST
  • REVERB_ECHO_PORT443
  • REVERB_ECHO_SCHEMEhttps
  • REVERB_HOSTlocalhost
  • REVERB_PORT8080
  • REVERB_SCHEMEhttp
  • S3_ACCESS_KEY_IDS3-compatible storage (optional, falls back to AWS_* values)

    S3-compatible storage (optional, falls back to AWS_* values)

  • S3_BUCKET
  • S3_DEFAULT_REGION
  • S3_ENDPOINT
  • S3_SECRET_ACCESS_KEY
  • S3_URL
  • S3_USE_PATH_STYLE_ENDPOINT
  • SESSION_DOMAIN
  • SESSION_DRIVERdatabase
  • SESSION_ENCRYPTfalse
  • SESSION_LIFETIME120
  • SESSION_PATH/
  • SIGN_UP_ENABLEDfalsePublic registration. Leave disabled to keep the instance invite-only; create the first user with `php artisan pricore:install`.

    Public registration. Leave disabled to keep the instance invite-only; create the first user with `php artisan pricore:install`.

  • VITE_APP_NAME${APP_NAME}

pricore releases & version history

More in Package Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…