Skip to content
Official Textile Desktop Tray App
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
pages
public
scripts
src
.eslintignore
.eslintrc.json
.gitignore
CODEOWNERS
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
README.md
bootstrap.go
bundler.all.json
bundler.linux.json
bundler.mac.json
bundler.windows.json
craco.config.js
go.mod
go.sum
main.go
package.json
tsconfig.json
tslint.json
yarn.lock

README.md

Textile Desktop (desktop)

Made by Textile Chat on Slack Keywords

GitHub package.json version GitHub license David CircleCI branch standard-readme compliant

Official Textile Desktop Tray App

Join us on our public Slack channel for news, discussions, and status updates. For current status, and where you can help, please see our issues.

Table of Contents

Background

Textile provides encrypted, recoverable, schema-based, and cross-application data storage built on IPFS and libp2p. We like to think of it as a decentralized data wallet with built-in protocols for sharing and recovery, or more simply, an open and programmable iCloud.

The reference implementation of Textile is written in Go, and can be compiled to various platforms, including mobile (Android/iOS) and desktop/server (OSX, Windows, Linux, etc). The app in this repo is designed to help support things like browser-based Textile apps, Node.js apps, and other use-cases.

This app provides access to an underlying go-textile node's REST API, and comes with various user-interfaces to access, control, and otherwise monitor API access. It is a testing ground for developing new services and tools on top of Textile for desktop environments.

Development

This project was bootstrapped with Textile's textile-react-cookie. It was originally generated via Create React App, and then the build/run configuration was customized with a craco.config.js file.

To start developing with Textile desktop, you'll need to install go, nodejs, and various standard build tools. Then you can:

yarn
yarn dist -o {mac,linux,windows} && go run *.go

Note: By default yarn dist builds for all operating systems. For development, you'll want a platform specific build, so for OSX, you'll run,

yarn dist -o mac && go run *.go

If you modify the JS code, you'll need to rerun all of the above on order to rebuild the app and relaunch the Go service.

If you are updating the GO code, you can simply run,

go run *.go

Commands

yarn dev

Runs the app in the development mode. This will activate a vanilla Electron app in development mode. It will not support all Textile desktop functionality, but is a good way to play around with the UI.

yarn build

Builds the app for production to the build folder. It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes. Your app is ready to be deployed!

See the section about deployment for more information.

yarn dist

Builds the app and bundles it as an Electron app, along with the underlying go-textile node. This is how you produce a true Textile desktop release. See ./scripts/bundle.sh for the commands used, and the go-astilectron + bundler repos for details.

Manual

Install go-astilectron-bundler:

go get github.com/asticode/go-astilectron-bundler/...
go install github.com/asticode/go-astilectron-bundler/astilectron-bundler

Build the app: yarn build astilectron-bundler -v

Double-click the built app in tray/output/{darwin,linux,windows}-amd64, or run it directly:

go run *.go

You can also build the architecture-specific versions with:

astilectron-bundler -v -c bundler.{mac,linux,windows}.json

Linux

On Linux, you also have to apt-get install libappindicator1 xclip libgconf-2-4 due to an issue with building Electron-based apps.

Documentation

Coming soon...

Maintainer

Carson Farmer

Contributing

Textile's Desktop Tray App is a work in progress. As such, there's a few things you can do right now to help out:

  • Ask questions! We'll try to help. Be sure to drop a note (on the above issue) if there is anything you'd like to work on and we'll update the issue to let others know. Also get in touch on Slack.
  • Log bugs, file issues, submit pull requests!
  • Perform code reviews. More eyes will help a) speed the project along b) ensure quality and c) reduce possible future bugs.
  • Take a look at go-textie (which is our reference implementation), and also at some of the client repositories: for instance js-http-client.
  • Contributions here that would be most helpful are top-level comments about how it should look based on our understanding. Again, the more eyes the better.
  • Add tests. There can never be enough tests.
  • Contribute to the Textile WIKI with any additions or questions you have about Textile and its various impmenentations. A good example would be asking, "What is a thread?". If you don't know a term, odds are someone else doesn't either. Eventually, we should have a good understanding of where we need to improve communications and teaching together to make Textile even better.

Before you get started, be sure to read our contributors guide and our contributor covenant code of conduct.

Contributors

Commits Contributor
39 carsonfarmer
10 andrewxhill

License

MIT

You can’t perform that action at this time.