Sync your dotfiles securely to an encrypted Git
Project description
Neutron Sync
A command line utility to sync your personal dotfiles to an encrypted Github. This allows you to share your personal secrets across multiple machines and keep them in sync.
Sponsor This Project
Installation
pipx install neutron-sync
Additional Docs
Primary Setup
Requirements
- Private Github repository
- git-crypt installed, see https://github.com/AGWA/git-crypt/blob/master/INSTALL.md
- Ubuntu/Debian:
sudo apt install git-crypt
- Redhat:
sudo yum install git-crypt
- Mac:
brew install git-crypt
- Ubuntu/Debian:
Setup
git clone git@github.com:{github-user}/{repo-name}.git
cd {repo-name}
git-crypt init
nsync init `pwd`
git-crypt export-key ~/.dotfiles.key
git-crypt unlock ~/.dotfiles.key
# you may get an error if you have no files initially which is OK
Add files
adds to encrypted repo and creates link at original location
# link a directory
nsync link ~/.ssh
# link a file
nsync link ~/.tmux.conf
Commit and Push
when files are changed
nsync save
Pull Changes from Remote
nsync pull
Setup on Another Machine
Transfer Keys to Secondary
While files are synced via the git repository, you need to transfer keys to the secondary machine so you can decrypt the repository. By default, it will transfer you encryption key and ssh key.
On Primary:
nsync start-transfer
# follow prompts
On Secondary:
nsync complete-transfer
# follow prompts
mv {output-dir}/.dotfiles.key ~
mkdir .ssh
chmod 700 .ssh
mv {output-dir}/id_rsa ~/.ssh
mv {output-dir}/id_rsa.pub ~/.ssh
Setup - Secondary
git clone git@github.com:{github-user}/{repo-name}.git
cd {repo-name}
nsync init `pwd`
nsync pull
Transfer Server
The transfer server can be used to help assist in setting up a new machine. After initial setup, all transactions are stored in your git repository. All files stored on the transfer server are encrypted on device before being sent and only stored temporarily.
File transfers default to using https://www.neutronsync.com/. You can host your own server by running:
nsync server
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file neutron-sync-1.0.0.tar.gz
.
File metadata
- Download URL: neutron-sync-1.0.0.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.4.9 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f24a04436238f991e945d028fcbeb8d4fa617c5905df4b4ebadd2f4cb6c6510 |
|
MD5 | 958578f44e15b4f9efb0d91efc4fe7c0 |
|
BLAKE2b-256 | 3fba8287384c3f124033c6dca40cf5394611a8dbf867742a1f3d4d2b662c06dc |
File details
Details for the file neutron_sync-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: neutron_sync-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.4.9 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50c0b69d0429631413be365a323df1d2cbfe39858cf86ca700c89286ed80e6d7 |
|
MD5 | 73b256900aa4e85c9a85dd1f0061ecc8 |
|
BLAKE2b-256 | 0f72d2d7cd30cdcd94027dd7d7e94b3ba3e2349f4e192140c09e6af805f96cbd |