{"id":13815914,"url":"https://github.com/P2PModels/wiki","last_synced_at":"2025-05-15T12:31:08.408Z","repository":{"id":41796109,"uuid":"164356351","full_name":"P2PModels/wiki","owner":"P2PModels","description":" An Unstoppable Wiki for the Right to Access Knowledge","archived":false,"fork":false,"pushed_at":"2023-01-04T21:42:32.000Z","size":2622,"stargazers_count":30,"open_issues_count":18,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-19T12:49:28.664Z","etag":null,"topics":["aragon-applications","dao","ipfs"],"latest_commit_sha":null,"homepage":"https://p2pmodels.eu","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/P2PModels.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-07T00:01:42.000Z","updated_at":"2024-05-30T10:42:49.000Z","dependencies_parsed_at":"2023-02-02T21:01:31.166Z","dependency_job_id":null,"html_url":"https://github.com/P2PModels/wiki","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/P2PModels%2Fwiki","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/P2PModels%2Fwiki/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/P2PModels%2Fwiki/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/P2PModels%2Fwiki/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/P2PModels","download_url":"https://codeload.github.com/P2PModels/wiki/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254340968,"owners_count":22054954,"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":["aragon-applications","dao","ipfs"],"created_at":"2024-08-04T05:00:22.183Z","updated_at":"2025-05-15T12:31:07.527Z","avatar_url":"https://github.com/P2PModels.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","Tutorials"],"sub_categories":[],"readme":"# P2P Models Wiki dApp\n\nAn Unstoppable Wiki for the Right to Access Knowledge.\n\n\u003e There is more than one way to burn a book. And the world is full of people running about with lit matches. – Ray Bradbury, Fahrenheit 451\n\n\u003e The Internet treats censorship as a malfunction and routes around it. – John Perry Barlow\n\nThis Wiki dApp uses [Aragon](https://aragon.org) and [IPFS](https://ipfs.io) in order to enable a distributed editable and permissioned wiki. Wikis like that are imperative in a world where [Wikipedia is censored](https://blog.ipfs.io/24-uncensorable-wikipedia/) in some states.\n\n**Important:** You need to be running an IPFS node on your computer in order to see and edit wiki pages. [Install IPFS](https://dist.ipfs.io/#go-ipfs) and initialize its daemon with `ipfs daemon`. It is needed even when visiting DAOs from aragonpm.org.\n\n## This is how it looks like\n\n### Edition\n\nPages can be edited using markdown:\n\n![Edit a page](https://p2pmodels.eu/wp-content/uploads/edit.gif)\n\n### Many Pages\n\nIn the sidebar there are the wiki pages, and more can be created:\n\n![Create a page](https://p2pmodels.eu/wp-content/uploads/create.gif)\n\n### Page protection\n\nA page can be protected, so only people or apps with the right permissions can edit it:\n\n![Protect a page](https://p2pmodels.eu/wp-content/uploads/protect.gif)\n\n## Usage\n\nYou can start the wiki on a local Ethereum devchain as follows:\n\n```sh\ngit clone https://github.com/p2pmodels/wiki\ncd wiki\nnpm install\nnpm start\n```\n\n## Installing the Wiki dApp on a Rinkeby DAO\n\nThis Wiki Aragon app is published in the AragonPM package manager on Rinkeby, so it can be\ninstalled to any Aragon DAO on that network. In order to deploy this app on an existing DAO,\nyou can do the following:\n\n```sh\n$ npm install -g @aragon/cli --unsafe-perms=true\n$ dao install \u003cdao-name\u003e.aragonid.eth wiki.open.aragonpm.eth --environment aragon:rinkeby\n# -\u003e Depending on your DAO permissions, a voting may have been issued. The voting must pass in order to continue.\n$ dao apps --all \u003cdao-name\u003e.aragonid.eth --environment aragon:rinkeby\n# -\u003e You should see a list of apps, and the \u003cwiki-addr\u003e listed under permissionless apps.\n$ dao acl create \u003cdao-name\u003e.aragonid.eth \u003cwiki-addr\u003e EDIT_ROLE \u003cyour-addr\u003e \u003cyour-addr\u003e --environment aragon:rinkeby\n$ dao acl create \u003cdao-name\u003e.aragonid.eth \u003cwiki-addr\u003e CREATE_ROLE \u003cyour-addr\u003e \u003cyour-addr\u003e --environment aragon:rinkeby\n$ dao acl create \u003cdao-name\u003e.aragonid.eth \u003cwiki-addr\u003e PROTECT_ROLE \u003cyour-addr\u003e \u003cyour-addr\u003e --environment aragon:rinkeby\n# -\u003e You may vote all this permission changes\n```\n\n### Using HTTP for development\n\nRunning your app using HTTP will allow for a faster development process of your app's front-end, as it can be hot-reloaded without the need to execute `aragon run` every time a change is made.\n\n- First start your app's development server running `npm run start:app`, and keep that process running. By default it will rebuild the app and reload the server when changes to the source are made.\n\n- After that, you can run `npm run start:http` or `npm run start:http:template` which will compile your app's contracts, publish the app locally and create a DAO. You will need to stop it and run it again after making changes to your smart contracts.\n\nChanges to the app's background script (`app/src/script.js`) cannot be hot-reloaded, after making changes to the script, you will need to either restart the development server (`npm run start:app`) or rebuild the script with `cd app; npm run build:script`.\n\n### npm Scripts\n\n- **start** or **start:ipfs**: Runs your app inside a DAO served from IPFS\n- **start:http**: Runs your app inside a DAO served with HTTP (hot reloading)\n- **start:ipfs:template**: Creates a DAO with the [Template](https://github.com/p2pmodels/wiki/blob/master/contracts/Template.sol) and serves the app from IPFS\n- **start:http:template**: Creates a DAO with the [Template](https://github.com/p2pmodels/wiki/blob/master/contracts/Template.sol) and serves the app with HTTP (hot reloading)\n- **prepare**: Installs dependencies of the front-end\n- **start:app**: Starts a development server for your app\n- **compile**: Compiles the smart contracts\n- **build**: Builds the front-end and background script\n- **test**: Runs tests for the contracts\n- **publish:patch**: Releases a patch version to aragonPM (only frontend/content changes allowed)\n- **publish:minor**: Releases a minor version to aragonPM (only frontend/content changes allowed)\n- **publish:major**: Releases a major version to aragonPM (frontend **and** contract changes)\n- **versions**: Checks the currently installed versions of the app\n- **lint**: Checks the app and the contracts for linting errors\n- **lint:fix**: Fixes the lint errors that can be resolved automatically\n- **coverage**: Runs the tests for the contracts and creates a report\n\n## Licensing\n\nThe entire app is licensed as `AGPL-3.0-or-later`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FP2PModels%2Fwiki","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FP2PModels%2Fwiki","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FP2PModels%2Fwiki/lists"}