npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@ignitionwolf/ignite

v1.0.4

Published

ignite ======

Downloads

7

Readme

ignite

oclif Version

Ignite 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!.

This works thanks to Vagrant and VirtualBox or VMWare. This means you will need to install these dependencies first before trying to run Ignite.

This 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.

Install

npm install -g @ignitionwolf/ignite

Usage

$ ignite init
initializing Ignitefile... initialized

$ ignite up
booting the machine... booted

$ ignite ssh
...

Creating your Ignitefile

It's as simple as running ignite init, however, you can see a detailed template below:

## Local development machine information
meta:
  name: 'Default Ignite Box'
  box: 'centos/7'
  ip: 192.168.10.33

## Sites that will be automatically configured by 
sites:
  - hostname: custom.local ## You'll have to configure this in your hosts file
    path: /path/to/project/files ## This will be ported to the development machine
    public_folder: './public' ## Relative path in the project to the public directory

  - hostname: laravel.local
    git: https://github.com/user/laravel-local.git
    type: laravel

## Must be any supported dependency by Ignite.
dependencies:
  - name: php
    version: 7.4
    extensions:
      - gd

  - name: composer
  - name: apache
  - name: nodejs

## Runs before the dependencies are installed.
pre_tasks:
  - path: '/var/www/git-example'
    cmd: 'composer install'

## Runs after the dependencies are installed.
tasks:
  - path: '/var/www/git-example'
    cmd: 'composer install'

## Utilities/programs to install.
utilities:
  - htop

Commands

ignite destroy

Turn off an environment machine

USAGE
  $ ignite destroy

OPTIONS
  -f, --force      proceed forcefully
  -p, --path=path  target path (optional)
  -v, --verbose    verbose output

DESCRIPTION
  This will put the environment machine offline.

See code: src/commands/destroy.ts

ignite down

Turn off an environment's machine

USAGE
  $ ignite down

OPTIONS
  -p, --path=path  Target path (optional)
  -v, --verbose    verbose output

DESCRIPTION
  This will put the environment's machine offline.

See code: src/commands/down.ts

ignite help [COMMAND]

display help for ignite

USAGE
  $ ignite help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI

See code: @oclif/plugin-help

ignite init [NAME]

Initialize a Ignitefile configuration file

USAGE
  $ ignite init [NAME]

OPTIONS
  -p, --path=path  Target path (optional)

DESCRIPTION
  Modify this file to instruct Ignite on how to setup your desired environment.

See code: src/commands/init.ts

ignite ssh

SSH in the provisioned machine

USAGE
  $ ignite ssh

OPTIONS
  -p, --path=path  Target path (optional)
  -v, --verbose    verbose output

DESCRIPTION
  This will not load keys

See code: src/commands/ssh.ts

ignite ssh-config

Get the SSH config to access the machine

USAGE
  $ ignite ssh-config

OPTIONS
  -p, --path=path  Target path (optional)
  -v, --verbose    verbose output

DESCRIPTION
  You can use this to configure your IDE remote connection.

See code: src/commands/ssh-config.ts

ignite status

Get the status of the environment machine.

USAGE
  $ ignite status

OPTIONS
  -p, --path=path  Target path (optional)
  -v, --verbose    verbose output

DESCRIPTION
  This will tell you if the machine is running, offline, or suspended.

See code: src/commands/status.ts

ignite suspend

Turn off an environment machine

USAGE
  $ ignite suspend

OPTIONS
  -p, --path=path  Target path (optional)
  -v, --verbose    verbose output

DESCRIPTION
  This will put the environment machine offline.

See code: src/commands/suspend.ts

ignite up

Ignite an environment based on Ignitefile

USAGE
  $ ignite up

OPTIONS
  -p, --path=path  Target path (optional)
  -v, --verbose    verbose output

DESCRIPTION
  This might take some time while the configuration is processed and the machine is ignited.

See code: src/commands/up.ts

Dependencies

A "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.

Supported Packages

  • Apache Web Server apache
  • PHP php
  • Composer composer
  • NodeJS nodejs
  • Redis redis
dependencies:
  - name: php
    version: 7.4
    extensions:
      - gd

  - name: composer
  - name: apache
  - name: nodejs

Sites

You can load a site project files from a local path in your machine or from a git repository.

sites:
  - hostname: example.local
    public_folder: ./public
    git: https://github.com/user/repo.git

  - hostname: laravel.local
    type: laravel
    path: /path/to/my/site/files

You will need to add these hostnames to your hosts file with the machine IP found at the metadata section of the Ignitefile.

Site Types

A "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.

Supported Site Types

  • Laravel

Tasks

You can run shell commands to do any extra provisioning work you may need in order to get your site working.

## Runs before installing dependencies
pre_tasks:
  path: /where/to/run/the/cmd
  inline: ls -l

## Runs after installing dependencies
tasks:
  path: /where/to/run/the/cmd
  inline: ls -l

Utilities

You can install any extra software by adding it to this list.

utilities:
  - htop
  - curl

Built With

Authors

License

Acknowledgments

  • Ansible Community
  • Vagrant Community
  • Jeff Geerling - awesome Ansible roles