{"id":14984601,"url":"https://github.com/ignitionwolf/ignite","last_synced_at":"2026-01-19T12:32:49.572Z","repository":{"id":43936456,"uuid":"264803247","full_name":"IgnitionWolf/ignite","owner":"IgnitionWolf","description":"High level CLI utility tool to fire up local development environments easily, powered by Vagrant and Ansible.","archived":false,"fork":false,"pushed_at":"2022-12-30T20:37:55.000Z","size":205,"stargazers_count":2,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T08:15:34.836Z","etag":null,"topics":["ansible","ansible-roles","devops","environment-machine","tool","utility","vagrant"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/IgnitionWolf.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}},"created_at":"2020-05-18T02:23:02.000Z","updated_at":"2022-06-10T22:34:51.000Z","dependencies_parsed_at":"2023-01-31T16:16:04.320Z","dependency_job_id":null,"html_url":"https://github.com/IgnitionWolf/ignite","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/IgnitionWolf%2Fignite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgnitionWolf%2Fignite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgnitionWolf%2Fignite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgnitionWolf%2Fignite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IgnitionWolf","download_url":"https://codeload.github.com/IgnitionWolf/ignite/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247305945,"owners_count":20917208,"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":["ansible","ansible-roles","devops","environment-machine","tool","utility","vagrant"],"created_at":"2024-09-24T14:09:19.295Z","updated_at":"2026-01-19T12:32:49.565Z","avatar_url":"https://github.com/IgnitionWolf.png","language":"TypeScript","readme":"ignite\n======\n\n\n\n[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)\n[![Version](https://img.shields.io/npm/v/@ignitionwolf/ignite.svg)](https://npmjs.org/package/ignite)\n\nIgnite is a high-level utility tool to fire up local environments easily based on a configuration file. This is as simple as setting up your Ignitefile (`ignite init` and modify it accordingly), then `ignite up`!.\n\nThis works thanks to [Vagrant](https://www.vagrantup.com/downloads.html) and [VirtualBox](https://www.virtualbox.org/wiki/Downloads) or [VMWare](https://my.vmware.com/web/vmware/downloads). This means you will need to install these dependencies first before trying to run Ignite.\n\nThis is still in early stages, it is fully functional but more features like packages and site types are still being worked on. In the meanwhile, you're free to submit pull requests with more Ansible packages support and site types default configuration.\n\n\u003c!-- toc --\u003e\n* [Install](#install)\n* [Usage](#usage)\n* [Creating your Ignitefile](#creating-your-ignitefile)\n* [Commands](#commands)\n* [Dependencies](#dependencies)\n* [Sites](#sites)\n* [Site Types](#site-types)\n* [Tasks](#tasks)\n* [Utilities](#utilities)\n\u003c!-- tocstop --\u003e\n\n# Install\n\n```\nnpm install -g @ignitionwolf/ignite\n```\n\n# Usage\n```\n$ ignite init\ninitializing Ignitefile... initialized\n\n$ ignite up\nbooting the machine... booted\n\n$ ignite ssh\n...\n```\n\n# Creating your Ignitefile\n\nIt's as simple as running `ignite init`, however, you can see a detailed template below:\n\n```\n## Local development machine information\nmeta:\n  name: 'Default Ignite Box'\n  box: 'centos/7'\n  ip: 192.168.10.33\n\n## Sites that will be automatically configured by \nsites:\n  - hostname: custom.local ## You'll have to configure this in your hosts file\n    path: /path/to/project/files ## This will be ported to the development machine\n    public_folder: './public' ## Relative path in the project to the public directory\n\n  - hostname: laravel.local\n    git: https://github.com/user/laravel-local.git\n    type: laravel\n\n## Must be any supported dependency by Ignite.\ndependencies:\n  - name: php\n    version: 7.4\n    extensions:\n      - gd\n\n  - name: composer\n  - name: apache\n  - name: nodejs\n\n## Runs before the dependencies are installed.\npre_tasks:\n  - path: '/var/www/git-example'\n    cmd: 'composer install'\n\n## Runs after the dependencies are installed.\ntasks:\n  - path: '/var/www/git-example'\n    cmd: 'composer install'\n\n## Utilities/programs to install.\nutilities:\n  - htop\n```\n\n# Commands\n\u003c!-- commands --\u003e\n* [`ignite destroy`](#ignite-destroy)\n* [`ignite down`](#ignite-down)\n* [`ignite help [COMMAND]`](#ignite-help-command)\n* [`ignite init [NAME]`](#ignite-init-name)\n* [`ignite ssh`](#ignite-ssh)\n* [`ignite ssh-config`](#ignite-ssh-config)\n* [`ignite status`](#ignite-status)\n* [`ignite suspend`](#ignite-suspend)\n* [`ignite up`](#ignite-up)\n\n## `ignite destroy`\n\nTurn off an environment machine\n\n```\nUSAGE\n  $ ignite destroy\n\nOPTIONS\n  -f, --force      proceed forcefully\n  -p, --path=path  target path (optional)\n  -v, --verbose    verbose output\n\nDESCRIPTION\n  This will put the environment machine offline.\n```\n\n_See code: [src/commands/destroy.ts](https://github.com/IgnitionWolf/ignite/blob/v1.0.4/src/commands/destroy.ts)_\n\n## `ignite down`\n\nTurn off an environment's machine\n\n```\nUSAGE\n  $ ignite down\n\nOPTIONS\n  -p, --path=path  Target path (optional)\n  -v, --verbose    verbose output\n\nDESCRIPTION\n  This will put the environment's machine offline.\n```\n\n_See code: [src/commands/down.ts](https://github.com/IgnitionWolf/ignite/blob/v1.0.4/src/commands/down.ts)_\n\n## `ignite help [COMMAND]`\n\ndisplay help for ignite\n\n```\nUSAGE\n  $ ignite help [COMMAND]\n\nARGUMENTS\n  COMMAND  command to show help for\n\nOPTIONS\n  --all  see all commands in CLI\n```\n\n_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v3.1.0/src/commands/help.ts)_\n\n## `ignite init [NAME]`\n\nInitialize a Ignitefile configuration file\n\n```\nUSAGE\n  $ ignite init [NAME]\n\nOPTIONS\n  -p, --path=path  Target path (optional)\n\nDESCRIPTION\n  Modify this file to instruct Ignite on how to setup your desired environment.\n```\n\n_See code: [src/commands/init.ts](https://github.com/IgnitionWolf/ignite/blob/v1.0.4/src/commands/init.ts)_\n\n## `ignite ssh`\n\nSSH in the provisioned machine\n\n```\nUSAGE\n  $ ignite ssh\n\nOPTIONS\n  -p, --path=path  Target path (optional)\n  -v, --verbose    verbose output\n\nDESCRIPTION\n  This will not load keys\n```\n\n_See code: [src/commands/ssh.ts](https://github.com/IgnitionWolf/ignite/blob/v1.0.4/src/commands/ssh.ts)_\n\n## `ignite ssh-config`\n\nGet the SSH config to access the machine\n\n```\nUSAGE\n  $ ignite ssh-config\n\nOPTIONS\n  -p, --path=path  Target path (optional)\n  -v, --verbose    verbose output\n\nDESCRIPTION\n  You can use this to configure your IDE remote connection.\n```\n\n_See code: [src/commands/ssh-config.ts](https://github.com/IgnitionWolf/ignite/blob/v1.0.4/src/commands/ssh-config.ts)_\n\n## `ignite status`\n\nGet the status of the environment machine.\n\n```\nUSAGE\n  $ ignite status\n\nOPTIONS\n  -p, --path=path  Target path (optional)\n  -v, --verbose    verbose output\n\nDESCRIPTION\n  This will tell you if the machine is running, offline, or suspended.\n```\n\n_See code: [src/commands/status.ts](https://github.com/IgnitionWolf/ignite/blob/v1.0.4/src/commands/status.ts)_\n\n## `ignite suspend`\n\nTurn off an environment machine\n\n```\nUSAGE\n  $ ignite suspend\n\nOPTIONS\n  -p, --path=path  Target path (optional)\n  -v, --verbose    verbose output\n\nDESCRIPTION\n  This will put the environment machine offline.\n```\n\n_See code: [src/commands/suspend.ts](https://github.com/IgnitionWolf/ignite/blob/v1.0.4/src/commands/suspend.ts)_\n\n## `ignite up`\n\nIgnite an environment based on Ignitefile\n\n```\nUSAGE\n  $ ignite up\n\nOPTIONS\n  -p, --path=path  Target path (optional)\n  -v, --verbose    verbose output\n\nDESCRIPTION\n  This might take some time while the configuration is processed and the machine is ignited.\n```\n\n_See code: [src/commands/up.ts](https://github.com/IgnitionWolf/ignite/blob/v1.0.4/src/commands/up.ts)_\n\u003c!-- commandsstop --\u003e\n\n# Dependencies\n\u003c!-- dependencies --\u003e\n\nA \"dependency\" is a configuration class that links the required dependency to an Ansible role. You can't directly install an Ansible role, it has to be supported by Ignite first. If you don't see a package listed here that you need, please write an issue or a pull request with the respective Ansible role. It's important to note that it must work in different linux distributions.\n\nSupported Packages\n* Apache Web Server `apache`\n* PHP `php`\n* Composer `composer`\n* NodeJS `nodejs`\n* Redis `redis`\n\n\n```\ndependencies:\n  - name: php\n    version: 7.4\n    extensions:\n      - gd\n\n  - name: composer\n  - name: apache\n  - name: nodejs\n```\n\u003c!-- dependenciesstop --\u003e\n\n# Sites\n\u003c!-- sites --\u003e\n\nYou can load a site project files from a local path in your machine or from a git repository.\n\n```\nsites:\n  - hostname: example.local\n    public_folder: ./public\n    git: https://github.com/user/repo.git\n\n  - hostname: laravel.local\n    type: laravel\n    path: /path/to/my/site/files\n```\n\nYou will need to add these hostnames to your `hosts` file with the machine IP found at the metadata section of the Ignitefile.\n\u003c!-- sitesstop --\u003e\n\n# Site Types\n\u003c!-- sitetypes --\u003e\n\nA \"site type\" is a set of necessary configuration/tasks that needs to be executed in order to prepare for a specific website structure. For example, this sets up the virtual hosts in the correct directory and assigns directory permissions.\n\nSupported Site Types\n* Laravel\n\u003c!-- sitetypesstop --\u003e\n\n# Tasks\n\u003c!-- tasks --\u003e\n\nYou can run shell commands to do any extra provisioning work you may need in order to get your site working.\n\n```\n## Runs before installing dependencies\npre_tasks:\n  path: /where/to/run/the/cmd\n  inline: ls -l\n\n## Runs after installing dependencies\ntasks:\n  path: /where/to/run/the/cmd\n  inline: ls -l\n```\n\u003c!-- tasksstop --\u003e\n\n# Utilities\n\u003c!-- utilities --\u003e\n\nYou can install any extra software by adding it to this list.\n\n```\nutilities:\n  - htop\n  - curl\n```\n\u003c!-- utilitiesstop --\u003e\n\n## Built With\n\n* [Vagrant](https://www.vagrantup.com/) - Local Environment Provider\n* [Ansible](https://github.com/ansible/ansible) - Provisioner\n\n\n## Authors\n\n* [Ignition Wolf](https://github.com/IgnitionWolf)\n\n## License\n\n* [MIT](http://opensource.org/licenses/MIT)\n\n## Acknowledgments\n\n* Ansible Community\n* Vagrant Community\n* [Jeff Geerling](https://github.com/geerlingguy) - awesome Ansible roles\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignitionwolf%2Fignite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fignitionwolf%2Fignite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignitionwolf%2Fignite/lists"}