diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..982cdab --- /dev/null +++ b/.gitignore @@ -0,0 +1,14 @@ +# Database and log files (generated at runtime) +mysql-data/ +logs/ + +# Node modules (if any) +node_modules/ + +# OS generated files +.DS_Store +Thumbs.db + +# Temporary files +*.tmp +*.temp \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..619943a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,43 @@ +FROM httpd:2.4-alpine + +# Install some fun utilities (because why not?) +RUN apk add --no-cache \ + fortune \ + figlet \ + && echo "#!/bin/sh" > /usr/local/bin/blame-dustin \ + && echo 'echo "This is Dustin'\''s fault. Obviously."' >> /usr/local/bin/blame-dustin \ + && chmod +x /usr/local/bin/blame-dustin + +# Create a custom error page that blames Dustin for everything +RUN echo '
This page doesn'\''t exist. You know who to blame.
' > /usr/local/apache2/htdocs/404.html \ + && echo " _____ _ _ _ " >> /usr/local/apache2/htdocs/404.html \ + && echo " | __ \ | | (_) | | " >> /usr/local/apache2/htdocs/404.html \ + && echo " | | | | ___| |_ _ _ __ | |_ " >> /usr/local/apache2/htdocs/404.html \ + && echo " | | | |/ _ \ __| | '_ \| __|" >> /usr/local/apache2/htdocs/404.html \ + && echo " | |__| | __/ |_| | | | | |_ " >> /usr/local/apache2/htdocs/404.html \ + && echo " |_____/ \___|\__|_|_| |_|\__|" >> /usr/local/apache2/htdocs/404.html \ + && echo " " >> /usr/local/apache2/htdocs/404.html \ + && echo " It's Dustin's fault. Obviously." >> /usr/local/apache2/htdocs/404.html \ + && echo '
Go back to blaming Dustin properly
' >> /usr/local/apache2/htdocs/404.html + +# Copy our website files +COPY index.html /usr/local/apache2/htdocs/ +COPY cgi-bin/blame-dustin.cgi /usr/local/apache2/cgi-bin/ + +# Enable CGI and set up custom error pages +RUN sed -i '/LoadModule cgid_module/s/^#//g' /usr/local/apache2/conf/httpd.conf \ + && sed -i '/ScriptAlias \/cgi-bin\//s/^#//g' /usr/local/apache2/conf/httpd.conf \ + && sed -i '/Dustin fucked up the server. Again.
"' >> /usr/local/apache2/conf/httpd.conf \ + && echo 'ErrorDocument 403 "Dustin says you can'\''t see this. What an asshole.
"' >> /usr/local/apache2/conf/httpd.conf + +# Make sure CGI scripts are executable +RUN chmod +x /usr/local/apache2/cgi-bin/blame-dustin.cgi + +# Expose port 80 +EXPOSE 80 + +# Start Apache in foreground +CMD ["httpd-foreground"] \ No newline at end of file diff --git a/README.md b/README.md index 9401c74..aca5371 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,82 @@ -# itsdustinsfault.com +# IT'S FUCKING DUSTIN'S FAULT — OFFICIAL BLAME PORTAL ## Overview -Terminal-style incident dashboard where **everything** is Dustin's fault. Absurd corporate IT humor for Dustin's friends. +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. **Live Demo:** [itsdustinsfault.com](https://itsdustinsfault.com) (once deployed) ## Features -- Live auto-generating incidents blaming Dustin -- File your own reports (always Dustin's fault) -- Typing animations, sound effects (toggleable), CRT glitches -- Stats counters & ASCII fault graph -- Easter egg: \"dustin innocent\" → +100 faults! +- **LIVE INCIDENT FEED**: Auto-generating fuckups blamed on Dustin (every 5 seconds) +- **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) -## Tech -- Single `index.html` (vanilla HTML/CSS/JS) -- Responsive, PWA-ready, zero dependencies +## 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 +- **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 -## Local Run +## Docker Deployment ```bash -# Just open in browser -open index.html -# or -python -m http.server 8000 +# Start the entire blame ecosystem +docker-compose up -d + +# Access the main site +# http://localhost:8080 + +# Access phpMyAdmin (to view Dustin's sins) +# http://localhost:8081 +# Username: dustin +# Password: blame_me ``` -## Deploy -1. Drag `index.html` to Netlify/Vercel -2. Point DNS to itsdustinsfault.com +## Local Development +```bash +# Just open in browser (for cowards) +open index.html -## Screenshots -[Add later] +# Or run the full Docker stack +docker-compose up +``` -© 2026 Dustin Fault Monitoring Division \ No newline at end of file +## 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 + +## Contributing +1. Think of something even more offensive +2. Add it to the codebase +3. Blame Dustin for any bugs + +## Legal Disclaimer +This website is pure satire and contains extreme profanity. If you're offended, it's probably Dustin's fault anyway. + +© 2026 Corporate Blame Allocation Division — All faults reserved. Dustin takes full responsibility. \ No newline at end of file diff --git a/cgi-bin/blame-dustin.cgi b/cgi-bin/blame-dustin.cgi new file mode 100755 index 0000000..24bb27a --- /dev/null +++ b/cgi-bin/blame-dustin.cgi @@ -0,0 +1,92 @@ +#!/bin/sh + +echo "Content-type: text/html" +echo "" + +cat << EOF + + + ++$(/usr/bin/fortune) ++ +
Dustin's fault level: $(echo $((RANDOM % 100 + 1)) )%
+ +Figlet says:
++$(echo "DUSTIN'S FAULT" | /usr/bin/figlet) ++ +
Current blame allocation: 100% Dustin's Fault
+ + + +← Back to the main blame portal
+ +-100% Dustin -░░░░░░░░░░ -+ + +