CINXE.COM

Private Packagist Documentation - Private Packagist Documentation

<!DOCTYPE html> <html class="no-js" lang="en" data-turbo="false"> <head> <meta charset="utf-8" /> <meta http-equiv="x-ua-compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Private Packagist Documentation - Private Packagist Documentation</title> <link rel="stylesheet" href="/fonts/fallback/fonts-v1.css"> <link rel="stylesheet" href="/build/fontawesome.127c1b29.css"> <link rel="canonical" href="https://packagist.com/docs" /> <link rel="stylesheet" href="/build/app.6734150c.css"> <link rel="shortcut icon" href="/favicon.ico" /> <meta property="og:title" content="Private Packagist Documentation - Private Packagist Documentation" /> <meta property="og:description" content="Composer package archive as a service for PHP" /> <meta property="og:image" content="https://packagist.com/img/logo-raster.png" /> <meta property="og:site_name" content="Private Packagist" /> <meta property="og:url" content="https://packagist.com/docs" /> <script src="/build/runtime.9f73ca32.js" defer></script><script src="/build/537.c4a61d21.js" defer></script><script src="/build/196.61c42165.js" defer></script><script src="/build/308.93176a50.js" defer></script><script src="/build/358.5fe2d5e7.js" defer></script><script src="/build/app.662f0355.js" defer></script> </head> <body class="page" > <header class="landingpage-header"> <div class="top-bar"> <div class="row column"> <div class="row"> <div class="top-bar__title columns shrink"> <span class="hide-for-large mobile-main-menu"> <button class="menu-icon light js-menu-toggle" type="button"></button> </span> <a href="/" class="logo-wrap mr1"> <img src="/img/logo-right.svg" class="logo-img-nav" /> <div class="logo-text">Private Packagist </div> </a> </div> <div id="responsive-menu" class="columns"> <div class="row"> <div class="top-bar__left columns"> <ul class="dropdown menu align-right" data-dropdown-menu> <li class="show-for-large"> <div class="dropdown-button"> <a class="dropdown"> <div class="top-bar__link ">Features <i class="fa-solid fa-caret-down"></i></div> </a> <div class="dropdown-menu left-aligned"> <div class="dropdown-menu-item"> <a class="dropdown-link" href="/features/private-vcs-packages">Private Packages</a> </div> <div class="dropdown-menu-item"> <a class="dropdown-link" href="/features/mirroring-composer-packages">Package Mirroring</a> </div> <div class="dropdown-menu-item"> <a class="dropdown-link" href="/features/security-monitoring">Security Monitoring</a> </div> <div class="dropdown-menu-item"> <a class="dropdown-link" href="/features/update-review">Update Review</a> </div> <div class="dropdown-menu-item"> <a class="dropdown-link" href="/features/license-review">License Review</a> </div> <div class="dropdown-menu-item"> <a class="dropdown-link" href="/features/conductor">Conductor</a> </div> </div> </div> </li> <li class="hide-for-large"> <button data-toggle="mobile-features features-nav-toggle" class="top-bar__link toggle-button">Features <i id="features-nav-toggle" class="fa-solid fa-caret-down dib" data-toggler=".rotate-180"></i></button> <ul id="mobile-features" class="hide" data-toggler=".hide"> <li> <a class="dropdown-link" href="/features/private-vcs-packages">Private Packages</a> </li> <li> <a class="dropdown-link" href="/features/mirroring-composer-packages">Package Mirroring</a> </li> <li> <a class="dropdown-link" href="/features/security-monitoring">Security Monitoring</a> </li> <li> <a class="dropdown-link" href="/features/update-review">Update Review</a> </li> <li> <a class="dropdown-link" href="/features/license-review">License Review</a> </li> <li> <a class="dropdown-link" href="/features/conductor">Conductor</a> </li> </ul> </li> <li class="show-for-large"> <div class="dropdown-button"> <a class="dropdown"> <div class="top-bar__link ">Solutions <i class="fa-solid fa-caret-down"></i></div> </a> <div class="dropdown-menu left-aligned"> <div class="dropdown-menu-item"> <a class="dropdown-link" href="/agencies">For Agencies</a> </div> <div class="dropdown-menu-item"> <a class="dropdown-link" href="/vendors">For Vendors</a> </div> </div> </div> </li> <li class="hide-for-large"> <button data-toggle="mobile-products products-nav-toggle" class="top-bar__link toggle-button">Solutions <i id="products-nav-toggle" class="fa-solid fa-caret-down dib" data-toggler=".rotate-180"></i></button> <ul id="mobile-products" class="hide" data-toggler=".hide"> <li> <a class="dropdown-link" href="/agencies">For Agencies</a> </li> <li> <a class="dropdown-link" href="/vendors">For Vendors</a> </li> </ul> </li> <li><a href="/pricing" class="top-bar__link">Pricing</a></li> <li><a href="/docs" class="top-bar__link active">Docs</a></li> </ul> </div> <div class="top-bar-right columns shrink"> <ul class="dropdown menu" data-dropdown-menu> <li><a data-open="loginModal" class="top-bar__link">Login</a></li> </ul> </div> </div> </div> </div> </div> </div> </header> <section class="main-content"> <div > <div class="row column job-progress hide" data-progress-url="/jobs/poll"> <p class="callout"> <i class="fa-solid fa-spinner fa-spin-pulse" aria-hidden="true"></i> <span class="sr-only">Loading...</span> <span class="js-running-generic-msg">Background job is running.</span> <span class="js-running-update-message hide" data-job-id=""></span> </p> </div> <div class="landingpage-container"> <div class="page__section"> <div class="row"> <div class="columns"> <a href="https://github.com/packagist/private-packagist-docs/tree/main/docs/README.md" class="button float-right hide-for-small-only" target="_blank"> <img src="/img/github-icon.svg"> <span>Edit on GitHub</span> </a> <h1 class="section-title">Private Packagist Documentation</h1> <h2 class="section-subtitle"></h2> </div> </div> <div class="row"> <div class="small-12 medium-3 columns"> <h3>Documentation</h3> <ul> <li><a href="/docs">Quick Start Guide</a></li> <li> <span>Environment-specific setup</span> <ul> <li><a href="/docs/private-networks-and-firewalls">Private Networks and Firewalls</a></li> <li><a href="/docs/centralized-authentication-and-sso">Centralized Authentication and SSO</a></li> <li> <a href="/features/integration-github-bitbucket-gitlab">OAuth Integrations</a> <ul> <li><a href="/features/integration-github-bitbucket-gitlab#github">GitHub</a></li> <li><a href="/features/integration-github-bitbucket-gitlab#github-enterprise-server">GitHub Enterprise Server</a></li> <li><a href="/features/integration-github-bitbucket-gitlab#bitbucket-cloud-bitbucketorg">Bitbucket</a></li> <li><a href="/features/integration-github-bitbucket-gitlab#bitbucket-data-center--server">Bitbucket Data Center</a></li> <li><a href="/features/integration-github-bitbucket-gitlab#gitlab">GitLab</a></li> <li><a href="/features/integration-github-bitbucket-gitlab#gitlab-self-managed">GitLab Self-Managed </a></li> <li><a href="/features/integration-github-bitbucket-gitlab#aws-codecommit">AWS CodeCommit</a></li> <li><a href="/features/integration-github-bitbucket-gitlab#azure-devops">Azure DevOps</a></li> </ul> </li> </ul> </li> <li> <a href="/docs/setup">Composer Project Setup</a> <ul> <li><a href="/docs/mirror-magento-marketplace">Mirroring Magento Marketplace Packages</a></li> </ul> </li> <li> <a href="/docs/composer-authentication">Composer Authentication</a> <ul> <li><a href="/docs/setup-ci-cd">Setup in a CI/CD environment</a></li> <li><a href="/docs/dependabot-for-private-packagist">Setup for Dependabot</a></li> </ul> </li> <li><a href="/docs/synchronizations-faq">Synchronizations</a></li> <li><a href="/docs/security-monitoring">Security Monitoring</a></li> <li><a href="/docs/update-review">Update Review</a></li> <li><a href="/docs/conductor/getting-started">Conductor</a></li> <li><a href="/docs/setup-suborganization">Suborganization Setup</a></li> <li><a href="/docs/setup-vendor">Vendors: Customer Setup</a></li> <li><a href="/docs/api">API Documentation</a></li> <li><a href="/docs/changelog">Cloud Changelog</a></li> </ul> <h3>Private Packagist Self-Hosted</h3> <ul> <li> <a href="/docs/self-hosted/kubernetes">Self-Hosted Installation</a> <ul> <li><a href="/docs/self-hosted/kubernetes-embedded">Install with kURL</a></li> <li><a href="/docs/self-hosted/kubernetes-helm">Install with Helm</a></li> </ul> </li> <li><a href="/docs/self-hosted/kubernetes-maintenance">Maintenance</a></li> <li><a href="/docs/self-hosted/kubernetes-troubleshooting">Troubleshooting Guide</a></li> <li> Integration Setup <ul> <li><a href="/docs/self-hosted/github-integration-setup">GitHub (Enterprise) Integration Setup</a></li> <li><a href="/docs/self-hosted/bitbucket-integration-setup">Bitbucket.org Integration Setup</a></li> <li><a href="/docs/self-hosted/bitbucket-server-integration-setup">Bitbucket Data Center / Server Integration Setup</a></li> <li><a href="/docs/self-hosted/gitlab-integration-setup">GitLab Integration Setup</a></li> <li><a href="/docs/self-hosted/authentication-email-addresses-passwords-setup">Authentication with Email Addresses and Password Setup</a></li> </ul> </li> <li> Replicated Native (deprecated) <ul> <li><a href="/docs/self-hosted/installation">Installation Guide</a></li> <li><a href="/docs/self-hosted/maintenance">Maintenance</a></li> <li><a href="/docs/self-hosted/troubleshooting">Troubleshooting Guide</a></li> <li><a href="/docs/self-hosted/kubernetes-migration-guide">Migration Guide</a></li> </ul> </li> <li><a href="/docs/self-hosted/changelog">Self-Hosted Changelog</a></li> </ul> </div> <div class="small-12 medium-9 columns docs-content"> <h2 id="quick-start">Quick Start</h2> <h3 id="create-an-organization">Create an organization</h3> <p>Log into Private Packagist and create an organization. If you store your private code in GitHub, GitLab, or Bitbucket use the corresponding button to create an organization synchronized with your GitHub, GitLab or Bitbucket organization.</p> <h3 id="set-up-credentials">Set up credentials</h3> <p>If you did not create a synchronized organization or if you store additional private code elsewhere, go to <em>Settings &gt; Manage Credentials</em>. Enter a description, e.g. "Bitbucket API Key" and then pick the correct authentication type depending on where your code is stored.</p> <p>Alternatively you can copy the SSH public key for your organization on the same page and grant the key access to your repositories.</p> <h3 id="add-packages">Add packages</h3> <p>If your organization is synchronized Private Packagist will have created packages for all of your private repositories containing a composer.json. Otherwise or if you would like to add additional packages you can add them in the <em>Packages</em> section of your organization with the Add button. Follow the instructions to pick the right option for your package.</p> <h3 id="configure-your-project-to-use-private-packagist">Configure your project to use Private Packagist</h3> <p>To access Private Packagist you need to set up composer authentication. Copy the authentication command for your user from <a href="https://packagist.com/profile/auth">your user auth page</a>. Run the command to store your user token on your machine.</p> <p>To grant an automated process like your continuous integration system access, create an access token for your organization under <em>Settings &gt; Authentication Tokens</em>. Then either copy the command and add it to the steps to be executed before running composer commands, or use the instructions for defining an environment variable containing composer authentication settings.</p> <p>Once you have set up authentication, add the Private Packagist repository to your composer.json and disable packagist.org. You can see how the repositories section should look on the organization <em>Overview</em>. If you have any other external repositories make sure to add them to Private Packagist and remove all of them from your composer.json</p> <p>Run <code>composer update mirrors</code> in your project to make sure the lock file is updated to use Private Packagist mirror downloads.</p> <p>That's it, from now on composer update and install will make use of your Private Packagist repository!</p> </div> </div> </div> <div class="section-gray"> <div class="row"> <div class="small-12 medium-4 medium-offset-2 columns"> <h3>Articles</h3> <ul class="no-bullet"> <li class="mb05"><a href="/docs/mirror-magento-marketplace" class="cta-link">Mirroring Magento Marketplace</a></li> <li class="mb05"><a href="/about/" class="cta-link">About Private Packagist</a></li> <li class="mb05"><a href="/features/satis-vs-packagist" class="cta-link">Satis vs Private Packagist</a></li> </ul> </div> <div class="small-12 medium-4 columns"> <h3>Features</h3> <ul class="no-bullet"> <li class="mb05"><a href="/features/conductor" class="cta-link">Conductor</a></li> <li class="mb05"><a href="/features/private-vcs-packages" class="cta-link">Private Composer Packages</a></li> <li class="mb05"><a href="/features/mirroring-composer-packages" class="cta-link">Mirroring Composer Packages</a></li> <li class="mb05"><a href="/features/security-monitoring" class="cta-link">Security Monitoring</a></li> <li class="mb05"><a href="/features/integration-github-bitbucket-gitlab" class="cta-link">GitHub, Bitbucket, GitLab and Other Integrations</a></li> <li class="mb05"><a href="/features/license-review" class="cta-link">Dependency License Review</a></li> </ul> </div> </div> </div> <div class="page__section"> <div class="row columns text-center"> <h1> <a class="button success large" data-open="loginModal">Start Free Trial</a> </h1> <p> Login to create an organization and start your free trial! </p> </div> </div> </div> </div> </section> <footer> <div class="row"> <div class="footer-container"> <div class="footer-links"> <div class="footer-links-column"> <a href="/" class="footer-link footer-link-logo logo-wrap"> <img src="/img/logo-right.svg" class="logo-img-tiny" /> <div class="logo-text">Private Packagist</div> </a> <a href="/about/" class="footer-link">About</a> <a href="/about/careers" class="footer-link">Careers</a> <a href="https://blog.packagist.com" class="footer-link">Blog</a> </div> <div class="footer-links-column"> <a href="/about/terms" class="footer-link">Terms</a> <a href="/about/privacy" class="footer-link">Privacy</a> <a href="/about/imprint" class="footer-link">Imprint</a> <a href="https://status.packagist.com/" class="footer-link">Status</a> </div> </div> <div class="footer-links-social"> <a href="mailto:contact@packagist.com" class="footer-icon"><i class="fa-solid fa-envelope"></i></a> <a href="https://twitter.com/packagist" class="footer-icon"><i class="fa-brands fa-x-twitter"></i></a> <a href="https://www.linkedin.com/company/packagist" class="footer-icon"><i class="fa-brands fa-linkedin"></i></a> </div> </div> </div> </footer> <div class="reveal modal tiny" id="loginModal" data-reveal> <div class="row"> <div class="modal-header columns small-12 medium-12 large-12"> <div class="logo-wrap"> <img src="/img/logo-right.svg" class="logo-img-small" /> <div class="logo-text"> Private Packagist </div> </div> <button class="close-button" data-close aria-label="Close modal" type="button"> <span aria-hidden="true">&times;</span> </button> </div> <div class="columns small-12 medium-12 large-12"> <h3>Login to proceed</h3> <p> <a class="button expanded" href="https://packagist.com/oauth/login/bitbucket" > <img src="/img/service-bitbucket.svg" class="service-icon" /> Bitbucket </a> </p> <p> <a class="button expanded" href="https://packagist.com/oauth/login/github" > <img src="/img/service-github.svg" class="service-icon" /> GitHub </a> </p> <p> <a class="button expanded" href="https://packagist.com/oauth/login/gitlab" > <img src="/img/service-gitlab.svg" class="service-icon" /> GitLab </a> </p> <p> <a class="button expanded" href="/login"> <img src="/img/service-email.svg" class="service-icon" /> Log in or register with email/password </a> </p> <p><a href="/resetting/request">Can't log in via OAuth or forgot your password?</a></p> </div> </div> </div> <script>var authed = false;</script> <script> function initPage() { $(function() { }); } </script> <script> window.intercomSettings = { app_id: "v4u8x5hp" }; (function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/v4u8x5hp';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})() </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10