AeThex-OS/docs/GITHUB_PAGES_SETUP.md

329 lines
7.8 KiB
Markdown

# GitHub Pages Setup Guide
This document explains how to enable and use GitHub Pages for the AeThex OS documentation.
## 🚀 Quick Setup (5 Minutes)
### Step 1: Enable GitHub Pages
1. Go to your repository: https://github.com/AeThex-Corporation/AeThex-OS
2. Click **Settings** (top right)
3. Scroll down to **Pages** (left sidebar)
4. Under **Source**, select:
- Source: **GitHub Actions**
- Branch: (not needed for Actions)
5. Click **Save**
### Step 2: Push to Main Branch
The GitHub Actions workflow (`.github/workflows/pages.yml`) will automatically:
- Build the Jekyll site
- Deploy to GitHub Pages
- Make it available at: `https://aethex-corporation.github.io/AeThex-OS/`
### Step 3: Verify Deployment
1. Go to **Actions** tab in your repository
2. Watch the "Deploy GitHub Pages" workflow run
3. Once complete (green checkmark), visit your site:
```
https://aethex-corporation.github.io/AeThex-OS/
```
## 📁 Documentation Structure
```
AeThex-OS/
├── _config.yml # Jekyll configuration
├── README.md # Homepage (auto-displayed)
├── .github/workflows/pages.yml # Deployment workflow
├── docs/
│ ├── index.md # Documentation hub
│ ├── AETHEX_OS_SPECIFICATION.md # ⭐ Core OS spec
│ ├── OAUTH_QUICKSTART.md
│ ├── OAUTH_SETUP.md
│ ├── OAUTH_IMPLEMENTATION.md
│ ├── CREDENTIALS_ROTATION.md
│ ├── ENTITLEMENTS_QUICKSTART.md
│ ├── PLATFORM_UI_GUIDE.md
│ ├── FLASH_USB.md
│ └── [redirect files].md # URL-friendly slugs
└── [root markdown files].md # Additional docs
```
## 🎨 Theme Customization
### Current Theme: Cayman
The site uses the **Cayman** theme (dark header, clean design). To change:
**Edit `_config.yml`:**
```yaml
theme: jekyll-theme-cayman
```
**Available themes:**
- `jekyll-theme-cayman` (current)
- `jekyll-theme-slate` (dark, code-focused)
- `jekyll-theme-architect` (clean, professional)
- `minima` (minimal, blog-style)
- `just-the-docs` (documentation-focused, requires Gemfile)
### Custom Styling
Create `assets/css/style.scss`:
```scss
---
---
@import "{{ site.theme }}";
/* Custom styles */
.main-content {
max-width: 1200px;
}
```
## 📄 Adding New Documentation
### Method 1: Direct Documentation (Preferred)
Add markdown files directly to `docs/`:
```bash
# Create new doc
echo "# My Feature\n\nContent here" > docs/MY_FEATURE.md
# Commit and push
git add docs/MY_FEATURE.md
git commit -m "docs: Add feature documentation"
git push
```
Will be available at: `https://aethex-corporation.github.io/AeThex-OS/docs/MY_FEATURE`
### Method 2: URL-Friendly Redirects
For better URLs, create redirect files:
**Create `docs/my-feature.md`:**
```markdown
---
layout: default
title: My Feature
permalink: /docs/my-feature
nav_order: 50
parent: Documentation
---
→ [View My Feature Documentation](MY_FEATURE)
```
Now accessible at: `https://aethex-corporation.github.io/AeThex-OS/docs/my-feature`
## 🔗 URL Structure
| File | URL |
|------|-----|
| `README.md` | `/AeThex-OS/` (homepage) |
| `docs/index.md` | `/AeThex-OS/docs/` (documentation hub) |
| `docs/AETHEX_OS_SPECIFICATION.md` | `/AeThex-OS/docs/AETHEX_OS_SPECIFICATION` |
| `docs/os-specification.md` (redirect) | `/AeThex-OS/docs/os-specification` |
| `LINUX_QUICKSTART.md` | `/AeThex-OS/LINUX_QUICKSTART` |
| `docs/linux-quickstart.md` (redirect) | `/AeThex-OS/docs/linux-quickstart` |
## 🛠️ Local Testing
### Option 1: Using Jekyll Locally
**Install Jekyll:**
```bash
# Ubuntu/Debian
sudo apt install ruby-full build-essential zlib1g-dev
gem install jekyll bundler
# macOS (via Homebrew)
brew install ruby
gem install jekyll bundler
```
**Serve locally:**
```bash
cd /workspaces/AeThex-OS
jekyll serve --baseurl "/AeThex-OS"
# Visit: http://localhost:4000/AeThex-OS/
```
### Option 2: Using Docker
```bash
docker run --rm -v "$PWD":/usr/src/app -p 4000:4000 \
starefossen/github-pages \
jekyll serve --host 0.0.0.0 --baseurl "/AeThex-OS"
```
## 📊 Advanced Configuration
### Custom Domain (Optional)
**To use `docs.aethex.com` instead of GitHub Pages URL:**
1. Create `docs/CNAME` file:
```
docs.aethex.com
```
2. Configure DNS:
```
CNAME docs -> aethex-corporation.github.io
```
3. Update `_config.yml`:
```yaml
url: "https://docs.aethex.com"
baseurl: ""
```
### Navigation Menu (For compatible themes)
**Edit `_config.yml`:**
```yaml
navigation:
- title: Home
url: /
- title: Documentation
url: /docs/
- title: OS Specification
url: /docs/os-specification
- title: GitHub
url: https://github.com/AeThex-Corporation/AeThex-OS
```
### Search (Requires Gemfile setup)
**For `just-the-docs` theme:**
1. Create `Gemfile`:
```ruby
source "https://rubygems.org"
gem "github-pages", group: :jekyll_plugins
gem "just-the-docs"
```
2. Update `_config.yml`:
```yaml
theme: just-the-docs
search_enabled: true
```
## 🎯 Best Practices
### 1. Keep OS Specification as Single Source of Truth
- `docs/AETHEX_OS_SPECIFICATION.md` is the authoritative OS document
- Link to it from other docs, don't duplicate content
### 2. Use Descriptive Filenames
- ✅ Good: `OAUTH_QUICKSTART.md`, `ISO_BUILD_FIXED.md`
- ❌ Avoid: `doc1.md`, `temp.md`
### 3. Organize by Topic
```
docs/
├── index.md # Hub page
├── auth/ # Authentication docs
├── build/ # Build guides
├── deployment/ # Deployment docs
└── reference/ # API references
```
### 4. Link Between Docs
Use relative links:
```markdown
See the [OS Specification](AETHEX_OS_SPECIFICATION) for details.
```
### 5. Keep Front Matter Consistent
```yaml
---
layout: default
title: Document Title
permalink: /docs/url-slug
nav_order: 10
parent: Documentation
---
```
## 🐛 Troubleshooting
### Issue: "404 Not Found" after deployment
**Solution:** Check GitHub Actions logs:
1. Go to **Actions** tab
2. Click latest workflow run
3. Check for build errors
### Issue: CSS not loading
**Solution:** Verify `baseurl` in `_config.yml`:
```yaml
baseurl: "/AeThex-OS" # Must match repo name
```
### Issue: Links broken
**Solution:** Use absolute paths from root:
```markdown
[Link](/AeThex-OS/docs/page) # ✅ Correct
[Link](docs/page) # ❌ May break
```
### Issue: Workflow not running
**Solution:** Ensure workflow has permissions:
1. **Settings****Actions****General**
2. Set **Workflow permissions** to: "Read and write permissions"
## 📚 Resources
- **Jekyll Documentation:** https://jekyllrb.com/docs/
- **GitHub Pages Docs:** https://docs.github.com/pages
- **Supported Themes:** https://pages.github.com/themes/
- **Jekyll Themes:** http://jekyllthemes.org/
## ✅ Post-Setup Checklist
After enabling GitHub Pages:
- [ ] Workflow runs successfully (green checkmark)
- [ ] Site accessible at: `https://aethex-corporation.github.io/AeThex-OS/`
- [ ] Homepage (README.md) displays correctly
- [ ] Documentation index (`/docs/`) loads
- [ ] OS Specification link works
- [ ] OAuth guides accessible
- [ ] All links navigate correctly
- [ ] Update README.md with GitHub Pages URL
- [ ] Announce documentation site to team
## 🚀 Next Steps
1. **Review and test all documentation links**
2. **Add search functionality** (requires theme upgrade)
3. **Create API documentation** (if needed)
4. **Set up custom domain** (optional)
5. **Add Google Analytics** (optional):
```yaml
# _config.yml
google_analytics: UA-XXXXXXXX-X
```
---
**Your documentation is now live at:**
🌐 https://aethex-corporation.github.io/AeThex-OS/
**Documentation Hub:**
📚 https://aethex-corporation.github.io/AeThex-OS/docs/
**OS Specification (Featured):**
⭐ https://aethex-corporation.github.io/AeThex-OS/docs/os-specification