43 lines
2.1 KiB
Markdown
43 lines
2.1 KiB
Markdown
# laseca
|
|
|
|
laseca is a social bitcoin to cash exchange, implemented as a webapp.
|
|
|
|
## 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`).
|
|
* Building
|
|
+ The front-end code gets built with webpack. You can build it anytime with `npm run build`.
|
|
+ For development, it's useful to build continuously. You can run `npm run watch` and webpack will build every time you edit a monitored file.
|
|
* 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.
|
|
+ You probably want to run migrations to get the database into proper state. You can do so with `npx sequelize-cli db:migrate`.
|
|
+ The docker image launches the nodejs app with nodemon, so changes to the code will be available immediately.
|
|
+ Furthermore, since the git repository gets mounted live into the docker container, the live changes made by webpack watch mode will also be available as you work on front end files.
|
|
+ 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.
|