Pendora is a modular installation framework that transforms a standard Fedora Linux install into a penetration testing and security assessment VM — bringing Kali's toolset, workflows, and aesthetics to Fedora's modern Wayland, RPM/DNF, and systemd ecosystem.
$ git clone --branch master https://github.com/sec-moose/pendora && cd pendora && chmod +x install.sh upstreams/install-upstreams.sh && ./install.sh --all▊// architecture
Tooling, services, and configuration are organized into dedicated tiers — package lists, installer scripts, and dotfiles you can read, edit, and extend.
pkg-lists/
131 packages verified against official Fedora repos — base compilers, networking, sniffers, web discovery, reversing, and forensics.
pipx-lists/
11 offensive Python utilities in isolated environments, safe from system library conflicts.
upstreams/
Vendor installers, git clones, and Docker containers for enterprise suites.
zsh/
Interactive Zsh with autosuggestions, syntax highlighting, completions, and pentesting aliases.
// install
All three modes are tested and verified on Fedora Workstation VMs. Installing Sway never removes GNOME — pick your session at the GDM login screen.
./install.sh --basic (-b)Keeps your default Fedora GNOME desktop intact while deploying all pentest CLI tools (00–60), Pipx tools, Docker container suites, Zsh, Neovim/LazyVim, Alacritty, hostname, and wallpapers. No desktop/window manager changes.
./install.sh --sway (-W)Standalone Sway desktop with the Noctalia shell, fixed 1080p rendering, GNOME keyboard layout inheritance, focus opacity, and bidirectional SPICE clipboard sharing. Includes base packages, Zsh, Neovim, Alacritty, and wallpapers — not the full pentest toolkit. Native Fedora Sway RPMs, no COPR; Hack Nerd Font comes from its official GitHub release.
./install.sh --all (-a)Single-pass end-to-end deployment of everything in Basic plus the full Sway desktop stack (70-sway.list, dotfiles, screensharing portal services).
Start with an up-to-date Fedora Workstation VM, internet access, and a regular user with sudo permissions. Update with sudo dnf upgrade --refresh -y; reboot first if kernel or systemd packages changed. Never run sudo ./install.sh.
Inspect modules with ./install.sh --list and preview a full install with ./install.sh --all --dry-run. Full installation typically takes 15–30 minutes; watch for sudo prompts and credential cards. Large ZAP and Dev Tunnels downloads can look idle.
--yes automates installation and reboots on completion. Add --no-reboot to defer the reboot, then reboot manually to apply group and session changes. Use master or a release; the beta branch may receive script-breaking updates without notice.
// preview
Keep Fedora's GNOME with --basic, or deploy the dynamic Sway tiling desktop with --sway — both tested and verified on QEMU/KVM.
// about
Pendora is a modular installation framework and configuration template that transforms a standard Fedora Linux installation into a penetration testing and security assessment virtual machine — bringing the toolset, workflows, and aesthetics of Kali Linux to Fedora's modern ecosystem (Wayland, RPM/DNF, systemd).
Everything is organized into four modular tiers:
Native DNF RPMs (pkg-lists/) — 131 packages verified against official Fedora repos — base compilers, networking, sniffers, web discovery, reversing, and forensics.
Pipx Isolated Tools (pipx-lists/) — 11 offensive Python utilities in isolated environments, safe from system library conflicts.
Upstreams & Containers (upstreams/) — Vendor installers, git clones, and Docker containers for enterprise suites.
Shell & Look-and-Feel (zsh/) — Interactive Zsh with autosuggestions, syntax highlighting, completions, and pentesting aliases.
A single script, install.sh, deploys everything with three tested and verified modes: --basic (keeps GNOME, deploys all CLI tooling), --sway (adds the Sway tiling desktop with the Noctalia shell, Hack Nerd Font, and focus-based opacity — 100% native Sway RPMs, zero COPR; the font is downloaded upstream), and --all (everything in one pass). GNOME and Sway can be switched freely at the GDM login screen.
Containerized suites land ready on localhost: SysReptor reporting :8000, BloodHound CE :8080, and Portainer https://localhost:9443. Portainer auto-starts on boot; SysReptor and BloodHound are started on demand after reboot. BloodHound needs about 8 GB RAM. Target environment is a QEMU/KVM VM (baseline 4 vCPU / 4 GB / 25 GB; recommended 8 vCPU / 8 GB / 35–50 GB; ~11 GB install footprint, with 18–19 GB peak usage during installation).
Status: Beta — all three install modes verified on Fedora Workstation VMs, with continuous testing underway. Parts of the project were developed with AI assistance; some upstream modules execute vendor scripts directly — inspect all scripts before running, and use entirely at your own risk.
// dashboards
https://localhost:9443Complete the admin web setup within 5 minutes of first launch. Setup token: /opt/portainer/admin_setup.txt.
auto-starts after reboothttp://localhost:8000User: reptor · Password: /opt/sysreptor/admin_credentials.txt
start on demand after reboothttp://localhost:8080User: admin · Password: /opt/bloodhound/admin_credentials.txt · Needs about 8 GB RAM.
start on demand after rebootAfter reboot, start SysReptor and BloodHound through Portainer or run:
cd /opt/sysreptor/sysreptor/deploy && sudo docker compose up -d cd /opt/bloodhound && sudo docker compose up -d
Reset the SysReptor password with cd /opt/sysreptor/sysreptor/deploy && sudo docker compose exec app python3 manage.py changepassword reptor. BloodHound exit code 137 indicates an out-of-memory failure.
Pendora is provided "as is" without warranty of any kind. Some upstream modules fetch and execute vendor installation scripts directly — inspect all scripts before running them. Parts of this project were developed with AI assistance. Intended for authorized security testing and lab environments only.
// roadmap
Synced live from TODO.md in the repo — updates on GitHub show up here on their own, no republish needed.
## Bugfixes & Active Investigations
Sway VM Display Auto-Rescaling
1080p in sway/.config/sway/config). Note: dynamic resizing was attempted (7a77b8c) and reverted to 1080p (a73643d) — document why before retrying; see README "Known Issues".SPICE Clipboard Bridge & User-Session De-duplication
sway-spice-clipboard-bridge (currently launched both via Sway's exec autostart in sway/.config/sway/config and via systemd/user/sway-spice-clipboard-bridge.service). Standardize on a single lifecycle mechanism; a script-level flock singleton already makes duplicate instances exit immediately, so the current impact is a briefly spawned redundant process per session rather than SPICE socket contention.## Testing & Quality Assurance
Thorough Testing of Included Tools and Configurations
$PATH (e.g. nmap, tcpdump, wireshark, ffuf, hydra, john).netexec, impacket-* symlinks, /usr/local/bin/impacket launcher, certipy-ad, bloodhound-ce, sqlmap).rustscan, naabu, devtunnel, responder, msfconsole, /usr/share/wordlists/seclists).$mod+t, $mod+Shift+Arrows), Noctalia bar widgets, SPICE host/guest clipboard bridge, and Neovim LazyVim plugin bootstrap.Automated Post-Install Verification Harness (`./install.sh --test` / `--verify`)
/usr/local/bin wrappers, and checks HTTP health across the three local container ports (127.0.0.1:9443, 8000, 8080).## Tooling & Upstream Additions
ADWS Domain Dump (r4cken fork)
pipx, same git+https pattern as NetExec in pipx-lists/pipx-tools.list).Nuclei
upstreams/install-upstreams.sh (same channel as naabu/rustscan).Coercer
pipx — PyPI package coercer).Language Toolchain Gaps
golang) to pkg-lists/00-base.list ("Runtimes, Compilers & Build Tools"); decide whether Java / Node.js are in scope for offensive tooling before adding.Oh My Pi (omp)
upstreams/install-upstreams.sh (precedent: SysReptor remote installer, devtunnel binary).https://omp.sh/install)## Desktop Environment & UX Polish
Rofi Theme Customization
$mod+Shift+space).Noctalia Widgets & Bar Polish
tun0/wg0, IP address widget, system resource monitors).## Framework & Installer Improvements
Container Restart-Policy Decision (SysReptor / BloodHound)
restart: unless-stopped in the generated compose files so behavior matches Portainer's documented restart: always.SysReptor / BloodHound Start-on-Demand Documentation
./install-upstreams.sh sysreptor starts a stopped stack automatically; assets/TOOL_REFERENCE.md (dashboard table + "Manage all containers via Docker") now documents the post-reboot start commands (docker compose up -d) alongside the log commands.Cryptographic Checksum Verification (SHA-256) for Standalone Downloads
.sha256 sums) for GitHub release binaries (rustscan, naabu, Hack Nerd Font), Microsoft Dev Tunnels, and SysReptor installer before deploying to /usr/local/bin or executing under sudo.Modular Uninstall / Cleanup
./install.sh --clean or module removal option to safely un-stow configurations and purge unused cache files.Air-Gapped / Offline Deployment
$ pendora roadmap --todo | 15 open tasks · synced from TODO.md · 2026-10-14▊
// faq
The things people ask before running an unknown install script on a fresh VM.
?What exactly is Pendora?
A modular installation framework and configuration template that turns a standard Fedora Linux install into a full penetration testing and security assessment VM — Kali's toolset and workflows, running natively on Fedora's RPM/DNF, Wayland, and systemd ecosystem.
?Why was Pendora developed?
Honestly? I wanted a familiar environment. Kali is great, but I enjoy Fedora far more — and since my host runs Fedora with Hyprland, I wanted that same feeling in my pentest VM. Manually reinstalling every package after a fresh setup, with no snapshots or backups to fall back on, was exactly the problem Pendora solves. I also wanted to give something back to the open-source community — and somewhere around that point, the idea of Pendora was born.
?Who is Pendora made for?
Penetration testers and red teamers who want a complete assessment VM through a repeatable install; students and CTF players learning on professional tooling in an isolated QEMU/KVM sandbox; Fedora users who want Kali's toolset without leaving DNF, Wayland, and systemd behind; and homelab or blue-team folks who need the networking packages plus SysReptor and BloodHound CE on localhost.
?Do I need to wipe my Fedora install or dual-boot?
No. Pendora runs as a single script, ./install.sh, on top of an existing Fedora installation. Everything is organized into plain-text lists you can read and edit before running anything. It's built and tested for a QEMU/KVM VM — snapshot your VM and you can always roll back.
?Will installing Sway remove my GNOME desktop?
Never. Installing Sway adds a second session — GNOME stays exactly where it is. Switch between the two at the GDM login screen, any time.
?Which install mode should I pick?
--basic if you want to keep your GNOME desktop and just get the tooling (recommended). --sway for a standalone Sway/Noctalia desktop with base packages and shell/editor configuration — it does not install the complete pentest toolkit. --all combines Basic and Sway in a single pass.
?What are the system requirements?
Baseline: 4 vCPU, 4 GB RAM, 25 GB disk. Recommended: 8 vCPU, 8 GB RAM, 35–50 GB. The install footprint is roughly 11 GB, with 18–19 GB peak usage during installation. Use up-to-date Fedora Workstation in a virt-manager/QEMU/KVM VM with internet access. BloodHound CE needs about 8 GB RAM.
?What do I get running out of the box?
131 native Fedora RPMs, 11 Pipx-isolated Python tools (netexec, impacket, certipy-ad, bloodhound-ce, updog, sqlmap…), standalone upstream suites including Responder, and containers — SysReptor on http://localhost:8000, BloodHound CE on http://localhost:8080, Portainer CE on https://localhost:9443 — plus Kali-style Zsh, Alacritty, and Neovim/LazyVim. SysReptor and BloodHound need starting after reboot; Portainer auto-starts.
?Can I add my own tools?
Yes — that's the point. Edit package lists in pkg-lists/ and pipx-lists/, installers in upstreams/, and shell dotfiles in zsh/. Comment out a package line to skip it; deleting it from a list does not uninstall an existing tool. Use -c to select categories, --file for a custom list, --pipx for Python tools, or --docker for the engine and container suites. Edit them directly, or use the suggest-tool form on the tools page to open a pre-filled GitHub issue.
?Does Sway resize when I resize the VM viewer?
Not yet. Sway uses a configured 1080p desktop; dynamic SPICE viewer resizing remains under investigation. Use GNOME at the GDM login screen if you need automatic display resizing. Bidirectional host/guest clipboard sharing in Sway is resolved and verified; removing a redundant bridge launch is still planned.
?How should I prepare, and how long does installation take?
Snapshot and update your Fedora VM first with sudo dnf upgrade --refresh -y. Run as your regular user, never sudo ./install.sh. Review ./install.sh --list and ./install.sh --all --dry-run before installing. A full install typically takes 15–30 minutes, with sudo prompts and credential cards; large downloads can appear idle. --yes automates the run and reboots afterward unless --no-reboot is added.
?Are the new roadmap tools available yet?
Not yet: ADWS Domain Dump, Nuclei, Coercer, and Oh My Pi are planned additions. The automated --test / --verify harness, uninstall/cleanup, and offline deployment are also still planned. The roadmap checkboxes distinguish open tasks from completed work.
?Is it production-ready?
The project is in beta: all three install modes are verified on Fedora Workstation VMs, while wider tool and container testing continues. Use master or a published release; the beta branch is unstable and can receive script-breaking changes without notice. Parts of the project were developed with AI assistance, and some upstream modules execute vendor scripts directly — inspect everything before running, and use entirely at your own risk.
$ pendora faq --list | 13 entries · more in the README▊