Deployment

    Deploy from GitHub or Forgejo on Zenifra

    Connect GitHub or Forgejo repositories and deploy manually or automate deployments by branch, tag, or release.

    Choose your source GitHub or Forgejo

    Choose a repository to publish your application. Connection steps and permissions vary by provider.

    GitHub

    Connect your GitHub account, select the organization and repository, and choose the source branch.

    • Authorize repository access through your GitHub account.
    • Deploy manually or automate by branch, tag, or release; prereleases are opt-in in release mode.
    • GitHub creates a preview environment for each pull request from the repository itself targeting the chosen branch. Pull requests from forks are not included.
    • Runtimes: Node.js, Python, Bun, Go, Java, and PHP.
    Read the GitHub docs

    Forgejo

    Use the Forgejo instance HTTPS address. Its certificate must be valid and the instance reachable by Zenifra. Then specify the repository path.

    • Manual deployment requires a token with repository read access. To automate deployments, also grant repository write access and permission to administer repository webhooks.
    • Deploy manually or start deployment on pushes to a branch, tag, or release; prereleases are optional and can be included only in release mode when enabled.
    • Forgejo creates a preview environment for each pull request from the repository itself targeting the chosen branch. Pull requests from forks are not included.
    • Runtimes: Node.js, Python, Bun, Go, Java, and PHP.
    Read the Forgejo docs

    GitHub deployment by branch, tag, or release

    Choose manual GitHub deployments or automation by branch, tag, or release to match your team workflow.

    GitHub runtimes

    Node.js 20, 22, 24, and 26, Python 3.11 to 3.14, Bun 1.2 to 1.4, Go 1.25 to 1.27, Java 17, 21, and 25, and PHP 8.3 to 8.5 are available for GitHub deployment. For applications outside these runtimes, use a Docker/OCI image.

    Connect your GitHub account and choose an organization and repository

    The selected branch remains the source for initial project creation

    Manual deployment is always available

    In branch mode, pushes to the configured branch start deployment

    In tag mode, use the pattern shared by tags and releases: exact match, such as v1.2.3, or the * and ? wildcards, such as v*

    In release mode, matching uses the associated tag name, not the title; prereleases can be included only with the opt-in enabled

    Choose how to publish

    Manual deployment is always available, even when an automatic mode is configured. The selected branch remains the source for initial project creation; in branch mode, pushes to that branch start deployment. The same tag pattern applies in tag mode and release mode. Use an exact match, such as v1.2.3, or the * and ? wildcards, such as v*. In release mode, matching uses the associated tag name, not the release title. Prereleases are opt-in and can only be included in release mode.

    When to use GitHub deployment

    Deploy manually when you are ready, or automate deployments by branch, tag, or published release.

    Manual deployment

    Start a deployment when you are ready, even if an automatic mode is configured.

    Automation by branch, tag, or release

    Choose the publishing event that fits the team and follow its status in the console.

    Node.js, Python, Bun, Go, Java, and PHP APIs

    Use the runtimes available for GitHub deployment, with builds and logs in the console.

    How the GitHub flow works

    Connect the repository, choose the initial source, and set how each automatic deployment starts.

    01

    Connect GitHub

    Authorize access and choose the organization, repository, and source branch for project creation.

    02

    Choose how to publish

    Keep manual deployment or configure automation by branch, tag, or published release.

    03

    Configure and follow up

    Set the runtime and tag or release options, then follow builds, logs, and status in the console.

    Deployment settings

    Choose when to publish, then configure the runtime and options your application needs.

    Deployment mode

    Manual deployment is always available; automation can follow a branch, tag, or published release.

    Source branch

    The selected branch remains the source for project creation. In automatic branch mode, pushes to it start deployment.

    Tag pattern

    The same pattern applies to tags and releases. Use the exact tag v1.2.3 or wildcards * and ?, such as v*.

    Published releases

    The pattern matches the release tag name, not its title. Prereleases are opt-in and available only in this mode.

    The real GitHub console flow

    Authorize GitHub, choose the organization and repository, and confirm the branch used to create the project. Then keep manual deployment or choose automation by branch, tag, or release, and follow builds, logs, and status in the console.

    • Connect GitHub and authorize repository access
    • Select the source branch for project creation
    • Keep manual deployment or choose automation by branch, tag, or release
    • For tags and releases, set the same pattern, such as v1.2.3 or v*; prereleases can be included only in release mode
    • Choose Node.js, Python, Bun, Go, Java, or PHP and set the command, environment variables, and HTTP port

    GitHub connection

    The connection screen should show the organization, repository, source branch for project creation, runtime, and automatic deployment option.

    Frequently asked questions

    Answers about connecting and publishing from GitHub and Forgejo.

    Can I deploy manually while automation is enabled?

    Yes. Manual deployment is always available, even when automatic deployment by branch, tag, or release is configured.

    How can automatic GitHub deployment start?

    Choose the configured branch, a tag that matches the pattern, or a published release whose associated tag matches the same pattern.

    Which tag patterns can I use with GitHub?

    The same pattern is used for tags and releases. Use an exact tag such as v1.2.3, or * and ? wildcards such as v*. For releases, matching uses the associated tag name, not the title.

    Can I include prereleases?

    Yes. Including them is optional and can only be enabled when release mode is selected.

    Which runtimes are available?

    GitHub and Forgejo flows use Node.js, Python, Bun, Go, Java, and PHP. For other runtimes, use a Docker/OCI image.

    How do I connect a Forgejo repository?

    Provide the instance HTTPS address and repository path. Manual deployment needs a token with repository read access; automation also needs repository write access and permission to administer repository webhooks.

    We respect your privacy

    We use essential cookies to run this site. Measurement and marketing cookies, such as Google Ads, are only enabled when you accept all cookies. Read our cookie policy.