Home

Awesome

Share File Systems

<!-- cspell:words Tauri, Upspin -->

Purpose

A fully decentralized social application built from the file system first. This application makes no use of blockchain or other crypto-coin technologies.

Imagine your mom copy and paste a file from your computer to hers a hundred miles away using her web browser. Openly share your hard drives with yourself and people you trust in as little or as much as you wish. The application uses a familiar Windows/OSX like GUI experience in your web browser. No cloud, no servers, no third party, or intermediary of any kind.

This application seeks to be inherently private. Everything is directly point to point to users and devices you invite and therefore end-to-end encrypted and always private.

Media

Videos

Screenshots

Features

License

AGPLv3

Version

0.3.0

Build and execute on desktop

First build

  1. Install latest version of Node.js. I recommend using a version manager:
    1. Windows NVM
    2. Linux, OSX
  2. Install git
  3. Nerdy terminal commands
    1. Clone the application from Github into a directory named share.
      • git clone https://github.com/prettydiff/share-file-systems.git share
    2. Install the application
      • node share/install
    3. Execute the application.
      • share
  4. Open your favorite modern browser to https://localhost
    • If this doesn't work make an exception in your local firewall for port 80, 443, or which ever port you specify.

Please note the install script requires use of sudo on Linux to install certificates and allow access to restricted ports.

Later builds

Execute test automation demo (opens your default browser)

  1. share test_browser

Troubleshooting

Firewall

In almost every case the reason why connections fail is because one of more computers have a firewall blocking traffic.

  1. To verify whether or not firewalls are the problem temporarily disable the firewalls at both ends and try to connect again.
  2. Ensure the firewall contains both an inbound and outbound rule for the exact version of Node.js.
  3. These firewall rules must permit TCP traffic for private and public connections for at least the ports used by the application, by default that is 443 and 444.
  4. It is also helpful to enable firewall rules for ICMPv6 to test if a remote agent is reachable over the network with a ping test.
  5. Windows users who use Windows Defender Firewall can solve for firewall concerns with this command: share firewall

Connecting over the internet

IPv6

If you are attempting to connect to a remote agent outside your local network router/switch you must use an IPv6 address.

IPv4

IPv4 addresses are fine only so long as both computers share the same local router, which is because routers impose Network Address Translation (NAT).

<!-- ## Install on IPhone 1. Download iSH from the app store. It is a Linux shell. Open it. </!-- cspell:disable --/> 1. In iSH execute command to install a package manager: `wget -qO- http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86/apk-tools-static-2.10.5-r1.apk | tar -xz sbin/apk.static && ./sbin/apk.static add apk-tools && rm sbin/apk.static` * For a list of available packages see: https://github.com/ish-app/ish/wiki/What-works%3F </!-- cspell:enable --/> 1. Then install wget: `apk update && apk add --no-cache wget` 1. Download Node using wget: `wget https://nodejs.org/dist/v15.14.0/node-v15.14.0-linux-x64.tar.xz && tar -xf node-v15.14.0-linux-x64.tar.xz` -->