Initial commit
This commit is contained in:
+364
@@ -0,0 +1,364 @@
|
||||
# Deployment Guide
|
||||
|
||||
This guide explains how to upload the documentation to GitHub and deploy it online.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
1. [Automatic Upload (Recommended)](#automatic-upload)
|
||||
2. [Manual Upload](#manual-upload)
|
||||
3. [Deploy to GitHub Pages](#deploy-to-github-pages)
|
||||
4. [Alternative Hosting](#alternative-hosting)
|
||||
|
||||
---
|
||||
|
||||
## Automatic Upload (Recommended)
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Git installed on your system
|
||||
- GitHub account credentials or Personal Access Token
|
||||
|
||||
### Steps
|
||||
|
||||
1. **Navigate to the project directory:**
|
||||
|
||||
```bash
|
||||
cd /path/to/xui-one-api-docs
|
||||
```
|
||||
|
||||
2. **Run the upload script:**
|
||||
|
||||
```bash
|
||||
./upload-to-github.sh
|
||||
```
|
||||
|
||||
3. **Follow the prompts:**
|
||||
- Enter commit message (or press Enter for default)
|
||||
- Provide GitHub credentials when prompted
|
||||
|
||||
4. **Done!** Your documentation is now on GitHub.
|
||||
|
||||
---
|
||||
|
||||
## Manual Upload
|
||||
|
||||
If you prefer manual control or the automatic script doesn't work:
|
||||
|
||||
### Step 1: Initialize Git
|
||||
|
||||
```bash
|
||||
cd /path/to/xui-one-api-docs
|
||||
git init
|
||||
```
|
||||
|
||||
### Step 2: Add Remote
|
||||
|
||||
```bash
|
||||
git remote add origin https://github.com/worldofiptvcom/xui-one-api-docs.git
|
||||
```
|
||||
|
||||
### Step 3: Stage Files
|
||||
|
||||
```bash
|
||||
git add .
|
||||
```
|
||||
|
||||
### Step 4: Commit
|
||||
|
||||
```bash
|
||||
git commit -m "Initial commit: Add XUI.ONE API documentation with authentication section"
|
||||
```
|
||||
|
||||
### Step 5: Set Branch
|
||||
|
||||
```bash
|
||||
git branch -M main
|
||||
```
|
||||
|
||||
### Step 6: Push to GitHub
|
||||
|
||||
```bash
|
||||
git push -u origin main
|
||||
```
|
||||
|
||||
**Note:** You'll be prompted for GitHub credentials.
|
||||
|
||||
---
|
||||
|
||||
## Authentication Options
|
||||
|
||||
### Option 1: Personal Access Token (Recommended)
|
||||
|
||||
1. **Generate Token:**
|
||||
- Go to GitHub: Settings → Developer settings → Personal access tokens → Tokens (classic)
|
||||
- Click "Generate new token (classic)"
|
||||
- Select scopes: `repo` (Full control of private repositories)
|
||||
- Generate and copy the token
|
||||
|
||||
2. **Use Token:**
|
||||
- When prompted for password, paste your token instead
|
||||
|
||||
### Option 2: GitHub CLI
|
||||
|
||||
```bash
|
||||
# Install GitHub CLI
|
||||
# macOS
|
||||
brew install gh
|
||||
|
||||
# Linux
|
||||
sudo apt install gh
|
||||
|
||||
# Windows
|
||||
winget install --id GitHub.cli
|
||||
|
||||
# Authenticate
|
||||
gh auth login
|
||||
|
||||
# Push repository
|
||||
git push -u origin main
|
||||
```
|
||||
|
||||
### Option 3: SSH Key
|
||||
|
||||
1. **Generate SSH Key:**
|
||||
|
||||
```bash
|
||||
ssh-keygen -t ed25519 -C "your_email@example.com"
|
||||
```
|
||||
|
||||
2. **Add to GitHub:**
|
||||
- Copy public key: `cat ~/.ssh/id_ed25519.pub`
|
||||
- Go to GitHub: Settings → SSH and GPG keys → New SSH key
|
||||
- Paste and save
|
||||
|
||||
3. **Change Remote URL:**
|
||||
|
||||
```bash
|
||||
git remote set-url origin git@github.com:worldofiptvcom/xui-one-api-docs.git
|
||||
```
|
||||
|
||||
4. **Push:**
|
||||
|
||||
```bash
|
||||
git push -u origin main
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Deploy to GitHub Pages
|
||||
|
||||
After uploading to GitHub, deploy the documentation website:
|
||||
|
||||
### Step 1: Enable GitHub Pages
|
||||
|
||||
1. Go to your repository on GitHub
|
||||
2. Click **Settings** tab
|
||||
3. Scroll to **Pages** section (left sidebar)
|
||||
4. Under **Source**:
|
||||
- Branch: `main`
|
||||
- Folder: `/ (root)`
|
||||
5. Click **Save**
|
||||
|
||||
### Step 2: Wait for Deployment
|
||||
|
||||
- GitHub will build your site (takes 1-2 minutes)
|
||||
- Check the Actions tab to see deployment progress
|
||||
|
||||
### Step 3: Access Your Documentation
|
||||
|
||||
Your documentation will be available at:
|
||||
|
||||
```
|
||||
https://worldofiptvcom.github.io/xui-one-api-docs/
|
||||
```
|
||||
|
||||
Open `index.html` to view the interactive Swagger UI documentation.
|
||||
|
||||
### Custom Domain (Optional)
|
||||
|
||||
1. **Add CNAME file:**
|
||||
|
||||
```bash
|
||||
echo "docs.yoursite.com" > CNAME
|
||||
git add CNAME
|
||||
git commit -m "Add custom domain"
|
||||
git push
|
||||
```
|
||||
|
||||
2. **Configure DNS:**
|
||||
- Add CNAME record: `docs.yoursite.com` → `worldofiptvcom.github.io`
|
||||
|
||||
3. **Update GitHub Pages:**
|
||||
- Settings → Pages → Custom domain
|
||||
- Enter: `docs.yoursite.com`
|
||||
- Save
|
||||
|
||||
---
|
||||
|
||||
## Alternative Hosting
|
||||
|
||||
### Netlify
|
||||
|
||||
1. **Connect Repository:**
|
||||
- Go to https://netlify.com
|
||||
- New site from Git
|
||||
- Select your GitHub repository
|
||||
|
||||
2. **Build Settings:**
|
||||
- Build command: (leave empty)
|
||||
- Publish directory: `/`
|
||||
|
||||
3. **Deploy:**
|
||||
- Click Deploy Site
|
||||
- Done! Your site is live
|
||||
|
||||
### Vercel
|
||||
|
||||
1. **Import Project:**
|
||||
- Go to https://vercel.com
|
||||
- Import Git Repository
|
||||
- Select your repository
|
||||
|
||||
2. **Deploy:**
|
||||
- Click Deploy
|
||||
- Done! Your site is live
|
||||
|
||||
### GitLab Pages
|
||||
|
||||
1. **Create `.gitlab-ci.yml`:**
|
||||
|
||||
```yaml
|
||||
pages:
|
||||
stage: deploy
|
||||
script:
|
||||
- mkdir .public
|
||||
- cp -r * .public
|
||||
- mv .public public
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
only:
|
||||
- main
|
||||
```
|
||||
|
||||
2. **Push to GitLab:**
|
||||
|
||||
```bash
|
||||
git remote add gitlab https://gitlab.com/yourusername/xui-one-api-docs.git
|
||||
git push gitlab main
|
||||
```
|
||||
|
||||
### Self-Hosted
|
||||
|
||||
1. **Copy Files to Web Server:**
|
||||
|
||||
```bash
|
||||
scp -r xui-one-api-docs/* user@your-server.com:/var/www/html/docs/
|
||||
```
|
||||
|
||||
2. **Configure Nginx:**
|
||||
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name docs.yoursite.com;
|
||||
root /var/www/html/docs;
|
||||
index index.html;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
3. **Restart Nginx:**
|
||||
|
||||
```bash
|
||||
sudo systemctl restart nginx
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Updating Documentation
|
||||
|
||||
When you make changes:
|
||||
|
||||
```bash
|
||||
# Stage changes
|
||||
git add .
|
||||
|
||||
# Commit
|
||||
git commit -m "Update: Add Streams API documentation"
|
||||
|
||||
# Push
|
||||
git push origin main
|
||||
```
|
||||
|
||||
GitHub Pages will automatically rebuild and deploy.
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### "Permission Denied" Error
|
||||
|
||||
**Solution:**
|
||||
- Use Personal Access Token instead of password
|
||||
- Or set up SSH key authentication
|
||||
|
||||
### "Repository Not Found" Error
|
||||
|
||||
**Solution:**
|
||||
- Verify repository URL: `git remote -v`
|
||||
- Ensure repository exists on GitHub
|
||||
- Check you have access rights
|
||||
|
||||
### GitHub Pages Not Working
|
||||
|
||||
**Solution:**
|
||||
- Verify Pages is enabled in repository settings
|
||||
- Check Actions tab for deployment status
|
||||
- Ensure `index.html` exists in repository root
|
||||
- Wait a few minutes for initial deployment
|
||||
|
||||
### Changes Not Appearing
|
||||
|
||||
**Solution:**
|
||||
- Clear browser cache
|
||||
- Wait 1-2 minutes for GitHub Pages rebuild
|
||||
- Check if git push was successful
|
||||
|
||||
---
|
||||
|
||||
## Viewing Locally
|
||||
|
||||
Before deploying, test locally:
|
||||
|
||||
```bash
|
||||
# Using Python
|
||||
python3 -m http.server 8000
|
||||
|
||||
# Using Node.js
|
||||
npx http-server
|
||||
|
||||
# Using PHP
|
||||
php -S localhost:8000
|
||||
```
|
||||
|
||||
Then open: `http://localhost:8000/index.html`
|
||||
|
||||
---
|
||||
|
||||
## Support
|
||||
|
||||
- **GitHub Issues:** Report deployment problems
|
||||
- **GitHub Discussions:** Ask deployment questions
|
||||
- **World of IPTV:** Community support
|
||||
|
||||
---
|
||||
|
||||
**Need help?** Open an issue on GitHub with:
|
||||
- What you tried
|
||||
- Error messages
|
||||
- Your operating system
|
||||
- Screenshots if applicable
|
||||
Reference in New Issue
Block a user