Code Monkey home page Code Monkey logo

docker-kodi's People

Contributors

ehough avatar jfk22 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-kodi's Issues

Need to be upgarded to Kodi 19.0.3

Kodi 19.0.0 as installed by this is very buggy. I.e. using uft-8 with file names gives strange names.

Please provide new recipe to get the latest Kodi Matrix release.

BTW: the variants description is wrong, for Leia I had to enter 'legacy'. And latest should pull the latest Matrix release.

OR: better not use generic variants (legacy, latest) and just use the Kodi code name.

How to add media?

The documentation states that one can use

$ x11docker (...) -v /host/path/to/media:/media:ro (...) 

to add media to docker-kodi but that results in a failed start: -v is a x11docker shortcut for verbose output and /host/path/to/media:/media:ro is treated as an image name.

Non-blocking startup errors

When starting (and restarting) a fresh installation, I get the following messages

---> starting Kodi with command: kodi-standalone
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: va_openDriver() returns -1
Failed to open VDPAU backend libvdpau_i965.so: cannot open shared object file: No such file or directory

They are non-blocking - Kodi works fine.

I would be glad to help to debug if there is a need to.

VAAPI/vpp vaCreateConfig error: the requested VAProfile is not supported (12)

Kodi works, everything is fine, but there are always errors in the log, tell me I don't really understand, maybe there is a solution

2021-08-15 21:22:14.757 T:687 ERROR : VAAPI/vpp vaCreateConfig error: the requested VAProfile is not supported (12)
2021-08-15 21:22:14.757 T:687 ERROR : VAAPI output: Postproc preinit failed
2021-08-15 21:22:14.802 T:687 ERROR : VAAPI/vpp vaCreateConfig error: the requested VAProfile is not supported (12)
2021-08-15 21:22:14.803 T:687 ERROR : VAAPI output: Postproc preinit failed
2021-08-15 21:22:14.840 T:687 ERROR : VAAPI/vpp vaCreateConfig error: the requested VAProfile is not supported (12)
2021-08-15 21:22:14.840 T:687 ERROR : VAAPI output: Postproc preinit failed
2021-08-15 21:22:14.870 T:687 ERROR : VAAPI/vpp vaCreateConfig error: the requested VAProfile is not supported (12)
2021-08-15 21:22:14.870 T:687 ERROR : VAAPI output: Postproc preinit failed
2021-08-15 21:22:14.919 T:687 ERROR : VAAPI/vpp vaCreateConfig error: the requested VAProfile is not supported (12)
2021-08-15 21:22:14.919 T:687 ERROR : VAAPI output: Postproc preinit failed
2021-08-15 21:22:14.957 T:687 ERROR : VAAPI/vpp vaCreateConfig error: the requested VAProfile is not supported (12)
2021-08-15 21:22:14.957 T:687 ERROR : VAAPI output: Postproc preinit failed
2021-08-15 21:22:14.962 T:230 ERROR : UpdateFromScraper: No EPG scraper defined for table ''
2021-08-15 21:22:14.962 T:230 ERROR : Update: Failed to update table ''
2021-08-15 21:22:14.963 T:230 ERROR : UpdateFromScraper: No EPG scraper defined for table ''
2021-08-15 21:22:14.963 T:230 ERROR : Update: Failed to update table ''
2021-08-15 21:22:14.964 T:230 ERROR : UpdateFromScraper: No EPG scraper defined for table ''
2021-08-15 21:22:14.964 T:230 ERROR : Update: Failed to update table ''
2021-08-15 21:22:14.964 T:230 ERROR : UpdateFromScraper: No EPG scraper defined for table ''
2021-08-15 21:22:14.964 T:230 ERROR : Update: Failed to update table ''
2021-08-15 21:22:14.965 T:230 ERROR : UpdateFromScraper: No EPG scraper defined for table ''

Could not run kodi container on pure wayland machine

Trying to setup a HTPC. It's a fresh Void Linux install with wayland+weston+elogind on a spare NUC. (I want to add LMS there and probably some other stuff later on, that's why I did not used LibreELEC for this, which would be quite straightforward).
So, weston starts okay and seemingly works (didn't go beyond the successful start for I actually don't need it).
However I can't make the dockerized kodi start.
My most successful test setup so far was like this
x11docker -- wayland -- tty --gpu --alsa --homedir /home/docker
which gets
invalid volume specification: '/run/user/1000/:/:rw' invalid mount config for type "bind": destination can't be '/'.
Adding "-v /run/user/1000:/tmp:rw" doesn't help.
XDG_RUNTIME_DIR is manually set and exported on a host machine.
I'm not quite familiar with docker yet so I probably would need some directions...
UPDATE: XDG_RUNTIME_DIR being unset makes the "/:/:rw" instead

ARM support

Is this working on arm cpu like raspberry pi?

GUI for configuration

You could develop some sort of GUI, for example with dialog on a terminal base, or with x11docker/kaptain on a GUI base.

Unpolished example:
GUI for erichough/kodi

Code for this example:

#! /bin/bash

echo '#! /usr/bin/kaptain
start "Configure erichough/kodi-standalone" -> mainframe buttons;

  mainframe:framed -> tag kodihome kodishare options;
    tag "Choose kodi image" -> taglatest | tagalsa | tagkrypton | tagkryptonalsa;
      taglatest      "erichough/kodi:latest -> Pulseaudio and ALSA support"   -> "tag=latest " ;
      tagalsa        "erichough/kodi:alsa -> ALSA support (smaller image)"    -> "tag=alsa " ;
      tagkrypton     "erichough/kodi:krypton -> kodi krypton with pulseaudio and ALSA"  -> "tag=krypton " ;
      tagkryptonalsa "erichough/kodi:krypton-alsa -> kodi krypton with ALSA"            -> "tag=krypton-alsa " ;
      
    kodihome "Choose kodi home directory" -> "kodihome=\"" @directory="/YOURCOMPUTER'$HOME'" "\" ";
    
    kodishare "Additional directories to provide to kodi" -> sharedir1 sharedir2;
      sharedir1:beside -> "sharedir=\"" @directory="/YOURCOMPUTER'$HOME'/Videos" "\" " | ! "";
      sharedir2:beside -> "sharedir=\"" @directory="/YOURCOMPUTER'$HOME'/Music" "\" "  | ! "";
      
    options "Options" -> gpu ;
      gpu "GPU hardware acceleration" -> "gpu=yes" | "" ;
  
  configonly -> "configonly=yes " mainframe;
  buttons:beside -> @dump(mainframe)=" Run kodi now!" @dump(configonly)="Store config" @dump("cancel=yes")="Cancel" ;
' > $HOME/kodiconfig.kaptn

{ read -r containerID ; read -r kodioptions ; } < <(x11docker --hostdisplay --no-init --gpu --silent --stderr --stdout -- \
                                                   "--volume=$HOME/kodiconfig.kaptn:/kodiconfig.kaptn:ro --volume /:/YOURCOMPUTER:ro" \
                                                   x11docker/kaptain /kodiconfig.kaptn)

echo $kodioptions

Your kodi startup could than detect on itself if pulseaudio is running on host and decide whether to use --alsa or --pulseaudio. It could detect whether it runs on console or in X and decide whether to use --xorg or --weston-xwayland or --xephyr.

Only an idea to provide a simple plug&play interface for users, not a mandatory feature. :-)

Possible x11docker X server options

I tried some different possible X server setups for kodi.

  • Within already running X:
    • quite well:
      • --hostdisplay --gpu
      • --hostdisplay --trusted --hostipc
      • --weston-xwayland with and without --gpu
    • less of interest:
      • --xephyr (stable but slow because it does not support --gpu)
      • --xpra (terribly slow without --gpu; with --gpu it would use --weston-xwayland in background).
    • crashes:
      • --nxagent
  • From console:
    • quite well with and without --gpu:
      • --xorg
      • --weston-xwayland
  • Within pure Wayland without X/Xwayland:
    • quite well:
      • --weston-xwayland
    • issues with non-covered panels of Wayland compositor:
      • --xwayland

Dependencies to check:
--weston-xwayland: weston and Xwayland
--xorg: xorg (console or, within X, setup of /etc/X11/Xwrapper.config
--hostdisplay: already running X server (environment DISPLAY)
--xephyr: Xephyr and already running X server
--xwayland: Xwayland and already running Wayland (environment WAYLAND_DISPLAY)

--gpu: works well with open source drivers on host.
Pitfall: NVIDIA cards run quite well with nouveau driver on host. But with non-free-nvidia driver the very same nvidia driver version must be installed in image. (At this point I always think of Linus Thorvalds and his gesture towards NVIDIA ...).

--fullscreen enables fullscreen mode of --xephyr and --weston-xwayland. Without that it is also nice to see kodi catched in a window. :-p Though, if this window is closed, kodi crashes screechy.

The most reliable option for all possible setups and situations is --weston-xwayland and it provides the best isolation from host while still being performant. Drawback: weston and Xwayland are rarely installed already.

kodi-gdm

---> starting Kodi with command: kodi-standalone
Error: /usr/lib/x86_64-linux-gnu/kodi/kodi-gbm not found
Error: /usr/lib/x86_64-linux-gnu/kodi/kodi-gbm not found
Error: /usr/lib/x86_64-linux-gnu/kodi/kodi-gbm not found
/usr/bin/kodi --standalone has exited in an unclean state 3 times in the last 0 seconds.
Something is probably wrong
---> Kodi does not appear to be running. Exiting.

Having trouble starting it im on arch on kde
any clues?

Airplay support

Hi,

Any chance to include AirPlay support (libshairplay) for the future release?

Wrong timezone / timezone can not be set

Bug description

When executing erichough/kodi:latest, the time displayed in the upper right corner of Kodi is always UTC. In the Kodi settings, it is not possible to change the timezone to the correct values, as the options for this are disabled and can not be changed. The time is in UTC despite the fact, that the correct timezone is set in the container.

Steps to reproduce

  • Set the timezone of your computer to something else than UTC. In my case Europe/Berlin
  • Start kodi: x11docker --hostdisplay --pulseaudio --wm none --gpu --homedir /some/dir/kodi-home -- erichough/kodi:latest
  • In Kodi, the time displayed in the upper right corner is wrong (in my case, it is minus two hours)
  • Open a new terminal while Kodi is running and execute docker exec -ti $(docker ps | grep erichough/kodi | awk '{ print $1 }') date to get the time in the container. The time displayed there is the same than the host machine's time

What I did to isolate the issue

Compare to local Kodi installation

I installed Kodi on a fresh Ubuntu bionic installation (outside of a docker container): The time displayed there is correct. Additionally, the timezone settings are not disabled and may be changed.

See attached screenshots of the dockerized Kodi and a native bionic installation:

  • Displayed time differs by 2h
  • Timezone settings are editable in native installation and disabled in container

kodi_docker
kodi_virtualbox

Explicitely set the timezone in container

I started the docker container with "-v /etc/timezone:/etc/timezone:ro" "-e TZ=$(cat /etc/timezone)" to both mount /etc/timezone of the host computer and set the TZ environment variable - which should both set the correct timezone. This didn't change anything.

Compare to working container

I cloned the repo and reverted back to commit 367f174. I then built the container from this commit and found, that Kodi displayed the correct time. Simply changing FROM ubuntu:xenial to FROM ubuntu:bionic caused the error to appear causing the time to be wrong.

100% CPU usage

When starting a fresh container, I get a 100% CPU usage by kodi-x11 --standalone (as measured by htop.

Kodi is unusable: most of the time it is frozen, then unfreezes for a short amount of time (to freeze back again).

The previous standalone version did not have any problems (Ubuntu 18.04.2, Intel Skylake, 8 GB memory). This is just to highlight the fact that it is likely a misconfiguration on my side (and not a hardware performance limitation)

:leia tag not found on docker hub

When pulling from docker hub leia tag is not a valid image

sudo systemctl status startKodi.service 
Warning: The unit file, source configuration file or drop-ins of startKodi.service changed on disk. Run 'systemctl daemon-reload' to reload units.
● startKodi.service - Dockerized Kodi
     Loaded: loaded (/etc/systemd/system/startKodi.service; disabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Sat 2021-02-27 01:49:55 UTC; 2s ago
    Process: 20713 ExecStartPre=/usr/bin/docker pull erichough/kodi:leia (code=exited, status=1/FAILURE)

Feb 27 01:49:54 hutchison-media systemd[1]: Starting Dockerized Kodi...
Feb 27 01:49:55 hutchison-media docker[20713]: Error response from daemon: manifest for erichough/kodi:leia not found: manifest unknown: manifest `unknown`

Matrix broke alot of addons so we would like to have an 18.9 version

why different images for alsa and pulseaudio?

Looks quite well, your project!

I am a bit confused why you provide different images for either pulseaudio or alsa sound?
The job could be done within one image. If you need a differentiation for your internal setup, you can look for environment variable PULSE_SERVER. If present, use pulseaudio, otherwise use alsa.

In general, pulseaudio can be provided over tcp or with shared unix socket. (x11docker shares the socket since v3.9.7.3). Either way needs environment variable PULSE_SERVER.

I think it is wise to reduce complexity on user side.

New syntax --wm=none

Please note that x11docker release v5.5.0 changed the syntax for option --wm.
The argument is optional now. That makes = mandatory for --wm=none.
Your current command example in README.md with --wm none will fail.

Crash after entering Settings/System/Audio and Settings/System/Input

The UI crashes when I try to enter those two menu points.
Sometimes it only freezes for like 15s, sometimes forever and I have to restart the container. Any ideas about this?

What I see in the container log:

image

The command I use to start the container:

x11docker --xorg                                 \
            --pulseaudio                           \
            --gpu                                  \
            --homedir /ssd/kodi    \
            -- -v /ssd/kodi/media:/media:ro -- \
            erichough/kodi

@ehough Any ideas about this?

No emulators for retrogaming

Hi there,

thans for the nice image!

Though packages are missing for retro gaming that were added with kodi 18.
So you can't play any games currently, just profiles are available but no emulator cores.

Can those packages please be added to the image /apt install?

Thanks!

grafik

kodi-game-libretro-fbalpha
kodi-game-libretro-fbalpha2012
kodi-game-libretro-fuse
kodi-game-libretro-gambatte
kodi-game-libretro-prboom
kodi-game-libretro-stella
kodi-game-libretro-tgbdual
kodi-game-libretro-vba-next
kodi-game-libretro-virtualjaguar

I can also send a PR if preffered

--homedir is used but it is nowhere defined

The readme file mentions the following example using --homedir

$ x11docker --xorg                                 \
            --pulseaudio                           \
            --gpu                                  \
            --homedir /host/path/to/kodi/home      \
            -- -v /host/path/to/media:/media:ro -- \
            erichough/kodi

I have searched a lot but I couldn't find any documentation for option --homedir

I am especially asking this as I want to make use of docker volumes instead of hardcoded host paths.

Lots Of Kodi Errors Are Being Generated In /root/

Just had a look at the Docker container error log in Portainer and found that there is an error being generated almost twice a second for the Kodi container in /root/.

Example output of error log:

2018-08-13T17:50:30.502870934Z Crash report available at /root/kodi_crashlog-20180813_175030.log


2018-08-13T17:50:48.746859336Z ERROR: Unable to create GUI. Exiting

SSL

Hi,

i´ve got a problem with an addon (IPTV) in Kodi.
I get the error "We failed to reach a server. [SSL:CERTIFICATE_VERIFY_FAILED]

Tried looking into the container under /usr/share/kodi/system/certs/'.
Folder 'certs' is missing, so does cacert.pem

Could this be the cause?

I would appreciate your help, as i am fairly new to docker.
How can i add 'cacert.pem' to be persistent?

thanks!

Connection failure at startup

Starting a fresh image systematically yields the following non-blocking error (Kodi starts correctly)

---> starting Kodi with command: kodi-standalone
Connection failure: Connection refused
pa_context_connect() failed: Connection refused

Do we really need x11docker? (or how to use it with wsl2 on windows)

My setup:

All I have to start within my wsl2 (for me it's ubuntu 20.04):

docker run -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR -e PULSE_SERVER=$PULSE_SERVER -v /tmp/.X11-unix:/tmp/.X11-unix -v /mnt/wslg:/mnt/wslg ehough/docker-kodi

  • As said this opens kodi on windows quite natevely (running within an docker container on wsl) - no cygwinX, x11docker or anything
    • disclaimer: you'll need a newer windows10 (and maybe newer driver), read the microsoft-article I supplied

What I want to do with this setup:

  • addon development without messing with my OS

I didn't try it on linux for now, but I think docker run -e DISPLAY=$DISPLAY ... should also work on linux this way ...

What's the point with this issue?

  • Maybe add an entry for wsl2 in the readme (I could make a PR, if you wish)
  • Why use x11docker, if a more or less simple "docker run" could do the same?

macos version

i'm sure there's far more to this than i can comprehend, but i assume there will never be a macos (or windows, for that matter) version of docker headful kodi, will there?

which stinks, because this would be perfect for my needs.

Kodi Services Port Not Forwarded

Hi,

I am new to Docker (although proficient in a Linux environment), so please excuse me if this is a daft question.

I set this container up on my Ubuntu Desktop (18.04 running Wayland) which is running the latest version of Docker.

I have added this container to my Docker stack using the below Docker Compose settings:

  kodi:
   image: erichough/kodi:latest
   container_name: kodi
   restart: always
   ports:
    - target: 5634
      published: 5634
      protocol: tcp
      mode: host

the command that I am using to run Kodi is as follows:

x11docker --home --hostdisplay --pulseaudio --gpu --silent -- "-v /media/daniel:/media:ro" erichough/kodi

When I set Kodi to listen on port 5634 for remote control (and have "Allow control from other systems" checked), I cannot seem to be able to get a route through to the Kodi instance.

I am sure this may be trivial, but this is the last hurdle in getting my Kodi instance fully Dockerized.

Thanks in advance!

Add support for PVR clients

At the moment, you can not use PVR backends like e.g. MythtTV to watch live TV or TV recordings as the PVR client add-ons are not available in kodi.

Please also install the kodi-pvr-* packages to add support for PVR backends. (In my case, I am interested in kodi-pvr-mythtv).

See also: https://kodi.wiki/view/MythTV_PVR

[Discussion] Ideas / Improvements / In-Use

Hello, thanks for this project. I'm using since a while now and pretty happy with it.

I thought to open a issue for discussion and sharing ideas to improve the project.
Myself having some dockerfile changes (and custom docker image), that I wanted to share, maybe the one or other might sense to be picked up by the project by default.

new syntax for docker run options

Hello Eric,

From your README.md:

Note that the optional argument passed after --, which defines additional arguments to be passed to docker run, needs to be enclosed in quotes.

I just want to note that x11docker allows a new syntax without "quotes" for docker run options. (Old syntax with "quotes" is still valid).

You can provide docker run options between two --:
x11docker --gpu -- -v /media:/media:ro -- erichough/kodi

(docker also allows -- ahead of image name. This makes the syntax of x11docker compatible to docker.)

Kodi 18?

I installed the package and it's still 17.6?

kodi cpu cycling and video intermittent

i'm seeing an odd problem on my install, running as a service:

ExecStart=/usr/bin/x11docker --xorg --wm=NONE --vt=5 --pulseaudio --gpu --clipboard --homedir /home/htpc/kodi -- -v /home/media:/media:ro -- erichough/kodi

playing regular video from files plays for 8 seconds and then freezes, but never restarts. network traffic is low.

live OTA TV plays for 8 seconds and then pauses for 10-12 in a very regular cycle. the CPU of kodi.bin cycles simultaneously from <5% to 100%+ (of 400% for 4 cores), but the surprising thing is that it's when the CPU is high that the video plays, and when it's low the video stops. the cpu goes up and video works for 8 seconds, then the cpu goes down to idle and the video stops (with the '100' buffering progress showing) for 10-12 seconds.

(the tvheadend install is working fine, as i can simultaneously play uninterrupted video from that same channel on the live tv viewer on a remote machine on port 9981.)

any ideas as to where to start?

ubuntu 20.04.1 LTS
docker 20.10.5, build 55c4c88
kodi 19.0.0 (erichough/kodi latest)
tvheadend 4.3-1940~gfe0e5f1f9 HTSP v35
GPU mesa DRI intel hd 4600
i5 4 core

Bump Kodi to 18.5

Kodi 18.5 is out for a while.
Also the docker hub image is not updated in the last 5 months and is still in Kodi 18.3.

Guide for lightweight installation?

Any chance you could add a guide how to install the smallest possible OS that supports this?
Maybe ubuntu mini based?
Exactly what packages do i need to install after base installation?

Guide for Dummies (like me ^^)

Hi Eric! Great work! I appreciate it a lot!

Could you please make a little 5 to 10 commands setup guide to get your stuff to work on some popular linux distros? This would be great :D

I've done something like the following commands for my setup onto Ubuntu 18.04 LTS.

# install docker and git
sudo apt-get update && sudo apt-get install -y docker.io git
sudo usermod -aG docker $USER
reboot

# install x11docker
cd ~
git clone https://github.com/mviereck/x11docker
sudo cp x11docker/x11docker* /usr/bin/
sudo /usr/bin/x11docker --install

# pull the latest docker image
docker pull erichough/kodi:latest

# create dockerized kodi system service definition (you need to play a bit around with the settings of the [service] section to get this how you need it)
sudo nano /etc/systemd/system/kodi.service
================================
[Unit]
Description=Dockerized Kodi
Requires=docker.service
After=network.target docker.service

[Service]
# Pulling the docker image before every service startup is not required as we've already pulled the image once. This also allows to fix the kodi-docker version, but also avoids that updates are pulled automatically.
#ExecStartPre=/usr/bin/docker pull erichough/kodi
ExecStart=/usr/bin/x11docker --xorg --pulseaudio erichough/kodi
# I've decided to disable the restart option as long as I need to make changes to the service as kodi will always restart when you try exit it. You can enable this option if you got everything set up.
#Restart=always
KillMode=process

[Install]
WantedBy=multi-user.target
================================

# enable the kodi service, so it starts up automatically at boot
sudo systemctl daemon-reload && sudo systemctl enable kodi
reboot

# the dockerized kodi should start automatically after the reboot

I've already tested this approach, so you could put it to your github wiki or something like that ;)

Best wishes
Marco

Tutorial to install

Hi,

I have a NUC8i3BEH with proxmox.

I wish to install kodi in docker in proxmox, to use my NUC with kodi and others virtual machines in proxmox.

How can i do that?

Please can you make a better instruction in readme?

How can i install wayland? for example?

Too complicated for me

Please

Thanks

Playing DVD

How do I run x11docker so that kodi can either:

  • play dvds in the drive manually.
  • automatically play dvds when I close the dvd drawer.

No VAAPI Intel GPU Acceleration

I don't get gpu acceleration working. I have an Intel GPU which supports x264 hardware decoding. Is there maybe another package missing for this?

I see an error after start:

Failed to open VDPAU backend libvdpau_va_gl.so: cannot open shared object file: No such file or directory

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.