Coder Social home page Coder Social logo

dots's Introduction

dots

image

WIP bootstrapping library for osx & ubuntu (and maybe others!)

Installation

One-liner:

(mkdir -p /tmp/dots && cd /tmp/dots && curl -L https://github.com/matthewmueller/dots/archive/master.tar.gz | tar zx --strip 1 && sh ./install.sh)

Design

The goal of dots is to automate the process of getting your operating system from a stock build to a fully functional machine.

Dots should be the first thing you download and run to get your computer set up.

This library tries to be organized like a node application, while working within the constraints of bash.

Supported Operating systems:

Mac OS X

The OSX build does the following:

  • install homebrew
  • installs binaries (graphicsmagick, python, sshfs, ack, git, etc.)
  • sets OSX defaults
  • installs applications via homebrew-cask (one-password, sublime-text, virtualbox, nv-alt, iterm2, etc.)
  • sets up the ~/.bash_profile

Ubuntu (server) (ALPHA)

The Ubuntu build does the following:

  • dash => bash
  • creates a user
  • installs git and curl
  • sets up the ssh keys
  • configures fail2ban
  • sets up the firewall
  • installs docker

TODO

  • Consider rewriting to be a cross-compiled Go project
  • improve modularity (is there a way to source single functions from files?)
  • generalize configuration (use secret gists for configuration)
  • git-config
  • ubuntu profile
  • logging
  • much more...

Credits

License

MIT

dots's People

Contributors

facastagnini avatar jasonmit avatar jwerle avatar matthewmueller avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dots's Issues

Homebrew isn't installing

The command ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" on line 7 of os/osx/update/sh return with curl: (22) The requested URL returned error: 400 Bad Request.

Change dash to bash?!?!

You even mentioned shellshock in your blog post... and you still think switching to bash is a good idea?
A lot of other linux distros were pwned exactly because bash was their default (/bin/sh) shell.
Do NOT use bash as the system default shell.
You can use it (but why not zsh?) as your user shell (chsh) but DO NOT TOUCH IT IN debconf.

ln: /usr/local/bin/dots: Permission denied

Have I missed anything here? fresh yosi install, ran command, entered admin password... Permission denied?

$ (mkdir -p /tmp/dots && cd /tmp/dots && curl -L https://github.com/matthewmueller/dots/archive/master.tar.gz | tar zx --strip 1 && sh ./install.sh)
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 127 0 127 0 0 92 0 --:--:-- 0:00:01 --:--:-- 92
100 12806 100 12806 0 0 4160 0 0:00:03 0:00:03 --:--:-- 24071
Password:
ln: /usr/local/bin/dots: Permission denied

consider strict separation of code and data

For my own brew stuff, I generate data files of my installed stuff via this shell function:

save_brew () {
    brew leaves > ~/projects/dotfiles/brew_leaves.txt
    brew cask list > ~/projects/dotfiles/brew_cask_list.txt
}

So I can just install stuff normally via brew and if I decide I want to keep it I can save_brew. I can install with:

brewify() {
  cat "${DOTFILES}/brew_leaves.txt" | xargs brew install
}

I think you'll find maintaining this easier if you move toward keeping code/logic separated from pure data of installed inventory.

Random side note that I like your notion of using golang for a new version of this.

failing to remove sleepimage in osx-for-hackers.sh in case sensitive OS X

title says it all.
case-sensitive OS X shows these errors:

Remove the sleep image file to save disk space
rm: /Private/var/vm/sleepimage: No such file or directory
Creating a zero-byte file instead…
touch: /Private/var/vm/sleepimage: No such file or directory
…and make sure it can’t be rewritten
chflags: /Private/var/vm/sleepimage: No such file or directory

because the folder is called 'private', not 'Private'

Permission problem with install.sh

I just setup up a clean machine (thanks!) and had a minor problem: install.sh failed at first try since mkdir /usr/local/ couldn't be created w/o sudo priviledges. I added sudo to the command, but than install.sh failed just a few lines later, so I just run sudo ./install.sh

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.