KoKo
English · 简体中文
KoKo is a connector of JumpServer for secure connections using character protocols, supporting SSH, Telnet, Kubernetes, SFTP and database protocols
Koko is implemented using Golang and Vue, and the name comes from a Dota hero Kunkka。
Features
- SSH
- SFTP
- Web Terminal
- Web File Management
Installation
- Clone the project
git clone https://github.com/jumpserver/koko.git
- Build the application
Build the application in the koko project.
make
If the build is successful, the build folder will be automatically generated under the project, which contains compressed packages of various architectures of the current branch.
Usage (for Linux amd64 server)
- Copy the compressed package file to the corresponding server
Build the default compressed package through make, the file name is as follows:
koko-[branch name]-[commit]-linux-amd64.tar.gz
- Unzip the compiled compressed package
tar xzvf koko-[branch name]-[commit]-linux-amd64.tar.gz
- Create the file
config.yml, refer to config_example.yml
touch config.yml
- run koko
cd koko-[branch name]-[commit]-linux-amd64
./koko
Setup development environment
- Run the backend server
$ cp config_example.yml config.yml # 1. Prepare the configuration file
$ vim config.yml # 2. Modify the configuration file, edit the address and bootstrap key
CORE_HOST: http://127.0.0.1:8080
BOOTSTRAP_TOKEN: PleaseChangeMe <change to the same as core>
$ make run # 3. Run; the prebuilt libghostty-vt is downloaded on first use
- Run the ui frontend
$ cd ui
$ yarn install
$ npm run serve
Docker
To build multi-platform images using Docker Buildx, you need to install Docker version 19.03 or higher and enable the Docker Buildx plugin.
make docker
For local development and testing, export the bootstrap token used by JumpServer Core and start Koko with Docker Compose:
docker compose up --build
By default, Koko connects to http://host.docker.internal:8080, exposes SSH on port 2222, HTTP on port 5050, and the Web Proxy on port 5001. Set CORE_HOST, KOKO_SSH_PORT, KOKO_HTTP_PORT, or KOKO_WEB_PROXY_PORT to override them. The Web Proxy accepts all target hosts after establishing a session with the existing Koko connect ticket and Core connection token. Unauthenticated HTTP and CONNECT requests receive 407; the deployment host allowlist has been removed. Established Web sessions use the shared Koko session registry for permission checks and administrative tasks.
Acknowledgments
This project depends on usql for database connections. We appreciate their support.