설치

플랫폼에 맞는 설치 방법을 고르세요. Dalfox는 별도로 관리할 런타임 없이 단일 실행 파일 하나로 배포됩니다.

Homebrew (macOS & Linux)

brew install dalfox

Homebrew formula는 최신 안정 버전을 따라갑니다. 출처: formulae.brew.sh/formula/dalfox.

프로젝트 자체 tap은 같은 릴리스를 소스에서 빌드하며(그래서 Rust도 함께 설치됩니다), man 페이지와 셸 자동완성까지 설치합니다.

brew install hahwul/dalfox/dalfox

Snap (Ubuntu / Linux)

sudo snap install dalfox

Arch Linux (AUR)

AUR 헬퍼 사용(권장):

yay -S dalfox
# 또는
paru -S dalfox

AUR 패키지에서 직접 빌드:

git clone https://aur.archlinux.org/dalfox.git
cd dalfox
makepkg -si

Nix & NixOS

# 설치 없이 한 번만 실행
nix-shell -p dalfox

# Nix flakes: GitHub에서 최신 버전 실행
nix run github:hahwul/dalfox -- scan https://example.com

# 프로필에 설치
nix profile install github:hahwul/dalfox

Dalfox는 nixpkgs에 등록되어 있습니다. 최신 릴리스는 먼저 unstable에 올라오므로, 릴리스 사이 기간에는 위 flake 쪽이 nixpkgs보다 앞서 있습니다.

flake가 지원하는 시스템은 x86_64-linux, aarch64-linux, aarch64-darwin입니다. nixpkgs unstable이 x86_64-darwin을 제외했기 때문에 Intel macOS는 빠져 있으니, 아래의 macos-x86_64 릴리스 아카이브를 쓰세요.

이 flake가 고정한 nixpkgs 대신 사용자의 nixpkgs로 Dalfox를 빌드하려면 오버레이를 쓰세요. 시스템 flake에서는 이렇게 선언합니다.

# flake.nix
{
  inputs.dalfox.url = "github:hahwul/dalfox";

  outputs = { self, nixpkgs, dalfox, ... }@inputs: {
    nixosConfigurations.myhost = nixpkgs.lib.nixosSystem {
      specialArgs = { inherit inputs; };
      modules = [ ./configuration.nix ];
    };
  };
}

그리고 inputs를 전달받는 모듈에서 적용합니다.

# configuration.nix
{ pkgs, inputs, ... }:
{
  nixpkgs.overlays = [ inputs.dalfox.overlays.default ];
  environment.systemPackages = [ pkgs.dalfox ];
}

flake는 Dalfox 자체를 개발할 때 쓰는 셸도 제공합니다. Rust 툴체인과 just, 테스트 하네스가 필요로 하는 Crystal 런타임이 들어 있고 dalfox 바이너리는 포함하지 않습니다.

git clone https://github.com/hahwul/dalfox && cd dalfox
nix develop

direnv를 설치했다면 저장소의 .envrc 덕분에 direnv allow 한 번으로 같은 셸이 자동으로 활성화됩니다.

Docker

멀티 아키텍처 이미지(linux/amd64, linux/arm64)가 Docker Hub와 GitHub Container Registry에 올라갑니다. 바이너리는 /app/dalfox에 있고 이미지에 엔트리포인트가 없으므로 명령에 바이너리를 직접 지정하세요.

docker run --rm hahwul/dalfox:latest ./dalfox scan https://example.com

# 또는 GHCR에서
docker run --rm ghcr.io/hahwul/dalfox:latest ./dalfox scan https://example.com

/app이 이미지의 PATH에 없으므로 dalfox만 쓰면 실행되지 않습니다. URL 목록을 스캔하려면 파일을 컨테이너에 마운트하거나 -i로 파이프하세요.

docker run --rm -v "$PWD:/data" hahwul/dalfox:latest ./dalfox scan /data/urls.txt
cat urls.txt | docker run --rm -i hahwul/dalfox:latest ./dalfox scan

latest는 최신 릴리스입니다. 릴리스마다 v<major>.<minor>.<patch> 태그가 붙고, Docker Hub에는 v<major>.<minor>와 v<major> 태그도 붙습니다. ghcr.io/hahwul/dalfox:main은 main 브랜치를 따라갑니다.

Cargo (crates.io)

cargo install dalfox

Rust 1.93 이상이 필요합니다(크레이트의 rust-version). ~/.cargo/bin/dalfox에 빌드됩니다.

사전 빌드된 바이너리

github.com/hahwul/dalfox/releases에서 OS/아키텍처에 맞는 릴리스 아카이브를 내려받아 압축을 풀고, 바이너리를 PATH에 있는 경로(/usr/local/bin, ~/.local/bin 등)에 두면 됩니다.

릴리스마다 다음 빌드가 함께 올라갑니다.

  • macos-x86_64, macos-aarch64
  • linux-x86_64 (glibc), linux-x86_64-musl (정적 링크, Alpine·Docker·CI에 권장)
  • linux-aarch64 (glibc), linux-aarch64-musl (정적 링크)
  • windows-x86_64

아카이브 이름은 dalfox-v<version>-<platform> 형식이며, macOS와 Linux는 .tar.gz, Windows는 .zip입니다. Linux는 두 아키텍처 모두 .deb와 .rpm 패키지도 나오고, 모든 아카이브와 패키지에는 .sha256이 붙으며 checksum.txt도 함께 올라갑니다. 릴리스마다 CycloneDX SBOM(dalfox.cdx.xml)도 포함됩니다.

소스에서 빌드

git clone https://github.com/hahwul/dalfox
cd dalfox
cargo build --release
# 바이너리 경로: ./target/release/dalfox

Rust 1.93 이상(2024 edition)이 필요합니다. 없다면 rustup으로 설치하세요.

설치 확인

dalfox --version

dalfox 3.2.3 같은 한 줄이 출력되면 됩니다.

셸 자동완성

hahwul/dalfox Homebrew tap, AUR 패키지, .deb / .rpm 패키지, Nix flake로 설치하면 bash·zsh·fish 자동완성(과 dalfox(1) man 페이지)이 함께 설치되므로 따로 할 일이 없습니다.

코어 brew install dalfox formula, Snap, Docker, Cargo, 릴리스 아카이브, 소스 빌드처럼 다른 방법으로 설치했다면 직접 생성하면 됩니다.

dalfox completion bash > /etc/bash_completion.d/dalfox
dalfox completion zsh > "${fpath[1]}/_dalfox"
dalfox completion fish > ~/.config/fish/completions/dalfox.fish

powershell과 elvish도 지원합니다. 자세한 내용은 CLI 레퍼런스를 참조하세요.

도움말 보기

Dalfox는 clap을 쓰기 때문에 도움말을 언제든 볼 수 있습니다.

dalfox --help
dalfox scan --help

다음 단계

빠른 시작에서 첫 스캔을 실행해 보세요. 스캔 전에 기본값을 조정하고 싶다면 설정으로 넘어가세요.

ESC