100eyes
is the first open source solution for dialog-driven journalism in Germany. In the editorial office, 100eyes
enables newsrooms to reach as many people as possible where they would most like to be reached - via Telegram messenger or e-mail.
100eyes
is a lean tool that improves journalistic routine: editors can ask questions and get answers from more people faster. The user interface offers two core functions to journalists:
-
Maintain a community
-
Start research: With just one click, journalists can send questions to their community, evaluate all answers collectively and store new information from the answers of their contributors in a structured way.
Behind the 100eyes
project are Astrid Csuraji and Dr. Jakob Vicari, who are driving journalistic innovation. If you would like to learn more or are interested in using 100eyes
for a journalistic project, please contact us at https://tactile.news/.
For development purposes, you can set up 100eyes
using Docker. To perform the following steps, Docker (including Docker Compose) must be installed on your computer. You can find installation instructions for this in the Docker Documentation. You will also need git to clone this repository.
-
Clone this repository. You can either use a git client with a graphical interface or use git directly from the command line:
$ git clone https://github.com/tactilenews/100eyes.git
-
Change to the
100eyes
directory and build the Docker containers using Docker Compose:$ cd ~/100eyes $ docker-compose build
-
100eyes
is based on some services, e.g. for sending and receiving e-mails and Telegram messages. You can set sensitive information such as API keys or passwords using environment variables. To do this, it is best to copy the template provided for this purpose:$ cp .env.template .env
Edit the new
.env
file and add API keys and other secrets there. This file.env
is ignored bygit
. -
You can start all containers with a single command.
100eyes
can then be viewed in your browser at http://localhost:3000.$ docker-compose up
-
One user has been created to use in development, since registration is disabled. You can create your own user in the
rails console
if you want, or you can run:$ docker-compose exec app rails db:seed
With this command you can speed up the compilation of the assets for development purposes (e.g. for many changes to CSS files):
$ docker-compose exec app bin/webpack-dev-server
To test out webhooks for Postmark, Telegram or Threema you could use ngrok or a similar tool like localtunnel. We recommend localtunnel
as it is free and open-source software.
We're using our own fork of the threema
gem. If you want to make changes to the gem locally, clone the repository and configure bundler like this:
# in the folder where you cloned `threema` repository
bundle config local.threema .
See this blog post for more information.
100eyes
is a relatively simple Ruby on Rails (RoR) application and consists of the application server and a background worker to receive incoming Telegram messages.
- Ruby 3.0 (and the bundler gem)
- PostgreSQL (Version 12 )
- nginx or another reverse proxy
The Medieninnovationszentrum Babelsberg supported the development of additional modules.
100eyes
is developed by tactile.news and is licensed under the MIT license.
The development of 100eyes
was funded by the Prototype Fund from the Bundesministerium für Bildung und Forschung.