User

Deploying with Git

How to clone a repository and pull updates using the Git panel in Opterius.

Last updated 1775606400

The Git panel lets you deploy your project directly from a Git repository — clone it once, then pull updates whenever you push new code. No SSH or command line required.

Opening the Git Panel

Go to Software → Git in the sidebar and select a domain from the dropdown. The panel automatically checks whether a Git repository already exists in your project directory.

Project Directory

Git operates on the parent of your public_html folder — for example, /home/myuser/example.com/. This is the standard layout for PHP and Laravel projects where the web root sits inside the project.

Cloning a Repository

If no repository exists yet, the panel shows a Clone Repository form.

Repository URL — accepts HTTPS or SSH (git@) URLs:

  • https://github.com/user/myproject.git
  • git@github.com:user/myproject.git

Branch — leave blank to use the repository's default branch, or enter a specific branch name (e.g. main, production).

Access Token — for private repositories using HTTPS, enter a personal access token (GitHub, GitLab, Gitea, etc.). The token is embedded in the stored remote URL so future pulls work automatically.

[!NOTE] For private repositories via SSH, set up your SSH key first under SSH Keys and use a git@ URL — no access token needed.

Click git clone and wait. Cloning may take a minute for large repositories.

Viewing Repository Status

Once cloned, the panel shows:

  • Branch — the currently checked-out branch
  • Clean / uncommitted changes — whether the working tree is dirty
  • Remote URL — the origin the repo was cloned from
  • Last commit — hash, message, author, and date
  • Working tree — if there are uncommitted changes, the git status --short output is shown
  • Recent commits — last 10 commits with hash, message, author, and relative time

Pulling Updates

Click git pull to fetch and merge the latest changes from the remote branch. If your repository requires authentication and you need to refresh an expired token, check Private repo — provide token and enter a new one.

After a successful pull, the output from git pull appears at the bottom of the page.

Public vs. Private Repositories

Type URL format Authentication
Public HTTPS https://github.com/user/repo.git None required
Private HTTPS https://github.com/user/repo.git Access token
Private SSH git@github.com:user/repo.git SSH key (set up in SSH Keys)

After Deploying

After a git pull, you may need to run follow-up steps:

  • PHP / Laravel — run composer install via the Composer panel and clear caches
  • Node.js — run npm install and restart your app via the Node.js panel

Common Issues

Clone fails with "destination path '.' already exists" — the working directory is not empty. Remove existing files via File Manager or SSH first.

Pull fails with "not a git repository" — the domain's working directory doesn't contain a .git folder. Clone the repository first.

Authentication failed — for HTTPS private repos, your token may have expired or lack the required scopes. Generate a new token with repo (GitHub) or read_repository (GitLab) scope.

Next Steps