Repository navigation
Release Process
Releases are built from tags. Pushing a tag starts two workflows:
- Release builds the CLI and web archives and publishes them on GitHub Releases.
- Docker builds and pushes the container image.
flowchart LR
T[git tag v2.4.x] --> R[Release workflow]
T --> D[Docker workflow]
R --> A[CLI archive]
R --> B[Web archive]
D --> G[GHCR image]
Use a version tag:
git tag v2.4.10
git push origin v2.4.10Numeric tags such as 2.4.10 also work. Pick one form and stay consistent. The latest tags use the v prefix.
Each release gets two files:
| File | Contents |
|---|---|
MHDDoS-<tag>.zip |
start.py, README, license, requirements, config, wordlists, Docker files |
MHDDoS-web-<tag>.zip |
the same runtime plus the web/ panel |
Both archives are built from the tag commit. Anything merged after the tag is not included.
The Docker workflow publishes:
ghcr.io/matrixtm/mhddos:<tag>
ghcr.io/matrixtm/mhddos:sha-<short>
ghcr.io/matrixtm/mhddos:latest
latest is updated from the default branch. Version tags are added for semantic tags.
You can re-run the Release workflow from the Actions tab:
- choose Release;
- choose Run workflow;
- enter an existing tag.
It rebuilds the archives and replaces the assets with --clobber. It does not move the tag.
-
python start.py DOCTORpasses on a clean install. -
ruff checkandruff format --checkpass. -
npm ciandnpm run buildpass. -
docker compose configis valid. - The README method counts match the code.
-
git statusis clean.
A tag is a fixed point. If a release is broken:
- fix the problem on
main; - tag the next patch version;
- point users at the new release.
Avoid moving an existing tag. It changes what a version means and breaks checksums people may have saved.
The Release workflow prints SHA-256 checksums in the job log. If you need them on the release page, download the archives and run:
sha256sum MHDDoS-*.zipMHDDoS is for authorized testing only. Use it on systems you own or have written permission to test.
Issues · Discussions · Releases · Contributing · MIT License
MHDDoS
Start here
Methods
Configuration
Interfaces
Help
Community
Project