This repository holds the Indico plugins used for the Canonical event management system deployment
Original installation guides can be found here: https://docs.getindico.io/en/stable/installation/development/#install-dev
Install dependencies:
apt install -y --install-recommends libxslt1-dev libxml2-dev libffi-dev libpcre3-dev \
libyaml-dev build-essential redis-server postgresql libpq-dev
apt install -y libjpeg-turbo8-dev zlib1g-dev
Create a directory to store Indico and its data in:
mkdir -p ~/dev/indico/data
Install pyenv (if you don't have it already):
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
exec "$SHELL"
Create a virtual environment for Indico to run in:
cd ~/dev/indico
pyenv local 3.9.9
python -m venv env
git clone https://github.com/indico/indico.git src
sudo apt-get install libsqlite3-dev
# reinstall Python via pyenv
Install postgres if you dont have it already:
sudo apt update
sudo apt install postgresql postgresql-contrib
Configure a new DB for Indico
sudo -u postgres createuser $USER --createdb
sudo -u postgres createdb indico_template -O $USER
sudo -u postgres psql indico_template -c "CREATE EXTENSION unaccent; CREATE EXTENSION pg_trgm;"
createdb indico -T indico_template
Install the virtualenv dependencies:
cd ~/dev/indico
source ./env/bin/activate
pip install -U pip setuptools wheel
cd src
pip install -e '.[dev]'
npm ci
Congigure Indico using the setup wizard, this creates an indico.conf file within the Indico project that holds custom settings:
indico setup wizard --dev
Initialize the DB:
indico db prepare
Build the locales:
indico i18n compile-catalog
indico i18n compile-catalog-react
Open two terminals, enter the Indico virtualenv, then navigate to /src:
cd ~/dev/indico
source ./env/bin/activate
cd src
In one terminal run the webpack watcher:
./bin/maintenance/build-assets.py indico --dev --watch
In the second terminal run the development server:
indico run -h <your-hostname> -q --enable-evalex
Now you should be ready to install the plugin.
Navigate to your Indico project and clone the theme repository:
cd ~/dev/indico
git clone [email protected]:canonical/canonical-indico-themes.git
Open indico.conf and add the following key-value pair to 'General settings' PLUGINS = {'themes_canonical'}
:
nano ~/dev/indico/src/indico/indico.conf
Enter the virtualenv and pip install the plugin:
source ./env/bin/activate
pip install -e ~/path/to/directory/canonical-indico-themes/