├── .github ├── COPILOT_INSTRUCTIONS.md ├── dependabot.yml └── workflows │ ├── docker-publish.yml │ ├── release.yml │ └── tests.yml ├── .gitignore ├── .roo ├── rules-architect │ └── AGENTS.md ├── rules-ask │ └── AGENTS.md ├── rules-code │ └── AGENTS.md └── rules-debug │ └── AGENTS.md ├── AGENTS.md ├── CLAUDE.md ├── Dockerfile ├── LICENSE ├── README.md ├── SECURITY.md ├── assets ├── knocker icon.svg ├── knocker-banner.webp ├── knocker-banner.xcf ├── knocker-black.svg └── knocker.svg ├── dev ├── Caddyfile ├── docker-compose.ci.yml ├── docker-compose.yml ├── firewalld_integration_test.sh ├── knocker.ci.yaml ├── knocker.firewalld.yaml └── local_integration_tests.sh ├── docker-compose.yml ├── docs ├── API_SPEC.md ├── DESIGN_DECISIONS.md ├── FIREWALLD_INTEGRATION.md ├── INTERACTIVE_DOCUMENTATION.md ├── Project-OVERVIEW.md ├── SECURITY.md └── SECURITY_AUDIT_SUMMARY.md ├── knocker.example.yaml ├── src ├── __init__.py ├── config.py ├── core.py ├── firewalld.py ├── main.py ├── models.py └── requirements.txt └── tests ├── __init__.py ├── test_core.py ├── test_firewalld.py ├── test_main.py ├── test_main_firewalld_integration.py ├── test_openapi.py ├── test_production_hardening.py ├── test_security.py ├── test_security_fixes.py └── test_whitelist_validation.py /.github/COPILOT_INSTRUCTIONS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/.github/COPILOT_INSTRUCTIONS.md -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/docker-publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/.github/workflows/docker-publish.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/.github/workflows/tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/.gitignore -------------------------------------------------------------------------------- /.roo/rules-architect/AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/.roo/rules-architect/AGENTS.md -------------------------------------------------------------------------------- /.roo/rules-ask/AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/.roo/rules-ask/AGENTS.md -------------------------------------------------------------------------------- /.roo/rules-code/AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/.roo/rules-code/AGENTS.md -------------------------------------------------------------------------------- /.roo/rules-debug/AGENTS.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/AGENTS.md -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/CLAUDE.md -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/README.md -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/SECURITY.md -------------------------------------------------------------------------------- /assets/knocker icon.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/assets/knocker icon.svg -------------------------------------------------------------------------------- /assets/knocker-banner.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/assets/knocker-banner.webp -------------------------------------------------------------------------------- /assets/knocker-banner.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/assets/knocker-banner.xcf -------------------------------------------------------------------------------- /assets/knocker-black.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/assets/knocker-black.svg -------------------------------------------------------------------------------- /assets/knocker.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/assets/knocker.svg -------------------------------------------------------------------------------- /dev/Caddyfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/dev/Caddyfile -------------------------------------------------------------------------------- /dev/docker-compose.ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/dev/docker-compose.ci.yml -------------------------------------------------------------------------------- /dev/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/dev/docker-compose.yml -------------------------------------------------------------------------------- /dev/firewalld_integration_test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/dev/firewalld_integration_test.sh -------------------------------------------------------------------------------- /dev/knocker.ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/dev/knocker.ci.yaml -------------------------------------------------------------------------------- /dev/knocker.firewalld.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/dev/knocker.firewalld.yaml -------------------------------------------------------------------------------- /dev/local_integration_tests.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/dev/local_integration_tests.sh -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /docs/API_SPEC.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/docs/API_SPEC.md -------------------------------------------------------------------------------- /docs/DESIGN_DECISIONS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/docs/DESIGN_DECISIONS.md -------------------------------------------------------------------------------- /docs/FIREWALLD_INTEGRATION.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/docs/FIREWALLD_INTEGRATION.md -------------------------------------------------------------------------------- /docs/INTERACTIVE_DOCUMENTATION.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/docs/INTERACTIVE_DOCUMENTATION.md -------------------------------------------------------------------------------- /docs/Project-OVERVIEW.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/docs/Project-OVERVIEW.md -------------------------------------------------------------------------------- /docs/SECURITY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/docs/SECURITY.md -------------------------------------------------------------------------------- /docs/SECURITY_AUDIT_SUMMARY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/docs/SECURITY_AUDIT_SUMMARY.md -------------------------------------------------------------------------------- /knocker.example.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/knocker.example.yaml -------------------------------------------------------------------------------- /src/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/src/config.py -------------------------------------------------------------------------------- /src/core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/src/core.py -------------------------------------------------------------------------------- /src/firewalld.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/src/firewalld.py -------------------------------------------------------------------------------- /src/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/src/main.py -------------------------------------------------------------------------------- /src/models.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/src/models.py -------------------------------------------------------------------------------- /src/requirements.txt: -------------------------------------------------------------------------------- 1 | fastapi 2 | uvicorn 3 | pyyaml 4 | pytest 5 | httpx -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_core.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/tests/test_core.py -------------------------------------------------------------------------------- /tests/test_firewalld.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/tests/test_firewalld.py -------------------------------------------------------------------------------- /tests/test_main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/tests/test_main.py -------------------------------------------------------------------------------- /tests/test_main_firewalld_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/tests/test_main_firewalld_integration.py -------------------------------------------------------------------------------- /tests/test_openapi.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/tests/test_openapi.py -------------------------------------------------------------------------------- /tests/test_production_hardening.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/tests/test_production_hardening.py -------------------------------------------------------------------------------- /tests/test_security.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/tests/test_security.py -------------------------------------------------------------------------------- /tests/test_security_fixes.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/tests/test_security_fixes.py -------------------------------------------------------------------------------- /tests/test_whitelist_validation.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FarisZR/knocker/HEAD/tests/test_whitelist_validation.py --------------------------------------------------------------------------------