DEV Community

Do you store your local development config in the cloud?

Ben Halpern on February 01, 2019

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 d...
Collapse
 
maestromac profile image
Mac Siri • Edited

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

Collapse
 
gillchristian profile image
Christian Gill

Was going to say the same. git is a pretty good solution.

Collapse
 
ben profile image
Ben Halpern

Nice. Thanks Mac!

Collapse
 
markoa profile image
Marko Anastasov

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.

Collapse
 
sturzl profile image
Avery

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

Collapse
 
markoa profile image
Marko Anastasov

Great tip!

Collapse
 
bitdweller profile image
Pedro Pimenta

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

Collapse
 
theaccordance profile image
Joe Mainwaring • Edited

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

Collapse
 
exadra37 profile image
Paulo Renato

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.

Collapse
 
thespiciestdev profile image
James Allen • Edited

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.

Collapse
 
ryansmith profile image
Ryan Smith

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.

Collapse
 
ballpointcarrot profile image
Christopher Kruse

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.

Collapse
 
artu_hnrq profile image
Arthur Henrique
Collapse
 
flexdinesh profile image
Dinesh Pandiyan • Edited

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.

Collapse
 
easyaspython profile image
Dane Hillard

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 πŸ˜„

Collapse
 
ben profile image
Ben Halpern

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.

Collapse
 
hasnayeen profile image
Nehal Hasnayeen

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.

Collapse
 
erikthered profile image
Erik Nelson

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.

Collapse
 
booterror profile image
Vighnesh SK

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

Collapse
 
xoubaman profile image
Carlos GΓ‘ndara

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.

Collapse
 
kave profile image
Emmanuel

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

Collapse
 
bgadrian profile image
Adrian B.G.

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

Collapse
 
abhinav profile image
Abhinav Kumar

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.

Collapse
 
thomasbnt profile image
Thomas Bnt β˜•

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

Collapse
 
mgh87 profile image
Martin Huter • Edited

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