Skip to content

gandie/interfaces-docker

Repository files navigation

Interfaces-docker - Interfaces project code running via docker

“Interfaces” will build the bridge between performing arts and computer art. Namely it will capture the dynamics and expression from dance and transport it into the world of code generated art. “Interfaces” wants to trigger, push and moderate a dialog between generative artists and choreographers. The end result – apart from the resulting artworks – will be a data- and knowledgebase loaded with workflow documentation, sample code, converters and scanners and other open source tools that aim to help creators to run their respective part of collaborations between dance and code art. For a generative artist “Interfaces” will provide the dancer to perform in the parameter space of the code. For Choreographers “Interfaces” will open a new stage that has their audience in galleries and on the web.

Further information regarding this project besides of the software part can be found here:

Installation

For any questions regarding installation and setup feel free to visit our Discord ( link above ) and ask questions in the feedback area.

Requirements

As this is a bundle of software wrapped into docker images, you need both docker and docker-compose to install and run this code. A Debian-based Linux distribution is the recommended OS for this, but any OS capable of running Docker should work.

Repository

If you don't plan to develop but use Interfaces, there is no need to fetch the whole git history. Create a flat copy of the repo, e.g. via:

git clone --depth 1 https://github.com/gandie/interfaces-docker.git

Docker installation

Docker engine installation guide

Also install docker-compose wrapper, e.g. using Ubuntu:

apt install docker-compose

Setup Docker environment - Scripted installation ( recommended )

After setting up the requirements, run the installation script:

./StartZopeCompose

This will call the corresponding docker-compose command, which will then download and build the images and set up and run the containers.

After that the webapp should be available on browser via:

http://localhost:80

As port 80 will be exposed on all available network interfaces, you're able to run the webapp from any other device living in the same network via IP-address.

Setup - Upgrades

Upgrading your installation can be done by tearing down the current installation ( removing docker images and containers in the process ) and reinstalling afterwards.

Teardown via:

./TearDown

Warning! As this script assumes that this is the only docker environment installed, it will remove ALL docker images. If you run multiple docker environments make sure to alter the TearDown script before you run it.

In case of upgrades only affecting the webapp ( living in mounts/zoperepo/__root__ ) you don't need to teardown and reinstall, simply override the folder mentioned with a new version and restart the system. On each start of the webapp, the contents of mounts/zoperepo/__root__ will be written into the web application.

Known issues

Application just shows autogenerated default page

Sometimes the first startup may crash, with errors like:

zeo_1           | ZODB.POSException.ConflictError: database conflict error (oid 0x03, class Persistence.mapping.PersistentMapping ...

... resulting into many deleted files visible in the project folder via git status

Reboot the machine, then restore webapp in project folder:

git restore mounts/zoperepo/__root__/

... and restart zeo container:

docker container restart zope-compose_zeo_1

This will trigger a forced rewrite of the webapp and after a few moments it should work as expected.

Links / Software stack in use

List of software used in this project:

Appreciation

  • 7pc for getting this project on the road
  • Klappson for sharing his docker knowledge
  • r1b2art for sharing awesome p5 code pieces

... and of course all the awesome open source projects mentioned in the link list for providing a rock solid open source basis for this project