This guide is for a Node.js focused development environment for developers.
Advice, suggestions, pull requests, and comments can be filed on Github as issues.
If you are on a budget (e.g. $400-500), then use the following setup for a fast environment:
- $300-500 Lenovo Laptop (e.g. $200-$300 Lenovo B570 with i3-2330M (i3, not Celeron) processor (please BIOS flash first in order to whitelist the Bluetooth/Wireless card below)
- $45-100 mSATA SSD (replaces standard hard drive in the laptop) or 2.5" Solid State Drive ("SSD")
- Already included (free) to $8 Atheros AR5B22 Bluetooth 4.0 and Wireless-N mini PCI-E card combo (replaces standard card in the Lenovo B570 laptop and is whitelisted via BIOS flash)
- $26 Kinivo BTH220 Bluetooth Stereo Headphones or RF-MAB2 (if you can find a good deal)
- $13 Patriot Memory Supersonic Boost XT USB 3.0 8GB Flash Drive
- $70 Crucial 8GB Laptop Memory Kit (4GBx2)
The instructions below install a complete tech stack including, but not limited to:
- Linux Mint 15 Cinnamon for the OS (based on Ubuntu 13.04 Raring Ringtail)
- Redshift for screen color temperature adjustment
- Microsoft core-fonts (e.g. Arial) to support Google Chrome with standard fonts
- Inconsolata monospaced font (set as default)
- Clementine music player (listen to Spotify and radio streams from DI.FM and Sky.fm easily)
- vim, zsh, and oh-my-zsh with several plugins and modified Lambda theme (with ACPI battery plugin)
- sshuttle for SSH tunneling (quick and simple VPN alternative) (also check out Prove for easy Two-Factor Authentication ("TFA") SSH tunneling with sshuttle)
- JSHint NPM module for JavaScript code quality (also comes with a default ~/.jshintrc file)
- TLP (and other tools) for laptop power management (improves battery life/power usage)
- Git Extras for quick git commands (watch screencast) (added by oh-my-zsh git-extras plugin)
- Git aliases for quick git aliases (added by oh-my-zsh git plugin)
- Node.JS for server, MongoDB for database, and Redis for sessions
- cpulimit for limiting processes to only consume specific CPU percentages
- Variety for automatic wallpaper changing
- UFW firewall enabled by default (blocks incoming, allows outgoing)
- Google Public DNS sets default DNS servers to Google's
- Clam AntiVirus for anti-virus protection and scanning (not scheduled by default)
- Irssi for Internet Relay Chat ("IRC") (try joining #linux-mint, #node.js, and #javascript on Freenode) (here are
screen
shortcuts) - CUPS-PDF printer that allows you to print directly to PDF.
- lm-sensors for Linux hardware monitoring (e.g. run
sensors
from command line to get temperature readings)
You could also run these instructions inside a VirtualBox instance for evaluation.
-
Download and install Linux Mint 15 Cinnamon 64-bit (use the torrent and remove from seeding once finished downloading).
-
Log in, load a new terminal process (CTRL+SHIFT+T), and install the environment's setup:
wget https://raw.github.com/niftylettuce/linux-mint-ubuntu-nodejs-hacker-setup/master/install.sh -O - | sh
-
Hit
ENTER
on prompts when needed (unfortunately add-apt-repository does not support-y
flag and environment variableFORCE_ADD_APT_REPOSITORY=force
doesn't work; you have to hitENTER
a few times). -
Change default shell to ZSH:
chsh -s `which zsh`
-
Reboot.
-
Generate passwords easily with DuckDuckGo's random password plugin
-
Change the latitude/longitude for
gtk-redshift
in Startup Applications to match yours. -
If running a laptop with Intel HD Graphics (e.g. Lenovo B570), then consider adding the following kernel modules to your Grub config:
sudo apt-get install grub-efi-amd64 sudo vim /etc/default/grub
-GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" +# Use semaphores for inter-ring sync: `i915.semaphores=1` +# Activate RC6 mode of Intel GPU: `i915.i915_enable=rc6=1` +# Activate PCIe Active State Power Management: `pcie_aspm=force` +# Use panel (LVDS/eDP) downclocking for power savings: `i915.lvds_downclock=1` +# Enable frame buffer compression for power savings `i915.i915_enable_fbc=1` +GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.semaphores=1 i915.i915_enable_rc6=1 pcie_aspm=force i915.lvds_downclock=1 i915.i915_enable_fbc=1"
sudo update-grub
More info on i915 kernel module is available by using:
modinfo i915
For example, if you have a Haswell processor, you might want to try adding
i915.preliminary_hw_support=1
.If you mod everything correctly, you can get 4-5+ hours of battery life (lowering your screen brightness helps as well).