Toran acts as a proxy for Packagist and GitHub. It is meant to be set up on your own server or even inside your office. This offers a few benefits:
- Redundant infrastructure to ensure your deployments never fail and your developers can work at any time. Packages will be installed from your proxy with a fallback to GitHub, ensuring a maximum availability.
 - Higher bandwidth for faster installations. You can set up Toran in your local network or on a server near you.
 
docker run --name toran-proxy -d \
    -p 80:80 \
    cedvan/toran-proxy:1.3.2Go with your browser to localhost
Files are saved to /data/toran-proxy in container. Just mount this volume for save your configurations and repositories
docker run --name toran-proxy -d \
    -v /opt/toran-proxy:/data/toran-proxy \
    cedvan/toran-proxy:1.3.2docker run --name toran-proxy -d \
    -p 443:443 \
    -v /opt/toran-proxy/ssh:/data/toran-proxy/ssh \
    cedvan/toran-proxy:1.3.2Files supported : id_rsa, id_rsa.pub, config and known_hosts
docker run --name toran-proxy -d \
    -p 443:443 \
    -e "TORAN_CRON_TIMER=half" \
    cedvan/toran-proxy:1.3.2docker run --name toran-proxy -d \
    -p 443:443 \
    -e "TORAN_HTTPS=true" \
    -v /opt/toran-proxy/certs:/data/toran-proxy/certs \
    cedvan/toran-proxy:1.3.2Add toran-proxy.key and toran-proxy.crt in folder certs
Generation of self-signed SSL certificates involves a simple 3 step procedure.
STEP 1: Create the server private key
openssl genrsa -out toran-proxy.key 2048STEP 2: Create the certificate signing request (CSR)
openssl req -new -key toran-proxy.key -out toran-proxy.csrSTEP 3: Sign the certificate using the private key and CSR
openssl x509 -req -days 365 -in toran-proxy.csr -signkey toran-proxy.key -out toran-proxy.crtCongratulations! you have now generated an SSL certificate thats valid for 365 days.
Use file htpasswd to add authentification ?
Add auth.json to composer configuration home folder
{
    "http-basic": {
        "toran-proxy.domain.tld": {
            "username": "myUsername",
            "password": "myPassword"
        },
    }
}
Please refer the docker run command options for the --env-file flag where you can specify all required environment variables in a single file. This will save you from writing a potentially long docker run command. Alternately you can use fig.
Below is the complete list of available options that can be used to customize your toran proxy installation.
- TORAN_HOST: The hostname of the toran proxy server. Defaults to 
localhost - TORAN_HTTPS: Set to 
trueto enable https support, Defaults tofalse. If you do not use a reverse proxy, do not forget to add the certificates files - TORAN_REVERSE: Set to 
trueif you use docker behind a reverse proxy for i.e. ssl termination. This will make Toran use the HTTPS scheme without the need to add certificates. If you do so, make sure to set your reverse proxy to target port 443. - TORAN_CRON_TIMER: Setup cron job timer. Defaults to 
fifteenminutes: All minutesfive: All five minutesfifteen: All fifteen minuteshalf: All thirty minuteshour: All hoursdaily: All days at 04:00 (Use TORAN_CRON_TIMER_DAILY_TIME for customize time)
 - TORAN_CRON_TIMER_DAILY_TIME: Set a time for cron job daily timer in 
HH:MMformat. Defaults to04:00 - TORAN_TOKEN_GITHUB: Add your Github token for ensure download repositories since Github. Default null.
 - PHP_TIMEZONE: Configure timezone PHP. Default 
Europe/Paris. 
By default, Toran proxy license is for personal use. You can add a license from the Toran proxy interface
Toran is built by Jordi Boggiano, lead developer of Composer. As such he can make sure they work well together. No surprises.
