Skip to content

Latest commit

 

History

History
61 lines (44 loc) · 2.29 KB

DOCKER_INSTALL.md

File metadata and controls

61 lines (44 loc) · 2.29 KB

Bolt card service installation using Docker

install Docker engine and Docker compose

Set up the boltcard server

  • Run ./docker_init.sh to set up the initial data
  • Put the tls.cert file and admin.macaroon files in the project root directory

https setup

  • set up the domain A record to point to the server
  • set up the server hosting firewall to allow open access to https (port 443) only

database setup

  • copy the .env.example file to .env and change the database password

service bring-up and running

$ sudo groupadd docker
$ sudo usermod -aG docker ${USER}
(log out & in again)
$ docker volume create caddy_data
// add -d option for detached mode
$ docker compose up

run boltcard server with own reverse proxy

If you already have reverse proxy in your enviroment which controls/terminates TLS connections, Boltcard server wont be ready to use, because of existence of own reverse proxy (Caddy). Caddy wont be abble to obtain TLS certificate for your domain name. Run different docker-compose, that will start Boltcard server without Caddy and your reverse proxy will handle TLS.

// add -d option for detached mode
$ docker-compose up -f docker-compose-own-reverse-proxy.yml

stop docker

$ docker compose down

To delete the database and reset the docker volume, run docker compose down --volumes NOTE: caddy_data volume won't be removed even if you run docker compose down --volumes because it's an external volume. Make sure to wipe your programmed cards before wiping the database

check container logs

$ docker logs [OPTIONS] CONTAINER

Run $ docker ps to list containers and get container names/ids

running internal API commands

  • docker exec boltcard_main curl 'localhost:9001/createboltcard?card_name=card_5&enable=false&tx_max=1000&day_max=10000&uid_privacy=true&allow_neg_bal=true'
  • docker exec boltcard_main curl 'localhost:9001/updateboltcard?card_name=card_5&enable=true&tx_max=100&day_max=1000'
  • docker exec boltcard_main curl 'localhost:9001/wipeboltcard?card_name=card_5'
  • docker exec boltcard_main curl 'localhost:9001/getboltcard?card_name=card_5'