Is an implementation of the Evocracy concept: https://openevocracy.org/
See a running demo instance at: https://demo.openevocracy.org/
Evocracy is a concept for organizing democratic decisions and to this end uses modern technology. The goal is to enable high-quality decisions, decentralize decision processes and guarantee as much anonymity and safety as possible. The central aspect of the concept are topics. These define particular issues that shall be decided on.
Discussions are outsourced to small groups and captured in group-specific documents. An elaborated board and a chatroom support the document-writing process. Due to the small group size, every idea has the chance to be considered. Based on their topic-specific knowledge and their ability to integrate ideas, members are elected as representatives of their groups for higher stages where they once more form small groups together with other elected representatives. The number of participants and groups reduce from stage to stage until only one document is left. The process yields the selection of ideas that have proven to be reasonable and capable of consensus throughout many groups. Through this self-organizing process, good ideas are selected in an evolutionary sense.
In the future, location and authenticity of a user will be verified in a decentralized manner to prevent abuse. Yet identification of users shall not be possible. Furthermore, every topic will be linked to one of many possible target groups, which can dynamically evolve from relations between the locations of the users and thereby can be independent of existing structures (like states, cities, etc.).
Evocracy is explicitly free of authorities; every user has the same rights. Everyone has the right to propose topics, and everyone has the possibility to participate anew in each new topic.
You should have a server with ssh access and root permissions and you should know how to use basic shell commands in linux. Your system needs the following requirements:
- docker: https://docs.docker.com/install/
- docker-compose: https://docs.docker.com/compose/install/
Make sure to have nginx webserver configured properly to avoid socket connection interruptions.
Get the code with one of the following two options:
- Download the latest release or
- Clone the repository with
git clone https://github.com/openevocracy/openevocracy.git
and switch to the latest stable branch withgit checkout v0.3.3
Inside the repository copy the files
shared/config.base.default.js
asshared/config.base.js
shared/config.env.default.js
asshared/config.env.prod.js
Customize the files shared/config.base.js
and shared/config.env.prod.js
according to your needs.
Change BASE_URL
value in shared/config.base.js
to the URL where the instance will be reachable.
Change dir to project folder. Run docker-compose up
to start OpenEvocracy in foreground mode or run docker-compose up -d
to start OpenEvocracy in background mode.
The default port is 8080
. Start OpenEvocracy e.g. with PORT=80 docker-compose up -d
(where 80
is your port of choice).
If you want to stop the OpenEvocracy instance, change dir to project folder and execute docker-compose down
.
First stop the OpenEvocracy instance.
docker-compose down
Fetch new files and checkout the branch with git.
git fetch
git checkout v0.3
Now pull the updated image, start the instance again. The database will not be touched.
docker pull openevocracy/openevocracy:v0.3
docker-compose up -d
When pulling the latest docker image, take great caution to specify a compatible version for the update.