Set up Indico - nogalliance/sysadmin GitHub Wiki

Setting up Indico for a NOG

Indico can't be configured through the ISPConfig admin panel. This needs to be done using SSH. In the following examples replace <name> with the name of the NOG (for example ugnog). By using the same name consistently we make sysadmin work a lot easier.

When performing steps and editing configuration files replace all the <xyz> placeholders with the real setting. Change <secret> to a long string of random characters. Don't leave any of the <> placeholders!

# Log in to the server
ssh indico.nogalliance.org

# Create a database
sudo -u postgres psql
postgres=# CREATE USER <name> WITH PASSWORD 'secret';
postgres=# CREATE DATABASE <name> WITH OWNER <name>;
postgres=# \c <name>
<name>=# CREATE EXTENSION pg_trgm;
<name>=# CREATE EXTENSION unaccent;
<name>=# \q

# Create Indico settings
sudo -u indico -i

# Create the necessary directory structure
cp -av _tpl <name>
cd etc

# Find available redis database IDs
grep redis:// *.conf
# Look at the IDs, determine which is the highest, and use one higher than that for the new NOG

# Use _tpl.conf for Indico with its own user database
# Use _tpl_oauth.conf when linking Indico to the WordPress users
cp _tpl_oauth.conf <name>.conf
vi <name>.conf

# Create the database
export INDICO_CONFIG=~/etc/ugnog.conf
indico db prepare

# Stop being user indico
exit

# Set up the worker and webserver as root
sudo -i

# Enable the celery worker
systemctl enable indico@<name>.service
systemctl start indico@<name>.service

# Setting up the web service
cd /etc/uwsgi/apps-available/
cp _tpl.ini <name>.ini
vi <name>.ini
ln -s /etc/uwsgi/apps-available/<name>.ini /etc/uwsgi/apps-enabled/
service uwsgi restart

# Configure the webserver
cd /etc/nginx/sites-available/
cp _tpl.conf <name>.conf
vi <name>.conf
ln -s /etc/nginx/sites-available/<name>.conf /etc/nginx/sites-enabled/
service nginx restart

# Configure Let's Encrypt
certbot -d events.<domain>
# When asked choose "2: Redirect"

Indico has now been installed, but not yet configured. Please go to https://events.<domain>/bootstrap to finish the installation.

⚠️ **GitHub.com Fallback** ⚠️