]> git.netwichtig.de Git - user/henk/code/shell/rif.git/blobdiff - README.md
Update all files to use RI6F instead of RIF
[user/henk/code/shell/rif.git] / README.md
index 0cbcd485951f2d01dae3f53a01f6ace7f1075551..5cab12ac04497023f2a79844a7763b82674441f0 100644 (file)
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@ want to securely communicate with our friends. And chat with them. And
 know when they are online. Let's solve this problem once-and-for-all
 in a decentralised, sustainable and future proof way.
 
-## Here come's the real IPv6 friend
+## Here comes the real IPv6 friend
 
 Instead of using a single system or server, we use IPv6 to connect to
 our friends directly. Because each of our friends is reachable by IPv6
@@ -22,13 +22,16 @@ just connect to their computer!
 It's a bit geeky, but it works actually rather simple.
 To become a real IPv6 friend, you need to do the following things:
 
-- Generate a GPG key with a comment named RIF following the URL of
-  your computer
+- Generate a GPG key with a comment named **RI6F** following the URL of
+  your computer (f.i. **RI6F https://nico.ungleich.cloud**)
 - Ensure that the URL points to the IPv6 address of your computer
 - Setup a webserver on your computer
 - Export your key and all real IPv6 friend keys to your webserver as
   "rifkeys.txt
-- For each of your friends, check whether they are online!
+- For each of your friends, check whether they are online
+- Import the friends of your friends and check whether they are
+  online, too!
+- Send friend requests (like other platforms!)
 
 ### Example: Generating a key with the right comment
 
@@ -76,9 +79,9 @@ Is this correct? (y/N) y
 GnuPG needs to construct a user ID to identify your key.
 
 Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? c
-Comment: RIF https://nico.ungleich.cloud
+Comment: RI6F https://nico.ungleich.cloud
 You selected this USER-ID:
-    "Nico Schottelius (RIF https://nico.ungleich.cloud) <ipv6@nico.ungleich.cloud>"
+    "Nico Schottelius (RI6F https://nico.ungleich.cloud) <ipv6@nico.ungleich.cloud>"
 
 Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
 We need to generate a lot of random bytes. It is a good idea to perform
@@ -96,7 +99,7 @@ public and secret key created and signed.
 
 pub   ed25519 2019-09-09 [SC]
       B982A8BABC030C66DEF5984527541E11E73F288D
-uid                      Nico Schottelius (RIF https://nico.ungleich.cloud) <ipv6@nico.ungleich.cloud>
+uid                      Nico Schottelius (RI6F https://nico.ungleich.cloud) <ipv6@nico.ungleich.cloud>
 sub   cv25519 2019-09-09 [E]
 
 
@@ -117,33 +120,112 @@ sudo chown $(whoami) /var/www/html
 To make yourself accessible and expose who your real IPv6 friends are.
 
 ```
-gpg -a --export RIF > /var/www/html/rifkeys
+gpg -a --export RI6F > /var/www/html/rifkeys
 ```
 
 ### Example: List your friends
 
+You can use the included rif-listfriends.sh or directly gpg:
+
 ```
-[1:40] line:~% gpg --list-keys --with-colons | grep RIF | awk -F: '{ print $10 }' | sed 's/\\x3a/:/'
-Nico Schottelius (RIF https://nico.ungleich.cloud) <ipv6@nico.ungleich.cloud>
-Nico Schottelius (myself) (RIF https://nico2.ungleich.cloud) <nico@nico.ungleich.cloud>
+[1:40] line:~% gpg --list-keys --with-colons | grep RI6F | awk -F: '{ print $10 }' | sed 's/\\x3a/:/'
+Nico Schottelius (RI6F https://nico.ungleich.cloud) <ipv6@nico.ungleich.cloud>
+Nico Schottelius (myself) (RI6F https://nico2.ungleich.cloud) <nico@nico.ungleich.cloud>
 ```
 
+
 ### Example: Checking which friends are online
 
 Use the included rif-checkfriends.sh script or iterate yourself over
 above output.
 
 ```
+[1:54] line:realipv6friend% sh rif-checkfriends.sh
+Checking Nico Schottelius  on https://nico.ungleich.cloud ...
+Nico Schottelius is online
+Checking Nico Schottelius (myself)  on https://nico2.ungleich.cloud ...
+Nico Schottelius (myself) is offline
+[1:54] line:realipv6friend%
+
+```
+
+### Example: Importing friends of my friend
+
+Importing friends of a friend is as simple as importing all the
+exported keys! We import friends directly from the URL of a friend:
+
+```
+curl -6 -s https://nico.ungleich.cloud/rifkeys | gpg --import
+```
+
+You can also use the included rif-importfriends.sh.
+
+
+### Example: Updating your friends
 
+Now that you have imported the friends of your friends, they have
+automatically also become your friends!
+
+Obviously, you will want to check whether you even want to sign some
+of the friends (keys) that you downloaded, but clearly you want to
+show off with the biggest amount of friends (that's what is most
+important anyway, isn't it?).
+
+In any case, to update your friend list, simply repeat the command you
+ran above already in the beginning:
 
 ```
+gpg -a --export RI6F > /var/www/html/rifkeys
+```
+
+Or use the included `rif-exportfriends.sh`
+
+### Example: Importing friends of all friends and exporting them
+
+From time to time you might want to checkup on which friends gained
+new friends and add them to your friend list. This is as easy as
+iterating over all your friends and importing their friends into your
+friends list. And because you are a good friend, you might want to
+export all friends again.
+
+To make things easy, the included a script `rif-friendimportexport.sh`
+automates this process.
+
+
+### Example: Sending a message to a friend
+
+You can probably just use your mail program for that - and you might
+even be able to send it IPv6 only!
+
+### Example: Invite a friend
+
+Live is not great without friends! Let's invite a friend! This is as
+easy is this:
+
+```
+printf 'Hello yournamehere!\n I am looking for real IPv6 friends.\n You find my friends on https://nico.ungleich.cloud/rifkeys.\nHow real IPv6 friends find each other is explained on https://code.ungleich.ch/nico/rif.\n Looking forward to befriend you!' | mail -s "friend request" ipv6@your.friend.example.com
+```
+
+And obviously this is waaaaaaaaay to long to type. That's why
+`rif-invitefriends.sh` puts this nicely into a script.
+
+Attention: this requires a working mail setup on your computer
+(i.e. outgoing emails sending by `mail` works).
+
+## Finding friends
+
+As real IPv6 friends are decentralised, there is no central registry
+of friends. Just startup the webserver on your machine, export your
+key(s) and ping your friend.
 
+With every friend that is added to your network, the reach grows in
+the chain of all friends of every friend!
 
-## To be added
+So just start in your small cycle and forward your friend URL to your
+friends!
 
-- advanced usage -> ipv6 email
 
-### CLI ideas
+## About
 
-- **rif prepare**: check webserver, keyring, etc.
-- **rif online**: check who is online
+Real IPv6 friend is a project launched by Nico Schottelius on 2019-09-10.
+If you want to become my friend, my friend URL is https://nico.ungleich.cloud.