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

bitc-configurator

v0.2.0

Published

BITC computer configuration utility

Downloads

5

Readme

BITC Configurator

WARNING: This tool is a work in progress. Please treat it as such.

Synopsis: bitc [-v|--version] [-h|--help] <command> [args]

The BITC Configurator is a command line tool used to manage a small fleet of Linux computers for BITC. This tool is designed to work with an intranet in which a computer running Ubuntu Server 13.10 is the DHCP host (and functions as a modem without Internet access) and several clients running Ubuntu Desktop 13.10.

The Environment

The computers will be completely isolated from the Internet so various restrictions on the school network cannot interfere. The scripts expect the clients to be running a fresh install of Ubuntu Desktop 13.10 and the server to be running Ubuntu Server 13.10.

Warning: this script will render all computers useless outside of the intranet. It is intended to be used on computers that are freshly formatted with Ubuntu and will be reformatted with another OS afterwards. The scripts do not affect the hardware, but the software is configured to where it would be a pain to reverse.

SSH

All clients can SSH into the server as a sudoer with a username and password. The server is the only computer with password auth enabled; all others require a key so clients cannot log in to other clients. The server stores the universal key, and makes it available at /api/1/globalKey. (The endpoint is only accessible by computers registered as admins.) All clients have the public key in their ~/.ssh/authorized_keys, and it is available at /api/1/globalKey.pub.

The global key is generated by the server during bitc setup, and when the clients are set up they pull the necessary files from the server and put them in the correct location.

The Configuration

Each client has the following options set:

  • The computer name - this cannot be change after the initial setup
  • The computer IP - this is dynamically set with DHCP, and does not change
  • Whether the computer is an admin computer - this gives the computer login access to all other computers, and access to the web interface
  • A username & password pair - the username should exist (and preferably be a sudoer and the current user) and the password will be set by the setup script. This is only used for sudo

The Installation

The setup tool installs and configures the following packages with a combination of apt and other scripts:

  • nodejs/npm
  • nano
  • less
  • git
  • tmux
  • openssh-client and openssh-server
  • ruby and rubygems
    • god (a gem)
  • python and python3
  • wget

Commands

  • bitc setup: run the initial setup on the system. This is an interactive script.
    • Flags:
      • --server: set the machine up as the server
      • -y|--yes: skip all prompts and answer yes or the default. This requires --id and --ip to be present without --server
      • --id <computer-id>: automatically set the computer ID to the specified value.
      • --ip <computer-ip>: automatically set the computer IP to the specified value. This must be in the 10.0.0.[5-150] range.
      • -v|--verbose: show all command output
  • bitc login <computer-id>: SSH into the specified computer. Note: this requires you to have the universal SSH key (i.e. be registered as an admin).
  • bitc server: run the admin dashboard webserver on the server machine.
    • Flags (note that these are going away once the setup is fully implemented):
      • -p|--port: specify the port to listen on
      • --user|--username: specify the basic auth username
      • --pass|--password: specify the basic auth password