rink-rs/web
2021-04-05 17:31:39 -07:00
..
src Cache currency data in a file for better reliability 2021-02-14 16:46:17 -08:00
static Change PWA type to standalone 2020-08-29 18:13:25 -07:00
.editorconfig Re-add currency units to rink-web 2020-08-07 20:10:02 -07:00
package-lock.json Cache currency data in a file for better reliability 2021-02-14 16:46:17 -08:00
package.json Release v0.6.0 2021-04-05 17:31:39 -07:00
README.md Add readme to rink-web 2020-08-06 18:27:59 -07:00
rollup.config.js Use relative path for server wasm blob 2020-08-06 18:08:22 -07:00
svelte.config.js Rink Web 2 (#62) 2020-08-06 16:25:12 -07:00
tsconfig.json Use unified currency API endpoint (#76) 2020-09-20 20:45:22 -07:00

Rink Web

This is a web interface to Rink that works by compiling Rink to WebAssembly. The frontend is written in TypeScript using Svelte + Sapper.

This is a progressive web app, and also supports server side rendering.

Development

Make sure you have Rustup and the latest Stable Rust toolchain.

All the dependencies need to be installed by running:

npm install

Once that's done, you can start the dev server by running:

npm run dev

This will automatically compile Rink to wasm for you. It will detect changes made to rink-js and recompile, but changes to rink-core will require restarting the dev server.

Deployment

To deploy rink-web, there's a couple of steps you'll need to do:

  1. Run npx sapper build build. This will compile the app and put it into build/.
  2. Move your node_modules out of the way and run npm install --production to get just the production dependencies.
  3. Copy build/, node_modules/ and static/ to your web server.
  4. Run node build/ to start the server. It will respect the PORT and NODE_ENV environment variables, which default to 3000 and production respectively.

The following directories can be served statically, as long as there's still a fallback that reverse proxies the node server:

  • static/ is mounted on /.
  • build/client/ is mounted on /client/.