Resilient by design
Four ordered Composer endpoints — Composer transparently falls back to the next when one is slow or unreachable.
A multi-route Composer / Packagist mirror for PHP, Laravel, and Symfony projects — designed to keep working even when an upstream is slow.
Four ordered Composer endpoints — Composer transparently falls back to the next when one is slow or unreachable.
Tested daily with Laravel, Symfony, WordPress, and the rest of the modern PHP stack.
Public read access over HTTPS. No tokens to rotate, no rate limits, no surprises in CI.
List the routes in this exact order. Composer queries the first route, then walks down the list when a package is missing or a route is unhealthy.
composer config -g repos.packagist composer https://mirror.kargadan.ir/repository/composer-jamko/
Add the four routes to your project and disable the default packagist.org so Composer never tries to reach it directly.
composer config repositories.packagist false
composer config repositories.kargadan-1 composer https://mirror.kargadan.ir/repository/composer-jamko/
composer config repositories.kargadan-2 composer https://mirror.kargadan.ir/repository/composer-chabokan/
composer config repositories.kargadan-3 composer https://mirror.kargadan.ir/repository/composer-runflare/
composer config repositories.kargadan-4 composer https://mirror.kargadan.ir/repository/composer-original/
{
"repositories": [
{ "type": "composer", "url": "https://mirror.kargadan.ir/repository/composer-jamko/" },
{ "type": "composer", "url": "https://mirror.kargadan.ir/repository/composer-chabokan/" },
{ "type": "composer", "url": "https://mirror.kargadan.ir/repository/composer-runflare/" },
{ "type": "composer", "url": "https://mirror.kargadan.ir/repository/composer-original/" },
{ "packagist.org": false }
]
}
composer config -g repos.packagist composer https://mirror.kargadan.ir/repository/composer-jamko/
composer create-project laravel/laravel myapp
cd myapp
composer require laravel/sanctum spatie/laravel-permission
composer config -g repos.packagist composer https://mirror.kargadan.ir/repository/composer-jamko/
composer create-project symfony/skeleton myapp
cd myapp
composer require symfony/orm-pack symfony/security-bundle api-platform/api-pack
{
"repositories": [
{ "type": "composer", "url": "https://mirror.kargadan.ir/repository/composer-jamko/" },
{ "type": "composer", "url": "https://mirror.kargadan.ir/repository/composer-chabokan/" },
{ "type": "composer", "url": "https://mirror.kargadan.ir/repository/composer-original/" },
{ "type": "composer", "url": "https://wpackagist.org" },
{ "packagist.org": false }
],
"require": {
"php": "^8.2",
"composer/installers": "^2.0",
"wpackagist-plugin/advanced-custom-fields": "^6.0"
}
}
FROM php:8.3-fpm-alpine
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
RUN composer config -g repos.packagist composer \
https://mirror.kargadan.ir/repository/composer-jamko/
WORKDIR /var/www
COPY composer.json composer.lock ./
RUN composer install --no-dev --no-scripts --prefer-dist --optimize-autoloader
COPY . .
RUN composer run-script post-autoload-dump --no-dev
CMD ["php-fpm"]
name: PHP Tests
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
extensions: mbstring, pdo, pdo_pgsql
- name: Configure Composer mirror
run: composer config -g repos.packagist composer https://mirror.kargadan.ir/repository/composer-jamko/
- run: composer install --prefer-dist --no-progress
- run: vendor/bin/phpunit
build:
image: composer:latest
script:
- composer config -g repos.packagist composer https://mirror.kargadan.ir/repository/composer-jamko/
- composer install --prefer-dist --no-dev
artifacts:
paths: [vendor/]
test:
image: php:8.3
script:
- vendor/bin/phpunit --coverage-text
composer install
composer require monolog/monolog
composer require --dev phpstan/phpstan
composer update
composer update laravel/framework
composer remove unused/package
composer clear-cache
composer validate
composer show
| Mirror type | Multi-route Four ordered Composer proxies |
| Routes | composer-jamko, composer-chabokan, composer-runflare, composer-original |
| Authentication | Not required (anonymous read) |
| Protocols | HTTPS · HTTP |
For production deployments use composer install --no-dev --prefer-dist --optimize-autoloader. It skips dev dependencies, prefers cached .zip distributions from the mirror, and emits an autoloader optimized for runtime.