{"id":13849764,"url":"https://github.com/gnidan/docker-eth-dev","last_synced_at":"2025-05-05T17:12:06.754Z","repository":{"id":137997243,"uuid":"76706646","full_name":"gnidan/docker-eth-dev","owner":"gnidan","description":"Hacking together a containerized environment for Ethereum development with Truffle using Parity","archived":false,"fork":false,"pushed_at":"2017-05-23T21:08:02.000Z","size":354,"stargazers_count":22,"open_issues_count":7,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-30T22:32:26.045Z","etag":null,"topics":["docker","eth-dev","ethereum","nginx-proxy","parity","testrpc","truffle","wrapper-binaries"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gnidan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-12-17T05:49:13.000Z","updated_at":"2021-12-06T01:07:01.000Z","dependencies_parsed_at":"2024-01-15T22:01:13.830Z","dependency_job_id":null,"html_url":"https://github.com/gnidan/docker-eth-dev","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnidan%2Fdocker-eth-dev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnidan%2Fdocker-eth-dev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnidan%2Fdocker-eth-dev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnidan%2Fdocker-eth-dev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gnidan","download_url":"https://codeload.github.com/gnidan/docker-eth-dev/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252542066,"owners_count":21764907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","eth-dev","ethereum","nginx-proxy","parity","testrpc","truffle","wrapper-binaries"],"created_at":"2024-08-04T20:00:41.902Z","updated_at":"2025-05-05T17:12:06.722Z","avatar_url":"https://github.com/gnidan.png","language":"Shell","readme":"# docker-eth-dev\n\n[![Join the chat at https://gitter.im/gnidan/docker-eth-dev](https://badges.gitter.im/gnidan/docker-eth-dev.svg)](https://gitter.im/gnidan/docker-eth-dev?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nMulti-container development environment for building dapps on test chains\n\n## Background / Goals\n\nI'm trying to find a suitable solution to the problem of having to run switch\nbetween running Ethereum nodes and running dapps. Most of the programs all use\nthe same few ports and don't work together quite so well out of the box.\n\nDocker Compose seems like a reasonable solution - by setting up a virtual\nnetwork of containers for individual services, and wrapping it behind a web\nproxy, it should remove a lot of the overhead of process and dependency\nmanagement.\n\nThis project also aims to create a collection of custom wrapper binaries around\nthe supported services, to maintain the interface of local development while\neverything runs virtualized and separated from localhost.\n\n\n## Overview\n\nThis repository is currently a WIP attempt to get a sane (to me?) Ethereum dev\nenvironment up and running inside docker-compose.\n\nDev tools include:\n - [truffle](https://github.com/ConsenSys/truffle) to build/deploy contracts\n - [testrpc](https://github.com/ethereumjs/testrpc) to run a \"dev\" blockchain\n - [parity](https://ethcore.io/parity.html) (against Ropsten) for live testing\n\n\n## Dependencies\n\n - Requires [Docker](https://www.docker.com/).\n   (tested version 1.13.0-rc2, build 1f9b3ef)\n - May require [Docker Compose](https://docs.docker.com/compose/install/)\n   also, depending on your Docker installation.\n\n\n## Getting Started\n\n\n1. Clone this repository somewhere to be your docker-eth-dev home directory (`$ETH`)\n   ```sh\n   git clone https://github.com/gnidan/docker-eth-dev.git \u003cdir\u003e\n   ```\n   This directory will contain the contents of this repository:\n    - containers configuration\n    - wrapper binaries\n    - `dapps` top-level directory\n        - example dapp (the `truffle init` result, reconfigured)\n    - this README\n\n1. Activate shell environment\n   ```sh\n   source \u003cdir\u003e/bin/activate.sh\n   ```\n   This aliases all the wrapper binaries so they're available for us in the\n   shell.\n\n1. Create Docker volume for Ropsten Parity\n   ```sh\n   docker volume create --name=parity-testnet-data\n   ```\n   This creates a persistent volume so that the Ropsten account information/\n   chain data does not get lost when the containers are stopped.\n\n1. Start Docker containers\n   ```sh\n   docker-compose up -d\n   ```\n   This runs nginx, testrpc, and parity-testnet inside containers. Port 80\n   will be opened on localhost for nginx's proxy.\n\n1. Add `parity-testnet.ethereum` to your /etc/hosts file, pointing locally or\n   at your docker-machine\n\n   This is so that nginx may recognize the resource you are trying to reach.\n\n1. Visit `http://parity-testnet.ethereum/` in your browser.\n\n1. Run `parity-testnet signer new-token` in your active env shell.\n\n   In case Parity Wallet needs to authenticate with the running parity-testnet\n   container.\n\n1. Note: In case anything stops working, I find that restarting docker-compose from\n   scratch seems to help:\n   ```sh\n   docker-compose down\n   docker-compose up -d\n   ```\n\n\n## What Else?\n\n- Dapps should live in separate directories in `$ETH/dapps` for `truffle` to\n  behave as expected\n\n- `truffle serve` configuration could use some love and might not work right.\n\n- This env works by setting alises - if necessary, you can do `\\truffle`, etc.\n\n- This opens port 80 locally. That's currently hardcoded in. I'm looking for\n  ways around this, or to make it easier to deal with.\n\n- I have no idea if configuring Parity behind an nginx proxy is wildly unsafe,\n  hence why it's only set up to do Ropsten right now.\n\n  At the very least, though, I will say that Parity tries very hard to prevent\n  you from configuring it this way.\n","funding_links":[],"categories":["Libraries"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnidan%2Fdocker-eth-dev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgnidan%2Fdocker-eth-dev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnidan%2Fdocker-eth-dev/lists"}