diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/design/assistant/pairing.mdwn | 22 | ||||
-rw-r--r-- | doc/install.mdwn | 1 |
2 files changed, 18 insertions, 5 deletions
diff --git a/doc/design/assistant/pairing.mdwn b/doc/design/assistant/pairing.mdwn index f33c5e11d..32815698c 100644 --- a/doc/design/assistant/pairing.mdwn +++ b/doc/design/assistant/pairing.mdwn @@ -3,11 +3,23 @@ have some way of pairing devices. It could work like this: -1. Prompt for the hostname (or do avahi local machine discovery). -2. Enable the two hosts to ssh to one-another and run git-annex shell. - (A tricky problem, if ssh keys need to be added to do that.) -3. Push over a clone of the repository. (Using git-annex-shell?) -4. Start [[syncing]]. +1. Prompt for the hostname, or do avahi local machine discovery, or use + ZeroMQ with IP multicast, or use haskell's `network-multicast`. That + last option seems to work best! +2. Let user pick host to pair with. Somehow authenticate that this is + the host they expected to pair with, and not an imposter. Probably + have the users enter a shared secret and use it to HMAC the ssh public + keys. +3. Exchange a hostname or IP address with the pair. Ideally, + use `.local`, as it'll work as long as both are on the same subnet. + If mDNS is not available, regular DNS or IP addresses might have + to be used, but will result in a more fragile pairing. Or perhaps + the assistant could broadcast itself queries for current IP addresses, + if connecting to a paired host fails. +4. Enable the two hosts to ssh to one-another and run git-annex shell. + (Set up per-host ssh keys.) +5. Pull over a clone of the repository. +6. Start [[syncing]]. Also look into the method used by <https://support.mozilla.org/en-US/kb/add-a-device-to-firefox-sync> diff --git a/doc/install.mdwn b/doc/install.mdwn index 31a5b15d3..92b0897f4 100644 --- a/doc/install.mdwn +++ b/doc/install.mdwn @@ -65,6 +65,7 @@ libraries. To build and use git-annex by hand, you will need: * [crypto-api](http://hackage.haskell.org/package/crypto-api) * [hamlet](http://hackage.haskell.org/package/hamlet) * [clientsession](http://hackage.haskell.org/package/clientsession) + * [network-multicast](http://hackage.haskell.org/package/network-multicast) * Shell commands * [git](http://git-scm.com/) * [uuid](http://www.ossp.org/pkg/lib/uuid/) |