Thomas Mertz

Project manager, producer and chaos wrangler.

Undocumented, but vitally important steps to self-host the Xibo Signage CMS fork

  1. Clone the git repo; https://github.com/xiboplayer/xibo-cms
  2. Edit docker-compose.yml so it looks like this:
version: "3" //delete this per Dockers rec's 

services:
  db:
    image: mysql:8.4
    ports:
    - "3315:3306"
    volumes:
    - ./containers/db:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: "root"
      MYSQL_DATABASE: "cms"

  xmr:
    image: ghcr.io/xibosignage/xibo-xmr:develop
    ports:
    - "9505:9505"
    environment:
      XMR_DEBUG: "true" 
      IPV6PUBSUPPORT: "false"

  web:
    build:
      context: .
      dockerfile: Dockerfile //was originally Dockerfile.dev
    volumes:
    - ./:/var/www/cms
    ports:
    - "80:80"
    environment:
      CMS_DEV_MODE: "false" //was originally "true"
      MYSQL_DATABASE: "cms"

  memcached:
    image: memcached:alpine
    command: memcached -m 15

  swagger:
    image: swaggerapi/swagger-ui:latest
    ports:
    - "8080:8080"
    environment:
    - API_URL=http://localhost/swagger.json

  quickchart:
    image: ianw/quickchart
  • 3. Run ‘docker compose up -d’
  • 4. Log into the app container: ‘sudo docker exec -it 7639fdce1738 /bin/bash’
cd /var/ww/cms
mkdir cache 
chown -R www-data:www-data cache
exit

Then run the following commands where you put the Xibo repo.

docker run --interactive --tty --volume $PWD:/app --volume ~/.composer:/tmp composer install
docker run -it --volume $PWD:/app --volume ~/.npm:/root/.npm -w /app node:22 sh -c "npm install webpack -g; npm install; npm run build;"

This is apparently someone’s idea of a production ready project. But this fixed it and got it running for me. Enjoy.