/dinsro

sats-first budget management

Primary LanguageClojureMIT LicenseMIT

dinsro

Sats-first personal finance management

dinsro - s1 is a treasury of money d1=s2.

Disclaimer

At this moment, this server should in no way be considered secure. Do NOT publicly expose any instance with connections to a mainnet node.

Use at your own risk!

Prerequisites

If building locally, not using docker, you will need:

  • clojure cli
  • java
  • yarn

Recommended:

Tilt-based development

Create Kubernetes cluster

You will need a kubernetes server to test with. For local development, I run the following command

k3d cluster create \
  --api-port 6550 \
  -p "80:80@loadbalancer" \
  -p "443:443@loadbalancer" \
  --servers 1 \
  --registry-create registry \
  --kubeconfig-update-default

Consult my babashka script here for the latest settings.

Configure Build

Create a file named site.edn and set with any desired customizations.

Refer to site-defaults.edn for options.

Running Dev Build

To start tilt, run:

tilt up

and then links to any of the deployed resources can be found at http://localhost:10350/

Running Without Tilt

To start a web server for the application, run:

bb server-production

To build a production docker image, run:

bb build-image

Developing Without Tilt

  • To build and watch the front-end for changes, run:
bb watch-cljs
  • To start a web server for the application development, run:
bb run

Then navigate to http://localhost:3000/

To view status of frontend, go to http://localhost:9630/

To view workspaces, go to http://localhost:9631/

Seeding data

Test data can be loaded by running

bb seed

or, from a repl:

(dinsro.components.seed/seed-db!)

Bitcoin Resources

The seed data assumes that both the "alice" and "bob" users have lnd nodes.

To launch these resources for those users, run:

bb helm-up alice
bb helm-up bob

Additional nodes can be created by substituting any name.

Each component of the above command can be substituted with:

bb helm-bitcoin-apply ${USERNAME}
bb helm-lnd-apply ${USERNAME}
bb helm-specter-apply ${USERNAME}
bb helm-rtl-apply ${USERNAME}
bb helm-nbxplorer-apply ${USERNAME}

Cleaning up

Nodes can be removed via:

bb helm-clean ${USERNAME}

or

bb helm-${SERVICE}-remove ${USERNAME}

Testing

bb test

Live Demo

License

Copyright © 2019 Duck Nebuchadnezzar duck@kronkltd.net