{"id":13542541,"url":"https://github.com/cloud66-oss/starter","last_synced_at":"2025-04-05T22:08:39.196Z","repository":{"id":31183221,"uuid":"34743746","full_name":"cloud66-oss/starter","owner":"cloud66-oss","description":"Helping you get started with containerized apps.","archived":false,"fork":false,"pushed_at":"2023-10-24T22:39:30.000Z","size":2933,"stargazers_count":311,"open_issues_count":18,"forks_count":55,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-29T21:06:06.079Z","etag":null,"topics":["cloud66","containers","dockerfile","dokcer"],"latest_commit_sha":null,"homepage":"https://www.cloud66.com/opensource-software/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloud66-oss.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-04-28T16:54:41.000Z","updated_at":"2025-02-12T14:25:16.000Z","dependencies_parsed_at":"2023-07-13T02:08:38.234Z","dependency_job_id":"c9f60a02-ace5-45a3-b300-21ca9b69d7bd","html_url":"https://github.com/cloud66-oss/starter","commit_stats":null,"previous_names":["cloud66/starter"],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud66-oss%2Fstarter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud66-oss%2Fstarter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud66-oss%2Fstarter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud66-oss%2Fstarter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloud66-oss","download_url":"https://codeload.github.com/cloud66-oss/starter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247406091,"owners_count":20933803,"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":["cloud66","containers","dockerfile","dokcer"],"created_at":"2024-08-01T10:01:10.180Z","updated_at":"2025-04-05T22:08:39.175Z","avatar_url":"https://github.com/cloud66-oss.png","language":"Go","funding_links":[],"categories":["Go","others"],"sub_categories":[],"readme":"\u003e We are looking for maintainers for this project. Please reach out if you're interested!\n\u003e \n\n\u003cimg src=\"http://cdn2-cloud66-com.s3.amazonaws.com/images/oss-sponsorship.png\" width=150/\u003e\n\n# Starter\n\nStarter is an open source command line tool to generate a `Dockerfile` and a `docker-compose.yml` file from arbitrary source code. It will kickstart the journey towards containerizing your apps.\n\nStarter can also generate the `service.yml` file, which is a Cloud 66 service definition file used to define the service configurations that run Docker in production on any cloud, or on your own server.\n\n- Download Starter: https://github.com/cloud66-oss/starter/releases/\n\n\n### Key features:\n___\n\n- Detects **frameworks** and its version, i.e. Rails v5.0, PHP Laravel and Node.JS express to name a few.\n- Determines the **ports** that need setting.\n- Detects what **database** you’re using, to setup your databases in docker-compose.\n- Compatible with **Procfiles** to generate services for you.\n- Examines your application to generate appropriate `Dockerfile`, `docker-compose.yml`, and `service.yml` files.\n- Has an **API** to integrate Starter into you own product\n\n\n### Why Starter?\n___\n\n- **You’re new to Docker, have got the basic 101 content and are now ready to start using Docker:**\n  Starter is an ideal tool to support you with your first Docker deployment. It’s the easiest way to learn how to containerize your application, and is a great step to ease you through the Docker learning curve. It automates the process, allowing you to focus on the things that matter.\n\n- **You’re in need of containerizing your existing application:**\n  Starter helps you analyze your existing application and detects what framework the application is running and in what version. Additionally, it automatically detects what database and ports you’re using.\n\n  Next it will generate a Dockerfile, DockerCompose or service.yml that is ready to run in containers. This helps you with faster builds and prepares you to run Docker in production.\n\n**Reasons to containerize your applications**\n\n- If you need to achieve multi-tenancy\nThere are a couple reasons why you would need to run multiple applications on the same stack, i.e. the applications that you’re running share common resources or your applications don’t receive enough traffic to run on separate stacks. This is where Starter can help to Dockerize each of your applications, which you can host on a single stack.\n\n- If you have a specialized application that requires a sandbox environment\nWith the new security features of Docker, you get true isolation of your process. When using Starter you can isolate parts of your apps in containers and make sure they’re in a sandbox (and can’t do harmful things!).\n\n\n### Quick Start:\n___\n\nHead to the Starter releases (https://github.com/cloud66-oss/starter/releases/latest) and download the latest version for your platform. You can copy the file to `/usr/local/bin` and make sure it is renamed to `starter` and you can run it (`chmod a+x /usr/local/bin/starter`). From this point on you can run `starter update` to update it automatically.\n\n    $ cd /my/project\n    $ starter -g dockerfile,service,docker-compose\n\nThis will analyze the project in the current folder and generate the three files: `Dockerfile, docker-compose.yml and `service.yml` in the same folder, prompting for information when required.\n\n\n    Cloud 66 Starter ~ (c) 2019 Cloud 66\n    Detecting framework for the project at /Users/awesome/work/boom\n    Found ruby application\n    Enter ruby version: [latest]\n    ----\u003e Found config/database.yml\n    Found mysql, confirm? [Y/n]\n    Found redis, confirm? [Y/n]\n    Found elasticsearch, confirm? [Y/n]\n    Add any other databases? [y/N]\n    ----\u003e Analyzing dependencies\n    ----\u003e Parsing Procfile\n    ----\u003e Found Procfile item web\n    ----\u003e Found Procfile item worker\n    ----\u003e Found unicorn\n    This command will be run after each build: '/bin/sh -c \"RAILS_ENV=_env:RAILS_ENV bundle exec rake db:schema:load\"', confirm? [Y/n]\n    This command will be run after each deployment: '/bin/sh -c \"RAILS_ENV=_env:RAILS_ENV bundle exec rake db:migrate\"', confirm? [Y/n]\n    ----\u003e Writing Dockerfile...\n    ----\u003e Writing docker-compose.yml...\n    ----\u003e Writing service.yml\n    Done\n\nStarter supports Procfiles and generates a service in `service.yml` for each item in the Procfile. It is highly advised to use a Procfile to define your own service commands as starter will only detect the web service otherwise.\n\nTo use starter on a different folder, you can use the `p` option:\n\n\n    $ starter -p /my/project\n\nFor more options, please see:\n\n\n    $ starter help\n\n\n### Building Starter using Habitus\n___\n\n\nIf you want to contribute to Starter. You can build Starter using [Habitus](https://help.cloud66.com/habitus/). Habitus is an open source build flow tool for Docker.\n\nRun Habitus in the root directory of this repository. The latest version is generated (after tests) inside the `./artifacts/compiled` directory.\n\n\u003ckbd\u003ehabitus --keep-artifacts=true\u003c/kbd\u003e\n\nTo make sure you a have isolated development environment for contribution. You can use the `docker-compose` for developing, testing and compiling.\n\n\u003ckbd\u003e$ docker-compose run starter\u003c/kbd\u003e\n\nBuilding starter inside a docker container:\n\n\u003ckbd\u003eroot@xx:/usr/local/go/src/github.com/cloud66/starter# go build\u003c/kbd\u003e\n\nRunning the tests:\n\n\u003ckbd\u003eroot@xx:/usr/local/go/src/github.com/cloud66/starter# go test\u003c/kbd\u003e\n\n\nAnd you’re ready to start contributing to Starter.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloud66-oss%2Fstarter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloud66-oss%2Fstarter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloud66-oss%2Fstarter/lists"}