Do you store your local development config in the cloud?

・1 min read

I'm currently traveling and working off my other laptop. My main computer is now a desktop machine.

My question is: What do you do to share your development configuration between devices? Specifically both of my computers are macs. I'm interested in specific technology I can be using to help with this, in addition to general discussion around this topic.

Thanks!

DISCUSSION (24)
 

Git is the answer. This allow you to store config/dotfiles in the cloud and version control it. I've follow this guide many moons ago and have been seamlessly transferring config back and forth. The downside is this isn't automatic.

my dotfiles

 
 

I recommend having an installable dotfiles repo (mine is github.com/markoa/dotfiles).

By linking your local files to the files in the repo, you almost completely eliminate the effort of keeping it up to date.

 

The first part is good. But it's the second that made me realize this is the best option!

 

This! And add a Cron that runs a script that updates everything from git, including itself and the Cron, so you get the changes with 0 effort

 
 

I'm using VSCode with the Settings Sync extension. This allows you to create a private Gist to sync your settings. I have found this to work pretty well.

 

I am a huge fan of using Docker for any thing I need for development...

When I say anything I include text editors like Sublime or Visual Studio Code. I also have dockerized Browsers, Postman, MySQL workbench, Android Studio 3, just to name a few.

So my strategy is to build docker stacks for all the programming languages I work with and then I add and extend them in each project I work.

My computers are not MAC but others using vanilla Ubuntu installations where I install docker, docker compose, git and almost nothing else more, thus when I need to upgrade OS is dead simple. Maybe you can use more Docker in your MAC???

In each computer I need to work I just download a github repo that install all this in a bin folder to be accessible in my path, as any other linux tool... The repo is still a work in progress, but you can get an idea of it here and you can see all my current docker images here and here and finally the Elixir Docker Stack.

 

I use github gists to store simple things. My VS code settings is in a gist, I use an extension for this.

All other quick settings or desc, or anything code/dev related, I use gists for that as well. I use the app called Lepton and you can use your gist like Evernote with it. Except, you wouldn't need your gists in your mobile. I also store all my quick reference code snippets there. It's super cool and comes handy at times.

 

It may not be a shiny new fancy solution, but if you can access your other host directly, rsync is great for this. Ignore identical files, set things to specifically exclude, and it doesn't involve an intermediate stage, so you're not doing something like committing secrets into a repo.

 

There's a lot of direction here towards storing your config in source control, just make sure you're OK with what you're storing and assure yourself that if a stranger were to get ahold of your config that nothing could be exploited with that config data.

For example, don't store your secret API access keys in your config in your git repository. I've seen plenty private repositories get forked by contractors (or inexperienced friends/developers) and somehow get published publicly or leaked. It's easiest to avoid all of this by having other means of sharing that sensitive data.

 

I haven't applied this in the context of sharing IDE config between devices, but...

I have 2 git repos that correspond to physical devices (my working laptop & my home server). I use each git repo as the source of truth for configs (typically via ln -s) and scripts for both provision & maintenance.

I did this primarily for disaster recovery but it's easily repurposed for sharing

 

I use docker heavily for development so i just spin up whatever I need but most importantly I've a docker image saved with VSCode with all my preferred configuration and extension so that I don't have to configure it every time I use new pc or install new OS.

 

A dotfiles repo for sure! Many tools also let you export your configuration profile as JSON or some other format, conducive to being committed as well. Not sure if you can point to a version-controlled file or if you have to re-import when there are changes, but better than tweaking tens of checkboxes and values in a GUI! I haven't done this yet but I will be mad I didn't the next time I set up a new machine 😄

 

There's a ton of dotfiles management solutions, even multiple lists of them:

I'm currently using GNU Stow to do a lot of the management from this guide coupled with a Brewfile and a small shell script to install a few crucial things. I'm still not terribly happy with it.

This biggest issue I have is crossing operating systems. My work computer is a MacBook Pro, but my home desktop is a Windows PC also running Ubuntu on WSL. So I'll run VS Code, IntelliJ and any other graphical stuff there but run Java, Node and the link in the WSL.

 

In a way, this is a follow up to this post:

Things have been going well, but still have some things to work out, clearly.

 

Yes. I put my configs and dotfiles in a GitHub repo. One thing on my todo list is to make a script to install them using symbolic links.

 

I use Sync on VSCode and for all products JetBrains, I export all configs and sync on my Cloud Jetbrains.

 

Check this out: github.com/technicalpickles/homesick

The other day I randomly ended up in this homesick tool and it reactivated my intention of having a dotfiles repository.

 

For personal projects and small ones I keep them in the main repo, as .sample files with all the real settings, except secrets ofc.

 

I've heard good things about github.com/lra/mackup. i'm about to experiment with that now

 

I use dotfiles and homeshick to sync my configuration between machines.
Homeshick automates the process to a good level in my opinion.

github.com/andsens/homeshick

 

Dotfiles repository on gitlab.
Using stow to setup config files.

Classic DEV Post from Aug 8 '18

Got My First Pull Request Accepted and Merged

Holy Shit, I Made Something That Someone Else Was Like "Ya, that works." Check...

A Canadian software developer who thinks he’s funny.