All Projects → gnidan → docker-eth-dev

gnidan / docker-eth-dev

Licence: other
Hacking together a containerized environment for Ethereum development with Truffle using Parity

Programming Languages

shell
77523 projects
Nginx
273 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to docker-eth-dev

solidity-contracts
📦 Resources for the Ethereum Smart Contract Development tutorial series.
Stars: ✭ 64 (+190.91%)
Mutual labels:  truffle, testrpc
svelte-box
A truffle box for svelte
Stars: ✭ 60 (+172.73%)
Mutual labels:  truffle, testrpc
dao1901
French 1901's Law for non-profit organizations, now on Ethereum
Stars: ✭ 29 (+31.82%)
Mutual labels:  truffle, testrpc
ethdock
Ethereum development package in docker.
Stars: ✭ 25 (+13.64%)
Mutual labels:  truffle, testrpc
Graalphp
An efficient PHP implementation built on GraalVM
Stars: ✭ 233 (+959.09%)
Mutual labels:  truffle
resources
A living collection of resources for participants (and anyone who's interested) in Truffle University's courses 📚
Stars: ✭ 27 (+22.73%)
Mutual labels:  truffle
Truffleruby
A high performance implementation of the Ruby programming language. Built on the GraalVM by Oracle Labs.
Stars: ✭ 2,620 (+11809.09%)
Mutual labels:  truffle
Erc20 Generator
Create an ERC20 Token for FREE in less than a minute with the most used Smart Contract Generator for ERC20 Token. No login. No setup. No coding required.
Stars: ✭ 202 (+818.18%)
Mutual labels:  truffle
multiarch-letsencrypt-nginx-proxy
nginx-proxy, docker-gen and letsencrypt-nginx-proxy-companion on arm archs
Stars: ✭ 23 (+4.55%)
Mutual labels:  nginx-proxy
eth-plot
r/place inspired Dapp
Stars: ✭ 36 (+63.64%)
Mutual labels:  truffle
react-truffle-metamask
Build an DApp using react, redux, saga, truffle, metamask
Stars: ✭ 25 (+13.64%)
Mutual labels:  truffle
atomic-markets
Generalized atomic swap marketplaces for ERC-777(advanced token standard) and ERC-721 (non-fungible tokens)
Stars: ✭ 30 (+36.36%)
Mutual labels:  truffle
docker-proxy-api
Nginx Proxy with Basic auth and SSL for Docker Rest API
Stars: ✭ 16 (-27.27%)
Mutual labels:  nginx-proxy
nginx-config-reverse-proxy
Nginx Configuration for a Secure Reverse Proxy
Stars: ✭ 30 (+36.36%)
Mutual labels:  nginx-proxy
mozart-graal
An implementation of Oz on top of Truffle and Graal
Stars: ✭ 37 (+68.18%)
Mutual labels:  truffle
solcover
Code coverage for solidity
Stars: ✭ 64 (+190.91%)
Mutual labels:  truffle
Sparkle Proof Of Loyalty
Sparkle Proof of Loyalty Contract
Stars: ✭ 216 (+881.82%)
Mutual labels:  truffle
nginx-proxy
Docker container for automatically creating nginx configuration based on active services in docker host.
Stars: ✭ 28 (+27.27%)
Mutual labels:  nginx-proxy
casper
Yelp's internal caching proxy, powered by Nginx and OpenResty at its core
Stars: ✭ 81 (+268.18%)
Mutual labels:  nginx-proxy
eth-decoder
Simple library to decode ethereum transaction and logs
Stars: ✭ 32 (+45.45%)
Mutual labels:  truffle

docker-eth-dev

Join the chat at https://gitter.im/gnidan/docker-eth-dev

Multi-container development environment for building dapps on test chains

Background / Goals

I'm trying to find a suitable solution to the problem of having to run switch between running Ethereum nodes and running dapps. Most of the programs all use the same few ports and don't work together quite so well out of the box.

Docker Compose seems like a reasonable solution - by setting up a virtual network of containers for individual services, and wrapping it behind a web proxy, it should remove a lot of the overhead of process and dependency management.

This project also aims to create a collection of custom wrapper binaries around the supported services, to maintain the interface of local development while everything runs virtualized and separated from localhost.

Overview

This repository is currently a WIP attempt to get a sane (to me?) Ethereum dev environment up and running inside docker-compose.

Dev tools include:

  • truffle to build/deploy contracts
  • testrpc to run a "dev" blockchain
  • parity (against Ropsten) for live testing

Dependencies

  • Requires Docker. (tested version 1.13.0-rc2, build 1f9b3ef)
  • May require Docker Compose also, depending on your Docker installation.

Getting Started

  1. Clone this repository somewhere to be your docker-eth-dev home directory ($ETH)

    git clone https://github.com/gnidan/docker-eth-dev.git <dir>

    This directory will contain the contents of this repository:

    • containers configuration
    • wrapper binaries
    • dapps top-level directory
      • example dapp (the truffle init result, reconfigured)
    • this README
  2. Activate shell environment

    source <dir>/bin/activate.sh

    This aliases all the wrapper binaries so they're available for us in the shell.

  3. Create Docker volume for Ropsten Parity

    docker volume create --name=parity-testnet-data

    This creates a persistent volume so that the Ropsten account information/ chain data does not get lost when the containers are stopped.

  4. Start Docker containers

    docker-compose up -d

    This runs nginx, testrpc, and parity-testnet inside containers. Port 80 will be opened on localhost for nginx's proxy.

  5. Add parity-testnet.ethereum to your /etc/hosts file, pointing locally or at your docker-machine

    This is so that nginx may recognize the resource you are trying to reach.

  6. Visit http://parity-testnet.ethereum/ in your browser.

  7. Run parity-testnet signer new-token in your active env shell.

    In case Parity Wallet needs to authenticate with the running parity-testnet container.

  8. Note: In case anything stops working, I find that restarting docker-compose from scratch seems to help:

    docker-compose down
    docker-compose up -d

What Else?

  • Dapps should live in separate directories in $ETH/dapps for truffle to behave as expected

  • truffle serve configuration could use some love and might not work right.

  • This env works by setting alises - if necessary, you can do \truffle, etc.

  • This opens port 80 locally. That's currently hardcoded in. I'm looking for ways around this, or to make it easier to deal with.

  • I have no idea if configuring Parity behind an nginx proxy is wildly unsafe, hence why it's only set up to do Ropsten right now.

    At the very least, though, I will say that Parity tries very hard to prevent you from configuring it this way.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].