refactor: simplify deployment for existing Apache Docker container

- Move web files to www/ directory for easy copying to data folder
- Remove Docker setup since user has existing Apache container
- Add custom 404.html page
- Update README with simple deployment instructions
- Keep CGI script as optional bonus feature
This commit is contained in:
2026-02-25 12:02:55 -05:00
parent feaf614dd5
commit 0d0963198e
4 changed files with 147 additions and 46 deletions

View File

@@ -1,7 +1,7 @@
# IT'S FUCKING DUSTIN'S FAULT — OFFICIAL BLAME PORTAL
## Overview
The most offensive, hilarious, and utterly ridiculous website ever created. A Docker-hosted Apache monstrosity that blames everything on Dustin with maximum crassness and zero fucks given.
The most offensive, hilarious, and utterly ridiculous website ever created. A hilariously crass single-page application that blames everything on Dustin with maximum crassness and zero fucks given.
**Live Demo:** [itsdustinsfault.com](https://itsdustinsfault.com) (once deployed)
@@ -10,66 +10,49 @@ The most offensive, hilarious, and utterly ridiculous website ever created. A Do
- **OFFICIAL BLAME SUBMISSION FORM**: File your own reports of Dustin's latest bullshit
- **DUSTIN'S APOLOGY GENERATOR™**: Generates bullshit apologies with sincerity ratings
- **NUCLEAR OPTION**: Attempt to fire Dustin (spoiler: it won't work)
- **SOUND EFFECTS & ANIMATIONS**: Beeps, glitches, and rage meters
- **COWSAY CGI INTERFACE**: Because why not have a CGI script that blames Dustin using cowsay?
- **MYSLQL DATABASE**: Tracks all of Dustin's sins in a proper database
- **PHPMyAdmin**: View the database of Dustin's eternal damnation
- **RIDICULOUS STATS**: Fuckup counters, rage meters, and fake uptime percentages
- **EASTER EGGS**: Click if you actually like Dustin (you monster)
- **SOUND EFFECTS & ANIMATIONS**: Beeps, glitches, and rage meters
- **RIDICULOUS STATS**: Fuckup counters, rage meters, and fake uptime percentages
- **TERMINAL-STYLE UI**: Retro green-on-black with CRT scanlines
## Tech Stack (Overkill Edition)
- **Docker & Docker Compose**: Full containerized deployment
- **Apache HTTPD**: Serving static files and CGI scripts
- **MySQL**: Database of Dustin's eternal sins
- **PHPMyAdmin**: Admin interface for viewing Dustin's fuckups
## Tech Stack
- **Vanilla HTML/CSS/JS**: No frameworks, because Dustin would fuck that up too
- **Web Audio API**: For obnoxious sound effects
- **Cowsay & Fortune**: CGI scripts because we're living in 1995
- **Single `index.html` file**: Everything in one gloriously offensive package
## Deployment
Simply copy the contents of the `www/` directory to your web server's document root (maps to `/var/www/html` in your Apache container).
## Docker Deployment
```bash
# Start the entire blame ecosystem
docker-compose up -d
# Copy files to your data directory that maps to /var/www/html
cp -r www/* /path/to/your/data/directory/
# Access the main site
# http://localhost:8080
# Or if your data folder is already set up:
rsync -av www/ /path/to/your/data/folder/
```
# Access phpMyAdmin (to view Dustin's sins)
# http://localhost:8081
# Username: dustin
# Password: blame_me
## File Structure
```
www/
├── index.html # The main blame portal (everything)
├── 404.html # Custom error page blaming Dustin
└── cgi-bin/
└── blame-dustin.cgi # Optional CGI script (if your server supports it)
```
## Local Development
```bash
# Just open in browser (for cowards)
open index.html
# Just open in browser
open www/index.html
# Or run the full Docker stack
docker-compose up
# Or serve locally
cd www && python -m http.server 8000
```
## Architecture
```
dustins-fault-website/
├── index.html # The main blame portal
├── Dockerfile # Apache container with cowsay & fortune
├── docker-compose.yml # Full stack with MySQL & phpMyAdmin
├── cgi-bin/
│ └── blame-dustin.cgi # CGI script for cowsay blaming
├── mysql-init/
│ └── 01-init.sql # Database schema & sample fuckups
├── logs/ # Apache logs
├── mysql-data/ # Persistent database storage
└── README.md # This file
```
## Database Schema
The MySQL database tracks:
- Individual fuckups with severity levels
- Dustin's bullshit apologies
- Blame statistics and mood tracking
- Automated daily fuckup insertion
## Customization
- Edit `www/index.html` to add more incidents, change names, or increase the offensiveness
- Modify the apology generator with more creative bullshit
- Add your own sound effects or animations
## Contributing
1. Think of something even more offensive

26
www/404.html Normal file
View File

@@ -0,0 +1,26 @@
<!DOCTYPE html>
<html>
<head>
<title>Error - Dustin's Fault</title>
<style>
body{font-family: monospace;background:#000;color:#0f0;margin:40px}
h1{color:#f00}
pre{color:#ff0}
</style>
</head>
<body>
<h1>ERROR 404 - PAGE NOT FOUND</h1>
<p>This page doesn't exist. You know who to blame.</p>
<pre>
_____
| __ \
| | | | ___ _ _ _ __ ___
| | | |/ _ \ | | | '_ ` _ \
| |__| | __/ |_| | | | | | |
|_____/ \___|\__,_|_| |_| |_|
It's Dustin's fault. Obviously.
</pre>
<p><a href="/" style="color:#0ff">Go back to blaming Dustin properly</a></p>
</body>
</html>

92
www/cgi-bin/blame-dustin.cgi Executable file
View File

@@ -0,0 +1,92 @@
#!/bin/sh
echo "Content-type: text/html"
echo ""
cat << EOF
<!DOCTYPE html>
<html>
<head>
<title>Blame Dustin - CGI Edition</title>
<style>
body {
font-family: 'Courier New', monospace;
background: #000;
color: #0f0;
margin: 40px;
text-align: center;
}
h1 {
color: #f00;
text-shadow: 0 0 10px #f00;
font-size: 3em;
}
pre {
color: #ff0;
font-size: 1.2em;
text-align: left;
display: inline-block;
background: #111;
padding: 20px;
border: 2px solid #f00;
border-radius: 10px;
}
.apology {
color: #0ff;
font-size: 1.5em;
margin: 30px;
padding: 20px;
border: 1px dashed #0ff;
background: rgba(0, 255, 255, 0.1);
}
.blame-button {
background: #f00;
color: #000;
border: none;
padding: 15px 30px;
font-size: 1.2em;
font-weight: bold;
cursor: pointer;
margin: 20px;
border-radius: 5px;
}
.blame-button:hover {
background: #ff0;
color: #f00;
}
</style>
</head>
<body>
<h1>OFFICIAL DUSTIN BLAMING INTERFACE</h1>
<pre>
$(/usr/bin/fortune)
</pre>
<p><b>Dustin's fault level:</b> $(echo $((RANDOM % 100 + 1)) )%</p>
<p><b>Figlet says:</b></p>
<pre>
$(echo "DUSTIN'S FAULT" | /usr/bin/figlet)
</pre>
<div class="apology">
$(echo "I'm sorry. It's my fault. I fucked up." | /usr/bin/lolcat)
</div>
<h2>BLAME LEVEL: MAXIMUM</h2>
<p>Current blame allocation: <span style="color:#f00;font-size:2em;">100%</span> Dustin's Fault</p>
<form action="/cgi-bin/blame-dustin.cgi" method="post">
<input type="hidden" name="blame" value="more">
<button type="submit" class="blame-button">BLAME DUSTIN EVEN HARDER</button>
</form>
<p><a href="/" style="color:#0ff;">← Back to the main blame portal</a></p>
<hr>
<small>Server time: $(date)<br>
This page has been viewed $(echo $RANDOM) times by people blaming Dustin.<br>
Total apologies generated: $(echo $((RANDOM * 1000)))</small>
</body>
</html>
EOF