GitHub Downloader
This page explains the GitHub Downloader feature in GoAdmio. It lets a hosting account pull files directly from a GitHub repository into its document root — without FTP, SCP, or manual archive uploads.
Location: Admin Panel → Files & FTP → GitHub Downloader
Location (User Panel): Files & FTP → GitHub Downloader
Overview
Deploying code from GitHub usually means cloning on a developer machine, building, compressing, uploading via FTP, and extracting on the server. The GitHub Downloader collapses that into a single step inside GoAdmio: point it at a repository, choose a branch or tag, and GoAdmio downloads the archive and extracts it into the target directory.
This is useful for:
- Deploying static sites (HTML/CSS/JS) from a public repo
- Installing open-source applications distributed via GitHub (e.g., a self-hosted tool)
- Updating a theme or plugin that lives in a GitHub repository
- Pulling starter templates into a new account
- Automating simple deployments without CI/CD
git clone and does not install Git submodules. If you need a real Git working tree, use SSH with git clone instead. See Terminal and Manage Shell Access.
What the Page Shows
| Field / Column | Description |
|---|---|
| Domain | The hosting account/domain receiving the files |
| Repository URL | The GitHub repository URL (e.g., https://github.com/user/repo) |
| Branch / Tag | Which branch or tag to download (default: the repo's default branch) |
| Destination | The directory where files are extracted (e.g., www/example.com) |
| Overwrite | Whether existing files are replaced |
| Status / Log | Progress and result of the last download |
> Tip: The Destination field is the most important — extracting into the wrong directory can overwrite a live site. Double-check the path before clicking download.
Prerequisites
Before downloading a repository:
- The target domain/account exists and is active. See List Accounts.
- The destination directory exists and is writable by the account user.
- The server has outbound HTTPS access to
github.comandcodeload.github.com. - For private repos, a GitHub Personal Access Token (PAT) with
repo(or fine-grainedcontents:read) scope. See Private Repositories. - Sufficient disk space for the repository archive and extracted files. See Disk Usage.
How to Download a Repository
- Log in to the GoAdmio Admin Panel (or User Panel).
- Navigate to Files & FTP → GitHub Downloader.
- Select the domain / account.
- Enter the Repository URL (e.g.,
https://github.com/username/repo). - Choose the Branch or Tag (leave blank for the default branch).
- Set the Destination directory (e.g.,
www/example.com). - Choose whether to overwrite existing files.
- Click Download (or Deploy).
> Warning: If Overwrite is enabled, existing files with the same names are replaced. Back up the destination first — see Backup Wizard. To preserve existing files, download into an empty directory and merge manually.
How It Works
When you trigger a download:
- GoAdmio resolves the repository and branch/tag to a GitHub archive URL (e.g.,
https://codeload.github.com/user/repo/zip/refs/heads/main). - It downloads the ZIP archive over HTTPS.
- It extracts the archive into a temporary directory.
- It moves or copies the extracted files into the Destination directory.
- GitHub archives wrap everything in a top-level folder (e.g.,
repo-main/). GoAdmio typically flattens this folder so the files land directly in the destination — verify the result.
repo-main/ folder).
Private Repositories
GitHub does not allow anonymous downloads of private repositories. To download a private repo:
- Create a GitHub Personal Access Token:
repo
- Fine-grained token: Contents: Read on the specific repo
- In GoAdmio, provide the token when prompted (or in the token field, depending on your version).
- Use the repository URL as usual.
> Note: If your GoAdmio version does not support tokens for GitHub Downloader, use SSH + git clone with a deploy key instead. See Terminal.
Branches and Tags
| Selection | What it downloads |
|---|---|
| Default branch (blank) | The repository's default branch (usually main or master) |
| Branch name (e.g., develop) | The tip of that branch |
| Tag name (e.g., v1.2.3) | The exact tagged release — recommended for stable deployments |
| Commit SHA | Not supported by the archive downloader in most versions — use SSH git checkout for exact commits |
> Tip: For production deployments, download a tag rather than a branch. Tags are immutable; branches change under you and can break a live site on the next download.
After Downloading
| Task | Why |
|---|---|
| Verify files are in the destination | Confirm the top-level folder was flattened correctly |
| Check file permissions | GitHub archives may not preserve permissions; run Fix Permissions if needed |
| Confirm the site loads | Test the deployed files in a browser |
| Set the PHP version if the app requires one | See MultiPHP Manager |
| Create a database if the app needs one | See MySQL Databases |
| Configure .env or config files | GitHub archives do not include secrets; create config files manually |
| Install dependencies if required (e.g., composer, npm) | The downloader only fetches source files; it does not run build steps |
| Enable SSL | See Install Free SSL Certificate |
| Scan for malware | If you downloaded from an unverified source, see ClamAV Antivirus |
> Note: Many applications require dependency installation (e.g., composer install, npm install) and configuration after download. The GitHub Downloader is only the first step — it does not replace a full deployment pipeline.
GitHub Downloader vs. Real git clone
| Aspect | GitHub Downloader | git clone (SSH) |
|---|---|---|
| Delivery | ZIP snapshot | Full Git working tree |
| History | No .git directory | Full commit history |
| Updates | Re-download the archive | git pull |
| Submodules | ❌ Not included | ✅ Supported |
| Authentication | Token or public | SSH key or HTTPS |
| Build steps | Not run | Not run (use CI or manual) |
| Use case | Simple deploys, one-off downloads | Development, ongoing deployments |
> Tip: If the account needs to pull updates repeatedly, git clone over SSH is a better long-term choice. Enable shell access via Manage Shell Access and use Terminal.
Via CLI
For scripted deployments, use SSH with git or download the archive directly:
```bash
Download a public repo archive
cd /home/<user>/www/<domain>
curl -L -o repo.zip https://codeload.github.com/user/repo/zip/refs/heads/main
unzip repo.zip
mv repo-main/* .
rm -rf repo-main repo.zip