{"id":14063338,"url":"https://github.com/chriha/project-cli","last_synced_at":"2025-12-12T19:53:55.597Z","repository":{"id":56952272,"uuid":"207422556","full_name":"chriha/project-cli","owner":"chriha","description":"Project and environment management in your terminal","archived":false,"fork":false,"pushed_at":"2023-01-16T13:11:35.000Z","size":291,"stargazers_count":7,"open_issues_count":2,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-13T07:04:42.817Z","etag":null,"topics":["docker","environment","project"],"latest_commit_sha":null,"homepage":"https://projectcli.github.io/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chriha.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-09T23:23:05.000Z","updated_at":"2023-02-01T22:49:00.000Z","dependencies_parsed_at":"2023-02-10T03:31:34.328Z","dependency_job_id":null,"html_url":"https://github.com/chriha/project-cli","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriha%2Fproject-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriha%2Fproject-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriha%2Fproject-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chriha%2Fproject-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chriha","download_url":"https://codeload.github.com/chriha/project-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228028304,"owners_count":17858312,"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","environment","project"],"created_at":"2024-08-13T07:03:17.097Z","updated_at":"2025-12-12T19:53:50.531Z","avatar_url":"https://github.com/chriha.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"# Project CLI\n\n![Release build](https://github.com/chriha/project-cli/workflows/Release%20Build/badge.svg)\n\n**ProjectCLI** is a command line tool that translates complex tasks into simple, single commands.\nIt also helps keeping a standard project structure across all projects. Here are some benefits of\nusing ProjectCLI:\n\n- Initialize, setup and start whole environments (incl. web server, database, caching, mail server,\n etc.) in seconds\n- Set up even complex projects with a single command\n- Use (force) the same directory structure in **every** project\n- Reduce amount of necessary commands for each developer\n- The same environment, tools and versions for every developer\n- Easier and colored log-tailing\n- Write your own commands and plugins to extend ProjectCLI\n- Simple `/etc/hosts` and SSH config management\n\nFor the plugin registry, more info, the documentation and some examples, check out [cli.lazu.io](https://cli.lazu.io).\n\n\n## TOC\n- [Getting Started](#getting-started)\n  - [Dependencies](#prerequisites)\n  - [Install](#install)\n  - [Update](#update)\n- [Usage](#usage)\n  - [Create a new project](#create-a-new-project)\n  - [Start and stop environment and its services](#start-and-stop-environment-and-its-services)\n  - [Run any service specific command](#run-any-service-specific-command)\n  - [Show service status and resource statistics](#show-service-status-and-resource-statistics)\n  - [Logging](#logging)\n  - [Hosts File](#hosts-file)\n  - [Xdebug](#xdebug)\n  - [Docker commands](#docker-commands)\n- [Uninstall](#uninstall)\n\n\n## Getting Started\n### Prerequisites\n- PHP CLI 7.2 or newer (incl. extensions: zlib, json, intl, xml, curl)\n\n#### Install dependencies via Homebrew\n```shell\n$ brew install php@7.2\n```\n\n#### Install dependencies on Ubuntu\nMake sure the available version meets the requirements:\n```shell\n$ apt show php\n```\nIf not, add the following repository:\n```shell\n$ add-apt-repository -y ppa:ondrej/php \u0026\u0026 apt-get update\n```\nInstall the PHP CLI and extensions:\n```shell\n$ apt install php-cli php-xml php-curl php-zip php-intl php-json\n```\n\n\n### Install ProjectCLI\nAfter you've installed all [dependencies](#prerequisites), get the latest **ProjectCLI** release [here](https://github.com/chriha/project-cli/releases/latest/download/project) and move it to `/usr/local/bin/project` or `/usr/bin/project`, depending on your system. The `project` command will be available after you restart your terminal session.\n\n### Update\nTo manually update **ProjectCLI**, just use the `project self-update` command.\n\n\n## Usage\n\u003e **It's mandatory, that the project has the according directory structure and files in order for ProjectCLI to work properly.**\n\n### Project Structure\n```\n- commands\n  | Contains project specific commands, created via 'project make:command'\n- conf\n  | Add configuration files for components (like nginx, PHP, crontab, supervisor, etc)\n- scripts\n  | Can contain scripts for deployment, HTTP requests or other complex tasks\n- src\n  | Contains the application src\n- temp\n  | Directory for temporary files, such as docker-compose service mounts\n```\n\n### Create a new project\n```shell\nproject create NAME [--type=php|node|python] [--repository=URL_TO_YOUR_REPOSITORY]\n```\n\n### Clone and automatically install existing projects\nTo create an automated setup for an existing project, you need to add a `setup` command via\n`project make:command SetupCommand`. In the `handle()` method, you specify the commands to set up\nthe project (eg. copy env files, run migrations, seed test data, compile static files, etc).\n\n```shell\nproject clone REPOSITORY_URL [DIRECTORY]\n```\nThe `clone` command will clone the repository and ask, if the project should be set up via the\nexisting `setup` command.\n\n\n### Start and stop environment and its services\n```shell\nproject [up|down|restart]\n```\n\n### Run any service specific command\nProjectCLI will run all commands inside the according Docker service.\n```shell\n# for the web service\nproject [artisan|composer|...]\n# for node / npm / npx\nproject [node|npm|npx install|run|...]\n```\n\n### Show service status and resource statistics\n```shell\nproject help status\n```\n\n### Logging\nFind all your log files and see what's happening with your application. It'll also warn you, if your files get too big.\n```shell\nproject help logs:tail\n```\n\n### Xdebug\nEnable and disable Xdebug with a single command.\n```shell\nproject help php:xdebug\n```\n\n### Hosts File\nList, enable, disable, add, remove and check hosts for existence\n```shell\nproject help hosts\n```\nWhenever you change the hosts file (eg. enable, disable, add, rm), you have to run the command with\nsudo / as root.\n\u003e **ProjectCLI will create backups, but only keeps the last two versions.**\n\n### Docker commands\nRun Docker Compose commands with your `docker-compose.yml`\n```shell\nproject help docker:compose\n```\nUsing bash inside a container / service\n```shell\nproject help shell\n```\n\n\n## Uninstall\n```shell\nrm -rf $HOME/.project $(which project)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchriha%2Fproject-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchriha%2Fproject-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchriha%2Fproject-cli/lists"}