Merge pull request #115 from Permissionless-Software-Foundation/ct-unstable

Updating Docker container for production
This commit is contained in:
Chris Troutner
2023-10-28 11:32:24 -07:00
committed by GitHub
5 changed files with 22 additions and 34 deletions
+14
View File
@@ -8,6 +8,7 @@ This is a 'boilerplate' repository. It's intended to be forked to start new proj
- [pay-to-write database (P2WDB)](https://p2wdb.com/) - [pay-to-write database (P2WDB)](https://p2wdb.com/)
- [ipfs-bch-wallet-consumer](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-consumer) - [ipfs-bch-wallet-consumer](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-consumer)
- [ipfs-bch-wallet-service](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-service) - [ipfs-bch-wallet-service](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-service)
- [colab-coinjoin-api](https://github.com/bch-coinjoin/colab-coinjoin-api)
In addition to being forked as a boilerpalte, it can also be run as a stand-alone application to create a [Circuit Relay](https://cashstack.info/docs/local-back-end/circuit-relay), which can support the [PSF](https://psfoundation.info) IPFS network. It can also be used for experimenting with [helia-coord](https://github.com/Permissionless-Software-Foundation/helia-coord) and the [psf-bch-wallet](https://github.com/Permissionless-Software-Foundation/psf-bch-wallet) command-line wallet. In addition to being forked as a boilerpalte, it can also be run as a stand-alone application to create a [Circuit Relay](https://cashstack.info/docs/local-back-end/circuit-relay), which can support the [PSF](https://psfoundation.info) IPFS network. It can also be used for experimenting with [helia-coord](https://github.com/Permissionless-Software-Foundation/helia-coord) and the [psf-bch-wallet](https://github.com/Permissionless-Software-Foundation/psf-bch-wallet) command-line wallet.
@@ -31,6 +32,7 @@ If you are interested in creating your own service provider on the IPFS network,
- [P2WDB](https://github.com/Permissionless-Software-Foundation/ipfs-p2wdb-service) - the [pay-to-write database](https://p2wdb.com) is a censorship-resistent, p2p database for storing data and pinning files to the IPFS network. - [P2WDB](https://github.com/Permissionless-Software-Foundation/ipfs-p2wdb-service) - the [pay-to-write database](https://p2wdb.com) is a censorship-resistent, p2p database for storing data and pinning files to the IPFS network.
- [ipfs-bch-wallet-consumer](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-consumer) and [ipfs-bch-wallet-service](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-service) creates a web3, censorship-resistent API for apps to communicate with a blockchain. This software is documented in [the Cash Stack](https://cashstack.info). - [ipfs-bch-wallet-consumer](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-consumer) and [ipfs-bch-wallet-service](https://github.com/Permissionless-Software-Foundation/ipfs-bch-wallet-service) creates a web3, censorship-resistent API for apps to communicate with a blockchain. This software is documented in [the Cash Stack](https://cashstack.info).
- [colab-coinjoin-api](https://github.com/bch-coinjoin/colab-coinjoin-api) is part of the [Collaborative CoinJoin](https://ccoinjoin.com) framework to allow wallets to easily integrate CoinJoin transaction forming, to create financial privacy.
## IPFS node ## IPFS node
This web server spins up an embedded IPFS ([Helia](https://github.com/ipfs/helia)) node. This node can be controlled and interrogated via the REST API. [psf-bch-wallet](https://github.com/Permissionless-Software-Foundation/psf-bch-wallet) is a command-line app (CLI) that can easily tap into this REST API in order to interact with the embedded IPFS node. This web server spins up an embedded IPFS ([Helia](https://github.com/ipfs/helia)) node. This node can be controlled and interrogated via the REST API. [psf-bch-wallet](https://github.com/Permissionless-Software-Foundation/psf-bch-wallet) is a command-line app (CLI) that can easily tap into this REST API in order to interact with the embedded IPFS node.
@@ -46,6 +48,18 @@ This web server spins up an embedded IPFS ([Helia](https://github.com/ipfs/helia
## Installation ## Installation
### Production Environment
The [docker](./production/docker) directory contains a Dockerfile for building a production deployment.
```
docker-compose pull
docker-compose up -d
```
- You can bring the containers down with `docker-compose down`
- You can bring the containers back up with `docker-compose up -d`.
### Development Environment ### Development Environment
A development environment will allow you modify the code on-the-fly and contribute to the code base of this repository. Ubuntu v20 is the recommended OS for creating a dev environment. Other operating systems may cause issues. A development environment will allow you modify the code on-the-fly and contribute to the code base of this repository. Ubuntu v20 is the recommended OS for creating a dev environment. Other operating systems may cause issues.
+1 -1
View File
@@ -89,7 +89,7 @@ export default {
debugLevel: process.env.DEBUG_LEVEL ? parseInt(process.env.DEBUG_LEVEL) : 2, debugLevel: process.env.DEBUG_LEVEL ? parseInt(process.env.DEBUG_LEVEL) : 2,
// Settings for production, using external go-ipfs node. // Settings for production, using external go-ipfs node.
isProduction: process.env.SVC_ENV === 'production' ? true : false, isProduction: process.env.SVC_ENV === 'prod' ? true : false,
ipfsHost: process.env.IPFS_HOST ? process.env.IPFS_HOST : 'localhost', ipfsHost: process.env.IPFS_HOST ? process.env.IPFS_HOST : 'localhost',
ipfsApiPort: process.env.IPFS_API_PORT ipfsApiPort: process.env.IPFS_API_PORT
? parseInt(process.env.IPFS_API_PORT) ? parseInt(process.env.IPFS_API_PORT)
+1 -1
View File
@@ -34,7 +34,7 @@ WORKDIR /home/safeuser
# Update to the latest version of npm. # Update to the latest version of npm.
#RUN npm install -g npm@7.23.0 #RUN npm install -g npm@7.23.0
RUN npm install -g npm #RUN npm install -g npm
# npm mirror to prevent direct dependency on npm. # npm mirror to prevent direct dependency on npm.
RUN npm set registry http://94.130.170.209:4873/ RUN npm set registry http://94.130.170.209:4873/
+1 -31
View File
@@ -13,38 +13,9 @@ services:
command: mongod --logpath=/dev/null # -- quiet command: mongod --logpath=/dev/null # -- quiet
restart: always restart: always
ipfs:
# https://github.com/christroutner/trickle-ipfs
image: christroutner/trickle-ipfs:v1.0.1
#build:
# context: ./
# dockerfile: Dockerfile
container_name: ipfs
environment:
IPFS_DAEMON_ARGUMENTS: '--enable-pubsub-experiment --migrate=true --agent-version-suffix=docker --routing=dhtclient'
UPLOAD_KBPS: '1000'
DOWNLOAD_KBPS: '1000'
logging:
driver: 'json-file'
options:
max-size: '10m'
max-file: '10'
mem_limit: 2000mb
ports:
- 4001:4001
- 4003:4003
- 172.17.0.1:5001:5001
- 172.17.0.1:8080:8080
command: [
'./start-ipfs.sh'
]
volumes:
- ../data/go-ipfs/data:/root/.ipfs
restart: always
ipfs-service: ipfs-service:
#build: . #build: .
image: christroutner/ipfs-service-provider:v2.2.13 image: christroutner/ipfs-service-provider:v5.0.1
container_name: ipfs-service container_name: ipfs-service
logging: logging:
driver: 'json-file' driver: 'json-file'
@@ -54,7 +25,6 @@ services:
mem_limit: 500mb mem_limit: 500mb
links: links:
- mongo-ipfs-service - mongo-ipfs-service
- ipfs
ports: ports:
- '5010:5010' # <host port>:<container port> - '5010:5010' # <host port>:<container port>
volumes: volumes:
+5 -1
View File
@@ -29,10 +29,14 @@ export DBURL=mongodb://172.17.0.1:5555/ipfs-service-prod
export PORT=5010 export PORT=5010
# Production settings using external go-ipfs node. # Production settings using external go-ipfs node.
export SVC_ENV=production export SVC_ENV=prod
export IPFS_HOST=172.17.0.1 export IPFS_HOST=172.17.0.1
export IPFS_API_PORT=5001 export IPFS_API_PORT=5001
export IPFS_TCP_PORT=4001 export IPFS_TCP_PORT=4001
export IPFS_WS_PORT=4003 export IPFS_WS_PORT=4003
# Set the debug level for helia-coord. 0-3.
# 0 = no debug logs. 3 = maximum debug logs.
export DEBUG_LEVEL=0
npm start npm start