Manual

NOTE: as of June 2011 the new manual is work in progress, the old Manual (version 0.1-0.3 can be found here: OldManual )

Introduction

About this Manual

this manual refers to all versions from 0.0.4 and above.

What interkomm is supposed to do

How does it work

Current shortcomings

interkomm is under development and while it does some stuff already, there are many incomplete functions.

currently known issues are ( but there are probably more ):

  • if you rename or move files in the filesystem, they will currently get a new ID
    (and potentially loose all metadata connected to them)
  • stop and start procedure is buggy when one of the daemons has crashed
  • password, account and project management is currently limited to the command line tool
  • issues with database locks might still occur when heavy concurrency is used
  • repairing a project is pre-alpha and only supported via the command line tool

Installation

Requirements

Right now, the refernce platform for interkomm is Debian/GNU Linux stable ( squeeze ).

Notes on using the development version

Please note that interkomm is still under heavy development and versions in the svn can be broken or potentially do some harm to your previous installation. please handle it with care.

Installing from debian repository


Step 1: getting interkomm and ffmpeg:
--------------------------------------
add the plentyfact and the debian multimedia repositories to your /etc/apt/sources.list

deb http://packages.plentyfact.org/debian/ experimental/
deb http://www.debian-multimedia.org squeeze main

# apt-get update
# apt-get install interkomm ffmpeg

Step 2: set up the UI (width apache2)
--------------------------------------

an example apache2 vhost can be found at:

/usr/share/doc/interkomm/example.vhost

cp the file to your /etc/apache/sites-available/ directory
and adjust settings if needed ( such as IP and/or server name )

run the following to make sure all necessary modules are available

# a2enmod fcgid
# a2enmod rewrite
# a2enmod auth_digest
# a2enmod authn_dbd

check if everything is ok with

# apache2ctl -t

after this restart apache

# apache2ctl restart

Step 3: dev configuration
--------------------------------------

run as root

# ikm --dev-setup

you will be asked to enter a name for a first project and your global admin password

now run:

# /etc/init.d/interkomm start

this might take 2 or 3 seconds to start, after that, the following processes
should be running:

ikmd , ikmeventd, ikm-worker (twice) , inotifywait

now open the UI in your browser and login with "admin" and the password you have set.

Installing from the subversion repository

TODO.

Where is what in the filesystem

/usr/sbin/ikm                    main command line utility
/usr/sbin/ikmd                   the tcpd daemon
/usr/sbin/ikmeventd              the event daemon
/usr/sbin/ikm-worker             the spool daemon

/etc/interkomm/                  global config files
               interkomm.yml     main configuration file

/usr/share/lua/5.1/ikm.lua       the library loader
                  /ikm/*.lua     lua modules for interkomm

/var/lib/interkomm/
                  /db/                                     global database files ( scheduler.db, user.db )
                  /projects/<projectname>/db/              project related db
                                         /share/work/
                                               /cuts/
                                               /production/
                                               /ignore/
                  /app/             files for the UI
                  /public/         root directory for the apache vhost

/usr/share/doc/interkomm/               some helpful files (e.g. the apache vhost example )

/usr/share/man8/                        ikm manpage (unfinished)

Using the command line interface

The command line utility for interkomm is called "ikm" and is installed in /usr/sbin by default.

# ikm --help
  interkomm 0.4.6
  usage:
    basic commands:
    --create-project <project>        create a new project
    --purge-project <project>         completely purge a project (WARNING: removes all files, too!)
    --create-user <username> <passwd> create a useraccount with password <passwd>
    --remove-user <username>          remove a user account
    --change-password <username> <passwd> change password for a user account
    --lastlog                         shows the latest log entries
    --list-projects                   lists all projects found in the filesystem   

    extended commands
    --project -p <project>            specify the project to work on
                 --action -a <action>
                 available actions:
                   adduser -u <username>   add a user to the project
                   deluser -u <username>   remove a user from the project
                   members                 list all members of a project
                   generate-overview       (re-)generates the preview infos/pages ( currently broken )
                   analyze                  compares the filesystem for any discrepency between database and filesystem
                   repair                   will attempt to repair the discrepency between database and filesystem
                                          ( ikmd needs to run to do that )
                   stats                   returns number of videos ( in the database) and overall size
                   backupdb                dumps a snapshot of the files database (experimental)

    --user -u <username>              used with project
    --file -f <filename>              (currently unused)
    --item -i <uid>                   (currently unused)

Using the UI

Advanced Documentation