Poetry Private Repository for Modern Python Teams
Works with Poetry dependency groups, lock files and monorepos. Upload as many private Python packages as you like, with simple, published pricing.
14 days free. No credit card required.
# Add CloudRepo to Poetry as an explicit source
poetry source add --priority=explicit cloudrepo \
https://your-org.mycloudrepo.io/repositories/your-repo/simple/
# Install private packages
poetry add internal-sdk --source cloudrepo
# Publish your packages (the upload URL has no /simple/)
export POETRY_REPOSITORIES_CLOUDREPO_URL=https://your-org.mycloudrepo.io/repositories/your-repo
poetry publish --repository cloudrepo Included on every plan
Plans differ only in storage and transfer allowance.
- SSO (SAML, OIDC)
- Multi-factor authentication (MFA)
- Audit log
- Repository tokens
- Unlimited users, no per-seat pricing
- Human support
- Maven, npm, Python, Docker with Helm charts, and plain files
- Proxy repositories
- SCIM
Coming soon: Access log
Why CloudRepo for Poetry Repositories?
Compare CloudRepo with PyPI servers, JFrog Artifactory, and Sonatype Nexus
| Feature | CloudRepo (Recommended) | PyPI Server | JFrog Artifactory | Sonatype Nexus |
|---|---|---|---|---|
| Poetry Support | Native | Basic | Plugin Required | Limited |
| Lock File Support | Full | No | Partial | No |
| Dependency Groups | Yes | No | No | No |
| Starting Price | $99/month billed annually | Self-hosted only | $150/month list, billed monthly | $162.50/month on an annual plan ($1,950/year) |
| Free Trial | 14 days | N/A | 14 days | Community Edition is free |
| Maintenance | Zero | High | Medium | Medium |
Competitor figures were read on 2026-10-06 from: JFrog pricing (archived), JFrog Pro checkout (archived), JFrog free trial (archived), Sonatype pricing (archived). Vendors change prices and plans, so check each page before you decide.
Built for Modern Poetry Workflows
Everything you need for professional Python package management with Poetry
- Native Poetry Integration
- Seamless compatibility with Poetry's dependency resolver and lock file system for reproducible builds.
- Private PyPI Index
- Host proprietary Python packages securely with team-based access control and team management.
- Dependency Groups Support
- Full support for Poetry's dependency groups - dev, test, docs, and custom groups for organized package management.
- Monorepo Ready
- Perfect for Poetry monorepos with multiple projects sharing internal packages and dependencies.
- Enterprise Security
- API tokens, SSO, and team access controls for compliance and security.
Quick Poetry Setup Guide
Get your team running with CloudRepo and Poetry in under 2 minutes
Configure Poetry for CloudRepo
Add your private CloudRepo repository as an explicit Poetry source in pyproject.toml and pin each private package to it. Every other package still comes from PyPI.
[project]
name = "my-service"
version = "0.1.0"
requires-python = ">=3.9"
dependencies = [
"requests (>=2.31.0,<3.0.0)", # public: from PyPI
"acme-shared-lib (>=1.2.0,<2.0.0)", # private: from CloudRepo alone
"acme-utils (>=1.0.0,<2.0.0)", # a private dependency of acme-shared-lib
]
[tool.poetry.dependencies]
acme-shared-lib = { source = "cloudrepo" }
acme-utils = { source = "cloudrepo" }
[[tool.poetry.source]]
name = "cloudrepo"
url = "https://your-org.mycloudrepo.io/repositories/your-repo/simple/"
priority = "explicit" # Poetry reads the credential for the cloudrepo source from these variables,
# so the token is not an argument. The username is the email address of the
# account that created the token. Set both from your secret store.
export POETRY_HTTP_BASIC_CLOUDREPO_USERNAME="$CLOUDREPO_USERNAME"
export POETRY_HTTP_BASIC_CLOUDREPO_PASSWORD="$CLOUDREPO_TOKEN"
poetry install Install Private Dependencies
Add and install packages from your private repository using Poetry's dependency management.
# Add private packages to your project. Name every private package they need
# in the same command, so Poetry never takes one of them from PyPI
poetry add acme-utils acme-shared-lib --source cloudrepo
# Install all dependencies including private packages
poetry install
# Update lock file with latest versions
poetry update
# Export requirements for Docker or CI/CD
poetry export -f requirements.txt --output requirements.txt Publish Your Packages
Build and publish your Poetry packages to CloudRepo with a single command.
# The upload URL is the repository URL without /simple/
export POETRY_REPOSITORIES_CLOUDREPO_URL=https://your-org.mycloudrepo.io/repositories/your-repo
# Poetry reads the credential for the cloudrepo repository from these variables,
# so the token is not an argument. The username is the email address of the
# account that created the token. Set both from your secret store.
export POETRY_HTTP_BASIC_CLOUDREPO_USERNAME="$CLOUDREPO_USERNAME"
export POETRY_HTTP_BASIC_CLOUDREPO_PASSWORD="$CLOUDREPO_TOKEN"
# Build and publish your package
poetry build
poetry publish --repository cloudrepo Poetry + CloudRepo Use Cases
How leading teams use CloudRepo with Poetry for Python package management
Modern Python Development
Poetry has become the standard for modern Python package management with its intuitive dependency resolution and lock files.
- Deterministic builds across all environments
- Simplified dependency management with groups
- Built-in virtual environment handling
- Seamless package publishing workflow
Enterprise Monorepos
CloudRepo excels at supporting Poetry monorepos where multiple projects share internal packages.
- Share internal libraries across projects
- Version management for internal packages
- Simplified CI/CD with centralized packages
- Reduced duplication and maintenance overhead
Data Science & ML Teams
Perfect for teams sharing ML models, data processing libraries, and research code.
- Share proprietary algorithms securely
- Reproducible research environments
- Integration with Jupyter and notebooks
Every plan includes human support and SSO. See pricing
Frequently Asked Questions
Everything you need to know about using CloudRepo with Poetry
- How does CloudRepo work with Poetry?
- CloudRepo provides a PyPI-compatible index. Add it to pyproject.toml as an explicit source and pin each private package to it; Poetry installs those from CloudRepo and everything else from PyPI. To publish, add the repository and your credentials as the setup steps show.
- Can I use Poetry dependency groups with CloudRepo?
- Yes! CloudRepo fully supports Poetry's dependency groups feature. You can organize dependencies into dev, test, docs, and custom groups, and CloudRepo will serve all packages regardless of their group assignment.
- How much does CloudRepo cost compared to Artifactory?
-
CloudRepo Essentials, which holds 10 GB, costs less than JFrog Pro at list at any
usage. Store more and JFrog Pro costs less while usage stays light; past that, CloudRepo costs less:
from 65 GB of storage plus downloads a month on Starter, or 305 GB on Team, at JFrog's list
price. For example, a team with 250GB storage and 500GB monthly transfers pays $499/month billed annually with CloudRepo vs $1,056/month at Artifactory's list price, because JFrog meters
storage and transfer while CloudRepo charges a flat plan price.
CloudRepo includes single sign-on and human support from the people who build CloudRepo on every plan.
Features of JFrog Pro and of every CloudRepo plan Feature JFrog Pro CloudRepo, every plan Single sign-on (SSO) Not in Pro: JFrog lists SAML and OAuth sign-on for Enterprise X Enterprise X is for organizations who need multi-site capabilities, uptime and support guarantees, and enterprise access controls (ie. OAuth, SAML, CName).
JFrog’s pricing page, archivedIncluded Support Community support: public documentation, a knowledge base and Stack Overflow Community Support - Available for Free solutions and Pro subscriptions - JFrog maintains public documentation, knowledge base, and engages in conversations on Stack Overflow.
JFrog’s pricing page, archivedHuman support from the people who build CloudRepo - Does CloudRepo support Poetry monorepos?
- Yes, CloudRepo is perfect for Poetry monorepos. You can host multiple internal packages in a single repository and share them across all projects in your monorepo with proper versioning and dependency management.
- Can I migrate from PyPI server or Artifactory?
- Absolutely! Migration is straightforward - simply upload your existing packages to CloudRepo and update your Poetry configuration. We provide migration guides and our support team can assist with the transition at no extra cost.
CloudRepo Supports All Modern Python Tools
Beyond Poetry, CloudRepo works seamlessly with every Python package manager and workflow.
uv
Astral's fast installer, written in Rust. Point uv at your CloudRepo index and it installs your private packages like any other.
Explore UV integration →Pixi
Next-generation cross-platform package manager. Combines conda and PyPI ecosystems. CloudRepo supports Pixi for private package distribution.
Discover Pixi support →Conda & Miniconda
Use CloudRepo's PyPI repositories with pip inside conda environments.
Learn about Conda →Traditional pip & setuptools
Full compatibility with pip, easy_install, and setuptools. Standard PyPI API support means CloudRepo works with your existing Python workflow.
View documentation →Why Teams Choose CloudRepo for Python
- Works with all package managers - pip, Poetry, UV, Pixi, conda
- Mix Python and JVM artifacts in one account
See our complete documentation for setup guides, CI/CD integration, and best practices for all Python package managers.
Start Using CloudRepo with Poetry Today
Start managing your private Poetry packages with CloudRepo. 14 days free. No credit card required.
Why Poetry Users Choose CloudRepo
Poetry resolves your dependencies and writes the lock file. CloudRepo hosts the private packages it installs, at a published price.
Native Poetry Repository Support
Poetry connects to CloudRepo through a standard PyPI index, so it needs no plugin. Add CloudRepo as an explicit source in pyproject.toml and pin each private package to it.
Perfect for Poetry Monorepos
If you're managing a Poetry monorepo with multiple interdependent projects, CloudRepo provides the centralized package management you need. Share internal libraries, maintain consistent versions across projects, and simplify your CI/CD pipeline with a single source of truth for all your private packages.
Enterprise-Ready Poetry Hosting
CloudRepo hosts your private Poetry packages. With features like SSO and team-based access controls, you can trust CloudRepo with your most critical Python packages. Plus, our transparent pricing means no per-user fees.
Migration from PyPI Server or Artifactory
Moving from a self-hosted PyPI server or expensive solutions like Artifactory? CloudRepo makes migration simple. Our PyPI-compatible API means your existing Poetry configurations work with minimal changes. Upload your packages, update your repository URLs, and enjoy immediate cost savings with better reliability.