elekto is a flask based web application for conducting online elections. It is built specifically for opensource organisations to help run them steering and community elections.
Elekto was inspired by the long-running CIVS project and built to conduct kubernetes steering and community elections. The project was created as the part of The Linux Foundation's Internship and now it's hosted and maintained by Cloud Native Computing Foundation.
Elekto is currently used by Kubernetes, Knative and more.
Features
Elekto was designed to support the following:
- 100% GitOps workflow for configuration and election administration
- 100% Oauth-driven workflow for voters (no emails)
- Preference election voting (starting with condorcet)
- Multiple elections for the same organization
- Responsive web design
- Secret ballot voting
Getting Started
See our documentation on elekto.io.
Create an .env
file from .env.example
by running cp .env.example .env
and update the necessary entires (see here for more information on env parameters).
If you want to run elekto right away there are two options:
You have a working conda environment.
Create an elekto environment
conda env create -f environment.yml
Run the application using
python console run
You have a working Docker environment.
You can run this application inside a Docker container. This approach doesn't require you to install any dependencies other than Docker.
Build the docker image
docker build -f dev.Dockerfile -t elekto:dev .
Run the built image
docker run -d -p 5000:5000 --name="eleko" elekto:dev
Open your web browser and type http://localhost:5000 in your navigation bar, This opens a local instance of the elekto application's login page.
For the full story, head over to the developer's documentation.
Getting Help
The elekto project is maintained by Manish Sahani and Josh Berkus, Reach out to us one way or another.
Contributing
We're excited that you're interested in contributing to the elekto software! Check out the resources below to get started.
Please refer to CONTRIBUTING for more information on how to best contributed to contribute to elekto.
Support
Your help and feedback is always welcome!
If you find an issue let us know, either by clicking the Create Issue on any of the website pages, or by directly opening an issue here in the repo.