# laseca laseca is a social bitcoin to cash exchange, implemented as a webapp. ## Upcoming stories * [ ] Create offer * [ ] Display existing offers * [ ] Archive offer ## How to set up dev environment * Pre-requisites + `docker` and `docker compose` + `node` and `npm` * Installing + Run `npm install` + You can now start the app in a container by running `npm run start:container` (and shut it down with `npm run stop:container`). * Running + Copy the `.env.dist` file into `.env` and set any values you like. + The app will run in a single container, with a Postgres database, a caddy webserver and the nodejs app. + Note that the container doesn't come with a volume for Postgres: default behaviour is to start from scratch every time you create the container, delete everything every time you delete the container. + The docker image launches the nodejs app with nodemon, so changes to the code will be available immediately. + The Postgres database is reachable from the host, so you can use your favourite SQL client to access it. + You can format with `npm run format` and lint with `npm run lint`. ## How to deploy The app has never been deployed in production, so there's a lot of things to polish. The (hypothetical) approach is to: * Spin up a linux box. * Install node, caddy and postgres. * Configure them all nice and stuff so they work together and have a reasonable production set up. * Set up the node app with systemd so it runs proper. ## Docs You can find documentation under `docs/`. ## Other * `other/branding` contains brand assets of laseca. * `other/nostr-brand-assets` contains some nostr-related open source icons, logos, etc.