Public | Automated Build

Last pushed: 7 months ago
Short Description
Satis and Satisfy as a container
Full Description

Docker Satis





A docker image and configuration to run Satis very easily in seconds:

Requirements

  • docker
  • docker-compose
  • make

The default config file for satis looks like this:

{
    "name": "My Private Repo",
    "homepage": "https://satis.domain.tld",
    "repositories": [
    ],
    "require-all":true,
    "require-dependencies":true,
    "require-dev-dependencies":true,
    "minimum-stability":"dev"
}

Service management

  • Start
make start
  • Stop
make stop
  • Remove
make remove
  • Status
make state

Satis/Satisfy access

Default credentials are : admin / foo as you can see in this config file.
You will also find instructions to change or add credentials in this section of the file.

Configuration override (if needed)

  • Add your own custom config.json (aka satis.json)
  • Add your own custom config.php for Satisfy
satis:
    image: ypereirareis/docker-satis:4.3
    volumes:
        - ./config.php:/app/config.php
        - ./config.json:/app/config.json

But I advise you to create your own image and Dockerfile:

FROM ypereirareis/docker-satis:4.3
...
ADD config.php /app/config.php
ADD config.json /app/config.json

Build frequency

  • By default, building script is executed every minute thanks to the docker-compose configuration
satis:
    image: ypereirareis/docker-satis:4.3
    environment:
        CRONTAB_FREQUENCY: "*/1 * * * *"
  • You can override this value changing the cron configuration: */5 * * * * OR */10 * * * *
  • Or you can disable cron with: CRONTAB_FREQUENCY=-1

SSH key

  • The container needs to know the ssh key you added in your private repo (and optionally your SSH configuration).
satis:
    image: ypereirareis/docker-satis:4.3
    volumes:
        - "~/.ssh/id_rsa:/var/tmp/id"
        - "~/.ssh/config:/var/tmp/sshconf"

You could add the key into your own image but be careful your ssh key will be in the image (DO NOT SHARE THE IMAGE TO THE WORLD):

FROM ypereirareis/docker-satis:4.3
...
ADD SSH_PATH/.ssh/id_rsa:/var/tmp/id
ADD SSH_PATH/.ssh/config:/var/tmp/sshconf
  • The ssh fingerprints of private repos servers need to be added in the known_hosts file inside the container that's why we specify the URL through ENV variable.

You can now add the ssh port of your server yourownserver.com:54322 and it supports rsa and dsa keys

satis:
    image: ypereirareis/docker-satis:4.3
    environment:
        PRIVATE_REPO_DOMAIN_LIST: bitbucket.org gitlab.com github.com yourownserver.com:54322

Composer cache

Cache should be shared with the host to be reused when you restart the container, for better performance.

satis:
    image: ypereirareis/docker-satis:4.3
    volumes:
        - "/var/tmp/composer:/root/.composer"

Ports

If you want to build on port 8888 and access the interface on port 5000 :

satis:
    image: ypereirareis/docker-satis:4.3
    ports:
        - 8888:3000
        - 5000:80

Outside world

If you want to give access satis to the outside world, you should use a reverse proxy.

Below is a working setup for NGINX:

server {
    server_name satis.domain.tld;

    location / {
        proxy_pass http://127.0.0.1:80;
    }
}

Tests

./tests.sh
Docker Pull Command
Owner
ypereirareis
Source Repository

Comments (1)
simpgeek
2 years ago

Thanks for the great container, super handy.

One thing that took me a minute to track down was how to get into the admin side. It might be nice to include the credentials you created for it in the readme.

For those having the same problem: you can configure the users (or turn off auth if you want) from /satisfy/app/configure.php within the container. Alternatively, follow the configuration override instructions above and provide your own configure.php for satisfy.