{"id":24991683,"url":"https://github.com/constup/projectinit.sh","last_synced_at":"2025-04-12T02:13:12.752Z","repository":{"id":55874443,"uuid":"396067709","full_name":"constup/projectinit.sh","owner":"constup","description":"Interactive bash tool for setting up software projects.","archived":false,"fork":false,"pushed_at":"2025-04-11T14:29:06.000Z","size":408,"stargazers_count":4,"open_issues_count":13,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T02:13:07.239Z","etag":null,"topics":["bash","bash-script","composer","composer-library","composer-package","nestjs","nodejs","npm","npm-module","npm-package","php","symfony"],"latest_commit_sha":null,"homepage":"https://projectinit.sh/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/constup.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-14T16:40:34.000Z","updated_at":"2025-04-11T14:28:15.000Z","dependencies_parsed_at":"2023-12-26T15:57:58.425Z","dependency_job_id":"6c6ecbf2-cdfd-4357-8e79-f851a44b5c41","html_url":"https://github.com/constup/projectinit.sh","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constup%2Fprojectinit.sh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constup%2Fprojectinit.sh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constup%2Fprojectinit.sh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constup%2Fprojectinit.sh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/constup","download_url":"https://codeload.github.com/constup/projectinit.sh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248505925,"owners_count":21115354,"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":["bash","bash-script","composer","composer-library","composer-package","nestjs","nodejs","npm","npm-module","npm-package","php","symfony"],"created_at":"2025-02-04T13:51:35.714Z","updated_at":"2025-04-12T02:13:12.744Z","avatar_url":"https://github.com/constup.png","language":"Shell","funding_links":["https://www.buymeacoffee.com/puEW3HvWvP","https://ko-fi.com/E1E3VQUK2"],"categories":[],"sub_categories":[],"readme":"= ProjectInit.sh\n:toc:\n:toclevels: 5\n\n== Supporting development\n\nlink:https://www.buymeacoffee.com/puEW3HvWvP[image:https://cdn.buymeacoffee.com/buttons/v2/default-green.png[width=200]]\nlink:https://ko-fi.com/E1E3VQUK2[image:https://ko-fi.com/img/githubbutton_sm.svg[Ko-fi]]\n\n== Description\n\n[IMPORTANT]\n====\n*This is a pre-release alpha development version of the application. The architecture of the application, features and\ndevelopment conventions are subject to a change without prior notice. Some features might not work correctly.*\n====\n\nInteractive Bash tool for kickstarting software projects. No additional software or abstraction layers. ProjectInit is\nmade to just automate creating libraries, projects and environments the same way you would do manually.\n\nSet up a containerized or local (bare metal) environment for developing applications or libraries in just a couple of\nguided prompts.\n\nSupports multiple programming languages and frameworks.\n\n== Key features\n\n* Written in Bash. Available on Linux, Windows and MacOS\n* Create a new project, whether it's a full application or a library\n* Set up a project using locally installed tools (languages, package managers,...) or containers (Docker)\n* Containerized projects with zero dependencies on your locally installed tech stack\n* Support for multiple languages, frameworks and types of libraries\n* No additional abstraction layer. Projects created with ProjectInit are raw, just like you've set up them yourself\nmanually. Manage and update your project just like any other.\n* No bloatware\n\n== Prerequisites\n\n* Bash\n** *Linux* - Bash should be available by default. If it's not, consult your distro's documentation to see how to\ninstall it.\n** *Windows* - Any terminal emulator that supports Bash will do (link:https://cmder.app/[Cmder],\nlink:https://conemu.github.io/[ConEmu], link:https://www.mingw-w64.org/[mingw-w64],...)\n** *MacOS* - MacOS uses zsh as the default shell. You will have to set up Bash. Consult MacOS documentation or online\nresources to see how to do that.\n* When using ProjectInit with *locally installed* languages and tools:\n** Depending on what you are setting up, some dependencies will be required, most notably a correct language version of\nthe programming language that you want to work on\n** Other dependencies might be required. ProjectInit will check these dependencies and let you know if anything is\nmissing.\n* When running ProjectInit to create *containerized projects*:\n** Container software (Docker).\n** No other dependencies required.\n\n== Installation\n\n=== Step 1 - Install\n\nClone this repository:\n\n[source,shell]\n----\ngit clone git@github.com:constup/projectinit.sh.git\n----\n\nor\n\nDownload the latest release from link:https://github.com/constup/projectinit.sh/releases[Releases] page.\n\n=== Step 2 - Configure\n\nConfigure ProjectInit.sh by running:\n\n[source,shell]\n----\nbash configure.sh\n----\n\n== How to use\n\nGo to ProjectInit's `bin` directory and simply run it:\n\n[source,shell]\n----\ncd bin\nbash projectinit.sh\n----\n\n== Supported project types (applications and libraries)\n\n- link:doc/applications_and_libraries/bare_metal.adoc[Bare metal]\n- link:doc/applications_and_libraries/docker.adoc[Docker]\n\n== Comparison to other tools\n\nThere are a number of tools for setting up and managing development environments for various programming languages\n(for example: DDEV, Lando,...). What makes ProjectInit different is that it focuses on setting up projects, not\nenvironments. You can set up a complete containerized development environment with ProjectInit, but that is only a side\neffect of using containers.\n\nHere is how ProjectInit is different from other tools:\n\n* Environment management tools usually have their own set of commands and advanced configuration which you have to\nlearn. ProjectInit does not. You can just run the script you want and ProjectInit will guide you through your project's\nsetup process. At some point, ProjectInit may add support for adding a config file, just to automate configuration as\nwell, but using it will be optional.\n* It's a project setup tool, not environment setup tool. You can quickly set up a project to work on a library (composer\npackage, npm package,...) with minimum (containerized) or no footprint (your existing local tech stack) on your system.\n* If you set up a project using ProjectInit, you don't have to manage it with ProjectInit. The result of running\nProjectInit are default files for the technology stack you chose. It does not produce additional files, cache or\nconfiguration, and it does not add another abstraction layer to your projects. It simply automates what you would do\nmanually.\n* Apart from setting up a full development environment using containers, you can use your already existing environment\nto quickly start working on a project. You like using your own properly configured *AMP stack? You like building your\ntools from source? No problem. ProjectInit supports and does not interfere with your existing setup.\n* ProjectInit does not depend on WSL on Windows and works in any terminal or emulator that supports Bash. You can run\nit on WSL, of course, but you can also use Mingw, Cygwin, Cmder, ConEmu, Git terminal,...\n* ProjectInit does not take up your system's resources once you finish setting up the project. ProjectInit does not set\nup or run servers or services on your system. Once it's done, it's done.\n* ProjectInit is a set of Bash scripts and that's it. There are no servers, services, repositories or CDNs that have to\nbe up in order for ProjectInit to work. Even if development and maintenance of ProjectInit stops, you will still have\nthe latest version of a working tool.\n\n== Development and code contributions\n\nThe following resources are available for development and code contributions:\n\n- link:doc/dev/development_rules_and_guidelines.adoc[Development rules and guidelines]\n- link:doc/dev/globals.adoc[Global variables documentation]\n\n== Supporting development\n\nIf you like this tool or find it useful, consider buying me a nice cup of coffee. Coffee fuels open source.\n\nlink:https://www.buymeacoffee.com/puEW3HvWvP[image:https://cdn.buymeacoffee.com/buttons/v2/default-green.png[width=200]]\nlink:https://ko-fi.com/E1E3VQUK2[image:https://ko-fi.com/img/githubbutton_sm.svg[Ko-fi]]\n\n== License\n\nlink:./LICENSE[GNU GPL 3.0] (also available online at:\nlink:https://www.gnu.org/licenses/gpl-3.0.en.html[GNU General Public License 3.0])","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconstup%2Fprojectinit.sh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconstup%2Fprojectinit.sh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconstup%2Fprojectinit.sh/lists"}