velociraptor
Velocidex Velociraptor server running on docker - https://github.com/Xboarder56/velociraptor-docker
1.8K
GitHub Repository: github.com/Xboarder56/velociraptor-docker
Run the Velocidex Velociraptor server in a container with sensible defaults, HTTPS, and prebuilt client repacks.
linux/amd64, linux/arm648000 (client/ingest), 8889 (GUI), 8001 (gRPC API), 8003 (Prometheus)/velociraptor to persist config, keys, artifacts, and repacked clientsOn start, the container prints a small build banner (version, arch, base image, git commit, build date) so you can confirm what you pulled.
docker run -it --rm \
-p 8000:8000 -p 8889:8889 -p 8001:8001 -p 8003:8003 \
-v $PWD/velodata:/velociraptor \
xboarder56/velociraptor:latest
Open https://localhost:8889 (accept the self-signed cert) and log in with the bootstrap credentials below (you should change them right away).
These variables are read at container start—no image rebuilds needed.
| Variable | Purpose | Default |
|---|---|---|
VELOX_DEFAULT_USER | Initial GUI admin username | admin |
VELOX_DEFAULT_PASSWORD | Initial GUI admin password | changeme |
VELOX_DEFAULT_USER_ROLE | Role for the bootstrap user | administrator |
| File System | ||
VELOX_FILESTORE_DIRECTORY | Root of Velociraptor filestore (collections, uploads) | /velociraptor/file_store |
VELOX_CLIENT_DIR | Directory where repacked clients are stored | /velociraptor/client_bundles} |
| Client/Frontend Configuration | ||
VELOX_FRONTEND_HOSTNAME | Public hostname for clients (builds client URL) | localhost |
VELOX_FRONTEND_PORT | Public-facing port for clients (builds client URL) | 8000 |
VELOX_FRONTEND_SERVER_SCHEME | Public scheme (https/http) for client URLs | https |
VELOX_FRONTEND_SERVER_URL | Full override for the client URL (e.g., https://ingest.example.com/) | derived from components |
VELOX_SERVER_URL (legacy) | Alias for VELOX_FRONTEND_SERVER_URL. Use new variable. | n/a |
| GUI/Admin Configuration | ||
VELOX_GUI_HOSTNAME | Public hostname for the admin GUI (builds GUI URL) | localhost (or client host) |
VELOX_GUI_PORT | Public-facing port for the admin GUI (builds GUI URL) | 8889 |
VELOX_GUI_SCHEME | Public scheme (http or https for GUI URL | https |
VELOX_GUI_URL | Full override for the GUI URL (e.g., https://admin.example.com/app/index.html) | derived from components |
| Internal Ports | ||
VELOX_API_PORT | gRPC API port | 8001 |
VELOX_MONITORING_PORT | Metrics port | 8003 |
| Logging | ||
VELOX_START_SERVER_VERBOSE | true to enable verbose (-v) server logs | (off) |
VELOX_LOG_DIR | Where component logs write inside container | . |
VELOX_DEBUG_DISABLED | Disable DEBUG in component logs | true |
Persistent paths (mount a volume):
/velociraptor/server.config.yaml — server config (auto-generated)/velociraptor/client.config.yaml — client config/velociraptor/client_bundles/ — repacked client binaries (.deb/.rpm/.exe/.msi)This overrides the default, which is to run with verbose (DEBUG) logs.
docker run -it --rm \
-p 8000:8000 -p 8889:8889 -p 8001:8001 -p 8003:8003 \
-v $PWD/velodata:/velociraptor \
-e VELOX_DEFAULT_USER=admin -e VELOX_DEFAULT_PASSWORD='S3cure!' \
-e VELOX_START_SERVER_VERBOSE=false \
xboarder56/velociraptor:latest
docker run -it --rm \
-e VELOX_FRONTEND_HOSTNAME=velociraptor.example.com \
-e VELOX_FRONTEND_PORT=443 \
-e VELOX_FRONTEND_SERVER_SCHEME=https \
-p 443:8000 -p 8889:8889 \
-v $PWD/velodata:/velociraptor \
xboarder56/velociraptor:latest
docker run -it --rm \
-e VELOX_FRONTEND_SERVER_URL=https://ingest.example.com:8000/ \
-e VELOX_GUI_URL=https://admin.example.com:8889/ \
-p 8000:8000 -p 8889:8889 \
-v $PWD/velodata:/velociraptor \
xboarder56/velociraptor:latest
services:
velociraptor:
image: xboarder56/velociraptor:latest
restart: unless-stopped
environment:
VELOX_DEFAULT_USER: admin
VELOX_DEFAULT_PASSWORD: "S3cure!"
VELOX_FRONTEND_HOSTNAME: velociraptor.example.com
VELOX_START_SERVER_VERBOSE: "false"
ports:
- "8000:8000" # client/ingest
- "8889:8889" # GUI
- "8001:8001" # gRPC API
- "8003:8003" # Metrics
volumes:
- ./velodata:/velociraptor
/velociraptor/client_bundles/ with your server URL.GUI is ready to handle TLS requests on https://localhost:8889/Frontend is ready to handle client TLS requests at https://localhost:8000/After startup, check ./velodata/client_bundles/ for repacked binaries:
.deb and .rpm packages for amd64 and arm64.exe and .msiIf a specific upstream client binary isn’t available, the repack step is skipped (you’ll see a log message).
VELOX_USER / VELOX_PASSWORD on first run.[DEBUG] FlowStorageManager housekeeping run?VELOX_START_SERVER_VERBOSE=true (adds -v). Remove it to suppress DEBUG.-p 443:8000 and set VELOX_FRONTEND_PORT=443.:latest — most recent successful build:<velociraptor-version> — e.g. :0.76.5. Floats to the latest re-release for that upstream patch.:<minor> — e.g. :0.76. Floats across patch releases within that minor.:sha-<short> — e.g. :sha-abc1234. Commit-pinned reproducible reference.This repo uses two GitHub Actions workflows:
upstream-check.yml runs daily. It polls the Velocidex release feed and, if it sees a newer release or if upstream re-published binaries for the current version (with new sha256s), opens a PR bumping versions.env + binaries.lock. For platforms upstream hasn't published yet for the latest release, the workflow walks back through prior releases and pins those assets to the most recent release that does include them.build-publish.yml runs on tag pushes matching v* and on manual dispatch. It:
scripts/ci-image-validation.sh against it (server starts, GUI responds, a repacked Linux client makes contact).linux/amd64, linux/arm64) buildx build and pushes to Docker Hub with provenance + SBOM attestations.To cut a release:
Review and merge the PR from upstream-check.
Tag the merge commit with the value of VELOX_VERSION from versions.env (optionally suffixed with -<IMAGE_REVISION> when IMAGE_REVISION > 1):
git tag v0.76.8 # first revision
# or
git tag v0.76.8-2 # subsequent re-release of the same upstream version
git push --tags
Required Docker Hub secrets on the repo: DOCKERHUB_USERNAME, DOCKERHUB_TOKEN.
This repository is a fork of weslambert/velociraptor-docker, originally created by Wes Lambert.
It aims to maintain compatibility with the latest Velocidex Velociraptor releases while providing additional configuration options and deployment improvements for Docker environments.
All credit for the foundational work goes to Wes Lambert — this fork primarily adds quality-of-life enhancements, updated configurations, and maintenance updates.
Maintained by: Xboarder56
Upstream project: Velocidex Velociraptor
Content type
Image
Digest
sha256:1f7d6a4b3…
Size
267.2 MB
Last updated
about 2 months ago
docker pull xboarder56/velociraptor:sha-01f02c6