Code Monkey home page Code Monkey logo

netskel's Introduction

CI Go Report Card codecov Release

                                    _       _        _ 
 David McNett            _ __   ___| |_ ___| | _____| |
                        | '_ \ / _ \ __/ __| |/ / _ \ |
 http://macnugget.org/  | | | |  __/ |_\__ \   <  __/ |
                        |_| |_|\___|\__|___/_|\_\___|_|

                        netskel environment synchronizer

This is a deprecated project

This is no longer under active development and I no longer use this service.

INTRODUCTION

netskel is an ssh based file synchronization tool which can be used to mirror a central repository of files to multiple UNIX shell accounts. It was built to create a simple and automated mechanism for users to push out their various shell environment config files to all the machines where they have shell accounts.

In particular it's useful for pushing out a common .cshrc, .bashrc, or ssh authorized_keys file to all your hosts. Using netskel will allow you to make centralized changes and updates to your unix enviornment without suffering through the tedium of applying those changes to the multitude of hosts where you have an account.

VERSION 3.0 BREAKING CHANGES

If you are a current Netskel user with a previous version, please be aware the current v3.0 release is a complete and total overhaul of the Netskel system. The old releases required Apache web server and used http/https as the deployment mechanism. This update re-write is entirely ssh-based and no longer uses or requires a web server to host the back end service

SERVER REQUIREMENTS

  • Go compiler to build the server binaries
  • A server that can be reached via ssh from your client installations
  • A dedicated user account on that server to operate the backend service

CLIENT REQUIREMENTS

  • A reasonably POSIX-flavoured system that has Bourne shell (/bin/sh) and a modest assortment of the usual Unix tools.
  • The xxd binary (part of vim, should be on any Linux and macOS box but will require the vim port/package on FreeBSD. This replaces the older Netskel's reliance on uuencode and uudecode which is no longer reliably present on modern machines.

INSTALLATION

  • Create a user on your server to hold the server code and your userland database. This user's homedirectory will be your install path. Suggested /usr/local/netskel with the user's shell as /usr/local/netskel/bin/server and no password.
  • Copy your personal authorized_keys file to the netskel user's .ssh directory with the proper permissions.
  • Run make && make install from the server directory of this repo
  • Place any files and directories you want to deploy in the ./db/ folder of your Netskel installation. By default this is a git repo so you can use version control to track changes and additions to it.
  • Run make userzero from the server directory of this repo, which will bootstrap your current login on your host as the first deployment of the client. Verify that the server info in ~/.netskel/config makes sense to you.

You should now be able to use netskel push <hostname> to deploy the netskel client from your current account to other hosts.

netskel's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar ghewgill avatar gms8994 avatar nugget avatar smkelly avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.