aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md102
1 files changed, 64 insertions, 38 deletions
diff --git a/README.md b/README.md
index 107d3bd..c247e4e 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
What is Shard?
===============
-*WARNING:* This is a primer on what I want Shard to become. As of today I'm
+**WARNING: This is a primer on what I want Shard to become. As of today I'm
only starting work on this project and there is almost nothing to see. I hope
this will evolve and approach at least a significant portion of the goals
-identified below.
+identified below.**
Shard is a decentralized communication system adapted to public and private
discussion and collaboration.
@@ -48,9 +48,9 @@ significant manners:
Shard vs. Secure Scuttlebutt
----------------------------
-Just like SSB, Shard will enable users to work off grid and exchange data
-when they happen to communicate. We wish to improve upon the following
-aspects of SSB:
+Just like SSB, Shard will enable users to work off grid and exchange data when
+a network connection happens to be available. We wish to improve upon the
+following aspects of SSB:
- More granularity on what peers store or not, by splitting a user's
contribution in different "shards" that correspond to different topics.
@@ -63,7 +63,7 @@ aspects of SSB:
new people and finding contents.
- We wish to be very general from the start, and not limited to social-media-like
conversations.
-- We want excellent support for one-to-one and groupwise communications.
+- We want excellent support for private one-to-one and groupwise communications.
Shard vs. Matrix
----------------
@@ -80,6 +80,27 @@ Shard vs. Mastodon / GNU Social
Same remarks than for Matrix.
+Current status
+==============
+
+What is available
+-----------------
+
+* Chat rooms (public and private) with full history and efficient data structure for
+ retrieving missing messages after disconnection
+* File upload (public only)
+* Directories as collections of links to shards
+
+What is missing
+---------------
+
+See `TODO` file for more details.
+
+* Finding peers via DHT (very easy to add)
+* Invite/notification system
+* Good access control
+* More applications
+
How to use it?
==============
@@ -103,61 +124,77 @@ Then, clone the Shard repository using git:
git clone git://adnab.me/shard.git
```
-### CLI version only
-Enter the shard directory and create a data folder.
+### Web UI version
+
+Enter the shard directory and create a data2 folder.
```
cd shard
-mkdir data # for CLI use only
+mkdir data2 # for web UI
```
-Enter the shard subdirectory and install Elixir dependencies.
+Enter the shardweb subdirectory and install Elixir dependencies.
```
-cd shard
+cd shardweb
mix deps.get
mix compile
```
+Build the web assets:
+
+```
+cd assets
+npm install
+cd ..
+```
+
**The default configuration assumes you have cloned the shard repo in your
-`$HOME`. If this is not the case, ajust `config/config.exs` accordingly.**
+`$HOME`. If this is not the case, ajust the data path parameter in
+`shardweb/config/config.exs` accordingly.**
-### Web UI version
+### CLI version only
-Enter the shard directory and create a data2 folder.
+Enter the shard directory and create a data folder.
```
cd shard
-mkdir data2 # for web UI
+mkdir data # for CLI use only
```
-Enter the shardweb subdirectory and install Elixir dependencies.
+Enter the shard subdirectory and install Elixir dependencies.
```
-cd shardweb
+cd shard
mix deps.get
mix compile
```
-Build the web assets:
+**The default configuration assumes you have cloned the shard repo in your
+`$HOME`. If this is not the case, ajust the data path parameter in
+`shard/config/config.exs` accordingly.**
+
+
+Web Ui usage
+------------
+
+Once you have completed the installation steps above, Shard web can be started
+by running the following in the `shardweb` directory of the repo:
```
-cd assets
-npm install
-cd ..
+iex -S mix phx.server
```
-**The default configuration assumes you have cloned the shard repo in your
-`$HOME`. If this is not the case, ajust `config/config.exs` accordingly.**
+The UI will become accessible at address `http://127.0.0.1:4000`.
CLI usage
---------
Once you have completed the installation steps above, Shard can be started by
-running the following in the `shard/shard` directory:
+running the following in the `shard` directory of the repo:
```
iex -S mix
@@ -177,18 +214,7 @@ This CLI supports a few basic commands:
- `/nick my_nickname`: set nickname
- `/list`: list channels we are currently connected to
- `/hist`: show recent messages on current channel
-- `/pm nickname`: enter private conversation with someone
+- `/pm nickname1 [nickname2] [...]`: enter private conversation with someone
+- `/send_file path`: make file available on the network and send link to current chat room.
+ **WARNING: all files are publicly available for now, even if they are sent in a private chat room.**
- `/quit`: return to iex prompt
-
-
-Web Ui usage
-------------
-
-Once you have completed the installation steps above, Shard web can be started
-by running the following in the `shard/shardweb` directory:
-
-```
-iex -S mix phx.server
-```
-
-The UI will become accessible at address `http://127.0.0.1:4000`.