{"id":16387295,"url":"https://github.com/fhsinchy/jeeves","last_synced_at":"2025-03-23T04:31:28.330Z","repository":{"id":44172926,"uuid":"442581197","full_name":"fhsinchy/jeeves","owner":"fhsinchy","description":"Docker based development-only dependency manager for Windows, Linux, and macOS","archived":false,"fork":false,"pushed_at":"2023-08-20T11:06:09.000Z","size":31,"stargazers_count":14,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-18T17:44:34.065Z","etag":null,"topics":["docker","python"],"latest_commit_sha":null,"homepage":"","language":"Python","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/fhsinchy.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":"2021-12-28T20:52:47.000Z","updated_at":"2024-03-14T10:05:46.000Z","dependencies_parsed_at":"2024-10-28T15:24:47.752Z","dependency_job_id":"bb8f61c9-e01a-4351-ae86-efc0ba083b33","html_url":"https://github.com/fhsinchy/jeeves","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/fhsinchy%2Fjeeves","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fhsinchy%2Fjeeves/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fhsinchy%2Fjeeves/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fhsinchy%2Fjeeves/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fhsinchy","download_url":"https://codeload.github.com/fhsinchy/jeeves/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245056889,"owners_count":20553855,"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","python"],"created_at":"2024-10-11T04:26:09.984Z","updated_at":"2025-03-23T04:31:27.999Z","avatar_url":"https://github.com/fhsinchy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jeeves\n\nJeeves is a CLI tool for running development dependencies such as MySQL, Mongo, Redis etc inside pre-configured containers using simple one-liners.\n\nRunning containers can be accessed via their exposed ports and can be paired with any other application on your system.\n\nStarting a service such as `mysql` is as simple as executing `jeeves start mysql` and you'll never have to look back at it.\n\nBut `mysql` is not the only available service. A list of all the available services can be found in the [data.py](https://github.com/fhsinchy/jeeves/blob/master/data.py) file.\n\nJeeves is heavily inspired from [tighten/takeout](https://github.com/tighten/takeout) and [fhsinchy/tent](https://github.com/fhsinchy/tent) projects. It is an experimental project. Hence, care should be taken if you're using it in a critical environment.\n\n## Requirements\n\n- Python 3\n- Docker\n\n## Installation\n\n```shell\npip install git+https://github.com/fhsinchy/jeeves.git#egg=jeeves\npip freeze\n```\n\nOutput \u0026ndash;\n\n```shell\njeeves==\u003cversion number\u003e\n```\n\n## Usage\n\nThe `jeeves` program has following commands:\n\n* `jeeves start \u003cservice name\u003e` - starts a container for the given service\n* `jeeves stop \u003cservice name\u003e` - stops and removes a container for the given service\n* `jeeves list` - lists all running containers\n\nAll the services in `jeeves` utilizes volumes for persisting data, so even if you stop a service, it's data will be persisted in a volume for later usage. These volumes can listed by executing `docker volume ls` and can be managed like any other Docker volume.\n\n### Start a Service\n\nThe generic syntax for the `start` command is as follows:\n\n```bash\njeeves start \u003cservice name\u003e\n\n## starts mysql and prompts you where necessary\njeeves start mysql\n```\n\n### Start Service with Default Configuration\n\nThe `--default` flag for the `start` command can be used to skip all the prompts and start a service with default configuration\n\n```bash\njeeves start \u003cservice name\u003e --default\n\n## starts mysql with the default configuration\njeeves start mysql --default\n```\n\n### Stop a Service\n\nThe generic syntax for the `stop` command is as follows:\n\n```bash\njeeves stop \u003cservice name\u003e\n\n## stops mysql and removes the container\n## prompts you if multiple containers are found\njeeves stop mysql\n\n## stops all mysql containers and removes them\njeeves stop mysql --all\n```\n\n## Running Multiple Versions\n\nGiven all the services are running inside containers, you can spin up multiple versions of the same service as long as you're keeping the port different.\n\nRun `jeeves start mysql` twice; the first time, use the `--default` flag, and the second time, put `5.7` as tag and `3307` as host port.\n\nNow, if you run `jeeves list`, you'll see both services running at the same time.\n\n```bash\nCONTAINER ID    CONTAINER NAME       CONTAINER LABEL     \ne26c7f47e6      priceless_euler      mysql--5.7--3308    \n6cc3f50081      interesting_ptolemy  mysql--latest--3306\n```\n\n## Container Management\n\nContainers started by `jeeves` are regular containers with some pre-set configurations. So you can use regular `docker` commands such as `ls`, `inspect`, `logs` etc on them. Although `jeeves` comes with a `list` command, using the `docker` commands will result in more informative results. The target of `jeeves` is to provide plug and play containers, not to become a full-fledged `docker` cli.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffhsinchy%2Fjeeves","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffhsinchy%2Fjeeves","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffhsinchy%2Fjeeves/lists"}