Git Product home page Git Product logo

kodi-headless-novnc's Introduction

fhriley/kodi-headless-novnc

Build Images

A headless install of kodi in a docker container. Commonly used with MySQL Kodi setup to allow library updates via web interface.

https://hub.docker.com/r/fhriley/kodi-headless-novnc

https://github.com/fhriley/kodi-headless-novnc

This image has 2 major advantages over other headless images:

  1. The Kodi GUI is available in a web browser on port 8000 or over VNC on port 5900. This means you don't need a second "real" Kodi running to configure everything.

  2. This Kodi image does not use any patches to modify the code, which means it can easily be updated to any new versions of Kodi.

Usage

docker run --name=kodi-headless-novnc \
  -d --init \
  -v <MY_DATA_PATH>:/data \
  -e KODI_DB_HOST=<MY_KODI_DBHOST> \
  -e KODI_DB_USER=<MY_KODI_DBUSER> \
  -e KODI_DB_PASS=<MY_KODI_DBPASS> \
  -e TZ=<MY_TIMEZONE> \
  -p 5900:5900/tcp \
  -p 8000:8000/tcp \
  -p 8080:8080/tcp \
  -p 9090:9090/tcp \
  -p 9777:9777/udp \
  fhriley/kodi-headless-novnc:Nexus

Docker compose example:

version: "3"

services:
  kodi:
   image: fhriley/kodi-headless-novnc:Nexus
   restart: always
   init: true
   ports:
     - "5900:5900/tcp"
     - "8000:8000/tcp"
     - "8080:8080/tcp"
     - "9090:9090/tcp"
     - "9777:9777/udp"
   environment:
     KODI_DB_HOST: 192.168.1.246
     KODI_DB_USER: user
     KODI_DB_PASS: password
     TZ: America/New_York
   volumes:
     - ./kodi_data:/data

Ports

Port Description
5900/tcp VNC (Kodi GUI)
8000/tcp noVNC HTTP (Kodi GUI)
8080/tcp webui
9090/tcp websockets
9777/udp esall interface

Volumes

Path Description
/data path for kodi data and configuration files

Environment Variables

Variable Description
KODI_DB_HOST MySQL database host address (default mysql)
KODI_DB_USER MySQL user for Kodi (default kodi)
KODI_DB_PASS MySQL password for Kodi user (default kodi)
KODI_DB_PORT MySQL remote port (default 3306)
KODI_UID The user ID to run all processes in the container under (default 2000)
KODI_GID The group ID to run all processes in the container under (default 2000)
KODI_UMASK The umask to run all processes in the container under (default 002)
TZ The timezone to use in the container (default UTC)

Tags

Tag Codename Architecture
latest Nexus amd64, armv7, arm64
Omega Omega amd64, armv7, arm64
Nexus Nexus amd64, armv7, arm64
Matrix Matrix amd64, armv7, arm64

It is strongly recommended that you use the codename tag rather than latest. Docker will automatically pull the correct architecture for your platform.

User / Group Identifiers

Sometimes when using data volumes (-v flags) permissions issues can arise between the host OS and the container. We avoid this issue by allowing you to specify the user KODI_UID and group KODI_GID. Ensure the data volume directory on the host is owned by the same user you specify and it will "just work" ™.

To find yours use id user as below:

  $ id <dockeruser>
    uid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup)

In this instance KODI_UID=1001 and KODI_GID=1001.

Setting up the application

The database connection settings will be automatically configured the first time the container is started and stored in /data/.kodi/userdata/advancedsettings.xml. Many other settings are within this file, also. You may modify this file after it is generated. You may also mount your own version. If you mount your own version, the database configuration variables (KODI_DB*) will not be used.

If you intend to use this kodi instance to perform library tasks other than merely updating, eg. library cleaning etc, it is important to copy over the sources.xml from the host machine that you performed the initial library scan on to the userdata folder of this instance, otherwise database loss can and most likely will occur.

Info

  • Shell access whilst the container is running: docker exec -it kodi-headless-novnc bash
  • To monitor the logs of the container in realtime: docker logs -f kodi-headless-novnc

Credits

Fast Scanning

The below works if your media is stored on the same machine as this docker container and your using smb:// to share that media on the network.

First, mount your host media directory somewhere inside the container so Kodi can see it.
eg. --mount type=bind,source=/sharedfolders/pool,target=/media

Now, the below magic is done in Kodis advancedsettings.xml

<pathsubstitution>
  <substitute>
    <from>smb://192.168.20.3/sharedfolders/pool/</from>
    <to>/media/</to>
  </substitute>
</pathsubstitution>

That's it. Now instead of always needing to scan over smb://, it will replace that with /media and scan much quicker. When it does find new items, they are correctly stored in the SQL using their smb:// path

Kodi crashes

If Kodi immediately crashes upon container startup, please see the following for a possible fix.

kodi-headless-novnc's People

Contributors

fhriley avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

kodi-headless-novnc's Issues

upnp not working?

i've got your headless kodi working as expected and I can hit both the vnc and web browser sessions, but for some reason i'm unable to get upnp to work. i've added the ports to the docker-compose file and enabled it in services, yet it doesn't seem to expose the ports outside the container. using bash , it seems that it's actually listening on the correct ports for upnp, but no love from outside the container. what am I doing wrong?

...
services:
kodi:
image: fhriley/kodi-headless-novnc
restart: always
init: true
ports:
- "1900:1900/udp"
- "5000:5000/tcp"
- "5900:5900/tcp"
- "8000:8000/tcp"
- "8080:8080/tcp"
- "9090:9090/tcp"
- "9777:9777/udp"
...

MYSQL

Hi

do I need a separate mysql running in docker before I run this docker? Would you mind sharing the command to start the mysql docker to support this image?

Omega 21.x

Do you plan to start offering an Omega tag for when 21.x hits RC or only after final?

any arm architecture support in future?

HI I used to use lsioarmhf but since they abandoned this after 19, I am looking for options and I see you ported it over which is great! any chance you can port this to raspberry pi 4 / arm architecture? TIA

Kodi crash with std::system_error what(): Operation not permitted

Hello,

thank you for maintaining this container.

There are 2 issues (one a appearing beacause of the other).

My setup:

  • Host: I7 boxe
  • OS: Ubuntu 20.04.5
  • Docker: 20.10.1, build 831ebea

My script to launch the container:

docker run -d --init --name=mykodi \
-p 8093:8080 \
-p 9090:9090 \
-p 9777:9777/udp \
-p 5900:5900/tcp \
-p 8095:8000/tcp \
fhriley/kodi-headless-novnc:Nexus

Start of the container crash with attached logs:
_mykodi_logs.txt

2023-01-25 01:47:03,534 INFO spawned: 'easy-novnc' with pid 59
2023-01-25 01:47:03,534 INFO spawned: 'easy-novnc' with pid 59
2023-01-25 01:47:03,539 INFO spawned: 'app' with pid 60
2023-01-25 01:47:03,539 INFO spawned: 'app' with pid 60
runtime/cgo: pthread_create failed: Operation not permitted
SIGABRT: abort
PC=0x7f28abab7a7c m=0 sigcode=18446744073709551610

goroutine 0 [idle]:
runtime: unknown pc 0x7f28abab7a7c
stack: frame={sp:0x7ffe3c298970, fp:0x0} stack=[0x7ffe3ba99ec8,0x7ffe3c298f00)
0x00007ffe3c298870:  0x000000ffffffffff  0x0000000000000000 
[...]
runtime: unknown pc 0x7f28abab7a7c
stack: frame={sp:0x7ffe3c298970, fp:0x0} stack=[0x7ffe3ba99ec8,0x7ffe3c298f00)
0x00007ffe3c298870:  0x000000ffffffffff  0x0000000000000000 
[...] 

goroutine 1 [running]:
runtime.systemstack_switch()
	/usr/local/go/src/runtime/asm_amd64.s:350 fp=0xc000040780 sp=0xc000040778 pc=0x4621e0
runtime.main()
	/usr/local/go/src/runtime/proc.go:174 +0x7b fp=0xc0000407e0 sp=0xc000040780 pc=0x43765b
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc0000407e8 sp=0xc0000407e0 pc=0x464401

rax    0x0
[...]

2023-01-25 01:47:03,546 INFO exited: easy-novnc (exit status 2; not expected)
2023-01-25 01:47:03,546 INFO exited: easy-novnc (exit status 2; not expected)
terminate called after throwing an instance of 'std::system_error'
  what():  Operation not permitted

As raised in this log (2d issue):

/usr/bin/kodi: 156: cannot create /data/kodi_crashlog-20230125_012740.log: Permission denied

This is because in the init script only the /data/.kodi, /data/.cache and /data/.config are assigned to app but not the parent folder /data which is used to create crash logs files

chown -R app:app /data/.kodi /data/.cache /data/.config

Once this issue worked around I have a pretty useless crash file:
kodi_crashlog-20230125_014703.log

set uid/gid rather than force app:app

While uid/gid is exposed, it looks like you do not set the docker user/group with it but instead try expect to add app:app and set that account. It looks like its erroring when trying to add the group with the gid if its already existing so there is a conflict:

For example with unraid, it runs dockers as nobody:users

# id nobody
uid=99(nobody) gid=100(users)

Setting KODI_GID set to 100 it errors as it already exists:

groupadd: GID '100' already exists
chown: invalid group: 'app:app'
chown: invalid group: 'app:app'
Traceback (most recent call last):
  File "/usr/bin/supervisord", line 33, in <module>
    sys.exit(load_entry_point('supervisor==4.2.1', 'console_scripts', 'supervisord')())
  File "/usr/lib/python3/dist-packages/supervisor/supervisord.py", line 361, in main
    go(options)
  File "/usr/lib/python3/dist-packages/supervisor/supervisord.py", line 371, in go
    d.main()
  File "/usr/lib/python3/dist-packages/supervisor/supervisord.py", line 72, in main
    self.options.make_logger()
  File "/usr/lib/python3/dist-packages/supervisor/options.py", line 1470, in make_logger
    loggers.handle_file(
  File "/usr/lib/python3/dist-packages/supervisor/loggers.py", line 415, in handle_file
    handler = FileHandler(filename)
  File "/usr/lib/python3/dist-packages/supervisor/loggers.py", line 160, in __init__
    self.stream = open(filename, mode)
PermissionError: [Errno 13] Permission denied: '/dev/fd/1'

crudely, setting KODI_PID but not setting KODI_GID, at least got the docker to start and work. just side effect is that files on the nas end up nobody:2000 due to gid not getting set.

Looking at other dockers, it looks like rather than trying to add user+group app with the guid/uid you add them with something that is not used, so your 2000:2000 but then you set set the uid/gid as the user passes with the vars.

Could also add umask to give users even further control. Example from another docker:

echo "---Checking if UID: ${UID} matches user---"
usermod -u ${UID} ${USER}
echo "---Checking if GID: ${GID} matches user---"
usermod -g ${GID} ${USER}
echo "---Setting umask to ${UMASK}---"
umask ${UMASK}

chown -R ${KODI_UID}:${KODI_GID} /data/.kodi /data/.cache /data/.config

btw the novnc addition to this makes it pretty slick to use

VNC Access

After a lot of messing around, I discovered in the systemd service file for TigerVNC that it needs an SSH tunnel connection in order to work. It confused the hell out of me why I couldn't connect from a remote machine (or even locally using my IP instead of the loopback IP), even though netstat showed that it was listening on the proper port.

It was only when I used ssh -v -C -L 5900:localhost:5900 my-servers-ip from my laptop and used TigerVNC to connect locally on my laptop using the loopback IP that I was finally able to connect and see the GUI.

I initially had issues with noVNC as well, but that turned out to be port related since I have a bunch of containers running and there were conflicts apparently.

Kodi docker can´t start

Docker-compose.yml

  kodi:
   image: fhriley/kodi-headless-novnc:latest
   restart: always
   ports:
     - "5900:5900/tcp"
     - "8000:8000/tcp"
     - "8080:8080/tcp"
     - "9090:9090/tcp"
     - "9777:9777/udp"
   environment:
     KODI_DB_HOST: 192.168.1.**
     KODI_DB_USER: admin
     KODI_DB_PASS: contraseñadificil
     TZ: Europe/**
   volumes:
     - ${STORAGE}/kodi_data:/data

Steps to reproducce the issue

  1. docker-compose up -d

Issue
When I start the kodi container on my raspberry 4 I get this error:

ERROR: for prz_kodi_1  a bytes-like object is required, not 'str'

ERROR: for kodi  a bytes-like object is required, not 'str'
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/docker/api/client.py", line 261, in _raise_for_status
    response.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 943, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 500 Server Error: Internal Server Error for url: http+docker://localhost/v1.22/containers/3d543247184f628065afa81f7fc76b3a02e80a7f88cee06d9dd476ce1ec02470/start

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/compose/service.py", line 625, in start_container
    container.start()
  File "/usr/lib/python3/dist-packages/compose/container.py", line 241, in start
    return self.client.start(self.id, **options)
  File "/usr/lib/python3/dist-packages/docker/utils/decorators.py", line 19, in wrapped
    return f(self, resource_id, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/docker/api/container.py", line 1095, in start
    self._raise_for_status(res)
  File "/usr/lib/python3/dist-packages/docker/api/client.py", line 263, in _raise_for_status
    raise create_api_error_from_http_exception(e)
  File "/usr/lib/python3/dist-packages/docker/errors.py", line 31, in create_api_error_from_http_exception
    raise cls(e, response=response, explanation=explanation)
docker.errors.APIError: 500 Server Error: Internal Server Error ("b'driver failed programming external connectivity on endpoint paz_kodi_1 (29459bb3e19a38e5e54705149aaf21a9f6dbdaee400192b7ad81a154e8ee5d37): Error starting userland proxy: listen tcp4 0.0.0.0:5900: bind: address already in use'")

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/docker-compose", line 11, in <module>
    load_entry_point('docker-compose==1.25.0', 'console_scripts', 'docker-compose')()
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 72, in main
    command()
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 128, in perform_command
    handler(command, command_options)
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 1107, in up
    to_attach = up(False)
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 1088, in up
    return self.project.up(
  File "/usr/lib/python3/dist-packages/compose/project.py", line 565, in up
    results, errors = parallel.parallel_execute(
  File "/usr/lib/python3/dist-packages/compose/parallel.py", line 112, in parallel_execute
    raise error_to_reraise
  File "/usr/lib/python3/dist-packages/compose/parallel.py", line 210, in producer
    result = func(obj)
  File "/usr/lib/python3/dist-packages/compose/project.py", line 548, in do
    return service.execute_convergence_plan(
  File "/usr/lib/python3/dist-packages/compose/service.py", line 561, in execute_convergence_plan
    return self._execute_convergence_recreate(
  File "/usr/lib/python3/dist-packages/compose/service.py", line 486, in _execute_convergence_recreate
    containers, errors = parallel_execute(
  File "/usr/lib/python3/dist-packages/compose/parallel.py", line 112, in parallel_execute
    raise error_to_reraise
  File "/usr/lib/python3/dist-packages/compose/parallel.py", line 210, in producer
    result = func(obj)
  File "/usr/lib/python3/dist-packages/compose/service.py", line 481, in recreate
    return self.recreate_container(
  File "/usr/lib/python3/dist-packages/compose/service.py", line 602, in recreate_container
    self.start_container(new_container)
  File "/usr/lib/python3/dist-packages/compose/service.py", line 627, in start_container
    if "driver failed programming external connectivity" in ex.explanation:
TypeError: a bytes-like object is required, not 'str'

Error: /usr/lib/kodi/kodi-x11 not found

Hi,

I first have to say that I'm no Docker expert. I hardly know anything about it.
I went the docker compose way, created a directory and a docker-compose-yml.

I can connect using vnc and novnc but I get a black screen. I cannot connect to web gui.

And this is my output
root@DietPi:~/kodi_docker# docker-compose up
[+] Running 1/0
⠿ Container kodi_docker-kodi-1 Created 0.0s
Attaching to kodi_docker-kodi-1
kodi_docker-kodi-1 | 2022-03-19 14:09:49,844 INFO RPC interface 'supervisor' initialized
kodi_docker-kodi-1 | 2022-03-19 14:09:49,844 INFO RPC interface 'supervisor' initialized
kodi_docker-kodi-1 | 2022-03-19 14:09:49,845 CRIT Server 'unix_http_server' running without any HTTP authentication checking
kodi_docker-kodi-1 | 2022-03-19 14:09:49,845 CRIT Server 'unix_http_server' running without any HTTP authentication checking
kodi_docker-kodi-1 | 2022-03-19 14:09:49,849 INFO supervisord started with pid 7
kodi_docker-kodi-1 | 2022-03-19 14:09:49,849 INFO supervisord started with pid 7
kodi_docker-kodi-1 | 2022-03-19 14:09:50,863 INFO spawned: 'easy-novnc' with pid 20
kodi_docker-kodi-1 | 2022-03-19 14:09:50,863 INFO spawned: 'easy-novnc' with pid 20
kodi_docker-kodi-1 | 2022-03-19 14:09:50,883 INFO spawned: 'x11' with pid 21
kodi_docker-kodi-1 | 2022-03-19 14:09:50,883 INFO spawned: 'x11' with pid 21
kodi_docker-kodi-1 | 2022-03-19 14:09:50,897 INFO spawned: 'app' with pid 22
kodi_docker-kodi-1 | 2022-03-19 14:09:50,897 INFO spawned: 'app' with pid 22
kodi_docker-kodi-1 | Error: /usr/lib/kodi/kodi-x11 not found
kodi_docker-kodi-1 | 2022-03-19 14:09:50,960 INFO exited: app (exit status 2; not expected)
kodi_docker-kodi-1 | 2022-03-19 14:09:50,960 INFO exited: app (exit status 2; not expected)
kodi_docker-kodi-1 | TurboVNC Server (Xvnc) 32-bit v2.2.7 (build 20220220)
kodi_docker-kodi-1 | Copyright (C) 1999-2021 The VirtualGL Project and many others (see README.txt)
kodi_docker-kodi-1 | Visit http://www.TurboVNC.org for more information on TurboVNC
kodi_docker-kodi-1 |
kodi_docker-kodi-1 | 19/03/2022 14:09:50 Using security configuration file /opt/TurboVNC/etc/turbovncserver-security.conf
kodi_docker-kodi-1 | 19/03/2022 14:09:50 Enabled security type 'none'
kodi_docker-kodi-1 | _XSERVTransmkdir: Owner of /tmp/.X11-unix should be set to root
kodi_docker-kodi-1 | 19/03/2022 14:09:50 Desktop name 'Kodi Headless' (18bb68657da4:0)
kodi_docker-kodi-1 | 19/03/2022 14:09:50 Protocol versions supported: 3.3, 3.7, 3.8, 3.7t, 3.8t
kodi_docker-kodi-1 | 19/03/2022 14:09:50 Listening for VNC connections on TCP port 5900
kodi_docker-kodi-1 | 19/03/2022 14:09:50 Interface 0.0.0.0
kodi_docker-kodi-1 | 19/03/2022 14:09:50 Framebuffer: BGRX 8/8/8/8
kodi_docker-kodi-1 | 19/03/2022 14:09:50 New desktop size: 1240 x 900
kodi_docker-kodi-1 | 19/03/2022 14:09:50 New screen layout:
kodi_docker-kodi-1 | 19/03/2022 14:09:50 0x00000040 (output 0x00000040): 1240x900+0+0
kodi_docker-kodi-1 | 19/03/2022 14:09:50 Maximum clipboard transfer size: 1048576 bytes
kodi_docker-kodi-1 | 19/03/2022 14:09:50 VNC extension running!
kodi_docker-kodi-1 | Listening on http://:8000
kodi_docker-kodi-1 | Run with --help for more options
kodi_docker-kodi-1 | 2022-03-19 14:09:52,032 INFO success: easy-novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
kodi_docker-kodi-1 | 2022-03-19 14:09:52,032 INFO success: easy-novnc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
kodi_docker-kodi-1 | 2022-03-19 14:09:52,033 INFO success: x11 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
kodi_docker-kodi-1 | 2022-03-19 14:09:52,033 INFO success: x11 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
kodi_docker-kodi-1 | 2022-03-19 14:09:52,043 INFO spawned: 'app' with pid 31
kodi_docker-kodi-1 | 2022-03-19 14:09:52,043 INFO spawned: 'app' with pid 31
kodi_docker-kodi-1 | Error: /usr/lib/kodi/kodi-x11 not found
kodi_docker-kodi-1 | 2022-03-19 14:09:52,095 INFO exited: app (exit status 2; not expected)
kodi_docker-kodi-1 | 2022-03-19 14:09:52,095 INFO exited: app (exit status 2; not expected)
kodi_docker-kodi-1 | 2022-03-19 14:09:54,110 INFO spawned: 'app' with pid 32
kodi_docker-kodi-1 | 2022-03-19 14:09:54,110 INFO spawned: 'app' with pid 32
kodi_docker-kodi-1 | Error: /usr/lib/kodi/kodi-x11 not found
kodi_docker-kodi-1 | 2022-03-19 14:09:54,161 INFO exited: app (exit status 2; not expected)
kodi_docker-kodi-1 | 2022-03-19 14:09:54,161 INFO exited: app (exit status 2; not expected)
kodi_docker-kodi-1 | 2022-03-19 14:09:57,176 INFO spawned: 'app' with pid 33
kodi_docker-kodi-1 | 2022-03-19 14:09:57,176 INFO spawned: 'app' with pid 33
kodi_docker-kodi-1 | Error: /usr/lib/kodi/kodi-x11 not found
kodi_docker-kodi-1 | 2022-03-19 14:09:57,227 INFO exited: app (exit status 2; not expected)
kodi_docker-kodi-1 | 2022-03-19 14:09:57,227 INFO exited: app (exit status 2; not expected)
kodi_docker-kodi-1 | 2022-03-19 14:09:58,230 INFO gave up: app entered FATAL state, too many start retries too quickly
kodi_docker-kodi-1 | 2022-03-19 14:09:58,230 INFO gave up: app entered FATAL state, too many start retries too quickly
kodi_docker-kodi-1 |
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Got connection from client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Using protocol version 3.8
kodi_docker-kodi-1 | 19/03/2022 14:10:10 rfbSendSecurityTypeList: advertise sectype tight
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Pixel format for client 127.0.0.1:
kodi_docker-kodi-1 | 19/03/2022 14:10:10 32 bpp, depth 24, little endian
kodi_docker-kodi-1 | 19/03/2022 14:10:10 true colour: max r 255 g 255 b 255, shift r 0 g 8 b 16
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Using tight encoding for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:10:10 rfbProcessClientNormalMessage: ignoring unknown encoding -260 (fffffefc)
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Using JPEG subsampling 0, Q79 for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Enabling Desktop Size protocol extension for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Enabling LastRect protocol extension for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:10:10 rfbProcessClientNormalMessage: ignoring unknown encoding -258 (fffffefe)
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Enabling Extended Desktop Size protocol extension for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:10:10 rfbProcessClientNormalMessage: ignoring unknown encoding -309 (fffffecb)
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Enabling Fence protocol extension for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Enabling Continuous Updates protocol extension for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:10:10 rfbProcessClientNormalMessage: ignoring unknown encoding -307 (fffffecd)
kodi_docker-kodi-1 | 19/03/2022 14:10:10 rfbProcessClientNormalMessage: ignoring unknown encoding -1063131698 (c0a1e5ce)
kodi_docker-kodi-1 | 19/03/2022 14:10:10 rfbProcessClientNormalMessage: ignoring unknown encoding 1464686180 (574d5664)
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Enabling full-color cursor updates for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Using Tight compression level 2 for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Using 4 threads for Tight encoding
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Continuous updates enabled
kodi_docker-kodi-1 | 19/03/2022 14:10:10 New desktop size: 1920 x 929
kodi_docker-kodi-1 | 19/03/2022 14:10:10 New screen layout:
kodi_docker-kodi-1 | 19/03/2022 14:10:10 0x00000000 (output 0x00000040): 1920x929+0+0
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Continuous updates enabled
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Continuous updates enabled
kodi_docker-kodi-1 | 19/03/2022 14:10:10 Continuous updates enabled
kodi_docker-kodi-1 |
kodi_docker-kodi-1 | 19/03/2022 14:11:13 Got connection from client 192.168.0.11
kodi_docker-kodi-1 | 19/03/2022 14:11:13 Using protocol version 3.8
kodi_docker-kodi-1 | 19/03/2022 14:11:13 rfbSendSecurityTypeList: advertise sectype tight
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding 24 (18)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 Using ZRLE encoding for client 192.168.0.11
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding 22 (16)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding 21 (15)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding 15 (f)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding -314 (fffffec6)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 Enabling full-color cursor updates for client 192.168.0.11
kodi_docker-kodi-1 | 19/03/2022 14:11:15 Enabling Desktop Size protocol extension for client 192.168.0.11
kodi_docker-kodi-1 | 19/03/2022 14:11:15 Pixel format for client 192.168.0.11:
kodi_docker-kodi-1 | 19/03/2022 14:11:15 8 bpp, depth 6
kodi_docker-kodi-1 | 19/03/2022 14:11:15 true colour: max r 3 g 3 b 3, shift r 4 g 2 b 0
kodi_docker-kodi-1 | 19/03/2022 14:11:15 Using raw encoding for client 192.168.0.11
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding 24 (18)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding 22 (16)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding 21 (15)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding 15 (f)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding -314 (fffffec6)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 Enabling full-color cursor updates for client 192.168.0.11
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding 24 (18)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 Using ZRLE encoding for client 192.168.0.11
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding 22 (16)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding 21 (15)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding 15 (f)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 rfbProcessClientNormalMessage: ignoring unknown encoding -314 (fffffec6)
kodi_docker-kodi-1 | 19/03/2022 14:11:15 Enabling full-color cursor updates for client 192.168.0.11
kodi_docker-kodi-1 | 19/03/2022 14:11:15 Pixel format for client 192.168.0.11:
kodi_docker-kodi-1 | 19/03/2022 14:11:15 32 bpp, depth 24, little endian
kodi_docker-kodi-1 | 19/03/2022 14:11:15 true colour: max r 255 g 255 b 255, shift r 16 g 8 b 0
kodi_docker-kodi-1 | 19/03/2022 14:11:15 no translation needed
kodi_docker-kodi-1 | 19/03/2022 14:29:59 Client 192.168.0.11 gone
kodi_docker-kodi-1 | 19/03/2022 14:29:59 Statistics:
kodi_docker-kodi-1 | 19/03/2022 14:29:59 key events received 0, pointer events 3051
kodi_docker-kodi-1 | 19/03/2022 14:29:59 framebuffer updates 3, rectangles 6, bytes 0
kodi_docker-kodi-1 | 19/03/2022 14:29:59 cursor shape updates 3, bytes 36
kodi_docker-kodi-1 | 19/03/2022 14:29:59 Raw rectangles 1, bytes 0
kodi_docker-kodi-1 | 19/03/2022 14:29:59 ZRLE rectangles 2, bytes 0
kodi_docker-kodi-1 | 19/03/2022 14:29:59 raw equivalent 8.935716 Mbytes, compression ratio 514.611610
kodi_docker-kodi-1 | 19/03/2022 14:30:12 Client 127.0.0.1 gone
kodi_docker-kodi-1 | 19/03/2022 14:30:12 Statistics:
kodi_docker-kodi-1 | 19/03/2022 14:30:12 key events received 0, pointer events 89
kodi_docker-kodi-1 | 19/03/2022 14:30:12 framebuffer updates 2, rectangles 11, bytes 2
kodi_docker-kodi-1 | 19/03/2022 14:30:12 LastRect markers 2, bytes 24
kodi_docker-kodi-1 | 19/03/2022 14:30:12 cursor shape updates 1, bytes 12
kodi_docker-kodi-1 | 19/03/2022 14:30:12 Tight rectangles 8, bytes 0
kodi_docker-kodi-1 | 19/03/2022 14:30:12 raw equivalent 11.598744 Mbytes, compression ratio 90615.187500
kodi_docker-kodi-1 |
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Got connection from client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Using protocol version 3.8
kodi_docker-kodi-1 | 19/03/2022 14:30:13 rfbSendSecurityTypeList: advertise sectype tight
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Pixel format for client 127.0.0.1:
kodi_docker-kodi-1 | 19/03/2022 14:30:13 32 bpp, depth 24, little endian
kodi_docker-kodi-1 | 19/03/2022 14:30:13 true colour: max r 255 g 255 b 255, shift r 0 g 8 b 16
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Using tight encoding for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:30:13 rfbProcessClientNormalMessage: ignoring unknown encoding -260 (fffffefc)
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Using JPEG subsampling 0, Q79 for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Enabling Desktop Size protocol extension for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Enabling LastRect protocol extension for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:30:13 rfbProcessClientNormalMessage: ignoring unknown encoding -258 (fffffefe)
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Enabling Extended Desktop Size protocol extension for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:30:13 rfbProcessClientNormalMessage: ignoring unknown encoding -309 (fffffecb)
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Enabling Fence protocol extension for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Enabling Continuous Updates protocol extension for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:30:13 rfbProcessClientNormalMessage: ignoring unknown encoding -307 (fffffecd)
kodi_docker-kodi-1 | 19/03/2022 14:30:13 rfbProcessClientNormalMessage: ignoring unknown encoding -1063131698 (c0a1e5ce)
kodi_docker-kodi-1 | 19/03/2022 14:30:13 rfbProcessClientNormalMessage: ignoring unknown encoding 1464686180 (574d5664)
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Enabling full-color cursor updates for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Using Tight compression level 2 for client 127.0.0.1
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Using 4 threads for Tight encoding
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Continuous updates enabled
kodi_docker-kodi-1 | 19/03/2022 14:30:13 New screen layout:
kodi_docker-kodi-1 | 19/03/2022 14:30:13 0x00000000 (output 0x00000040): 1920x929+0+0
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Continuous updates enabled
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Continuous updates enabled
kodi_docker-kodi-1 | 19/03/2022 14:30:13 Continuous updates enabled

The most important line seams to be
Error: /usr/lib/kodi/kodi-x11 not found

My docker-compose.yml

version: "3"

services:
kodi:
image: fhriley/kodi-headless-novnc
restart: always
init: true
ports:
- "5900:5900/tcp"
- "8000:8000/tcp"
- "8080:8080/tcp"
- "9090:9090/tcp"
- "9777:9777/udp"
environment:
KODI_DB_HOST: localhost
KODI_DB_USER: kodi
KODI_DB_PASS: kodi
TZ: America/Argentina/Buenos_Aires
volumes:
- ./kodi_data:/data

Running in and old RPi2 using DietPi headlessly
Am I missing some package?

Behind ReverseProxy in Apache

Hi,

How would you go about putting this behind a reverse proxy in Apache?
Tried looking for examples in the official documentation for noVNC but with no luck,

Br,
C

kodi log keeps giving error CActiveAESink::OpenSink - no sink was returned

Hi, been trying your kodi headless container. working out great so far.

I do notice that my kodi.log gets filled up with errormessages :

INFO : CActiveAESink::OpenSink - initialize sink
ERROR : CActiveAESink::OpenSink - no sink was returned
ERROR : ActiveAE::InitSink - returned error

Can something be done to avoid these error messages?

Docker is running on a ubuntu server 20.4.3 LTS, which is running on Proxmox 7.0-11.

grtz,

Jacky

Not an Issue but need help

Thank you vm for this possibility to use Kodi headless. My idea to use the tubecast plugin but seems i can't force it to share with host network as not possible to found the Kodi from outside the container. Can you please help to expose Kodi in container to Host network ?
Thanks you.

Setting credentials on vnc logon

Hi,
it's possible to setup basic auth on both tigervnc and novnc for accessing to the headless kodi ?
Many thanks for any help

No Audio

I managed to install it but it is not what I was expecting. At least in my setup it is quite laggy ( a lot ) but mainly there is no sound. Would you be able to help me how to enable sound?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.