GoAdmio
GoAdmio Documentation

GitHub Downloader

From the GoAdmio knowledge base.

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
> Note: The GitHub Downloader downloads a snapshot archive of the repo (the equivalent of GitHub's "Download ZIP"). It does not run 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:

  1. The target domain/account exists and is active. See List Accounts.
  2. The destination directory exists and is writable by the account user.
  3. The server has outbound HTTPS access to github.com and codeload.github.com.
  4. For private repos, a GitHub Personal Access Token (PAT) with repo (or fine-grained contents:read) scope. See Private Repositories.
  5. Sufficient disk space for the repository archive and extracted files. See Disk Usage.
> Note: For large repositories, extraction can take time and temporarily double disk usage (archive + extracted files). Ensure free space before downloading.

How to Download a Repository

  1. Log in to the GoAdmio Admin Panel (or User Panel).
  2. Navigate to Files & FTP → GitHub Downloader.
  3. Select the domain / account.
  4. Enter the Repository URL (e.g., https://github.com/username/repo).
  5. Choose the Branch or Tag (leave blank for the default branch).
  6. Set the Destination directory (e.g., www/example.com).
  7. Choose whether to overwrite existing files.
  8. Click Download (or Deploy).
GoAdmio downloads the repository archive from GitHub, extracts it, and places the files in the destination. The progress is shown in the log.

> 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:

  1. GoAdmio resolves the repository and branch/tag to a GitHub archive URL (e.g., https://codeload.github.com/user/repo/zip/refs/heads/main).
  2. It downloads the ZIP archive over HTTPS.
  3. It extracts the archive into a temporary directory.
  4. It moves or copies the extracted files into the Destination directory.
  5. 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.
> Tip: After extraction, list the destination directory to confirm the files are in the expected location (not nested inside a repo-main/ folder).

Private Repositories

GitHub does not allow anonymous downloads of private repositories. To download a private repo:

  1. Create a GitHub Personal Access Token:
- GitHub → Settings → Developer settings → Personal access tokens - Classic token: scope repo - Fine-grained token: Contents: Read on the specific repo
  1. In GoAdmio, provide the token when prompted (or in the token field, depending on your version).
  2. Use the repository URL as usual.
> Warning: Treat the token like a password. Use a token scoped to only the required repository, set an expiry, and revoke it when no longer needed. Do not reuse a personal token for multiple customers — create separate tokens per integration.

> 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

Download a tagged release

curl -L -o repo.zip https://codeload.github.com/user/repo/zip/refs/tags/v1.2.3

Private repo with a token

curl -L -H "Authorization: token <TOKEN>" \ -o repo.zip https://codeload.github.com/user/repo/zip/refs/heads/main

Or clone directly (requires git + SSH key)

git clone git@github.com:user/repo.git .
↑