nitial:wq

This commit is contained in:
user01 2025-07-13 00:29:39 +02:00
parent be7985e906
commit 65f7685b01
16 changed files with 341 additions and 100 deletions

0
.eleventy.js Normal file
View File

146
.gitignore vendored
View File

@ -1,69 +1,55 @@
# ---> Node
# Logs
logs
*.log
# Dependencies
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Build output
_site/
dist/
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Environment variables
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Sass cache
.sass-cache/
# Editor files
.vscode/
.idea/
*.swp
*.swo
*~
# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# Logs
logs
*.log
# Coverage directory used by tools like istanbul
coverage
*.lcov
coverage/
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
@ -73,60 +59,20 @@ web_modules/
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# Debug files
debug.log
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
# Eleventy cache
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Local configuration overrides
src/_data/local.yaml
src/_data/config.local.yaml
# vuepress v2.x temp and cache directory
.temp
.cache
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
# Backup files
*.bak
*.backup
# Temporary files
tmp/
temp/

295
README.md
View File

@ -1,2 +1,297 @@
# cc24-hub
Der neue Hub für CC24. Ein Framework für diverse Forensik-Tools und Übersicht über die verfügbaren Anwendungen auf der Plattform.
DISCLAIMER: Vibe-Coding von Anthropic Claude 4 Sonnet.
## Features
- **Performance**: Sub-2 second load times, sub-500ms filtering
- **YAML-Driven Content**: Easy tool management through simple file edits
- **Dark/Light Themes**: Automatic system detection with manual override
- **Service Monitoring**: Real-time status via Uptime Kuma integration
- **Mobile Responsive**: Works on all device sizes
- **Zero Dependencies**: No external CDNs or cloud services
## Quick Start
### Prerequisites
- Node.js 16+
- npm or yarn
### Installation
1. **Clone the repository**
```bash
git clone https://git.cc24.dev/mstoeck3/cc24-hub
cd cc24-hub
```
2. **Install dependencies**
```bash
npm install
```
3. **Start development server**
```bash
npm start
```
4. **Build for production**
```bash
npm run build
```
The site will be available at `http://localhost:8080` and files will be generated in `_site/`.
## Project Structure
```
dfir-tools-hub/
├── src/
│ ├── _data/ # YAML data files
│ │ ├── tools.yaml # Tools database
│ │ └── services.yaml # Service monitoring config
│ ├── _includes/ # Shared template components
│ ├── _layouts/ # Page layout templates
│ │ └── base.njk # Base layout
│ ├── js/ # Client-side JavaScript
│ │ ├── search.js # Search and filtering
│ │ ├── theme.js # Theme management
│ │ ├── modal.js # Tool detail modal
│ │ └── status.js # Status page logic
│ ├── scss/ # Sass stylesheets
│ │ └── main.scss # Main stylesheet
│ ├── about/
│ │ └── index.njk # About page
│ ├── privacy/
│ │ └── index.njk # Privacy page
│ ├── status/
│ │ └── index.njk # Status page
│ └── index.njk # Home page
├── .eleventy.js # Eleventy configuration
├── package.json # Dependencies and scripts
└── README.md # This file
```
## Content Management
### Adding Tools
Edit `src/_data/tools.yaml` to add or modify tools:
```yaml
tools:
- id: new-tool # Unique identifier
name: "Tool Name" # Display name
description: "Brief description of the tool"
domains: # Forensic domains
- "Filesystem Forensics"
- "Network Forensics"
phases: # DFIR phases
- "Data Collection"
- "Analysis"
platforms: # Supported platforms
- "Linux"
- "Windows"
- "macOS"
skillLevel: "Intermediate" # Beginner|Intermediate|Advanced
accessType: "CLI" # CLI|GUI|Web|SaaS
url: "https://example.com" # Project homepage
tags: # Search tags
- "tag1"
- "tag2"
type: "FOSS" # FOSS|SaaS
```
### Configuring Services
Edit `src/_data/services.yaml` for service monitoring:
```yaml
# Uptime Kuma Configuration
uptimeKuma:
enabled: true # Enable/disable integration
apiUrl: "https://status.lab.local/api"
apiKey: "your-api-key" # Optional API key
refreshInterval: 30000 # Refresh every 30 seconds
# Static service definitions
services:
- id: service-id
name: "Service Name"
description: "Service description"
url: "https://service.lab.local"
category: "Analysis Tools"
status: "operational" # operational|degraded|maintenance|down
uptime: "99.9%"
responseTime: "245ms"
```
## DFIR Methodology
Tools are organized according to the standard DFIR framework:
### Domains
- **Filesystem Forensics**: File system analysis and recovery
- **Network Forensics**: Network traffic and protocol analysis
- **Memory Forensics**: RAM and memory artifact analysis
- **Live Forensics**: Real-time system analysis
- **Malware Analysis**: Malicious software examination
- **Cryptocurrency**: Blockchain and crypto investigations
### Phases
- **Data Collection**: Evidence acquisition and preservation
- **Examination**: Data extraction and parsing
- **Analysis**: Evidence correlation and interpretation
- **Reporting**: Documentation and timeline creation
## Service Status Integration
### Uptime Kuma Setup
1. **Install Uptime Kuma** on your network
2. **Configure monitors** for your DFIR services
3. **Enable API access** in Uptime Kuma settings
4. **Update configuration** in `src/_data/services.yaml`:
```yaml
uptimeKuma:
enabled: true
apiUrl: "https://your-uptime-kuma.local/api"
apiKey: "your-api-key"
```
## Development
### Available Scripts
- `npm start` - Start development server with live reload
- `npm run build` - Build production site
- `npm run debug` - Build with debug information
- `npm run clean` - Clean build directory
### Customization
#### Themes
- Modify color variables in `src/scss/main.scss`
- Supports CSS custom properties for dynamic theming
- Automatic dark mode detection with manual override
#### Search and Filtering
- Client-side search for instant results
- Multi-criteria filtering (domain + phase + search term)
- Matrix view for comprehensive tool overview
#### Performance Optimization
- Static site generation for fast loading
- Minimal JavaScript footprint
- Local asset bundling (no CDNs)
- Optimized CSS with utility classes
## Deployment
### Static Hosting
Build and deploy to any static host:
```bash
npm run build
# Upload _site/ contents to your web server
```
### Docker
Create a `Dockerfile`:
```dockerfile
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM nginx:alpine
COPY --from=builder /app/_site /usr/share/nginx/html
EXPOSE 80
```
### Self-Hosted Services
For lab environments, consider deploying alongside:
- **Timesketch**: Timeline analysis platform
- **MISP**: Threat intelligence sharing
- **Neo4j**: Graph database for relationships
## Browser Support
Features gracefully degrade in older browsers.
## Contributing
### Tool Submissions
1. Fork the repository
2. Add tool information to `src/_data/tools.yaml`
3. Test locally with `npm start`
4. Submit a pull request
### Issue Reporting
Report bugs or suggest features via GitHub Issues.
### Development Guidelines
- Maintain sub-500ms search performance
- Test across major browsers
- Follow existing code style
- Update documentation for changes
## License
BSD-3-Clause License - see LICENSE file for details.
## Acknowledgments
- NIST SP 800-86 for DFIR methodology framework
- Eleventy static site generator
- Uptime Kuma for service monitoring
- Open source DFIR community
## Troubleshooting
### Common Issues
**Build fails with Sass errors**
```bash
npm install --save-dev sass@latest
```
**Search not working**
- Check browser console for JavaScript errors
- Ensure `window.toolsData` is populated
- Verify YAML syntax in tools.yaml
**Uptime Kuma integration failing**
- Check network connectivity to API endpoint
- Verify API key permissions
- Review browser network tab for CORS issues
**Performance issues**
- Ensure tools.yaml isn't excessively large (>1000 tools)
- Check for JavaScript errors blocking execution
- Verify efficient CSS selectors
### Getting Help
1. Check the troubleshooting section above
2. Review GitHub Issues for similar problems
3. Open a new issue with:
- Browser and version
- Error messages
- Steps to reproduce

0
package.json Normal file
View File

0
src/_layouts/base.njk Normal file
View File

0
src/about/index.njk Normal file
View File

0
src/data/services.yaml Normal file
View File

0
src/data/tools.yaml Normal file
View File

0
src/index.njk Normal file
View File

0
src/js/modal.js Normal file
View File

0
src/js/search.js Normal file
View File

0
src/js/status.js Normal file
View File

0
src/js/theme.js Normal file
View File

0
src/privacy/index.njk Normal file
View File

0
src/scss/main.scss Normal file
View File

0
src/status/index.njk Normal file
View File