Skip to content
Web based media assets management
Smalltalk Python CSS Shell JavaScript HTML
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
misc Merge 82731cc Mar 11, 2020
server initial commit Feb 19, 2020
src minor UI Mar 13, 2020
.gitattributes minor Feb 19, 2020
.project deployment & docs Feb 25, 2020 Squashed 'main/web_root/lib/webbase/' content from commit 83c427f Feb 22, 2020


Web based media assets management

(German: Mediendatenbank)

Mediaclue is an open source digital assets management application. It is mainly targeted for schools. Mediaclue was developed by mindclue gmbh ( in cooperation with Gymnasium Hohe Promenade, Zürich (

Official website:

Happily developed with Pharo Smalltalk ( and the Seaside web framework (!

(This version has been rewritten from scratch from the previous Rails based application. Ruby and Rails is cool, but hey, Smalltalk and Seaside is just, hm, you know, just feels alot better! ;-) )

Contact & support

Andreas Brodbeck, mindclue GmbH,




To prevent this demo server from being hit by stupid crawlers and other stupid stupids, you need to use a password:

User: betatester PW: beta


  • HTML5
  • Responsive and mobile device ready
  • Very sophisticated, user friendly upload process, suitable for uploading multiple files and folders at once. Made possible through the integration of
  • Upload files (e.g. images) directly from your mobile device
  • Suitable for many document types. Images, office documents, movies, zip packages, raw data files etc.
  • Let users organize their collected media in collections. A media can be in more than one collection. You can even add media from other users to your collections (given that you have access permission to it).
  • Generates previews of a number of widely used document formats: Virtually all image formats, Word, Excel, PowerPoint, OpenOffice documents, flash movies, quicktime movies, etc.
  • Let user tag their media collections and media items.
  • Search engine, searches through tags and descriptions of collections and media.
  • Lets users save their search queries, for simplifying recurring search tasks.
  • Lets users download a on-the-fly packaged ZIP file, with all the documents of a collection.
  • Lets users download a on-the-fly generated PDF file, for offline slideshow presentation (Images only).
  • Integrated lighttable displays and slideshows (fullscreen)
  • Visually sort your media in a collection with drag & drop
  • Lets users order their collections on their personal overview page.
  • Automatically shows a list of my collections, grouped by the most used tags.
  • Integrates with your existing LDAP identity database for user and group synchronisation and authentication.
  • ... TBD


  1. Choose a short code for your mediaclue instance project, without spaces. For example an acronym or the application purpose ("mdb", "mediadatabase", "schoolimages", ...) or similar short name.
  2. Clone this repository to your working machine: git clone
  3. Get a fresh Linux server, e.g. Ubuntu Server, where mediaclue should be installed to (Bare metal, cloud, VM, whereever. If you have no clue, use this: multipass ). Keep the basic installation pure minimal, we just need a normal user to login via SSH shell.
  4. Make sure this server is network reachable by its own hostname. (Poor man solution: Register the IP into your hosts file. See Howto ... )
  5. Confirm that you can connect using SSH to the server as the normal user. If necessary, add your public SSH key to the authorized_keys file on the server.
  6. Install the Ansible deployment tool on your working machine:, installation guide
  7. Take your shell and go into the folder mediaclue/deployment
  8. Create a deployment inventory for ansible: Create the inventory_yoursitename.yml file as copy from the template file inventory_template.yml. Basically all you have to do is to overwrite with your servers hostname.
  9. Create a configuration for mediaclue: Create mediaclue_yoursitename.yml file as copy from the template file mediaclue_template.yml. Follow the comments in that file and enter your own basic settings.
  10. (Optional) If you wish to configure SSH keys of the server
    1. Create a random Ansible vault password in a file called kjewrfkjhasdfkjhw.txt (As used in ansible.cfg). That file could be named anyhow, but I choose to obfuscate the meaning ;-)
    2. Use the script to generate a unique new SSH-keypair for the server user. The private key will not be stored as a file, but will be displayed to you for copy/pasting into the mediaclue_yoursitename.yml file.
  11. (Optional) Put your own SSH public key(s) into the directory files/ssh/authorized_keys/. You will be able to SSH into the mediaclue server without password.
  12. Use the script yoursitename to install all together. You will be asked by Ansible for the "BECOME password" (aka sudo), then enter the SSH users password. This will configure the Linux server, loads packages, loads Pharo, loads code into pharo und will run a frontend webserver.
  13. This will take a while (around 10 minutes), then:
  14. You're done! You can access your mediaclue instance with http(s)://


  • You can rerun the install procedure many times, if it interrupts at one point, and you have to fix something. Only the needed tasks will be redone by Ansible.



Deployment updates


Once your mediaclue server is up and running, you will use these scripts:

  • yoursitename to simply lightweight update your source code and files, without the application itself.
  • yoursitename to do a full deployment with stopping the application, update and restart.

Technical stuff

  • Developed with Pharo Smalltalk ( and the Seaside web framework (
  • Autostarts an OpenOffice server instance in the background for document conversion.
  • Keeps original file stored on disk. Separates generated preview files in an other folder structure. Making it easy for backing up the original files.
  • As a developer you can connect to the Pharo UI using xpra ( Get the client for your OS and attach to xpra display number 100 on the server. You need SSH access privileges for this to work.


  • Andreas Brodbeck (, developer and maintainer of the project.
  • Armin Frischknecht (, for design stuff and the making of the official website and the advertising in his environment.
You can’t perform that action at this time.