Skip to main content

Jskom is a web based LysKOM client written in Javascript

Project description

jskom is a web based LysKOM client written in Javascript. It comes with a Python web app for configuring and serving the Javascript files.

jskom uses httpkom for communication with the LysKOM server.

The source code can be found at:

Packages are published on PyPI:

Docker images are published on Docker Hub:



For required Python packages, see requirements.txt. Install them with:

$ pip install -r requirements.txt

For running the tests from the Makefile in a console, you need PhantomJS. You can still run the tests in a regular browser if you want. (If you use Homebrew on OS X, you can install it with ‘brew install phantomjs’.)

For information: The jskom tests uses the Mocha framework ( and mocha-phantomjs ( Both are included with jskom. For mocha-phantomjs to work, mocha.js had to be patched to use a real diff library:

require.register("browser/diff.js", function(module, exports, require){
  module.exports = JsDiff; // this row was added


Default port is 5000.


$ make run-debug-server


Simple example:

$ docker run -ti --name=jskom --net=host osks/jskom

More complete:

$ docker run -d --name=jskom --net=host --restart=always \
    -v /path/to/my-httpkom-config.cfg:/httpkom.cfg \
    -v /path/to/my-jskom-config.cfg:/jskom.cfg \


Building a dev docker image

docker build -f -t osks/jskom:dev --no-cache .
docker login  # username and access token for password
docker push osks/jskom:dev

Preparing a release

On master:

  1. Update and check

  2. Increment version number and remove +dev suffix IN BOTH AND jskom/!

  3. Test manually by using jskom.

  4. Commit, push.

  5. Tag (annotated) with v<version> (example: v0.1) and push the tag:

    git tag -a v0.1 -m "Version 0.1"
    git push origin v0.1
  6. Build PyPI dist: make dist

  7. Push to Test PyPI: twine upload --repository testpypi dist/* and check .

  8. Push to PyPI: twine upload dist/* and check .

  9. Add +dev suffix to version number, commit and push.

  10. Github release: Go to and draft a new release. Select tag and set title to “Version <version>”, and then publish the release.

  11. Docker image:

    docker build -f Dockerfile -t osks/jskom:v<version> --no-cache .
    docker login  # username and access token for password
    docker push osks/jskom:v<version>


Install and update release tools with:

pip install --upgrade setuptools wheel pip twine

Twine is used for pushing the built dist to PyPI. The examples in the release process depends on a .pypirc file with config for the pypi and testpypi repositories.

Example of .pypirc:

username = __token__
password = pypi-...

repository =
username = __token__
password = pypi-...


Oskar Skoog <>

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jskom-0.26.tar.gz (686.3 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page