Problem: The previous approach of having the installer run `npm install` was hazardous at best and didn't work well offline. Solution: Package all of the source code with the application and use the installer to ensure that it works on the target device. The installer should ensure that we can `require()` the module, and if that doesn't work then it should choose between two options: - If the module is optional, `rm -rf` it and don't worry about it. - If the module is mandatory, try running `npm install` with some flags to ensure that we stay offline and print the absolute minimal output. This should never happen, because we should never be packaging Oasis for architectures and platforms that we don't have prebuilds for, but it's a fine fallback behavior for experimental hackery.
Oasis
Oasis is a free, open-source, peer-to-peer social application that helps you follow friends and discover new ones on Secure Scuttlebutt (SSB).
🦀 Powered by SSB.
You're the center of your own distributed network. Online or offline, SSB works
anywhere that you are. Follow the people you want to see and never worry about
spam again. Migrate your data to another SSB app any time you want.
🌐 Bring your own browser.
Use your favorite web browser to read and write messages to the people you care
about. Oasis runs over HTTP, so you don't need to worry about adding another
Electron app to your computer.
🏰 Just HTML and CSS.
No browser JavaScript! Oasis has strict security rules that prevent any
JavaScript from running in your browser, which helps us make Oasis accessible
and easy to improve.
Usage
Start Oasis from a command-line interface with the oasis command.
$ oasis --help
Usage: oasis [options]
Options:
--version Show version number [boolean]
-h, --help Show help [boolean]
--open Automatically open app in web browser. Use --no-open to disable.
[boolean] [default: true]
--offline Don't try to connect to scuttlebutt peers or pubs. This can be
changed on the 'settings' page while Oasis is running.
[boolean] [default: false]
--host Hostname for web app to listen on [string] [default: "localhost"]
--port Port for web app to listen on [number] [default: 3000]
--debug Use verbose output for debugging [boolean] [default: false]
Installation
Most people should install stable releases with npm and Node.js current or active LTS release.
npm --global install 'fraction/oasis#semver:*'
For faster updates and less stability, install from GitHub and upgrade often.
npm --global install fraction/oasis
Want more? Check out install.md.
Resources
See Also
License
AGPL-3.0
