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
193 lines
5.3 KiB
Markdown
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
|