Skip to content
This repository was archived by the owner on Feb 22, 2026. It is now read-only.

CivicTechTO/polis

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7,975 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Polis

⚠️ We are migrating to New Implementation -> Chorus and archiving this repo!

Polis is an AI-powered sentiment gathering platform. More organic than surveys and less effort than focus groups.

Docker Image Builds E2E Tests

What is Polis?

Polis is a platform for gathering, analyzing, and understanding sentiment at scale. It uses AI to help facilitate large-scale, open-ended discussions.

Quick Links 🪁 🎈

Getting Started (For Developers & Deployers)

This section is for those who want to run their own instance of the CivicTech fork of Polis or contribute to development.

Polis comes with Docker infrastructure for running a complete system, whether for a production deployment or a development environment.

Quick Start (Development)

Open terminal and enter:

cp example.env .env
make start

That should run docker compose with the development overlay (see below) and default configuration values.

Visit http://localhost:80/createuser 🚀

Detailed Instructions

Running Polis

Polis uses Docker and Docker Compose for easy setup.

Prerequisites

Basic Commands

  • Start (Development): make start (Equivalent to docker compose --profile postgres up)
  • Start (Rebuild): make start-rebuild (Rebuilds Docker images)
  • Start (Production - see docs/deployment.md for complete instructions): make PROD start (Requires prod.env)
  • Stop: make stop (Equivalent to docker compose --profile postgres down)
  • Help: make help (Lists available commands)
  • View Configuration: docker compose --profile postgres convert
  • Full Rebuild (Use with caution - wipes database): make start-FULL-REBUILD

Using a local or remote (non-docker) database

See Using a local or remote (non-docker) database below

💻 Development Mode

For development, use the following command to enable live code reloading, debugging, and other conveniences:

docker compose -f docker-compose.yml -f docker-compose.dev.yml --profile postgres up --build

This enables:

  • Live code reloading and static type checking of the server code
  • A nREPL connection port open for connecting to the running math process
  • Ports open for connecting directly to the database container

About docker compose overlay file:

  • docker-compose.dev.yml in above command is an overlay file, which layers the developer conveniences describe above into the base system, as described in the docker-compose.yml file.
  • You can create your own docker-compose.x.yml file as an overlay and add or modify any values you need to differ from the defaults found in the docker-compose.yml file and pass it as the second argument to the docker compose -f command above.
  • You can specify these -f docker-compose.yml -f docker-compose.dev.yml arguments for any docker command which you need to take advantage of these features (not just docker compose --profile postgres up).

Using a local or remote (non-docker) database

Omit the --profile postgres flag to use a local or remote database. You will need to set the DATABASE_URL environment variable in your .env file to point to your database.

When using make commands, setting POSTGRES_DOCKER to true or false will determine whether to automatically include --profile postgres when it calls out to docker compose.

Testing

  • End-to-End (E2E) Tests: See e2e/README.md for instructions on running automated browser tests.

Troubleshooting

  • Docker Issues: Try restarting Docker, killing all containers, or using make start-FULL-REBUILD (WARNING: This wipes the database).
  • NPM Issues: See this issue for potential solutions.
  • Apple Silicon (M1/M2) Issues: You may need to use a Rosetta terminal for some dependencies.

License

AGPLv3 with additional permission under section 7

About

🌌 Open Source AI for large scale open ended feedback

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Languages

  • JavaScript 47.1%
  • TypeScript 27.2%
  • Clojure 13.3%
  • SCSS 4.8%
  • Handlebars 4.3%
  • PLpgSQL 1.6%
  • Other 1.7%