diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 102 |
1 files changed, 64 insertions, 38 deletions
@@ -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`. |