How do I use a private Composer repository?
Jul 14, 2025 am 12:30 AMTo use a private Composer repository, configure composer.json with the correct repository URL, handle authentication securely via SSH or HTTPS, and ensure packages are accessible. First, add the repository in composer.json using either a VCS type for Git repositories or a Composer type for private Packagist instances. Second, manage authentication by setting up SSH keys or using personal access tokens stored in auth.json without committing it to version control. Third, install packages normally with composer require, ensuring proper version tags, network access, permissions, and SSH agent availability.
Using a private Composer repository is pretty straightforward once you understand the setup. The key points are configuring your composer.json
correctly, handling authentication properly, and ensuring your packages are accessible over a supported protocol like HTTPS or SSH.
Setting Up the Repository in composer.json
To use a private repo, you need to tell Composer where it is. That means adding a repositories
section to your composer.json
file pointing to your private package source.
{ "repositories": [ { "type": "vcs", "url": "https://github.com/your-org/your-private-repo.git" } ] }
Or if you're using a private Packagist-style repository:
{ "repositories": [ { "type": "composer", "url": "https://repo.your-private-packagist.com" } ] }
This tells Composer to look there when resolving dependencies. Make sure the URL is correct and accessible from your environment.
Handling Authentication
Private repositories require authentication. There are a few ways to handle this depending on the type of repo and how it’s hosted.
For Git-based VCS repositories, you can use SSH keys or HTTPS with tokens:
- SSH: Set up an SSH key pair and ensure the public key is added to your Git provider.
- HTTPS: Use a personal access token (PAT) as the password.
Composer stores auth info in the auth.json
file, usually located in the same directory as composer.json
or in a global location.
Example auth.json
:
{ "github-oauth": { "github.com": "your-personal-access-token" }, "http-basic": { "repo.your-private-packagist.com": { "username": "your-user", "password": "your-password-or-api-token" } } }
? Pro tip: Never commit auth.json
into version control. Add it to .gitignore
.
Installing Private Packages
Once everything is configured, installing your package works just like any other:
composer require vendor/package-name
Composer will reach out to the private repo, authenticate, fetch the code, and install it.
A couple things to note:
- If you're using a custom VCS repo, make sure your
composer.json
inside that repo has proper version tags or branches defined. - For private Packagist instances, ensure the package is actually published and available to your user/team.
Also, remember to check:
- Your network/firewall settings allow outgoing HTTPS/Git traffic
- Your SSH agent is running if you’re using SSH keys
- You have the right permissions for the repository
That’s basically it — set the repo, handle auth, and install. It’s not complicated once you know where to place the config files and how to manage credentials securely.
The above is the detailed content of How do I use a private Composer repository?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

The essential Laravel extension packages for 2024 include: 1. LaravelDebugbar, used to monitor and debug code; 2. LaravelTelescope, providing detailed application monitoring; 3. LaravelHorizon, managing Redis queue tasks. These expansion packs can improve development efficiency and application performance.

The steps to build a Laravel environment on different operating systems are as follows: 1.Windows: Use XAMPP to install PHP and Composer, configure environment variables, and install Laravel. 2.Mac: Use Homebrew to install PHP and Composer and install Laravel. 3.Linux: Use Ubuntu to update the system, install PHP and Composer, and install Laravel. The specific commands and paths of each system are different, but the core steps are consistent to ensure the smooth construction of the Laravel development environment.

The main differences between Laravel and Yii are design concepts, functional characteristics and usage scenarios. 1.Laravel focuses on the simplicity and pleasure of development, and provides rich functions such as EloquentORM and Artisan tools, suitable for rapid development and beginners. 2.Yii emphasizes performance and efficiency, is suitable for high-load applications, and provides efficient ActiveRecord and cache systems, but has a steep learning curve.

Integrating Sentry and Bugsnag in Laravel can improve application stability and performance. 1. Add SentrySDK in composer.json. 2. Add Sentry service provider in config/app.php. 3. Configure SentryDSN in the .env file. 4. Add Sentry error report in App\Exceptions\Handler.php. 5. Use Sentry to catch and report exceptions and add additional context information. 6. Add Bugsnag error report in App\Exceptions\Handler.php. 7. Use Bugsnag monitoring

Composer is a dependency management tool for PHP, and manages project dependencies through composer.json file. 1) parse composer.json to obtain dependency information; 2) parse dependencies to form a dependency tree; 3) download and install dependencies from Packagist to the vendor directory; 4) generate composer.lock file to lock the dependency version to ensure team consistency and project maintainability.

Integrating social media login in the Laravel framework can be achieved by using the LaravelSocialite package. 1. Install the Socialite package: use composerrequirelaravel/socialite. 2. Configure the service provider and alias: add relevant configuration in config/app.php. 3. Set API credentials: Configure social media API credentials in .env and config/services.php. 4. Write controller method: Add redirection and callback methods to handle social media login process. 5. Handle FAQs: Ensure user uniqueness, data synchronization, security and error handling. 6. Optimization practice:

Composer is a PHP dependency management tool that manages project dependencies through composer.json file. 1. Use composerinit to initialize the project. 2. Add dependencies such as composerrequireguzzlehttp/guzzle. 3. Advanced usage includes configuring private repositories and using script hooks. 4. Common errors such as dependency conflicts can be debugged through the composerwhy-not command. 5. Performance optimization is recommended to use composerinstall-prefer-dist and periodically update dependencies.

The steps to create a package in Laravel include: 1) Understanding the advantages of packages, such as modularity and reuse; 2) following Laravel naming and structural specifications; 3) creating a service provider using artisan command; 4) publishing configuration files correctly; 5) managing version control and publishing to Packagist; 6) performing rigorous testing; 7) writing detailed documentation; 8) ensuring compatibility with different Laravel versions.
