Skip to content
Dr Kim Foale edited this page May 17, 2021 · 5 revisions

Setting up an imok instance

Getting this up and running in the real world requires at least one person comfortable with setting up a server, and a few people to actually run the service on the ground. Be prepared for it to take an hour or two to get a server up and running and a few meetings to get people using it.

Installation

Setting up imok currently requires a little bit of technical know-how. You'll need to be comfortable setting up a VPS, running terminal commands, and deploying web applications. To support SMS you'll also need to register for a Twilio account and set up an API key.

By default imok uses Telegram as it is secure and free to send messages on. For a real world installation you will want to set up SMS using Twilio. However, this can get expensive: SMS messages cost about $0.04 at the time of writing. With a few dozen users using it several times per day this can quickly add up. If your intended users are able to access this entirely through Telegram the cost is nearly zero.

To install imok, see Setting up an imok server. You might want to make a copy of Important Settings to keep notes in while you do it.

We use Dokku to make deployment easier and consistant across web hosts. We provide two sets of instructions for this:

Running the service

Running a service like imok for a vulnerable group is not a task to be taken lightly. It can be argued that running a bad service is worse than running no service: it can potentially give people false hope, and undermine the work of your group. Imok has been primarily designed to help improve the work of existing groups. If you do not currently operate this kind of service then it's important to have a think about what kind of service you can promise, what the protocol for responding to alerts is, and who picks up the pieces when things go wrong.

We've provided some hints and tips in Deploying imok in the real world, and welcome improvements to this guide.

Contributing

We welcome contributors to help with this project.

Software development

Imok is written in Python / Django.

See Setting up a local development environment to get started.

Translations

Imok allows language selection for users. Currently available translations are in the locale directory. We welcome translation into other languages.

Please note server commands in caps ('YES', 'IN', 'OUT' etc.) are not currently translatable. Please leave these in English in your translations.

Sign up on POEditor to submit a translation.

Translations will be periodically reviewed and added to the project. If you'd like to add translations yourself see the wiki page on Translations.