{"id":21822239,"url":"https://github.com/ethiclab/buildmachine","last_synced_at":"2025-10-11T17:21:22.970Z","repository":{"id":95637297,"uuid":"67616135","full_name":"ethiclab/buildmachine","owner":"ethiclab","description":"A docker-compose ecosystem for continuous integration inspired by https://github.com/marcelbirkner/docker-ci-tool-stack and https://github.com/jwilder/nginx-proxy","archived":false,"fork":false,"pushed_at":"2019-08-09T12:00:22.000Z","size":7,"stargazers_count":11,"open_issues_count":0,"forks_count":5,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-14T03:56:03.808Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/ethiclab.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,"zenodo":null}},"created_at":"2016-09-07T14:46:44.000Z","updated_at":"2020-11-27T15:04:52.000Z","dependencies_parsed_at":"2023-05-21T06:15:20.503Z","dependency_job_id":null,"html_url":"https://github.com/ethiclab/buildmachine","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ethiclab/buildmachine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethiclab%2Fbuildmachine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethiclab%2Fbuildmachine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethiclab%2Fbuildmachine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethiclab%2Fbuildmachine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ethiclab","download_url":"https://codeload.github.com/ethiclab/buildmachine/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethiclab%2Fbuildmachine/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265493054,"owners_count":23776174,"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":[],"created_at":"2024-11-27T17:13:54.575Z","updated_at":"2025-10-11T17:21:17.915Z","avatar_url":"https://github.com/ethiclab.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Getting started\n===============\n\nInstall docker and docker-compose for your platform\n\n# Install http proxy\n\nhttps://github.com/ethiclab/docker-nginx-http-proxy\n\nConfigure default settings\n==========================\n\nCreate a file with the same content of env-devel-local.sh and the modify its content\naccording to your system.\n\n`````\n    export COMPOSE_PROJECT_NAME=buildmachine\n    export DOMAIN=local\n    export ENV=devel\n    export PROXY_PORT=80\n`````\n\nYou will need to create the folders for JENKINS_HOME_PATH, SONARDB_DATA_PATH, NEXUS_WORK_PATH and\nensure that the current user has read/write access to them.\n\nApplying default settings\n=========================\n\n`````\n    . env-devel-local.sh\n`````\n\nIf you create a custom file you will need to apply that file instead of env-devel-local.sh before\nbuilding or starting the ecosystem trough docker-compose.\n\nBuilding\n========\n\n`````\n    docker-compose build\n`````\n\nStarting\n========\n\n`````\n    docker-compose up -d\n`````\n\nStopping\n========\n\n`````\n    docker-compose down\n`````\n\nName resolution\n===============\n\nIn order to access your services by name, modify your dns entries or your /etc/hosts entries like the following entries. (example provided for localhost)\n\n`````\n    127.0.0.1 localhost web-devel.local jenkins-devel.local nexus-devel.local sonar-devel.local seleniumhub-devel.local\n`````\n\nthen you should have access to the following urls:\n\n* http://web-devel.local\n* http://seleniumhub-devel.local\n* http://sonar-devel.local\n* http://nexus-devel.local\n* http://jenkins-devel.local\n\nAccessing jenkins for the first time\n====================================\n\nWhen you first access your jenkins host you will be asked for an initial password.\n\nexecute the following command to discover the password and choose the installations of the recommended plugins.\n\n`````\n    ./show_initial_jenkins_password.sh\n`````\n\nRemember that this command needs to be edited if you modify the name of the folder containing docker-compose.yml file.\n\nCustomizing\n===========\n\nIf you want to customize the access urls, you can create another file tha looks like the env-devel-local.sh and you can apply it to the session before building and launching your docker-compose ecosystem.\n\nFor instance, if you want your urls look like:\n\n* http://web-prod.mycompany.com:8888\n* http://seleniumhub-prod.mycompany.com:8888\n* http://sonar-prod.mycompany.com:8888\n* http://nexus-prod.mycompany.com:8888\n* http://jenkins-prod.mycompany.com:8888\n\nYou can create a file env-prod-mycompany.com-8888.sh with the following content:\n\n`````\n    export COMPOSE_PROJECT_NAME=buildmachine\n    export DOMAIN=mycompany.com\n    export ENV=prod\n    export PROXY_PORT=8888\n`````\n\nAnd then:\n\napply that file to the current shell session\n\n`````\n    . env-prod-mycompany.com-8888.sh\n    docker-compose build\n    docker-compose up\n`````\n\ndo not forget to update your name resolution records\n\nBackup\n======\n\nWith all the ecosystem started, just issue the following command:\n\n`````\n. env-devel-local.sh\n./backup_all.sh\n`````\n\nThis will create a backup folder and within it a folder will be created with the name: YYYY-MM-DD_HHmmss\n\nThere three files will be created:\n\n1. jenkins.tar.gz\n2. nexus.tar.gz\n3. sonar.sql\n\nRestore\n=======\n\nIn order to simulate a new system, we will stop the current ecosystem and will delete the shared volumes.\n\n`````\n. env-devel-local.sh\n./stop.sh\n./remove_volumes.sh\n`````\n\nAt this point, before we start a new ecosystem we will restore a saved state:\n\n`````\n. env-devel-local.sh\n./create_volumes.sh\n./restore_all.sh backup/YYYY-MM-DD_HHmmss\n`````\n\nThen we can start the system normally:\n\n`````\n. env-devel-local.sh\n./start.sh\n`````\n\nScale\n=====\n\nYou can scale services by issuing:\n\n`````\ndocker-compose scale web=2\n`````\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethiclab%2Fbuildmachine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethiclab%2Fbuildmachine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethiclab%2Fbuildmachine/lists"}