Files
minecraft-chat-viewer/README.md
SimolZimol 8ac625a64d new file: .gitignore
new file:   Dockerfile
	new file:   README.md
	new file:   app.py
	new file:   chat-logs/chat-index.json
	new file:   chat-logs/crea-1-10.08.2020-merged.txt
	new file:   chat-logs/crea-1-11.08.2020-merged.txt
	new file:   chat-logs/crea-1-12.08.2020-merged.txt
	new file:   chat-logs/crea-1-13.08.2020-merged.txt
	new file:   chat-logs/crea-1-14.08.2020-merged.txt
	new file:   chat-logs/crea-1-15.08.2020-merged.txt
	new file:   chat-logs/crea-1-18.08.2020-merged.txt
	new file:   chat-logs/crea-1-20.08.2020-merged.txt
	new file:   chat-logs/crea-1-2020-07-27-1-filtered.txt
	new file:   chat-logs/crea-1-2020-07-28-1-filtered.txt
	new file:   chat-logs/crea-1-2020-07-29-1-filtered.txt
	new file:   chat-logs/crea-1-2020-07-30-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-03-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-04-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-08-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-09-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-10-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-11-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-13-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-16-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-17-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-18-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-20-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-24-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-29-1-filtered.txt
	new file:   chat-logs/crea-1-2020-08-30-1-filtered.txt
	new file:   chat-logs/crea-1-21.08.2020-merged.txt
	new file:   chat-logs/crea-1-22.08.2020-merged.txt
	new file:   chat-logs/crea-1-23.08.2020-merged.txt
	new file:   chat-logs/crea-1-24.07.2020-merged.txt
	new file:   chat-logs/crea-1-25.07.2020-merged.txt
	new file:   chat-logs/crea-1-25.08.2020-merged.txt
	new file:   chat-logs/crea-1-26.07.2020-merged.txt
	new file:   chat-logs/crea-1-26.08.2020-merged.txt
	new file:   chat-logs/crea-1-27.08.2020-merged.txt
	new file:   chat-logs/crea-1-28.08.2020-merged.txt
	new file:   chat-logs/crea-1-crea-1-10.08.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-11.08.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-12.08.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-14.08.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-15.08.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-18.08.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-20.08.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-21.08.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-22.08.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-23.08.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-24.07.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-25.07.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-25.08.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-26.07.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-26.08.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-27.08.2020-merged-filtered.txt
	new file:   chat-logs/crea-1-crea-1-28.08.2020-merged-filtered.txt
	new file:   chat-logs/survival-1-15.08.2020-merged.txt
	new file:   chat-logs/survival-1-2020-07-27-1-filtered.txt
	new file:   chat-logs/survival-1-2020-07-28-1-filtered.txt
	new file:   chat-logs/survival-1-2020-08-07-1-filtered.txt
	new file:   chat-logs/survival-1-2020-08-08-1-filtered.txt
	new file:   chat-logs/survival-1-2020-08-11-1-filtered.txt
	new file:   chat-logs/survival-1-2020-08-13-1-filtered.txt
	new file:   chat-logs/survival-1-2020-08-14-1-filtered.txt
	new file:   chat-logs/survival-1-2020-08-17-1-filtered.txt
	new file:   chat-logs/survival-1-2020-08-18-1-filtered.txt
	new file:   chat-logs/survival-1-2020-08-19-1-filtered.txt
	new file:   chat-logs/survival-1-25.07.2020-merged.txt
	new file:   chat-logs/survival-1-survival-1-15.08.2020-merged-filtered.txt
	new file:   chat-logs/survival-1-survival-1-25.07.2020-merged-filtered.txt
	new file:   chat-logs/thesur-1-2020-08-17-1-filtered.txt
	new file:   chat-logs/thesur-1-2020-08-31-1-filtered.txt
	new file:   count_all_sessions.py
	new file:   count_sessions.py
	new file:   index.html
	new file:   local-chat-analyzer.js
	new file:   merge_daily_logs.py
	new file:   process_thesur_logs.py
	new file:   quick_add.py
	new file:   requirements.txt
	new file:   script.js
	new file:   server.py
	new file:   statistics-integration.js
	new file:   statistics.css
	new file:   statistics.js
	new file:   style.css
2025-12-09 15:31:20 +01:00

193 lines
5.3 KiB
Markdown

# Minecraft Chat Viewer
An elegant website for displaying and formatting Minecraft chat logs with Docker/Coolify support.
## 🚀 Quick Start
### Option 1: Docker (Recommended for Production)
```bash
# Build the Docker image
docker build -t minecraft-chat-viewer .
# Run the container
docker run -p 5000:5000 minecraft-chat-viewer
# Open browser
http://localhost:5000
```
### Option 2: Coolify Deployment
1. Push your code to a Git repository
2. In Coolify, create a new application
3. Select "Docker" as deployment type
4. Point to your repository
5. Set port to `5000`
6. Deploy!
### Option 3: Local Development with Flask
```bash
# Install dependencies
pip install -r requirements.txt
# Run the Flask app
python app.py
# Open browser
http://localhost:5000
```
### Option 4: Legacy Python Server
```bash
# Start simple HTTP server
python server.py
# Open browser
http://localhost:8000
```
## 🗺️ Minecraft Server Maps (2020)
### Survival-1
- **21.08.2020**: https://file.devanturas.net/u/4uVh8r.zip
### crea-1
- **21.08.2020**: https://file.devanturas.net/u/UfmfKF.zip
### THESUR-1
- **18.08.2020**: https://file.devanturas.net/u/373GHK.zip
- **20.08.2020**: https://file.devanturas.net/u/NwkZou.zip
- **22.08.2020**: https://file.devanturas.net/u/zwLaEG.zip
- **23.08.2020**: https://file.devanturas.net/u/1KIMeq.zip
- **27.08.2020**: https://file.devanturas.net/u/3Y5u2M.zip
- **28.08.2020**: https://file.devanturas.net/u/h5bygb.zip
- **31.08.2020**: https://file.devanturas.net/u/jdZOo1.zip
## 📁 Project Structure
```
minecraft-chat-viewer/
├── app.py # Flask application (Production)
├── server.py # Simple HTTP server (Development)
├── Dockerfile # Docker configuration
├── .dockerignore # Docker build exclusions
├── .gitignore # Git exclusions
├── requirements.txt # Python dependencies
├── index.html # Main page
├── style.css # Styling
├── script.js # JavaScript Logic
├── statistics.js # Statistics module
├── statistics.css # Statistics styling
├── statistics-integration.js # Statistics integration
├── local-chat-analyzer.js # Local chat analyzer
├── chat-logs/ # Chat files (included in Docker)
│ ├── chat-index.json # Chat overview
│ └── *.txt # Chat log files
├── maps/ # Minecraft world maps (excluded from Git/Docker)
├── raw logs/ # Raw log files (excluded from Git/Docker)
└── stats/ # Statistics (excluded from Git/Docker)
```
## ✨ Features
- 📋 **Server-side Chat List**: All chats are managed centrally
- 🎨 **Beautiful Formatting**: Role badges, timestamps, player names
- ⚙️ **Customizable Settings**: Filters for different message types
- 📊 **Detailed Statistics**: Message count, player info
- 💾 **Export Function**: Download as formatted HTML file
- 🌙 **Dark Theme**: Minecraft-inspired design
- 📱 **Responsive**: Works on all devices
## 🔧 Adding New Chat Logs
### 1. Create Chat File
Create a new `.txt` file in `chat-logs/` with the Minecraft chat format:
```
[17:40:32] : Mod ▎ duencity2 joined the game
[17:41:07] : Member ▎ sdf7 : Hello everyone!
```
### 2. Update Index
Add the chat to `chat-logs/chat-index.json`:
```json
{
"id": "my-new-chat",
"title": "🎯 My New Chat",
"description": "Description of the chat log",
"date": "2020-12-25",
"participants": ["Player1", "Player2"],
"messages": 50,
"filename": "my-new-chat.txt"
}
```
## 🎮 Supported Chat Format
The website automatically recognizes:
- **Timestamps**: `[HH:MM:SS]`
- **Roles**: Admin, Mod, Member
- **Join/Leave**: `joined the game`, `left the game`
- **Chat Messages**: `Role ▎ Player : Message`
- **System Messages**: Server events
## 🌐 Server Requirements
### Docker/Coolify
- **Docker**: 20.10+
- **Port**: 5000 (configurable via PORT environment variable)
### Local Development
- **Python 3.11+**
- **Flask 3.0+**
- **Modern Browsers**: Chrome/Edge 80+, Firefox 70+, Safari 13+
## 🐳 Docker Configuration
### Environment Variables
- `PORT` - Server port (default: 5000)
- `FLASK_ENV` - Environment mode (production/development)
- `FLASK_APP` - Flask application file (default: app.py)
### Health Check
The Docker container includes a health check endpoint:
- **URL**: `/health`
- **Interval**: 30s
- **Response**: `{"status": "healthy", "service": "minecraft-chat-viewer"}`
### Building and Running
```bash
# Build
docker build -t minecraft-chat-viewer .
# Run
docker run -d -p 5000:5000 --name minecraft-chat minecraft-chat-viewer
# Check logs
docker logs minecraft-chat
# Health check
curl http://localhost:5000/health
```
## 🔒 Security & Privacy
-**Completely offline usable**
-**No data is transmitted**
-**All files remain local**
-**No tracking or cookies**
## 🛠️ Development
The project uses:
- **Vanilla JavaScript** - No external dependencies
- **CSS Grid & Flexbox** - Modern layout
- **CSS Custom Properties** - Easy theming
- **Fetch API** - For loading chat files
## 📝 License
Open Source - Free to use for private and commercial purposes.
---
Made with ❤️ for better Minecraft chat viewing • 2025