An opinionated, tested, workstation configuration tool -- From zero to productive
/bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/carbonfive/seed-crystal/master/bootstrap.sh)"
The base install is just enough to get you productive without too much ceremony, but what if you want to do mobile work?
Or design work? Run one or more these setup scripts. The baseline set up is bin/workstation-setup.sh
cd ~/Documents/seed-crystal
sh bin/design-setup.sh
sh bin/eng-setup.sh
sh bin/java-setup.sh
sh bin/mobile-setup.sh
sh bin/web-setup.sh
Seed::Crystal remembers which set up packages you've already installed, and if you re-run the bootstrap.sh
script,
then it will re-run all of the scripts that you've used before.
$ cd ~/Documents/seed-crystal
$ git pull
$ sh bootstrap.sh
Notice: This workstation has already been seeded. Re-running setup scripts.
Notice:
1 bin/workstation-setup.sh
2 bin/web-setup.sh
3 bin/design-setup.sh
...
-
Standard toolsets make it easier for contributors to roll onto a project. What you do on your personal projects is your business, but we are in the business of delivering value to our clients. There shall be no
vim
/emacs
wars. -
Default configurations unless there is a really good reason not to follow it.
-
Up and running fast.
-
If something is important enough to include, but you can't find unanimous agreement, pick something, anything and commit. Nobody dies because of a linter configuration choice. We can always come back and make it better.
-
Document rationale if at all possible. Document in
code
if at all possible. -
Idempotent. At least non-destructive.
-
This script is probably run once per project at best. Worst case, it is done on your first day at work, and not again until your hardware is repurposed for someone else.
-
It's hard to test perfectly: Wipe the laptop. Reinstall the OS. Run the script.
-
Our world is broken up into somewhat orthogonal core competencies: RoR, React, Mobile, Elixir, Go. No one person will be an expert on all of these toolchains. Provide low-ceremony, low friction tools to help the experts decide what's important.
- Homebrew - macOS package manager
- Calibre - One stop E-book manager
- Flycut - Clipboard manager
- Google Drive
- KeepingYouAwake - Prevents your Mac from going to sleep.
- Logitech Control Center
- mas - Mac App Store command line interface
- Muzzle - Silence notifications when screen sharing
- Notion - Our corporate notebook of memories
- ShiftIt - Window manager
- Slack - Chit chats on the internets
- Time Out - Remind yourself to take a break
- Yet Another Dotfiles Manager
- Zoom US - We default to Zoom for video conferencing
- Adobe Create Cloud - Download & installer for ACC
- Sketch - Visual design tool
- SkyFonts - Font manager for the cloud
- Font Anonymous Pro - Mark Simonson
- Font Cascadia - This is a fun, new monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal.
- Font Inconsolata - Ralph Levien
- CircleCI - Enables you to reproduce the CircleCI environment locally
- Docker - Docker Community Edition (.app)
- Heroku CLI - our default deployment platform
- Hub - Add GitHub support to git on the command-line
- JetBrains Toolbox - One stop shopping for the best IDEs
- mas - Mac App Store command line interface
- postgresql - Object-relational database system
- rbenv - Ruby version manager
- redis - Persistent key-value database, with built-in net interface
- yarn - JavaScript package manager
- Zoom US - We default to Zoom for video conferencing
- Gradle - Build automation
- IntelliJ CE - IntelliJ IDEA Community Edition
- Java - Latest Java SDK from OpenJDK
- Maven - Java-based project management
- AdoptOpenJDK 8 - Open source replace for Java8 (for Android)
- Android Studio - Android's IDE, built on the Eclipse IDE
- chromedriver
- Elixir - Functional metaprogramming aware language built on Erlang VM
- Erlang - Programming language for highly scalable real-time systems
- Firefox Quantum Developer Edition - Super cool web dev tools!
After checking out the repo, run bin/setup
to install dependencies.
Many cask formulae can be found here: https://formulae.brew.sh/cask/
bin/setup
rake test
Bug reports and pull requests are welcome on GitHub at https://github.com/carbonfive/seed-crystal. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the Seed::Crystal project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.