{"id":28889953,"url":"https://github.com/joincolony/colonydapp","last_synced_at":"2025-10-25T12:20:42.126Z","repository":{"id":37470863,"uuid":"110058484","full_name":"JoinColony/colonyDapp","owner":"JoinColony","description":"Colony dApp client","archived":false,"fork":false,"pushed_at":"2024-05-22T07:25:39.000Z","size":69072,"stargazers_count":48,"open_issues_count":170,"forks_count":16,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-06-21T00:43:37.438Z","etag":null,"topics":["colony","dapp","ethereum","web3"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/JoinColony.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-11-09T02:43:53.000Z","updated_at":"2025-04-15T16:26:52.000Z","dependencies_parsed_at":"2024-01-04T17:48:22.121Z","dependency_job_id":"1ab7ac41-95e0-471b-baab-9443cf3cf20d","html_url":"https://github.com/JoinColony/colonyDapp","commit_stats":null,"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/JoinColony/colonyDapp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoinColony%2FcolonyDapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoinColony%2FcolonyDapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoinColony%2FcolonyDapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoinColony%2FcolonyDapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JoinColony","download_url":"https://codeload.github.com/JoinColony/colonyDapp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JoinColony%2FcolonyDapp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266291725,"owners_count":23906321,"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":["colony","dapp","ethereum","web3"],"created_at":"2025-06-21T00:31:38.407Z","updated_at":"2025-10-25T12:20:37.088Z","avatar_url":"https://github.com/JoinColony.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Colony Dapp\n\n## Prerequisites\n* `node` `v14.18.x` (Best use [nvm](https://github.com/nvm-sh/nvm))\n* `npm` `v8.1.4`\n* `docker` (See [install instructions](https://docs.docker.com/engine/install/))\n* `docker-compose` (See [install instructions](https://docs.docker.com/compose/install/))\n* `jq` (See [install instructions](https://github.com/stedolan/jq/wiki/Installation))\n\n## Installation\n\nFirst, clone this repository :)\n\n### Install packages\n\nPick the right node version (as seen in `.nvmrc`):\n\n```bash\nnvm use\n```\n\nInstall all dependencies:\n\n```bash\nnpm install\n```\n\n### Provision dependent libraries\n\nThis project depends on external libraries, so after cloning, they need to be provisioned:\n```bash\nnpm run provision\n```\n\nUnder the hood, this will initialize the `submodule`s, install their packages, and build them.\n\n### Define environment variables\n\nThe provision step will set up a `.env` file for you. It should work right out of the bat. If needed, customize the variables in the `.env` file to your desires.\n\n## Running the _light_ dev environment\n\n```bash\nnpm run dev\n```\n\nThis will run a _partial `dev` stack_ which starts `ganache`, deploys the contracts, starts a `mongodb` instance as well as `colonyServer` and `webpack`.\n\n**The webpack dev server will be available under `http://localhost:9090`.**\n\nYou can run some of these individually using the following commands:\n\n```\nnpm run ganache\nnpm run contracts:deploy\nnpm run webpack\n```\n\nWhen run individually, some processes might need their own terminal window.\n\nYou can also run the whole stack and skip some commands, e.g.:\n\n```bash\nnpm run dev -- --skip-webpack\n```\n\n**NOTE:** You need to pass in the extra `--` as the `--skip-\u003cproces\u003e` argument will get passed to an npm script, which in turn, will get passed along to a node script. Also a thing to keep in mind that if using `yarn`, it is not necessary to specify the extra `--` for the arguments to get passed through.\n\nThen run `webpack` individually, if you like:\n\n```bash\nnpm run webpack\n```\n\nLike this you could restart the `webpack` process in cases of hiccups without restarting the whole stack (that happens!)\n\n## Running the _heavy_ dev environment\n\nThis version of the `dev` stack includes all available services that we need for the dApp's development. Besides the ones started by the _light_ dev stack, this mode also adds a `graph-node`, `postgres` instance, `ipfs` node as well as deploying Colony's dev subgraph.\n\n```bash\nnpm run dev:heavy\n```\n\n**This is the _recommended_ mode for day-to-day development.**\n\nAs with the _light_ stack, you can pass along a `--skip-\u003cproces\u003e` argument to skip certain processes from spinning up. This is most useful for debugging.\n\n**Permissions NOTE:** When starting the `graph-node` process we need to perform some folders cleanup in order to ensure that the node is synced up with the current instance of the chain _(`ganache` in this instance)_.\n\nThis requires **ROOT** permissions since the folder we're removing was generated by `docker-compose` and is owned by `root:root`.\n\nYou will get a warning in the `dev` stack orchestration feed when this happens:\n\n![Mock Oracle Server Started](.assets/dev-stack-heavy-root-permissions.png)\n\n**Performance NOTE:** The _heavy_ stack starts up a number of processes which take a toll on your machine. Just be aware of the fact that it may take a while for your stack to start up, as well as the process pausing during orchestration startup to ask you for root access _(see above)_.\n\nIt is advisable to start the heavy stack without `webpack` and start that in a separate terminal. This is because if something happens with your frontend which needs restart, you won't have to sit through a stack startup again.\n\nWhen benchmarking this, the full _heavy_ stack startup time took somewhere around `75` seconds, but this was running it on a pretty beefy machine. A standard development laptop might take more time before it's all ready to go.\n\n![Mock Oracle Server Started](.assets/dev-stack-heavy-startup-time.png)\n\n### Verbose logging\n\nSet the environment variable `VERBOSE` to `true` to enable verbose mode logging in the browser console.\n\nIf you're brave enough to set the `DEBUG` environment variable, you'll get a lot of logging from modules we're using (e.g. IPFS). To disable this, you'll need to unset the environment variable and then run this in the browser console: `localStorage.setItem('debug', undefined);`.\n\n\n## Additional services\n\n### Reputation\n\nIn order for reputation to function within your dev environment, you will need to toggle it on first.\n\nAccess the following URL to toggle the reputation monitor auto-mining on or off: `http://127.0.01:3001/reputation/monitor/toggle`\n\nYou can also view the status of the reputation monitor using the following URL: `http://127.0.01:3001/reputation/monitor/status`\n\n\n## Building the bundle locally\n\nIf you want to build the bundle locally for inspection, you can do it via:\n```bash\nnpm run webpack:build\n````\n\n_Note: It's a straight-up dev build. Just bundled, no code optimizations whatsoever._\n\n## Linting\n\nLinting your code via `eslint` can be done as such:\n```bash\nnpm run lint\n```\n\nTo lint the project's style sheets you run:\n```bash\nnpm run stylelint\n```\n\n## Type checking\n\nType checking using TypeScript can be accessed using this npm script:\n```bash\nnpm run typecheck\n\n# Or, with file watching (or any other `tsc optional arguments`)\nnpm run typecheck --watch\n```\n\n## Testing\n\nTo run unit tests you have the following npm script:\n\n```bash\nnpm run test\n```\n\nTwemoji graphics made by Twitter and other contributors, licensed under CC-BY 4.0: https://creativecommons.org/licenses/by/4.0/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoincolony%2Fcolonydapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoincolony%2Fcolonydapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoincolony%2Fcolonydapp/lists"}