$ account jumpserver
This repository contains the Docker packaging and optional Docker Swarm deployment recipes for JumpServer, an open-source bastion host / privileged access management system. It does not contain the JumpServer application source code; instead it composes upstream component images (core, koko, chen, web, kael) into a single all-in-one image and provides the runtime scripts to initialize and supervise them. The all-in-one deployment is explicitly a B/S web-only package and does not support client-related features. The core architecture is the allinone multi-stage Dockerfile, which copies runtime trees from each component image onto the core image, then uses Supervisor to run the Django core service, Koko (SSH/terminal access), guacd, Chen, Kael AI service, and the nginx web frontend. The entrypoint script prepares environment defaults, deterministically derives a service-to-service signing key from BOOTSTRAP_TOKEN when no explicit secret is supplied, migrates per-component data directories into a shared volume via symlinks, waits for database and Redis readiness, and runs the JumpServer schema migration before starting services. The swarm/ directory provides a separate deployment path using Docker Swarm stacks, external MySQL/Redis, healthchecks, and a one-shot init-db job. The code is generally careful within its narrow scope: database initialization is idempotent, local vs external dependency startup is handled cleanly, and the multi-stage image build is a non-trivial composition of separately published images. Maintenance appears active, and the build pipeline watches v5.* tags. Drift is medium: the GitHub Actions workflow uses the deprecated/archived actions/create-release@v1 action, image tags are mutable rather than digest-pinned, and a version string inside allinone/readme.txt lags behind the current default Dockerfile version. There are no tests, but this is deployment glue rather than application logic.