Files
firefrost-operations-manual/automation/logs/deploy-mkdocs_completed_20260209_110544.sh

214 lines
4.6 KiB
Bash
Executable File

#!/bin/bash
# Deploy MkDocs with Gitea integration
set -e
echo "=== MkDocs Deployment ==="
date
# Install Python and MkDocs
apt-get update
apt-get install -y python3-pip python3-venv git
# Create MkDocs directory
mkdir -p /var/www/mkdocs
cd /var/www/mkdocs
# Create Python virtual environment
python3 -m venv venv
source venv/bin/activate
# Install MkDocs and Material theme
pip install mkdocs mkdocs-material pymdown-extensions
# Clone the Gitea repo
git clone https://git.firefrostgaming.com/firefrost-gaming/firefrost-documentation.git site
cd site
# Create MkDocs configuration
cat > mkdocs.yml << 'MKDOCSEOF'
site_name: Firefrost Gaming Documentation
site_url: https://docs.firefrostgaming.com
site_description: Official documentation for Firefrost Gaming Network
site_author: Firefrost Gaming Team
theme:
name: material
palette:
- scheme: slate
primary: blue
accent: cyan
features:
- navigation.tabs
- navigation.sections
- navigation.expand
- search.suggest
- search.highlight
markdown_extensions:
- pymdownx.highlight
- pymdownx.superfences
- pymdownx.tabbed
- admonition
- toc:
permalink: true
nav:
- Home: index.md
- Getting Started: getting-started.md
- Server Rules: rules.md
- Modpacks: modpacks.md
MKDOCSEOF
# Create initial content structure
mkdir -p docs
cat > docs/index.md << 'INDEXEOF'
# Welcome to Firefrost Gaming
**Fire + Frost = Where Passion Meets Precision** 🔥❄️
This is the official documentation for Firefrost Gaming Network.
## Quick Links
- [Getting Started](getting-started.md)
- [Server Rules](rules.md)
- [Available Modpacks](modpacks.md)
## About Us
Firefrost Gaming is a subscription-based Minecraft server network offering:
- **Fire Path**: Competitive PvP gameplay
- **Frost Path**: Collaborative building and exploration
---
*Documentation last updated: $(date)*
INDEXEOF
cat > docs/getting-started.md << 'STARTEOF'
# Getting Started
Welcome to Firefrost Gaming! This guide will help you get started.
## How to Join
1. Subscribe at [firefrostgaming.com](https://firefrostgaming.com)
2. Download the modpack
3. Connect to the server
## Choosing Your Path
### Fire Path 🔥
Competitive gameplay with PvP elements
### Frost Path ❄️
Collaborative building and exploration
STARTEOF
cat > docs/rules.md << 'RULESEOF'
# Server Rules
## General Rules
1. Be respectful to all players
2. No griefing
3. No cheating or exploits
## Moderation
Our team enforces these rules to ensure a positive experience for everyone.
RULESEOF
cat > docs/modpacks.md << 'MODPACKSEOF'
# Available Modpacks
## Active Servers
### All The Mods 10
- Location: NC1 Charlotte
- IP: 216.239.104.134:25565
### Stoneblock 4
- Location: TX1 Dallas
- IP: 38.68.14.26:25565
*More servers coming soon!*
MODPACKSEOF
# Build the site
mkdocs build
# Set permissions
chown -R www-data:www-data /var/www/mkdocs
# Create Nginx configuration
cat > /etc/nginx/sites-available/mkdocs << 'NGINXEOF'
server {
listen 80;
listen [::]:80;
server_name docs.firefrostgaming.com;
root /var/www/mkdocs/site/site;
index index.html;
location / {
try_files $uri $uri/ =404;
}
# Cache static assets
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 7d;
add_header Cache-Control "public, immutable";
}
}
NGINXEOF
# Enable site
ln -sf /etc/nginx/sites-available/mkdocs /etc/nginx/sites-enabled/
# Test and reload Nginx
nginx -t
systemctl reload nginx
# Get SSL certificate
apt-get install -y certbot python3-certbot-nginx
certbot --nginx -d docs.firefrostgaming.com --non-interactive --agree-tos --email admin@firefrostgaming.com --redirect
# Create rebuild script for Git updates
cat > /usr/local/bin/rebuild-docs.sh << 'REBUILDEOF'
#!/bin/bash
cd /var/www/mkdocs/site
git pull origin main
source /var/www/mkdocs/venv/bin/activate
mkdocs build
echo "Documentation rebuilt: $(date)" >> /var/log/mkdocs-rebuild.log
REBUILDEOF
chmod +x /usr/local/bin/rebuild-docs.sh
# Create webhook listener (simple version)
cat > /usr/local/bin/gitea-webhook-listener.sh << 'WEBHOOKEOF'
#!/bin/bash
# Simple webhook listener on port 9000
while true; do
echo "Listening for webhook..." | nc -l -p 9000 > /dev/null
/usr/local/bin/rebuild-docs.sh
sleep 2
done
WEBHOOKEOF
chmod +x /usr/local/bin/gitea-webhook-listener.sh
echo ""
echo "=== MkDocs Deployed ==="
echo "Site: https://docs.firefrostgaming.com"
echo "Git Repo: https://git.firefrostgaming.com/firefrost-gaming/firefrost-documentation"
echo "Rebuild: /usr/local/bin/rebuild-docs.sh"
echo ""
echo "Next: Configure Gitea webhook to http://38.68.14.26:9000"