Polla is an online polling aiming to be a simple self-hosted alternative to strawpoll.com.
- Set polls as open or closed
- Set polls as public or private
- IP Address or Browser session vote duplication detection
- Allow anonymous or authenticated poll creation and responses
- User profiles
You will need to set up Redis and PostgreSQL. For ease of deployment, I recommend using Docker to deploy.
Clone the project
git clone https://github.com/jeffvli/Polla.gitGo to the project directory. Add .env files as necessary from the environment variables.
cd ./Polla/clientInstall dependencies
yarn installStart the server
yarn startGo to the project directory
cd ./Polla/serverInstall dependencies
yarn installStart the server
yarn devYou can run this project with Docker Compose.
Go to the root project directory
cd ./PollaBuild the images
docker compose --env-file ./.env buildStart the project
docker compose --env-file ./.env upGo to the root project directory
cd ./PollaBuild the images
docker compose --env-file ./.env.prod --file ./docker-compose-prod.yml buildStart the project
docker compose --env-file ./.env.prod --file ./docker-compose-prod.yml upTo run this project, you will need to add the following environment variables to your .env file
REACT_APP_BASE_URL http://localhost:3000
REACT_APP_API_BASE_URL http://localhost:5000
REACT_APP_GITHUB_URL https://github.com/jeffvli/Polla -- deprecated
DATABASE_URL postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@http://localhost:5432/${POSTGRES_DB}?schema=public
APP_BASE_URL http://localhost:3000
JWT_SECRET InsertSecret!
JWT_SECRET_EXPIRATION 5m
JWT_REFRESH_SECRET InsertSecret!
JWT_REFRESH_SECRET_EXPIRATION 30d
REDIS_HOST http://localhost
REDIS_PORT 6379
If using docker, reference the env-example file to create your .env file