{"id":21344449,"url":"https://github.com/freshleafmedia/satis-build-worker","last_synced_at":"2026-05-11T07:47:04.012Z","repository":{"id":90140906,"uuid":"265851538","full_name":"freshleafmedia/satis-build-worker","owner":"freshleafmedia","description":"A Satis instance that builds packages from a queue","archived":false,"fork":false,"pushed_at":"2020-05-21T16:56:10.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-15T02:18:39.074Z","etag":null,"topics":["docker","k8s","kubernetes","package","package-builder","packagist","queue","queue-workers","satis"],"latest_commit_sha":null,"homepage":"https://www.freshleafmedia.co.uk/blog/satis-queue-worker","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/freshleafmedia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-21T13:09:47.000Z","updated_at":"2020-05-21T16:56:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"26074839-e639-4648-beb6-dc1927551480","html_url":"https://github.com/freshleafmedia/satis-build-worker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freshleafmedia%2Fsatis-build-worker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freshleafmedia%2Fsatis-build-worker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freshleafmedia%2Fsatis-build-worker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freshleafmedia%2Fsatis-build-worker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/freshleafmedia","download_url":"https://codeload.github.com/freshleafmedia/satis-build-worker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243819311,"owners_count":20352867,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","k8s","kubernetes","package","package-builder","packagist","queue","queue-workers","satis"],"created_at":"2024-11-22T01:19:06.626Z","updated_at":"2026-05-11T07:46:58.946Z","avatar_url":"https://github.com/freshleafmedia.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Satis Package Build Worker\n\nA Satis instance that will build packages from a queue.\n\n## How It Works\n\n- The queue is simply a directory\n- Every file in the queue is a job\n- The file contains the repository URL of the package to be built\n\n## Example\n\nThe following example will read all job files inside the host directory `/host/queue` and build them, outputting the\npackages to `/host/builtPackages`. It will read any config from the `/host/satis.json` file.\n\n```\ndocker run -it --rm \\\n  --user $(id -u):$(id -g) \\\n  --volume /host/queue:/packageQueue \\\n  --volume /host/builtPackages:/build \\\n  --volume /host/satis.json:/satis.json \\\n  freshleafmedia/satis-build-worker\n```\n\nIf you also want to take advantage of Composers caching (you do) then you can also add `--volume /host/composer:/composer`\n\n### Adding to the queue\n\n- Each file in the queue must contain only the URL of the package to be built, eg `git@github.com:vendor/package.git` or `git@bitbucket.org:vendor/package.git`.\n- The filename can be set to anything you like, it isn't used.\n- The jobs are processed in the order they are added\n\n\n## Kubernetes Deployment\n\n```yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: Satis\nspec:\n  selector:\n    matchLabels:\n      app: Satis\n  replicas: 2\n  template:\n    metadata:\n      labels:\n        app: Satis\n    spec:\n      containers:\n      - name: satis\n        image: \"freshleafmedia/satis-build-worker:latest\"\n        imagePullPolicy: \"Always\"\n        volumeMounts:\n        - name: volume\n          mountPath: /builds\n          subPath: web/public\n        - name: volume\n          mountPath: /packageQueue\n          subPath: packageQueue\n        - name: volume\n          mountPath: /composer\n          subPath: composer\n        - name: satis-config\n          mountPath: /satis.json\n          subPath: satis.json\n        - name: ssh\n          mountPath: /root/.ssh/id_rsa\n          subPath: id_rsa\n          readOnly: true\n        - name: ssh\n          mountPath: /root/.ssh/id_rsa.pub\n          subPath: id_rsa.pub\n          readOnly: true\n      volumes:\n      - name: volume\n        persistentVolumeClaim:\n          claimName: pvc\n      - name: satis-config\n        configMap:\n          name: satis\n          optional: false\n      - name: ssh\n        secret:\n          secretName: ssh\n          optional: false\n          defaultMode: 0600\n```\n\n## Private Packages\n\nThis is primarily designed to work with private packages as such SSH auth is supported simply by mounting an SSH key to\nthe usual directory: `--volume: /host/.ssh/id_rsa.pub:id_rsa.pub:ro --volume: /host/.ssh/id_rsa:id_rsa:ro`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreshleafmedia%2Fsatis-build-worker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreshleafmedia%2Fsatis-build-worker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreshleafmedia%2Fsatis-build-worker/lists"}