nitial:wq
This commit is contained in:
parent
be7985e906
commit
65f7685b01
0
.eleventy.js
Normal file
0
.eleventy.js
Normal file
146
.gitignore
vendored
146
.gitignore
vendored
@ -1,69 +1,55 @@
|
|||||||
# ---> Node
|
# Dependencies
|
||||||
# Logs
|
node_modules/
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
npm-debug.log*
|
||||||
yarn-debug.log*
|
yarn-debug.log*
|
||||||
yarn-error.log*
|
yarn-error.log*
|
||||||
lerna-debug.log*
|
|
||||||
.pnpm-debug.log*
|
|
||||||
|
|
||||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
# Build output
|
||||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
_site/
|
||||||
|
dist/
|
||||||
|
|
||||||
# Runtime data
|
# Environment variables
|
||||||
pids
|
.env
|
||||||
*.pid
|
.env.local
|
||||||
*.seed
|
.env.development.local
|
||||||
*.pid.lock
|
.env.test.local
|
||||||
|
.env.production.local
|
||||||
|
|
||||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
# Sass cache
|
||||||
lib-cov
|
.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 directory used by tools like istanbul
|
||||||
coverage
|
coverage/
|
||||||
*.lcov
|
|
||||||
|
|
||||||
# nyc test coverage
|
# nyc test coverage
|
||||||
.nyc_output
|
.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
|
# Dependency directories
|
||||||
node_modules/
|
|
||||||
jspm_packages/
|
jspm_packages/
|
||||||
|
|
||||||
# Snowpack dependency directory (https://snowpack.dev/)
|
|
||||||
web_modules/
|
|
||||||
|
|
||||||
# TypeScript cache
|
|
||||||
*.tsbuildinfo
|
|
||||||
|
|
||||||
# Optional npm cache directory
|
# Optional npm cache directory
|
||||||
.npm
|
.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
|
# Optional REPL history
|
||||||
.node_repl_history
|
.node_repl_history
|
||||||
|
|
||||||
@ -73,60 +59,20 @@ web_modules/
|
|||||||
# Yarn Integrity file
|
# Yarn Integrity file
|
||||||
.yarn-integrity
|
.yarn-integrity
|
||||||
|
|
||||||
# dotenv environment variable files
|
# Debug files
|
||||||
.env
|
debug.log
|
||||||
.env.development.local
|
|
||||||
.env.test.local
|
|
||||||
.env.production.local
|
|
||||||
.env.local
|
|
||||||
|
|
||||||
# parcel-bundler cache (https://parceljs.org/)
|
# Eleventy cache
|
||||||
.cache
|
|
||||||
.parcel-cache
|
|
||||||
|
|
||||||
# Next.js build output
|
|
||||||
.next
|
|
||||||
out
|
|
||||||
|
|
||||||
# Nuxt.js build / generate output
|
|
||||||
.nuxt
|
|
||||||
dist
|
|
||||||
|
|
||||||
# Gatsby files
|
|
||||||
.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
|
# Local configuration overrides
|
||||||
.vuepress/dist
|
src/_data/local.yaml
|
||||||
|
src/_data/config.local.yaml
|
||||||
|
|
||||||
# vuepress v2.x temp and cache directory
|
# Backup files
|
||||||
.temp
|
*.bak
|
||||||
.cache
|
*.backup
|
||||||
|
|
||||||
# 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.*
|
|
||||||
|
|
||||||
|
# Temporary files
|
||||||
|
tmp/
|
||||||
|
temp/
|
295
README.md
295
README.md
@ -1,2 +1,297 @@
|
|||||||
# cc24-hub
|
# 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
0
package.json
Normal file
0
src/_layouts/base.njk
Normal file
0
src/_layouts/base.njk
Normal file
0
src/about/index.njk
Normal file
0
src/about/index.njk
Normal file
0
src/data/services.yaml
Normal file
0
src/data/services.yaml
Normal file
0
src/data/tools.yaml
Normal file
0
src/data/tools.yaml
Normal file
0
src/index.njk
Normal file
0
src/index.njk
Normal file
0
src/js/modal.js
Normal file
0
src/js/modal.js
Normal file
0
src/js/search.js
Normal file
0
src/js/search.js
Normal file
0
src/js/status.js
Normal file
0
src/js/status.js
Normal file
0
src/js/theme.js
Normal file
0
src/js/theme.js
Normal file
0
src/privacy/index.njk
Normal file
0
src/privacy/index.njk
Normal file
0
src/scss/main.scss
Normal file
0
src/scss/main.scss
Normal file
0
src/status/index.njk
Normal file
0
src/status/index.njk
Normal file
Reference in New Issue
Block a user