Basic Configuration Examples

This guide provides configuration examples for common package managers and build tools to get you started with CloudRepo quickly.

Maven Configuration

Settings File (~/.m2/settings.xml)

Maven settings.xml - Basic CloudRepo Configuration
<?xml version="1.0" encoding="UTF-8"?>
<settings>
  <servers>
    <server>
      <id>cloudrepo</id>
      <username>your-username</username>
      <password>your-password</password>
    </server>
  </servers>

  <profiles>
    <profile>
      <id>cloudrepo</id>
      <repositories>
        <repository>
          <id>cloudrepo</id>
          <url>https://[org-id].cloudrepo.io/repository/maven-releases</url>
        </repository>
      </repositories>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>cloudrepo</activeProfile>
  </activeProfiles>
</settings>

Project POM Configuration

pom.xml - Distribution Management
<distributionManagement>
  <repository>
    <id>cloudrepo</id>
    <url>https://[org-id].cloudrepo.io/repository/maven-releases</url>
  </repository>
  <snapshotRepository>
    <id>cloudrepo</id>
    <url>https://[org-id].cloudrepo.io/repository/maven-snapshots</url>
  </snapshotRepository>
</distributionManagement>

Gradle Configuration

Build Script (build.gradle)

build.gradle - Groovy DSL Configuration
repositories {
    maven {
        url "https://[org-id].cloudrepo.io/repository/maven-releases"
        credentials {
            username = project.findProperty("cloudrepoUsername") ?: System.getenv("CLOUDREPO_USERNAME")
            password = project.findProperty("cloudrepoPassword") ?: System.getenv("CLOUDREPO_PASSWORD")
        }
    }
}

publishing {
    publications {
        maven(MavenPublication) {
            from components.java
        }
    }
    repositories {
        maven {
            url = "https://[org-id].cloudrepo.io/repository/maven-releases"
            credentials {
                username = cloudrepoUsername
                password = cloudrepoPassword
            }
        }
    }
}

Kotlin DSL (build.gradle.kts)

build.gradle.kts - Kotlin DSL Configuration
repositories {
    maven {
        url = uri("https://[org-id].cloudrepo.io/repository/maven-releases")
        credentials {
            username = findProperty("cloudrepoUsername")?.toString() ?: System.getenv("CLOUDREPO_USERNAME")
            password = findProperty("cloudrepoPassword")?.toString() ?: System.getenv("CLOUDREPO_PASSWORD")
        }
    }
}

Python Configuration

Pip Configuration (~/.pip/pip.conf)

pip.conf - Global Pip Configuration
[global]
index-url = https://username:password@[org-id].cloudrepo.io/repository/pypi/simple
trusted-host = [org-id].cloudrepo.io

Twine Configuration (~/.pypirc)

.pypirc - Publishing Configuration
[distutils]
index-servers =
    cloudrepo

[cloudrepo]
repository = https://[org-id].cloudrepo.io/repository/pypi
username = your-username
password = your-password

Poetry Configuration

pyproject.toml - Poetry Configuration
[[tool.poetry.source]]
name = "cloudrepo"
url = "https://[org-id].cloudrepo.io/repository/pypi/simple"
priority = "primary"

[tool.poetry.repositories.cloudrepo]
url = "https://[org-id].cloudrepo.io/repository/pypi"

Environment Variables

Secure Credential Management

Instead of hardcoding credentials, use environment variables:

.env or Shell Configuration
export CLOUDREPO_USERNAME="your-username"
export CLOUDREPO_PASSWORD="your-password"
export CLOUDREPO_API_KEY="your-api-key"
export CLOUDREPO_ORG="your-org-id"

Docker Configuration

Docker Registry Authentication

Docker Login
docker login [org-id].cloudrepo.io
Username: your-username
Password: your-password

Docker Compose

docker-compose.yml - Using CloudRepo Images
version: '3.8'
services:
  app:
    image: [org-id].cloudrepo.io/my-app:latest
    environment:
      - CLOUDREPO_REGISTRY=[org-id].cloudrepo.io

CI/CD Basic Setup

GitHub Actions

.github/workflows/deploy.yml - Basic GitHub Actions
- name: Setup CloudRepo
  env:
    CLOUDREPO_USERNAME: ${{ secrets.CLOUDREPO_USERNAME }}
    CLOUDREPO_PASSWORD: ${{ secrets.CLOUDREPO_PASSWORD }}
  run: |
    echo "<settings>...</settings>" > ~/.m2/settings.xml

Jenkins

Jenkinsfile - Basic Jenkins Pipeline
pipeline {
    environment {
        CLOUDREPO_CREDS = credentials('cloudrepo-credentials')
    }
    stages {
        stage('Deploy') {
            steps {
                sh 'mvn deploy -DcloudrepoUsername=$CLOUDREPO_CREDS_USR -DcloudrepoPassword=$CLOUDREPO_CREDS_PSW'
            }
        }
    }
}

Testing Your Configuration

Verify Connection

Maven:

mvn dependency:get -DremoteRepositories=https://[org-id].cloudrepo.io/repository/maven-releases \
                   -DgroupId=com.example -DartifactId=test -Dversion=1.0

Python:

pip install --index-url https://[org-id].cloudrepo.io/repository/pypi/simple --dry-run your-package

Docker:

docker pull [org-id].cloudrepo.io/test:latest

Common Configuration Issues

Authentication Errors

  • 401 Unauthorized: Check username/password

  • 403 Forbidden: Verify repository permissions

  • Certificate Errors: Ensure proper HTTPS configuration

URL Format Issues

  • Maven: Ensure URL ends with repository name, not /

  • Python: Include /simple for pip index URLs

  • Docker: Use org-id as subdomain

Proxy Configuration

If behind corporate proxy:

export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
export NO_PROXY=[org-id].cloudrepo.io

Next Steps