This repo is a fork for Pol.is project made by the Italian G0V team for Copenicani association. pol.is an AI powered sentiment gathering platform. More organic than surveys, less effort than focus groups.
The objectives of this effort is to improve the polis code in order to:
- allowing safe provision of the polis service in a controlled European datacenter;
- making it fully GDPR compliant according Copernicani terms of service and privacy policy;
- removing (or making optional) any dependency to OTT services (FaceBook, Google, etc) avoiding any not explicit user profiling by external entities;
- enabling user authentication with an LDAP service;
- using a Zero Knowledge Protocol to allow safe anonymous conversation (thanks to Amlet);
- using SSI to allow safe conversation autenticating with an official eIDAS2 compliant digital identity (thanks to Amlet);
- make clear the responsibility of service provider and software developers;
- improve documentation
The g0v-it team aims to give back all changes to code made in this project in the main Polis repository.
The installation instructions below are currently focused on setting up a development environment. These instructions should NOT be considered sufficient for production deployment without additional setup. We do NOT make guarantees of easy setup or management, push-button deployment, security, technical support, future migration paths, data integrity, etc.
Having said this, some of the core pieces of infrastructure described below are potentially useful in a production context, if used correctly.
In particular, each subdirectory of the project has its own Dockerfile
which could potentially be used as part of a deploy strategy.
The docker-compose.yml
is specifically focused on development environment flow.
- See also: Deployment: About SSL/HTTPS
If you'd like to set up your own deployment of Polis, we encourage your to reach out to us for support. We look forward to working together 🎉
If you're interested in contributing to the codebase, please visit our issue tracker ✅. Please also see:
If you have a small machine or little hard drive space, you may want to consider running the below with Docker-Machine (DigitalOcean with 2GB memory should be sufficient)
Before running docker-compose up for the first time:
After cloning, navigate via command line to the root of this repository.
Next, either do a pull (faster):
docker-compose pull
If you get a permission error, try running sudo docker-compose pull
, and sudo will be necessary for all other commands as well. To avoid having to run sudo
in the future, you can follow setup instruction here: https://docs.docker.com/engine/install/linux-postinstall/
or do a build (to utilize recent or local changes):
docker-compose up --build
once you've either pulled or built, you can run the following when you want to run the project:
docker-compose up
To force a full re-build with no cache from previous builds:
docker-compose build --parallel --no-cache
You can end the process using Ctrl+C
If you would like to run docker compose as a background process, run the up
commands with the --detach
flag, e.g.,:
docker-compose up --detach
And to stop:
docker-compose down
docker-machine ip
>>> 123.45.67.89
Visit your instance at: http://123.45.67.89.xip.io/
Or visit a native docker instance at http://localhost:80/
Sign up at /createuser
path. You'll be logged in right away; no email validation required!
What features still need work?
Generated reports- Data export
polis-issues#137
Note: Due to past file re-organizations, you may find the following git configuration helpful for looking at history:
git config --local include.path ../.gitconfig
We use Cypress for automated, end-to-end browser testing! (See badge above.)
Please see e2e/README.md
.
Please see docs/deployment.md