squeaknode/docker/docker-compose.yml
Jonathan Zernik d3d7e6e604
Add admin web server (#310)
* Add basic flask web server

* Use ubuntu as docker base image for frontend docker build

* Got web frontend server running inside sqkserver

* Got client request throught flask working

* Refactor makerequest function in frontend

* Support sending request to flask server

* Use request and reply in flask for set profile sharing method

* Handle request object in flask for get followed squeaks route

* Use flask endpoint for lnd getinfo

* Use flask endpoint for walletbalance

* Use flask for gettransactions endpoint

* Use flask endpoint for lnd methods

* Add set profile properties methods to flask

* Move request, response protobuf to handler class

* Move request, reply inside handler for get signing profiles

* Move request, reply to handler for get contact profiles

* Move request, reply to handler for get squeak profile

* Move request reply for get profile by address to handler

* Move request reply to handler for set profile attributes

* Move request reply to handler for delete profile

* Move request reply for make squeak to handler

* Move request reply to handler for get squeak display

* Move request reply to get address squeak displays

* Move request reply to handler for ancestor squeaks

* Move request reply to handler for delete squeak

* Move request reply to handler for create peer and get peer

* Move request reply to handler for peer set attributes

* Move request reply to handler for more methods

* Move request reply to handler for another method

* Move request reply to handler for more methods

* Move more request reply to handler

* Move request reply to handler for all methods

* Remove message conversion helper methods from servicer class

* Remove duplicate protobuf conversion functions

* Fix flask handling of requests

* Remove old protobuf conversion methods in comments

* Use helper method to simplify web server routes functions
2020-10-22 22:52:40 -04:00

167 lines
3.3 KiB
YAML

version: '3'
services:
btcd:
image: btcd
container_name: btcd
build:
context: ../
dockerfile: docker/btcd/Dockerfile
volumes:
- shared:/rpc
- bitcoin:/data
environment:
- NETWORK=testnet
entrypoint: ["./start-btcd.sh"]
lnd:
image: lnd
container_name: lnd
build:
context: ../
dockerfile: docker/lnd/Dockerfile
environment:
- NETWORK=testnet
- RPCHOST=btcd
volumes:
- shared:/rpc
- lnd_dir:/root/.lnd
links:
- "btcd:btcd"
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
entrypoint: ["./start-lnd.sh"]
lnd_other:
image: lnd_other
container_name: lnd_other
build:
context: ../
dockerfile: docker/lnd/Dockerfile
environment:
- NETWORK=testnet
- RPCHOST=btcd
volumes:
- shared:/rpc
- lnd_other_dir:/root/.lnd
links:
- "btcd:btcd"
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
entrypoint: ["./start-lnd.sh"]
sqkserver:
image: sqkserver
container_name: sqkserver
build:
context: ../
dockerfile: docker/sqkserver/Dockerfile
volumes:
- shared:/rpc
- lnd_dir:/root/.lnd
- ./config.ini:/app/config.ini
- sqk_dir:/root/.sqk
ports:
- 8774:8774
- 5000:5000
links:
- "btcd:btcd"
- "lnd:lnd"
environment:
- EXTERNAL_LND_HOST=lnd
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
entrypoint: ["./start-sqkserver.sh"]
sqkserver_other:
image: sqkserver_other
container_name: sqkserver_other
build:
context: ../
dockerfile: docker/sqkserver/Dockerfile
volumes:
- shared:/rpc
- lnd_other_dir:/root/.lnd
- ./config.ini:/app/config.ini
- sqk_other_dir:/root/.sqk
links:
- "btcd:btcd"
- "lnd_other:lnd"
environment:
- EXTERNAL_LND_HOST=lnd_other
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
entrypoint: ["./start-sqkserver.sh"]
envoy:
image: envoy
container_name: envoy
build:
context: ../
dockerfile: docker/envoy/Dockerfile
ports:
- 8080:8080
links:
- "sqkserver:sqkserver"
environment:
- SERVICE_NAME=sqkserver
envoy_other:
image: envoy_other
container_name: envoy_other
build:
context: ../
dockerfile: docker/envoy/Dockerfile
ports:
- 8090:8080
links:
- "sqkserver_other:sqkserver_other"
environment:
- SERVICE_NAME=sqkserver_other
frontend:
image: frontend
container_name: frontend
build:
context: ../
dockerfile: docker/frontend/Dockerfile
args:
- PORT=8080
ports:
- 8081:8081
frontend_other:
image: frontend_other
container_name: frontend_other
build:
context: ../
dockerfile: docker/frontend/Dockerfile
args:
- PORT=8090
ports:
- 8091:8081
volumes:
bitcoin:
driver: local
# shared volume is needed for sharing the btcd certificate
shared:
driver: local
# lnd_dir volume is needed for sharing the lnd tls certificate
lnd_dir:
driver: local
# lnd_other_dir volume is needed for sharing the lnd tls certificate
lnd_other_dir:
driver: local
sqk_dir:
driver: local
sqk_other_dir:
driver: local
postgres_dir:
driver: local