|Fabs cb6a342c2e Merge migrations with master||4 years ago|
|coin||4 years ago|
|contrib||4 years ago|
|.gitignore||4 years ago|
|DEPLOYMENT.md||4 years ago|
|README.md||4 years ago|
|manage.py||5 years ago|
|requirements.txt||4 years ago|
Coin is Illyse's Information System, designed to manage both members
and Internet accesses, such as through DSL, VPN, wireless…
It is written in Django, and makes an heavy use of LDAP (for authentication, and to store configuration information).
It features a generic configuration interface, which allows to implement custom backends for different technologies. Currently implemented is a LDAP-based backend for OpenVPN.
Coin currently only works with python2, because
python-ldap is (as of
2013) not compatible with python3.
The project page (issue, wiki, etc) is here:
A mirror of the code is available at:
Get yourself a virtualenv. On Debian, install
Archlinux, the package is called
python2-virtualenv, and you must
virtualenv command with
virtualenv2 in the following.
To create the virtualenv (the first time):
To activate the virtualenv (you need to do this each time you work on the project):
Install dependencies. On Debian, you will probably need the
sudo apt-get install python-dev python-pip libldap2-dev libpq-dev libsasl2-dev
pip install -r requirements.txt
You should now be able to run
python manage.py (within the
virtualenv, obviously) without error.
coin/settings_local.py file is ignored by Git: feel free to override any
setting by writing into that file. For example, to override the
echo '# -*- coding: utf-8 -*-' > coin/settings_local.py echo 'DEBUG = TEMPLATE_DEBUG = True' >> coin/settings_local.py
At this point, you should setup your database. Recommended is postgreSQL, but you might be able to use SQLite. For more information, see https://www.illyse.org/projects/ils-si/wiki/Mise_en_place_environnement_de_dev
If you don't want to use LDAP, just set in your
LDAP_ACTIVATE = False
The first time, you need to create the database, create a superuser, and import some base data to play with:
python manage.py migrate python manage.py createsuperuser python manage.py loaddata offers ip_pool
Note that the superuser will be inserted into the LDAP backend exactly in the same way as all other members, so you should use a real account (not just admin/admin).
Then, at each code update, you only need to apply migrations:
python manage.py migrate
At this point, Django should run correctly:
python manage.py runserver
You should first setup the
sites application, in the admin. The domain name
configured there is used for outgoing emails.
The main place to customize Coin for your ISP is the IspDatabase application, in the admin. Information entered in this application has two purposes:
1) generate a JSON file usable by http://db.ffdn.org/
2) customize the user interface (postal address, bank account, ISP name & logo...)
Some bits of configuration are done in
settings.py: LDAP branches, RSS feeds
to display on the home page, and so on.
For the rest of the setup (database, LDAP), see
For real production deployment, see file