{"id":13602491,"url":"https://github.com/MozillaSecurity/orion","last_synced_at":"2025-04-11T08:32:55.418Z","repository":{"id":37544372,"uuid":"93104559","full_name":"MozillaSecurity/orion","owner":"MozillaSecurity","description":"CI/CD pipeline for building and publishing multiple 🐳 containers as microservices within a mono repository.","archived":false,"fork":false,"pushed_at":"2025-04-08T17:24:41.000Z","size":7267,"stargazers_count":47,"open_issues_count":16,"forks_count":13,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-08T18:31:45.765Z","etag":null,"topics":["automation","ci-cd","container","docker","fuzzing","libfuzzer","microservices","monorepo"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MozillaSecurity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-01T22:25:19.000Z","updated_at":"2025-04-08T17:24:43.000Z","dependencies_parsed_at":"2024-01-19T20:27:16.253Z","dependency_job_id":"13b28871-de44-4444-a3ad-6075f29550c1","html_url":"https://github.com/MozillaSecurity/orion","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MozillaSecurity%2Forion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MozillaSecurity%2Forion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MozillaSecurity%2Forion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MozillaSecurity%2Forion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MozillaSecurity","download_url":"https://codeload.github.com/MozillaSecurity/orion/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248361670,"owners_count":21090961,"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":["automation","ci-cd","container","docker","fuzzing","libfuzzer","microservices","monorepo"],"created_at":"2024-08-01T18:01:25.270Z","updated_at":"2025-04-11T08:32:50.408Z","avatar_url":"https://github.com/MozillaSecurity.png","language":"Python","funding_links":[],"categories":["Python","automation"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"docs/assets/orion.png\" alt=\"Orion logo\" title=\"Orion\"\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://community-tc.services.mozilla.com/api/github/v1/repository/MozillaSecurity/orion/master/latest\"\u003e\u003cimg src=\"https://community-tc.services.mozilla.com/api/github/v1/repository/MozillaSecurity/orion/master/badge.svg\" alt=\"Task Status\"\u003e\u003c/a\u003e\n\u003ca href=\"https://riot.im/app/#/room/#fuzzing:mozilla.org\"\u003e \u003cimg src=\"https://img.shields.io/badge/dynamic/json?color=green\u0026label=chat\u0026query=%24.chunk[%3F(%40.canonical_alias%3D%3D%22%23fuzzing%3Amozilla.org%22)].num_joined_members\u0026suffix=%20users\u0026url=https%3A%2F%2Fmozilla.modular.im%2F_matrix%2Fclient%2Fr0%2FpublicRooms\u0026style=flat\u0026logo=matrix\" alt=\"Matrix\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nMonorepo for building and publishing multiple Docker containers as microservices within a single repository.\n\n## Table of Contents\n\n- [Table of Contents](#table-of-contents)\n  - [What is Orion?](#what-is-orion)\n  - [How does it operate?](#how-does-it-operate)\n  - [Build Instructions and Development](#build-instructions-and-development)\n    - [Usage](#usage)\n    - [Testing](#testing)\n\n### What is Orion?\n\nOrion is a build environment for containerized services we run in our Fuzzing infrastructure (eg. [libFuzzer](https://github.com/MozillaSecurity/orion/tree/master/services/libfuzzer)).\n\n\u003e For spawning a cluster of Docker containers at EC2 or other cloud providers, see the parent project [Laniakea](https://github.com/MozillaSecurity/laniakea/).\n\n### How does it operate?\n\nCI and CD are performed autonomously with Taskcluster and the [Orion Decision](https://github.com/MozillaSecurity/orion/tree/master/services/orion-decision) service. A build process gets initiated only if a file of a particular service has been modified, or if a parent image is modified. Each image is either tagged with the latest `revision` or `latest` before being published to the [Docker registry](https://hub.docker.com/u/mozillasecurity/) and as [Taskcluster artifacts](https://community-tc.services.mozilla.com/tasks/index/project.fuzzing.orion). For more information about each service take a look in the corresponding README.md of each service or check out the [Wiki](https://github.com/MozillaSecurity/orion/wiki) pages for FAQs and a Docker cheat sheet.\n\n### Build Instructions and Development\n\n#### Usage\n\nYou can build, test and push locally, which is great for testing locally. The commands below are general,\nand each service may have more specific instructions defined in the README.md of the service.\n\n    TAG=dev\n    docker build -t mozillasecurity/service:$TAG ../.. -f Dockerfile\n\n... or to test the latest build:\n\n    TAG=latest\n\nRunning the fuzzer locally:\n\n    eval $(TASKCLUSTER_ROOT_URL=https://community-tc.services.mozilla.com taskcluster signin)\n    LOGS=\"logs-$(date +%Y%m%d%H%M%S)\"\n    mkdir -p \"$LOGS\"\n    docker run --rm -e TASKCLUSTER_ROOT_URL -e TASKCLUSTER_CLIENT_ID -e TASKCLUSTER_ACCESS_TOKEN -it -v \"$(pwd)/$LOGS\":/logs mozillasecurity/service:$TAG 2\u003e\u00261 | tee \"$LOGS/live.log\"\n\n... add any environment variables required by the fuzzer using `-e VAR=value`. Some fuzzer images alter kernel sysctls and will require `docker run --privileged`.\n\n#### Testing\n\nBefore a build task is initiated in Taskcluster, each shell script and Dockerfile undergo a linting and testing process which may or may not abort each succeeding task. To ensure your Dockerfile passes, you are encouraged to install the [`pre-commit`](https://pre-commit.com/) hook (`pre-commit install`) prior to commit, and to run any tests defined in the service folder before pushing your commit.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMozillaSecurity%2Forion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMozillaSecurity%2Forion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMozillaSecurity%2Forion/lists"}