The Wayback Machine - https://web.archive.org/web/20200608065623/https://github.com/kimchi-project/kimchi
Skip to content
An HTML5 management interface for KVM guests
JavaScript Python CSS M4 Shell Makefile Other
Branch: master
Clone or download

Latest commit

alinefm Fix #1298: Use ipaddress instead of deprecated ipaddr
Signed-off-by: Aline Manera <aline.manera@gmail.com>
Latest commit 5e06451 Mar 28, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Add Github Actions Jan 21, 2020
build-aux Python3: Update package dependencies Jul 10, 2019
contrib Bug fix: Proper set python directory on Fedora spec file Dec 27, 2019
control Set default value for partition available parameter Jan 8, 2020
distros.d Update remote ISOs URLs Dec 27, 2019
docs Fix #1298: Use ipaddress instead of deprecated ipaddr Mar 28, 2020
m4 Use Autoconf macros AC_PROG_MKDIR_P and MKDIR_P Jan 29, 2014
model Fix #1298: Use ipaddress instead of deprecated ipaddr Mar 28, 2020
po Update po files Jul 15, 2017
tests Fix #1298: Use ipaddress instead of deprecated ipaddr Mar 28, 2020
ui Issue #1256: Always show the link to access guest via VNC or Spice Jul 10, 2019
xmlutils Fix #1298: Use ipaddress instead of deprecated ipaddr Mar 28, 2020
.flake8 Add pre-commit configuration May 15, 2019
.gitignore Remove *deps.list files as they are auto generated on build Dec 4, 2019
.pre-commit-config.yaml Python3: Update package dependencies Jul 10, 2019
ABOUT-NLS build: Add gettext i18n support Jul 30, 2013
API.json Use jsonschema Draft3Validator Dec 10, 2019
AUTHORS Update ChangeLog and po files for 2.0 release Dec 17, 2015
CONTRIBUTE.md Add mailing list information. Feb 13, 2014
COPYING Import term.js to Kimchi project Feb 15, 2016
COPYING.ASL2 burnet: relicense source tree Jun 20, 2013
COPYING.LGPL Update back-end license to LGPLv2.1 Oct 5, 2015
ChangeLog Update VERSION and ChangLog for Kimchi 3.0.0 Dec 27, 2019
INSTALL build: Add basic autotools infrastructure Jul 30, 2013
Makefile.am Issue #1264 : Libvirt check should only look for socket Dec 19, 2019
README.md Display "README" with markdown style on Github Oct 6, 2014
VERSION Update VERSION and ChangLog for Kimchi 3.0.0 Dec 27, 2019
__init__.py Switch to Python 3 May 15, 2019
autogen.sh added with_spice_web_client to config Jul 3, 2019
check_spec_errors.sh Issue #962: Suggestion to check spec guidelines Oct 6, 2016
check_ui_code_errors.sh Improve UI error codes checking Jun 17, 2016
config.py.in OpenSUSE 15.1: Use localstatedir when runstatedir is not available Dec 26, 2019
config.rpath build: Add basic autotools infrastructure Jul 30, 2013
configure.ac Use the correct python lib directory to install python libraries Dec 4, 2019
dependencies.yaml Fix #1298: Use ipaddress instead of deprecated ipaddr Mar 28, 2020
disks.py Switch to Python 3 May 15, 2019
distroloader.py Switch to Python 3 May 15, 2019
i18n.py Switch to Python 3 May 15, 2019
imageinfo.py Switch to Python 3 May 15, 2019
iscsi.py Switch to Python 3 May 15, 2019
isoinfo.py Add SLES 15 Mar 28, 2020
kimchi.conf Add a configuration option for disabling taking a screenshot May 2, 2019
kvmusertests.py Issue #1224 : kvmusertest.py: hardcoded path prevents kimchi module f… Dec 19, 2019
mockmodel.py Bug fix: Use encoding option of ET.tostring() to get XML as string Aug 27, 2019
network.py Fix #1298: Use ipaddress instead of deprecated ipaddr Mar 28, 2020
osinfo.py Fix #1285: Use distro.linux_distribution (python3) Dec 4, 2019
requirements-FEDORA.txt Fix #1298: Use ipaddress instead of deprecated ipaddr Mar 28, 2020
requirements-OPENSUSE-LEAP.txt OpenSUSE 15.1: Install pyparted via pip Dec 26, 2019
requirements-UBUNTU.txt Fix #1298: Use ipaddress instead of deprecated ipaddr Mar 28, 2020
requirements-dev.txt Python3: Update package dependencies Jul 10, 2019
root.py Switch to Python 3 May 15, 2019
scan.py Switch to Python 3 May 15, 2019
screenshot.py Switch to Python 3 May 15, 2019
serialconsole.py Switch to Python 3 May 15, 2019
setup.cfg Add pre-commit configuration May 15, 2019
template.conf s390x specific changes to support storage path and storage pool as disk. Nov 10, 2016
utils.py Fix #1298: Use ipaddress instead of deprecated ipaddr Mar 28, 2020
vmtemplate.py Switch to Python 3 May 15, 2019

README.md

What is Kimchi?

Kimchi is an HTML5 based management tool for KVM. It is designed to make it as easy as possible to get started with KVM and create your first guest.

Kimchi runs as a Wok plugin.

Kimchi manages KVM guests through libvirt. The management interface is accessed over the web using a browser that supports HTML5.

Getting Started

The latest packages available can be found at https://github.com/kimchi-project/kimchi/releases/latest

If you prefer to install Kimchi from source code, follow the steps below!

Install Dependencies

First of all, make sure to Wok installed in your system.

To add Kimchi plugin, please make sure to have all the dependencies installed before starting up the wokd service.

Fedora

Development Dependencies

sudo dnf install -y gcc make autoconf automake git python3-pip python3-requests python3-mock gettext-devel rpm-build libxslt gcc-c++ python3-devel python3-pep8 python3-pyflakes rpmlint python3-pyyaml
sudo -H pip3 install -r requirements-dev.txt

Runtime Dependencies

sudo dnf install -y python3-configobj python3-lxml python3-magic python3-paramiko python3-ldap spice-html5 novnc qemu-kvm python3-libvirt python3-pyparted python3-ethtool python3-pillow python3-cherrypy python3-libguestfs libvirt libvirt-daemon-config-network iscsi-initiator-utils libguestfs-tools sos nfs-utils
sudo -H pip3 install -r requirements-FEDORA.txt

Debian / Ubuntu

Development Dependencies

sudo apt install -y gcc make autoconf automake git python3-pip python3-requests python3-mock gettext pkgconf xsltproc python3-dev pep8 pyflakes python3-yaml
sudo -H pip3 install -r requirements-dev.txt

Runtime Dependencies

sudo apt install -y python3-configobj python3-lxml python3-magic python3-paramiko python3-ldap spice-html5 novnc qemu-kvm python3-libvirt python3-parted python3-guestfs python3-pil python3-cherrypy3 libvirt0 libvirt-daemon-system libvirt-clients nfs-common sosreport open-iscsi libguestfs-tools libnl-route-3-dev
sudo -H pip3 install -r requirements-UBUNTU.txt

openSUSE LEAP

Development Dependencies

sudo zypper install -y gcc make autoconf automake git python3-pip python3-requests python3-mock gettext-tools rpm-build libxslt-tools gcc-c++ python3-devel python3-pep8 python3-pyflakes rpmlint python3-PyYAML python3-distro
sudo -H pip3 install -r requirements-dev.txt

Runtime Dependencies

sudo zypper install -y python3-configobj python3-lxml python3-magic python3-paramiko python3-ldap spice-html5 novnc qemu-kvm python3-libvirt-python python3-ethtool python3-Pillow python3-CherryPy python3-libguestfs parted-devel libvirt libvirt-daemon-config-network open-iscsi guestfs-tools nfs-client gcc python3-devel
sudo -H pip3 install -r requirements-OPENSUSE-LEAP.txt

Build and Install

sudo ./autogen.sh --system
make

# Optional if running from the source tree
sudo make install

# Or, to make installable .deb packages
make deb

# Or, for RPM packages
make rpm

If you are looking for stable versions, there are some packages available at https://github.com/kimchi-project/kimchi/releases

Testing

make check-local
sudo make check

After all tests are executed, a summary will be displayed containing any errors/failures which might have occurred.

Usage

Connect your browser to https://localhost:8001. You should see a screen like:

Wok Login Screen

By default, wok uses PAM to authenticate users so you can log in with the same username and password that you would use to log in to the machine itself. Once logged in you will see a screen like:

Kimchi Guest View

This shows you the list of running guests including a live screenshot of the guest session. You can use the action buttons to shutdown the guests or connect to the display in a new window.

To create a new guest, click on the "+" button in the upper right corner. In Kimchi, all guest creation is done through templates.

You can view or modify templates by clicking on the Templates link in the top navigation bar.

The template screen looks like:

Kimchi Template View

From this view, you can change the parameters of a template or create a new template using the "+" button in the upper right corner.

To create a template, you need an ISO or image file on your host or use a remote one. If you are willing to use your own ISO, please copy it to out of box storage pool (default path is: /var/lib/kimchi/isos).

Troubleshooting

Server access

Please, check Wok configuration if you are getting problems to access Wok server.

Missing Virtualization tab

If you follow all the steps to get Wok and Kimchi running and even though you can not see the virtualization tab, it means something went wrong.

You can get more details about it when running wok with --environment=dev.

sudo python3 /usr/bin/wokd --environment=dev

There will be a message like:

Failed to import plugin wok.plugins.kimchi.Kimchi, error: XXX

NFS storage pool

Please, check the NFS export path permission is configured like below:

  1. Export path need to be squashed as kvm gid and libvirt uid: /my_export_path *(all_squash,anongid=, anonuid=,rw,sync)

    So that root user can create volume with right user/group.

  2. Set libvirt user and kvm group for export path, in order to make sure all mapped user can get into the mount point.

Contributing to Kimchi Project

There are a lof of ways to contribute to the Kimchi Project:

Find more information about Wok Project at https://github.com/kimchi-project/kimchi/wiki

You can’t perform that action at this time.