The container init script (init-fail2ban-config) copies jail.conf from the image's /defaults/ on every start, overwriting any direct edits. The correct fix is jail.local, which is not present in the image defaults and therefore persists across restarts. Changes: - Add Docker/fail2ban-dev-config/fail2ban/jail.local with [DEFAULT] overrides for banaction = iptables-multiport and banaction_allports = iptables-allports. fail2ban loads jail.local after jail.conf so these values are available to all jails during %(action_)s interpolation. - Untrack jail.local from .gitignore so it is committed to the repo. - Fix TypeError in config_file_service: except jail_service.JailNotFoundError failed when jail_service was mocked in tests because MagicMock attributes are not BaseException subclasses. Import JailNotFoundError directly instead. - Mark BUG-001 as Done in Tasks.md.
115 lines
2.7 KiB
Plaintext
115 lines
2.7 KiB
Plaintext
# ─────────────────────────────────────────────
|
|
# BanGUI — root .gitignore
|
|
# ─────────────────────────────────────────────
|
|
|
|
# ── Python ────────────────────────────────────
|
|
__pycache__/
|
|
*.py[cod]
|
|
*.pyo
|
|
*.pyd
|
|
*.so
|
|
.Python
|
|
|
|
# Virtualenvs
|
|
.venv/
|
|
venv/
|
|
env/
|
|
ENV/
|
|
.python-version
|
|
|
|
# Distribution / packaging
|
|
dist/
|
|
build/
|
|
*.egg-info/
|
|
*.egg
|
|
MANIFEST
|
|
|
|
# Testing & coverage
|
|
.coverage
|
|
.coverage.*
|
|
htmlcov/
|
|
.pytest_cache/
|
|
.tox/
|
|
nosetests.xml
|
|
coverage.xml
|
|
*.cover
|
|
|
|
# Type checkers & linters
|
|
.mypy_cache/
|
|
.ruff_cache/
|
|
.dmypy.json
|
|
dmypy.json
|
|
pyrightconfig.json
|
|
.pytype/
|
|
|
|
# ── Node / Frontend ───────────────────────────
|
|
node_modules/
|
|
.pnp
|
|
.pnp.js
|
|
|
|
# Build output
|
|
frontend/dist/
|
|
frontend/.vite/
|
|
|
|
# Logs
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
pnpm-debug.log*
|
|
lerna-debug.log*
|
|
|
|
# ── Secrets / Environment ─────────────────────
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
*.pem
|
|
secrets.json
|
|
|
|
# ── Databases ─────────────────────────────────
|
|
*.sqlite3
|
|
*.db
|
|
*.db-shm
|
|
*.db-wal
|
|
|
|
# ── OS artefacts ──────────────────────────────
|
|
.DS_Store
|
|
.DS_Store?
|
|
._*
|
|
.Spotlight-V100
|
|
.Trashes
|
|
ehthumbs.db
|
|
Thumbs.db
|
|
|
|
# ── Editor / IDE ──────────────────────────────
|
|
.idea/
|
|
*.iml
|
|
*.sublime-project
|
|
*.sublime-workspace
|
|
.vscode/settings.json
|
|
.vscode/launch.json
|
|
.vscode/*.log
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
# ── Docker dev config ─────────────────────────
|
|
# Ignore auto-generated linuxserver/fail2ban config files,
|
|
# but track our custom filter, jail, and documentation.
|
|
Docker/fail2ban-dev-config/**
|
|
!Docker/fail2ban-dev-config/README.md
|
|
!Docker/fail2ban-dev-config/fail2ban/
|
|
!Docker/fail2ban-dev-config/fail2ban/filter.d/
|
|
!Docker/fail2ban-dev-config/fail2ban/filter.d/bangui-sim.conf
|
|
!Docker/fail2ban-dev-config/fail2ban/filter.d/bangui-access.conf
|
|
!Docker/fail2ban-dev-config/fail2ban/jail.d/
|
|
!Docker/fail2ban-dev-config/fail2ban/jail.d/bangui-sim.conf
|
|
!Docker/fail2ban-dev-config/fail2ban/jail.d/bangui-access.conf
|
|
!Docker/fail2ban-dev-config/fail2ban/jail.d/blocklist-import.conf
|
|
!Docker/fail2ban-dev-config/fail2ban/jail.local
|
|
|
|
# ── Misc ──────────────────────────────────────
|
|
*.log
|
|
*.tmp
|
|
*.bak
|
|
*.orig
|