Skip to content

Conversation

@kodjomiles
Copy link
Collaborator

Description

Updated self-hosted GitHub installation documentation

Added docs pages

Please also include the path for the added docs

  • None

Updated docs pages

Please also include the path for the updated docs

  • GitHub(Self-hosted) (/build-your-software-catalog/sync-data-to-catalog/git/github/self-hosted-installation)

…quisites, registration steps, and deployment instructions. Improved formatting and added images for better guidance.
@kodjomiles kodjomiles requested a review from hadar-co August 26, 2025 23:43
@kodjomiles kodjomiles self-assigned this Aug 26, 2025
@kodjomiles kodjomiles added the bug Something isn't working label Aug 26, 2025
@aws-amplify-eu-west-1
Copy link

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-2723.d2ngvl90zqbob8.amplifyapp.com

@hadar-co hadar-co merged commit 3dcb171 into main Nov 11, 2025
5 checks passed
@hadar-co hadar-co deleted the PORT-11992-bug-doc-for-github-enterprise-on-prem-is-misleading branch November 11, 2025 15:55
@qodo-merge-pro
Copy link
Contributor

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status:
Non-code Docs: The PR only updates documentation and does not add or modify executable code that could
implement or violate audit logging requirements.

Referred Code
The "Self Hosted Installation" guide is specifically for organizations that run their own GitHub Enterprise instance.

In organizations that have a self-hosted GitHub installation there is no access to our official public app, therefore there are some extra steps you need to take to install the GitHub app.

## Prerequisites

- Completed [Port onboarding process](https://docs.port.io/getting-started/overview).
- Your Port user role is set to `Admin`.
- Port Client ID, Client Secret, and Org ID.
  <FindCredentials/>

## Steps

1. [Register](#register-ports-github-app) Port's GitHub app in your GitHub organization.
2. [Deploy](#deployment) Port's GitHub app Docker image inside your VPC.
3. [Install](#installing-ports-github-application) Port's GitHub app in your GitHub organization and on select repositories.

### Register Port's GitHub App

1. Navigate to your organization inside your self-hosted GitHub and click on Settings:



 ... (clipped 122 lines)

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status:
No code added: The PR modifies markdown documentation only, so there are no new identifiers or code
elements to evaluate for naming conventions.

Referred Code
The "Self Hosted Installation" guide is specifically for organizations that run their own GitHub Enterprise instance.

In organizations that have a self-hosted GitHub installation there is no access to our official public app, therefore there are some extra steps you need to take to install the GitHub app.

## Prerequisites

- Completed [Port onboarding process](https://docs.port.io/getting-started/overview).
- Your Port user role is set to `Admin`.
- Port Client ID, Client Secret, and Org ID.
  <FindCredentials/>

## Steps

1. [Register](#register-ports-github-app) Port's GitHub app in your GitHub organization.
2. [Deploy](#deployment) Port's GitHub app Docker image inside your VPC.
3. [Install](#installing-ports-github-application) Port's GitHub app in your GitHub organization and on select repositories.

### Register Port's GitHub App

1. Navigate to your organization inside your self-hosted GitHub and click on Settings:



 ... (clipped 122 lines)

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status:
Docs only change: No executable code or error handling paths were added; the changes are instructional text
and environment variable documentation.

Referred Code
The "Self Hosted Installation" guide is specifically for organizations that run their own GitHub Enterprise instance.

In organizations that have a self-hosted GitHub installation there is no access to our official public app, therefore there are some extra steps you need to take to install the GitHub app.

## Prerequisites

- Completed [Port onboarding process](https://docs.port.io/getting-started/overview).
- Your Port user role is set to `Admin`.
- Port Client ID, Client Secret, and Org ID.
  <FindCredentials/>

## Steps

1. [Register](#register-ports-github-app) Port's GitHub app in your GitHub organization.
2. [Deploy](#deployment) Port's GitHub app Docker image inside your VPC.
3. [Install](#installing-ports-github-application) Port's GitHub app in your GitHub organization and on select repositories.

### Register Port's GitHub App

1. Navigate to your organization inside your self-hosted GitHub and click on Settings:



 ... (clipped 122 lines)

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status:
No user errors: The PR updates documentation and does not alter user-facing error handling behavior in
code.

Referred Code
The "Self Hosted Installation" guide is specifically for organizations that run their own GitHub Enterprise instance.

In organizations that have a self-hosted GitHub installation there is no access to our official public app, therefore there are some extra steps you need to take to install the GitHub app.

## Prerequisites

- Completed [Port onboarding process](https://docs.port.io/getting-started/overview).
- Your Port user role is set to `Admin`.
- Port Client ID, Client Secret, and Org ID.
  <FindCredentials/>

## Steps

1. [Register](#register-ports-github-app) Port's GitHub app in your GitHub organization.
2. [Deploy](#deployment) Port's GitHub app Docker image inside your VPC.
3. [Install](#installing-ports-github-application) Port's GitHub app in your GitHub organization and on select repositories.

### Register Port's GitHub App

1. Navigate to your organization inside your self-hosted GitHub and click on Settings:



 ... (clipped 122 lines)

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status:
Potential secret exposure: The docs show a docker run command that passes secrets as environment variables (e.g.,
PORT_CLIENT_SECRET, PRIVATE_KEY), which is acceptable for setup but should caution against
exposing these in logs or shell history.

Referred Code
docker run \
  -e APP_ID=<APP_ID from register step> \
  -e WEBHOOK_SECRET=<WEBHOOK_SECRET from previous step> \
  -e GHE_HOST=<GITHUB BASE HOST, ie github.company.com> \
  -e PORT=<Any PORT> \
  -e PORT_API_URL=https://api.getport.io \
  -e PORT_ORG_ID=<ORG_ID> \
  -e PORT_CLIENT_ID=<CLIENT_ID> \
  -e PORT_CLIENT_SECRET=<CLIENT_SECRET> \
  -e PRIVATE_KEY=<BASE 64 PRIVATEKEY> \ 
  -p <PORT>:<PORT> \
  ghcr.io/port-labs/port-self-hosted-github-app:0.16.7

</details>

> Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a>
</details></td></tr>
<tr><td><details>
<summary><strong>Generic: Security-First Input Validation and Data Handling</strong></summary><br>

**Objective:** Ensure all data inputs are validated, sanitized, and handled securely to prevent <br>vulnerabilities<br>

**Status:** <br><a href='https://github.com/port-labs/port-docs/pull/2723/files#diff-21b50e9309c9fe3ac14731360836c91a9f4b2c7bf99d341117bded61a8d88378R98-R122'><strong>Secrets handling</strong></a>: Documentation instructs supplying sensitive values (<code>WEBHOOK_SECRET</code>, <code>PORT_CLIENT_SECRET</code>, <br><code>PRIVATE_KEY</code>) via environment variables but does not include guidance on secure handling <br>(e.g., avoiding shell history, using secret managers), which may require additional <br>security notes.<br>
<details open><summary>Referred Code</summary>

```markdown
docker run \
  -e APP_ID=<APP_ID from register step> \
  -e WEBHOOK_SECRET=<WEBHOOK_SECRET from previous step> \
  -e GHE_HOST=<GITHUB BASE HOST, ie github.company.com> \
  -e PORT=<Any PORT> \
  -e PORT_API_URL=https://api.getport.io \
  -e PORT_ORG_ID=<ORG_ID> \
  -e PORT_CLIENT_ID=<CLIENT_ID> \
  -e PORT_CLIENT_SECRET=<CLIENT_SECRET> \
  -e PRIVATE_KEY=<BASE 64 PRIVATEKEY> \ 
  -p <PORT>:<PORT> \
  ghcr.io/port-labs/port-self-hosted-github-app:0.16.7
Env variable Description
APP_ID Application ID, you can find it in the edit GitHub App page
WEBHOOK_SECRET The same string that was used to register the application in the previous step
GHE_HOST Your organization's self-hosted GitHub hostname
PORT The port that the GitHub App will listen to
PORT_API_URL Port's API Base URL

... (clipped 4 lines)


</details>

> Learn more about managing compliance <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#configuration-options'>generic rules</a> or creating your own <a href='https://qodo-merge-docs.qodo.ai/tools/compliance/#custom-compliance'>custom rules</a>
</details></td></tr>

<tr><td align="center" colspan="2">

<!-- placeholder --> <!-- /compliance --update_compliance=true -->

</td></tr></tbody></table>
<details><summary>Compliance status legend</summary>
🟢 - Fully Compliant<br>
🟡 - Partial Compliant<br>
🔴 - Not Compliant<br>
⚪ - Requires Further Human Verification<br>
🏷️ - Compliance label<br>
</details>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working Review effort 2/5

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants