Dotsync

This is Dotsync's "official" documentation 📚

Dotsync - A simple and concise dotfiles synchronizer! | Product Hunt

Account Management

You can create an account, or login into your existing account using the `-login` flag followed by a valid email of yours.

For example, logging in with this email dotsync@mbaraa.com

dotsync -login dotsync@mbaraa.com

Email might be delivered to spam, since it contains a JWT which some email providers consider a malicious email.

Account deletion is possible using the CLI via the `-delete-user` flag with no arguments, deleting your account will delete your files from the remote server, but it won't affect your local files.

dotsync -delete-user

Account deletion will fail if you're not logged in, since there's no account to delete...

Add a file

To add a file to the sync list simply use the `-add` flag followed by the file's path,
Make sure that you a read/write access to the file so that it can be written on and read when synchronizing all files.

All files are stored with their absolute path, this is to avoid any conflicts like ~/.config/i3/config and ~/.config/polybar/config, if both of them were added using `dotsync -add config` they will be stored with their absolute.

Uploaded files have a 256KiB size limit, since it's more than enough for a dotfile, and if it was larger Dotsync wouldn't be free...

For example, adding the file ~/.config/i3/config

dotsync -add ~/.config/i3/config

This will add all sub files and directories inside of ~/.config/i3, so careful with the files' sizes!

Adding a file will fail if you're not logged in!

Add a directory

Adding a directory to the sync list is similar to adding a file using the `-add` flag followed by the directory's path.

The size limit of a directory is 50MiB with each file not larger than 256KiB.

For example, adding the directory ~/.config/i3

dotsync -add ~/.config/i3/

Adding a directory will fail if you're not logged in!

Remove a file

To remove a file from the sync list simply use the `-remove` flag followed by the file's path (same as in the sync list),
Make sure that the file exists in the sync list.

For example, removing the file ~/.config/i3/config

dotsync -remove ~/.config/i3/config

Deleting a file will fail if you're not logged in!

Remove a Directory

Same as files, but with a directory name, where the server will do its magic!

List Synced Files

To list current synced files use the `-list` flag with no arguments.

dotsync -list

This will list all synced files in a chronological order, with their absolute path, so that you know what is synced.

Listing synced files will fail if you're not logged in!

Upload Synced Files

To synchronize files from your computer to the remote server use the `-upload` flag with no arguments.

dotsync -upload

Uploading changed files follows the same rules that apply for uploading a single file, that is each updated file should not be larger than 256KiB.

Uploading files will fail if you're not logged in!

Download Synced Files

To download currently synced files from the remote server to your computer use the `-download` flag with no arguments.

dotsync -download

When downloading synced files, if a file doesn't exist Dotsync will create a file with the remote server's version, so this can be very handy with fresh installs, just saying 👀

Downloading synced files will fail if you're not logged in!

Building Guide

Building the CLI, you need to have Go installed!

A handy Makefile is included to do a proper build from source.

Just compile the project, this will take no time, given the fact that the Go compiler is blaznigly fast.

make

Installing the compiled binary.

sudo make install

Compiling and installing the latest release from the remote repository.

sudo make install_remote

API Reference

For now just open the server's repo and check the controllers...

Contribution

Do it if you want, start with this section please!

This website is open source and you can fork it on GitHub