Skip to content

Instantly share code, notes, and snippets.

View nexdrew's full-sized avatar

Andrew Goode nexdrew

View GitHub Profile

npm Enterprise Network Requirements

Assume HTTP and HTTPS traffic for all of the domains listed.

In addition to this list, you should make sure your host has access to the yum or apt repositories it needs for standard OS and kernal upgrades.

Egress

Docker

Why Buy npm?

Here are just a few reasons why it makes sense to invest in npm's products.

  • npm is the de facto standard when it comes to building and sharing JavaScript/Node packages
  • The public registry is the largest artifact registry of any platform/language in the world, hosting over 300,000 packages and serving over a billion downloads a week
  • Empower your developers with the same best-of-class tools used every day by more than 3 million open source developers
  • Make your company more appealing to current and future software developers
  • npm is a key player in the InnerSource movement, helping companies leverage the best practices, workflows, and tools that work so well in open source

Keybase proof

I hereby claim:

  • I am nexdrew on github.
  • I am nexdrew (https://keybase.io/nexdrew) on keybase.
  • I have a public key whose fingerprint is 4CEE 1709 9522 09E1 0BE3 D30D EEC1 7B84 0F8D DA89

To claim this, I am signing this object:

Uninstalling npm Enterprise

While installing npme handles the installation of dependencies, uninstalling npme does not uninstall its dependencies. Here's a quick guide to uninstall and remove the different components that make up the Enterprise product.

  1. Uninstall the npme package

    sudo npm uninstall -g npme
    

yargs module contracts

command

  • index function accepts yargs instance, usage instance, and validation instance; returns command instance
  • addHandler(cmd, description, builder, handler) accepts the following; returns undefined
    • command string or full object/module
    • optional help text description as string (or false for hidden command)
    • optional options object or builder function that accepts a yargs instance; optionally returns yargs or yargs.argv
    • optional handler function that accepts argv; returns anything (currently ignored)
@nexdrew
nexdrew / virtual_appliance.md
Last active September 19, 2016 17:38
Install npm Enterprise as a virtual appliance

Open Virtualization Format

npm Enterprise can now be installed as a virtual appliance conforming to the Open Virtualization Format. If you already use a hypervisor or virtualization platform for your infrastructure (such as VMware), you can import and run an instance of this virtual appliance as a host VM instead of installing npm Enterprise on one of your existing hosts.

The appliance is distributed as an .ova file, which is essentially a tarball containing a virtual machine template (.ovf file), a virtual hard drive (.vmdk file), and a manifest (.mf file). Download the virtual appliance here.

Once you have downloaded the virtual appliance, check for binary completeness by comparing a SHA256 checksum of your download against the respective checksum file listed.

Virtual Appliance Default Specs

@nexdrew
nexdrew / npme-users.js
Created October 26, 2016 20:41
Node executable script that prints a list of all known users for an npm Enterprise instance (should be run on the npme host)
#!/usr/bin/env node
// assumes that the Docker bridge is using ip 172.17.0.1
var client = require('redis').createClient('redis://172.17.0.1:6379')
var users = {}
client.keys('user-*', function (err, keys) {
var numKeys = keys.length
var numChecked = 0
keys.forEach(function (key) {
client.get(key, function (err, value) {
@nexdrew
nexdrew / republish.sh
Last active November 29, 2016 15:56 — forked from soldair/republish.sh
publish modules from the public registry to another registry
#!/bin/bash
mkdir -p ./publish-tmp
cd publish-tmp
if [ "$?" != "0" ]; then
echo "failed to create publish tmp dir"
exit 1
fi
function combine (one, two) {
return one + two
}
function hello (name) {
return 'Hello ' + (name || 'World')
}

Git Basics

Git is a system for storing changes to files in a repository consisting of one or more branches.

Let's briefly define what each of these terms mean.

Repository

A repository is basically just metadata for a directory (or folder) on your local file system. Just like you can have many directories on your file system, you can have many git repositories on your computer. You can think of a repository as a way to store information about the contents of a particular directory (and the changes made to those contents over time).