mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-02-07 05:43:24 +01:00
Revised documentation to standardize use of 'bash docs/contribution/setup-fork.sh --full' for fork configuration, clarified install script execution flow, and updated JSON metadata template and field references. Improved helper function docs, resource requirements, and category lists. Updated references and instructions throughout for consistency and accuracy.
232 lines
5.3 KiB
Markdown
232 lines
5.3 KiB
Markdown
# 🍴 Fork Setup Guide
|
|
|
|
**Just forked ProxmoxVE? Run this first!**
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Clone your fork
|
|
git clone https://github.com/YOUR_USERNAME/ProxmoxVE.git
|
|
cd ProxmoxVE
|
|
|
|
# Run setup script (auto-detects your username from git)
|
|
bash docs/contribution/setup-fork.sh --full
|
|
```
|
|
|
|
That's it! ✅
|
|
|
|
---
|
|
|
|
## What Does It Do?
|
|
|
|
The `setup-fork.sh` script automatically:
|
|
|
|
1. **Detects** your GitHub username from git config
|
|
2. **Updates ALL hardcoded links** to point to your fork:
|
|
- Documentation links pointing to `community-scripts/ProxmoxVE`
|
|
- **Curl download URLs** in scripts (e.g., `curl ... github.com/community-scripts/ProxmoxVE/main/...`)
|
|
3. **Creates** `.git-setup-info` with your configuration details
|
|
4. **Backs up** all modified files (\*.backup for safety)
|
|
|
|
### Why Updating Curl Links Matters
|
|
|
|
Your scripts contain `curl` commands that download dependencies from GitHub (build.func, tools.func, etc.):
|
|
|
|
```bash
|
|
# First line of ct/myapp.sh
|
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
|
```
|
|
|
|
**WITHOUT setup-fork.sh:**
|
|
|
|
- Script URLs still point to `community-scripts/ProxmoxVE/main`
|
|
- If you test locally with `bash ct/myapp.sh`, you're testing local files, but the script's curl commands would download from **upstream** repo
|
|
- Your modifications aren't actually being tested via the curl commands! ❌
|
|
|
|
**AFTER setup-fork.sh:**
|
|
|
|
- Script URLs are updated to `YourUsername/ProxmoxVE/main`
|
|
- When you test via curl from GitHub: `bash -c "$(curl ... YOUR_USERNAME/ProxmoxVE/main/ct/myapp.sh)"`, it downloads from **your fork**
|
|
- The script's curl commands also point to your fork, so you're actually testing your changes! ✅
|
|
- ⏱️ **Important:** GitHub takes 10-30 seconds to recognize pushed files - wait before testing!
|
|
|
|
```bash
|
|
# Example: What setup-fork.sh changes
|
|
|
|
# BEFORE (points to upstream):
|
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
|
|
|
# AFTER (points to your fork):
|
|
source <(curl -fsSL https://raw.githubusercontent.com/john/ProxmoxVE/main/misc/build.func)
|
|
```
|
|
|
|
---
|
|
|
|
## Usage
|
|
|
|
### Auto-Detect (Recommended)
|
|
|
|
```bash
|
|
bash docs/contribution/setup-fork.sh --full
|
|
```
|
|
|
|
Automatically reads your GitHub username from `git remote origin url`
|
|
|
|
### Specify Username
|
|
|
|
```bash
|
|
bash docs/contribution/setup-fork.sh --full john
|
|
```
|
|
|
|
Updates links to `github.com/john/ProxmoxVE`
|
|
|
|
### Custom Repository Name
|
|
|
|
```bash
|
|
bash docs/contribution/setup-fork.sh --full john my-fork
|
|
```
|
|
|
|
Updates links to `github.com/john/my-fork`
|
|
|
|
---
|
|
|
|
## What Gets Updated?
|
|
|
|
The script updates hardcoded links in these areas when using `--full`:
|
|
|
|
- `ct/`, `install/`, `vm/` scripts
|
|
- `misc/` function libraries
|
|
- `docs/` (including `docs/contribution/`)
|
|
- Code examples in documentation
|
|
|
|
---
|
|
|
|
## After Setup
|
|
|
|
1. **Review changes**
|
|
|
|
```bash
|
|
git diff docs/
|
|
```
|
|
|
|
2. **Read git workflow tips**
|
|
|
|
```bash
|
|
cat .git-setup-info
|
|
```
|
|
|
|
3. **Start contributing**
|
|
|
|
```bash
|
|
git checkout -b feature/my-app
|
|
# Make your changes...
|
|
git commit -m "feat: add my awesome app"
|
|
```
|
|
|
|
4. **Follow the guide**
|
|
```bash
|
|
cat docs/contribution/GUIDE.md
|
|
```
|
|
|
|
---
|
|
|
|
## Common Workflows
|
|
|
|
### Keep Your Fork Updated
|
|
|
|
```bash
|
|
# Add upstream if you haven't already
|
|
git remote add upstream https://github.com/community-scripts/ProxmoxVE.git
|
|
|
|
# Get latest from upstream
|
|
git fetch upstream
|
|
git rebase upstream/main
|
|
git push origin main
|
|
```
|
|
|
|
### Create a Feature Branch
|
|
|
|
```bash
|
|
git checkout -b feature/docker-improvements
|
|
# Make changes...
|
|
git push origin feature/docker-improvements
|
|
# Then create PR on GitHub
|
|
```
|
|
|
|
### Sync Before Contributing
|
|
|
|
```bash
|
|
git fetch upstream
|
|
git rebase upstream/main
|
|
git push -f origin main # Update your fork's main
|
|
git checkout -b feature/my-feature
|
|
```
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### "Git is not installed" or "not a git repository"
|
|
|
|
```bash
|
|
# Make sure you cloned the repo first
|
|
git clone https://github.com/YOUR_USERNAME/ProxmoxVE.git
|
|
cd ProxmoxVE
|
|
bash docs/contribution/setup-fork.sh --full
|
|
```
|
|
|
|
### "Could not auto-detect GitHub username"
|
|
|
|
```bash
|
|
# Your git origin URL isn't set up correctly
|
|
git remote -v
|
|
# Should show your fork URL, not community-scripts
|
|
|
|
# Fix it:
|
|
git remote set-url origin https://github.com/YOUR_USERNAME/ProxmoxVE.git
|
|
bash docs/contribution/setup-fork.sh --full
|
|
```
|
|
|
|
### "Permission denied"
|
|
|
|
```bash
|
|
# Make script executable
|
|
chmod +x docs/contribution/setup-fork.sh
|
|
bash docs/contribution/setup-fork.sh --full
|
|
```
|
|
|
|
### Reverted Changes by Accident?
|
|
|
|
```bash
|
|
# Backups are created automatically
|
|
git checkout docs/*.backup
|
|
# Or just re-run setup-fork.sh
|
|
bash docs/contribution/setup-fork.sh --full
|
|
```
|
|
|
|
---
|
|
|
|
## Next Steps
|
|
|
|
1. ✅ Run `bash docs/contribution/setup-fork.sh --full`
|
|
2. 📖 Read [docs/contribution/GUIDE.md](GUIDE.md)
|
|
3. 🍴 Choose your contribution path:
|
|
- **Containers** → [docs/ct/README.md](docs/ct/README.md)
|
|
- **Installation** → [docs/install/README.md](docs/install/README.md)
|
|
- **VMs** → [docs/vm/README.md](docs/vm/README.md)
|
|
- **Tools** → [docs/tools/README.md](docs/tools/README.md)
|
|
4. 💻 Create your feature branch and contribute!
|
|
|
|
---
|
|
|
|
## Questions?
|
|
|
|
- **Fork Setup Issues?** → See [Troubleshooting](#troubleshooting) above
|
|
- **How to Contribute?** → [docs/contribution/GUIDE.md](GUIDE.md)
|
|
- **Git Workflows?** → `cat .git-setup-info`
|
|
- **Project Structure?** → [docs/README.md](docs/README.md)
|
|
|
|
---
|
|
|
|
## Happy Contributing! 🚀
|