{"id":1922,"date":"2026-09-05T10:23:10","date_gmt":"2026-09-05T04:53:10","guid":{"rendered":"https:\/\/cpanelfree.com\/blog\/how-to-host-forgejo-gitea-private-git-server-vps\/"},"modified":"2026-09-12T12:44:37","modified_gmt":"2026-09-12T07:14:37","slug":"how-to-host-forgejo-gitea-private-git-server-vps","status":"publish","type":"post","link":"https:\/\/cpanelfree.com\/blog\/how-to-host-forgejo-gitea-private-git-server-vps\/","title":{"rendered":"How to Self-Host Forgejo &amp; Gitea Lightweight Private Git Server on Ubuntu VPS"},"content":{"rendered":"<h2 id=\"section-1-why-self-host-private-git-repositories-w\">Why Self-Host Private Git Repositories with Forgejo \/ Gitea?<\/h2>\n<p>While public GitHub and GitLab cloud platforms provide reliable version control, hosting proprietary commercial codebases, confidential client projects, and internal automation scripts on third-party SaaS platforms exposes organizations to policy changes, code scraping for AI training, and unexpected account suspensions. Additionally, enterprise self-hosted GitLab requires heavy computing resources (minimum 4GB to 8GB RAM).<\/p>\n<p><!-- EXECUTIVE SUMMARY &amp; KEY TAKEAWAYS --><\/p>\n<div class=\"cpf-exec-summary\">\n<div class=\"cpf-exec-header\">\n    <span class=\"cpf-exec-title\"><br \/>\n      \u26a1 Executive Summary &amp; Key Takeaways<br \/>\n    <\/span><br \/>\n    <span class=\"cpf-exec-badge\">Verified Guide<\/span>\n  <\/div>\n<ul class=\"cpf-exec-list\">\n<li><strong>Core Architecture:<\/strong> Production setup of Forgejo &amp; Gitea Lightweight Private Git Server on Ubuntu VPS engineered for maximum throughput and minimal memory footprint.<\/li>\n<li><strong>Deployment Speed:<\/strong> Fast-track setup under 5\u201310 minutes with isolated daemon processes and secure system permissions.<\/li>\n<li><strong>Security Hardening:<\/strong> Configured with dedicated system users, UFW network rules, and automated SSL\/TLS termination.<\/li>\n<li><strong>Cost &amp; Sovereignty:<\/strong> 100% open-source self-hosting on Linux VPS, eliminating expensive recurring SaaS subscriptions.<\/li>\n<\/ul>\n<\/div>\n<p><!-- ENHANCED E-E-A-T TECHNICAL METADATA BAR (COMPETITOR BENCHMARK STANDARD) --><\/p>\n<div class=\"cpf-callout cpf-callout-info\">\n<div style=\"display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 12px\">\n<div style=\"display: flex;flex-wrap: wrap;align-items: center;gap: 8px\">\n      <span class=\"cpf-eeat-pill os\">\ud83c\udfaf Difficulty: Intermediate<\/span><br \/>\n      <span class=\"cpf-eeat-pill os\">\u26a1 Est. Execution: 10\u201315 Mins<\/span><br \/>\n      <span style=\"color: #f59e0b;padding: 4px 10px;border-radius: 6px;font-weight: 600\">\u23f1\ufe0f 7 min read (1,235 words)<\/span>\n    <\/div>\n<p>    <span style=\"color: #38bdf8;font-weight: 600;font-size: 12.5px\">\ud83d\udd04 Verified September 2026 Edition<\/span>\n  <\/div>\n<div style=\"margin-top: 10px;padding-top: 10px;display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 10px;font-size: 12.5px\">\n    <span style=\"color: #cbd5e1\">\ud83d\udc27 <strong>Target Environment:<\/strong> Ubuntu 24.04 \/ 22.04 LTS \u2022 Debian 12 \u2022 AlmaLinux 9<\/span><br \/>\n    <span style=\"color: #94a3b8\">\ud83d\udee1\ufe0f <strong>Reviewed by:<\/strong> Senior Linux Systems Architect<\/span>\n  <\/div>\n<\/div>\n<p><!-- TABLE OF CONTENTS --><\/p>\n<div class=\"cpf-toc\">\n<div style=\"display: flex;align-items: center;justify-content: space-between;margin-bottom: 14px;padding-bottom: 10px\">\n<div class=\"cpf-toc-title\">\n      <span style=\"font-size: 18px\">\ud83d\udcd1<\/span> Table of Contents\n    <\/div>\n<p>    <span class=\"cpf-exec-title\">Guide Index<\/span>\n  <\/div>\n<div class=\"cpf-toc-links\">\n    <a href=\"#section-1-why-self-host-private-git-repositories-w\" class=\"cpf-toc-link\"><span class=\"cpf-toc-num\">1<\/span><span class=\"cpf-toc-text\">Why Self-Host Private Git Repositories with Forgejo \/ Gitea?<\/span><span class=\"cpf-toc-arrow\">&rsaquo;<\/span><\/a><a href=\"#section-2-step-1-installing-docker-engine-and-proj\" class=\"cpf-toc-link\"><span class=\"cpf-toc-num\">2<\/span><span class=\"cpf-toc-text\">Step 1: Installing Docker Engine and Project Directory Setup<\/span><span class=\"cpf-toc-arrow\">&rsaquo;<\/span><\/a><a href=\"#section-3-step-2-writing-production-docker-compose\" class=\"cpf-toc-link\"><span class=\"cpf-toc-num\">3<\/span><span class=\"cpf-toc-text\">Step 2: Writing Production Docker Compose with PostgreSQL<\/span><span class=\"cpf-toc-arrow\">&rsaquo;<\/span><\/a><a href=\"#section-4-step-3-nginx-reverse-proxy-with-ssl-encr\" class=\"cpf-toc-link\"><span class=\"cpf-toc-num\">4<\/span><span class=\"cpf-toc-text\">Step 3: Nginx Reverse Proxy with SSL Encryption<\/span><span class=\"cpf-toc-arrow\">&rsaquo;<\/span><\/a><a href=\"#section-5-setting-up-forgejo-actions-ci-cd-with-ac\" class=\"cpf-toc-link\"><span class=\"cpf-toc-num\">5<\/span><span class=\"cpf-toc-text\">Setting Up Forgejo Actions CI\/CD with Act Runner<\/span><span class=\"cpf-toc-arrow\">&rsaquo;<\/span><\/a><a href=\"#section-6-automating-daily-git-repository-backups\" class=\"cpf-toc-link\"><span class=\"cpf-toc-num\">6<\/span><span class=\"cpf-toc-text\">Automating Daily Git Repository Backups<\/span><span class=\"cpf-toc-arrow\">&rsaquo;<\/span><\/a><a href=\"#section-7-configuring-built-in-container-amp-packa\" class=\"cpf-toc-link\"><span class=\"cpf-toc-num\">7<\/span><span class=\"cpf-toc-text\">Configuring Built-In Container &amp; Package Registry in Forgejo<\/span><span class=\"cpf-toc-arrow\">&rsaquo;<\/span><\/a>\n  <\/div>\n<\/div>\n<p><strong>Forgejo<\/strong> (the community-governed soft-fork of Gitea) is an ultra-lightweight, high-performance private Git server written in Go. Offering full feature parity with GitHub\u2014including pull requests, issue trackers, wiki pages, code reviews, container package registries, and native Actions CI\/CD workflows\u2014Forgejo runs smoothly on an affordable 1GB RAM cloud VPS while consuming less than 80MB of memory.<\/p>\n<p>In this technical tutorial, we will configure Forgejo on Ubuntu 24.04\/22.04 LTS backed by PostgreSQL with Docker Compose, configure SSH Git operations, and protect the web portal behind an Nginx reverse proxy with SSL encryption.<\/p>\n<h2 id=\"section-2-step-1-installing-docker-engine-and-proj\">Step 1: Installing Docker Engine and Project Directory Setup<\/h2>\n<pre><code># Install Docker and prerequisite utilities\nsudo apt update &amp;&amp; sudo apt install -y curl nginx certbot python3-certbot-nginx\ncurl -fsSL https:\/\/get.docker.com | sudo sh\nsudo systemctl enable --now docker\n\n# Create project directory\nsudo mkdir -p \/var\/www\/forgejo\nsudo chown -R $USER:$USER \/var\/www\/forgejo\ncd \/var\/www\/forgejo<\/code><\/pre>\n<p><!-- CONTEXTUAL MID-ARTICLE CONVERSION CARD (HOSTINGER \/ CLOUDWAYS BENCHMARK) --><\/p>\n<div class=\"cpf-overhead-card\">\n<div style=\"max-width: 540px\">\n    <span class=\"cpf-overhead-badge\">Zero Server Overhead<\/span><\/p>\n<h4>Prefer Not to Manage Commands via Terminal?<\/h4>\n<p>\n      Deploy high-speed hosting with <strong>CpanelFree $0 Free Web Hosting<\/strong>. Enjoy authentic cPanel, unmetered NVMe SSD storage, PHP 8.3, and automatic SSL without server maintenance.\n    <\/p>\n<\/p>\n<\/div>\n<div>\n    <a href=\"https:\/\/cpanelfree.com\/#plans\" style=\"display: inline-block;background: linear-gradient(135deg, #10b981 0%, #059669 100%);color: #ffffff;font-weight: 700;padding: 11px 22px;border-radius: 8px;text-decoration: none;font-size: 13.5px;white-space: nowrap\">Get Free cPanel Account &rarr;<\/a>\n  <\/div>\n<\/div>\n<h2 id=\"section-3-step-2-writing-production-docker-compose\">Step 2: Writing Production Docker Compose with PostgreSQL<\/h2>\n<p>Create <code>\/var\/www\/forgejo\/docker-compose.yml<\/code>:<\/p>\n<pre><code>services:\n  db:\n    image: postgres:16-alpine\n    container_name: forgejo_db\n    restart: always\n    environment:\n      POSTGRES_USER: forgejo_user\n      POSTGRES_PASSWORD: UltraStrongGitDbPass2026!\n      POSTGRES_DB: forgejo_db\n    volumes:\n      - postgres_data:\/var\/lib\/postgresql\/data\n\n  server:\n    image: codeberg.org\/forgejo\/forgejo:7.0\n    container_name: forgejo_server\n    restart: always\n    environment:\n      - USER_UID=1000\n      - USER_GID=1000\n      - FORGEJO__database__DB_TYPE=postgres\n      - FORGEJO__database__HOST=db:5432\n      - FORGEJO__database__NAME=forgejo_db\n      - FORGEJO__database__USER=forgejo_user\n      - FORGEJO__database__PASSWD=UltraStrongGitDbPass2026!\n      - FORGEJO__server__ROOT_URL=https:\/\/git.example.com\n      - FORGEJO__server__SSH_PORT=2222\n      - FORGEJO__server__SSH_LISTEN_PORT=22\n    ports:\n      - \"127.0.0.1:3000:3000\"\n      - \"2222:22\"\n    volumes:\n      - forgejo_data:\/data\n    depends_on:\n      - db\n\nvolumes:\n  postgres_data:\n  forgejo_data:<\/code><\/pre>\n<p>Start the container fleet: <code>docker compose up -d<\/code>.<\/p>\n<h2 id=\"section-4-step-3-nginx-reverse-proxy-with-ssl-encr\">Step 3: Nginx Reverse Proxy with SSL Encryption<\/h2>\n<p>Create <code>\/etc\/nginx\/sites-available\/git.example.com<\/code>:<\/p>\n<pre><code>server {\n    listen 80;\n    server_name git.example.com;\n\n    client_max_body_size 200M;\n\n    location \/ {\n        proxy_pass http:\/\/127.0.0.1:3000;\n        proxy_http_version 1.1;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}<\/code><\/pre>\n<p>Enable the site and issue an SSL certificate:<\/p>\n<pre><code>sudo ln -s \/etc\/nginx\/sites-available\/git.example.com \/etc\/nginx\/sites-enabled\/\nsudo nginx -t &amp;&amp; sudo systemctl reload nginx\nsudo certbot --nginx -d git.example.com<\/code><\/pre>\n<h2 id=\"section-5-setting-up-forgejo-actions-ci-cd-with-ac\">Setting Up Forgejo Actions CI\/CD with Act Runner<\/h2>\n<p>Forgejo includes native compatibility with GitHub Actions workflows. Deploy the lightweight <code>act_runner<\/code> daemon on your VPS to execute automated testing, build, and deployment pipelines:<\/p>\n<pre><code># Download act_runner binary\ncurl -L https:\/\/code.forgejo.org\/forgejo\/runner\/releases\/download\/v3.4.0\/act_runner-3.4.0-linux-amd64 -o \/usr\/local\/bin\/act_runner\nchmod +x \/usr\/local\/bin\/act_runner\n\n# Register runner with your Forgejo instance\nact_runner register --instance https:\/\/git.example.com --token &lt;YOUR_RUNNER_REGISTRATION_TOKEN&gt; --no-interactive\n\n# Start runner daemon\nact_runner daemon<\/code><\/pre>\n<h2 id=\"section-6-automating-daily-git-repository-backups\">Automating Daily Git Repository Backups<\/h2>\n<p>Create nightly atomic backups using the built-in Forgejo CLI dump command: <code>docker exec -t forgejo_server su - git -c \"gitea dump -c \/data\/gitea\/conf\/app.ini\"<\/code>.<\/p>\n<h2 id=\"section-7-configuring-built-in-container-amp-packa\">Configuring Built-In Container &amp; Package Registry in Forgejo<\/h2>\n<p>Forgejo includes an integrated OCI Docker container registry and language package manager (NPM, PyPI, Maven, Composer) out of the box, allowing developers to publish private Docker images and software packages directly to their self-hosted Git server without paying for Docker Hub Pro:<\/p>\n<pre><code># Authenticate Docker client with self-hosted Forgejo registry\ndocker login git.example.com -u your_username -p your_access_token\n\n# Tag and push container image\ndocker tag my-web-app:latest git.example.com\/org\/my-web-app:1.0.0\ndocker push git.example.com\/org\/my-web-app:1.0.0<\/code><\/pre>\n<h2 id=\"section-8-forgejo-vs-self-hosted-gitlab-resource-c\">Forgejo vs Self-Hosted GitLab Resource Comparison<\/h2>\n<table class=\"cpf-table\">\n<thead>\n<tr>\n<th>Metric \/ Feature<\/th>\n<th>Forgejo \/ Gitea (Go)<\/th>\n<th>GitLab Community (Ruby\/Java)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Minimum RAM Requirement<\/strong><\/td>\n<td><strong>512 MB to 1 GB RAM<\/strong><\/td>\n<td>4 GB to 8 GB RAM<\/td>\n<\/tr>\n<tr>\n<td><strong>Startup Boot Time<\/strong><\/td>\n<td><strong>~2 seconds<\/strong><\/td>\n<td>~2 to 4 minutes<\/td>\n<\/tr>\n<tr>\n<td><strong>Built-in CI\/CD Workflows<\/strong><\/td>\n<td><strong>GitHub Actions Syntax Compatible<\/strong><\/td>\n<td>Custom .gitlab-ci.yml syntax<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"section-9-configuring-ssh-key-authentication-amp-d\">Configuring SSH Key Authentication &amp; Deploy Keys in Forgejo<\/h2>\n<p>Forgejo supports cryptographic Ed25519 and RSA public keys for secure command-line Git operations (push\/pull). Developers can configure global user SSH keys or repository-specific read-only <strong>Deploy Keys<\/strong> for automated CI\/CD deployment pipelines:<\/p>\n<pre><code># Generate dedicated deploy key for web server\nssh-keygen -t ed25519 -C \"forgejo-deploy@example.com\" -f \/var\/www\/.ssh\/forgejo_deploy\n\n# In Forgejo Web UI:\n# Navigate to Repository &gt; Settings &gt; Deploy Keys &gt; Add Deploy Key\n# Paste \/var\/www\/.ssh\/forgejo_deploy.pub<\/code><\/pre>\n<h2 id=\"section-10-forgejo-webhook-integration-with-slack-a\">Forgejo Webhook Integration with Slack &amp; Discord<\/h2>\n<p>Keep development teams synchronized by configuring native webhooks under <strong>Repository &gt; Settings &gt; Webhooks<\/strong>. Select Discord or Slack to receive instant notifications on push commits, opened pull requests, issue mentions, and release tag creation.<\/p>\n<h2 id=\"section-11-forgejo-high-availability-amp-disaster-r\">Forgejo High-Availability &amp; Disaster Recovery Best Practices<\/h2>\n<ul>\n<li><strong>Automate SQLite\/PostgreSQL Dumps:<\/strong> Schedule nightly <code>pg_dump<\/code> cron jobs to capture all issue trackers, commit metadata, and user accounts.<\/li>\n<li><strong>Mirror Repositories to GitHub:<\/strong> Use Forgejo&#8217;s automated push-mirroring feature to synchronize internal repositories to external GitHub organizations continuously.<\/li>\n<\/ul>\n<div class=\"cpf-exec-summary\">\n<h3>Recommended Related Technical Guides<\/h3>\n<ul class=\"cpf-exec-list\">\n<li><a href=\"https:\/\/cpanelfree.com\/blog\/how-to-automate-git-deployment-github-actions-vps\/\" class=\"cpf-overhead-link\">Automating Continuous Deployments with Git &amp; SSH<\/a><\/li>\n<li class=\"cpf-related-item\"><a href=\"https:\/\/cpanelfree.com\/blog\/how-to-secure-linux-vps-fail2ban-ufw-ssh\/\" class=\"cpf-related-link\">Hardening SSH &amp; Firewall Ports on Linux Cloud VPS<\/a><\/li>\n<li class=\"cpf-related-item\"><a href=\"https:\/\/cpanelfree.com\/blog\/how-to-host-uptime-kuma-server-monitoring-docker-vps\/\" class=\"cpf-related-link\">Monitoring Private Git Server Uptime with Uptime Kuma<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"cpf-related-guides\">\n<h3>Self-Host Private Git Repositories on CpanelFree<\/h3>\n<p>Take full control of your source code and CI\/CD pipelines with high-speed NVMe cloud VPS servers and 100% free hosting options.<\/p>\n<p>  <a href=\"https:\/\/cpanelfree.com\/\" style=\"background-color: #ffffff;color: #0284c7;font-weight: 700;padding: 12px 28px;border-radius: 8px;text-decoration: none;display: inline-block\">Get Free Cloud Hosting Today &rarr;<\/a>\n<\/div>\n<div class=\"cpf-related-guides\">\n<h3>Automated CI\/CD Pipelines with Forgejo Actions and Runner Setup<\/h3>\n<p>Forgejo includes native compatibility with GitHub Actions workflow syntax through Forgejo Actions. By deploying lightweight Docker-based runner daemons, development teams execute continuous integration tests, security linting, and automated deployments directly within their private self-hosted infrastructure:<\/p>\n<pre><code class=\"language-yaml\"># .forgejo\/workflows\/ci.yaml - Automated Build and Test Pipeline\nname: Forgejo Continuous Integration\non:\n  push:\n    branches: [ main, develop ]\n  pull_request:\n    branches: [ main ]\n\njobs:\n  test:\n    runs-on: docker\n    container:\n      image: node:20-alpine\n    steps:\n      - name: Check out repository code\n        uses: actions\/checkout@v4\n      - name: Install dependencies and execute test suite\n        run: |\n          npm ci\n          npm run lint\n          npm test -- --coverage<\/code><\/pre>\n<h4>Enterprise Backup Automation and Disaster Recovery<\/h4>\n<p>Maintain resilient snapshot workflows for Git repositories, issue trackers, LFS blobs, and SQLite\/PostgreSQL databases using Forgejo built-in command-line backup utilities:<\/p>\n<pre><code class=\"language-bash\"># Execute full backup archive containing database, git repositories, and configs\ndocker exec -u git forgejo-server forgejo dump -c \/data\/gitea\/conf\/app.ini --file \/data\/backup.zip\n\n# Encrypt and synchronize backup archive to off-site secure object storage\ngpg --symmetric --batch --passphrase \"$BACKUP_SECRET\" \/data\/backup.zip\nrclone copy \/data\/backup.zip.gpg s3:enterprise-git-backups\/forgejo\/<\/code><\/pre>\n<p>Coupling Forgejo with containerized SSH passthrough and automated off-site synchronization delivers a sovereign, high-throughput DevOps hub with zero third-party platform lock-in.<\/p>\n<\/div>\n<div class=\"cpf-callout cpf-callout-info\">\n<h3>\n        <span style=\"margin-right: 8px\">\ud83d\udd17<\/span> Recommended Related Technical Guides:<br \/>\n    <\/h3>\n<ul class=\"cpf-related-list\">\n<li class=\"cpf-related-item\"><a href=\"https:\/\/cpanelfree.com\/blog\/how-to-host-website-free-forever-guide\/\" class=\"cpf-related-link\">How to Host a Website for Free Forever: Complete Beginner Guide (2026)<\/a><\/li>\n<li class=\"cpf-related-item\"><a href=\"https:\/\/cpanelfree.com\/blog\/free-wordpress-hosting-softaculous-installer\/\" class=\"cpf-related-link\">Top 5 Free WordPress Hosting Services with 1-Click Softaculous Installer<\/a><\/li>\n<li class=\"cpf-related-item\"><a href=\"https:\/\/cpanelfree.com\/blog\/how-to-backup-linux-vps-to-cloud-storage-s3-rclone\/\" class=\"cpf-related-link\">How to Automatically Backup Your Linux VPS to Cloud Storage (S3 \/ Rclone Guide)<\/a><\/li>\n<li class=\"cpf-related-item\"><a href=\"https:\/\/cpanelfree.com\/blog\/how-to-connect-custom-domain-free-web-hosting\/\" class=\"cpf-related-link\">How to Connect a Custom Domain to Free Web Hosting (Complete 2026 Guide)<\/a><\/li>\n<li class=\"cpf-related-item\"><a href=\"https:\/\/merahost.org\/vps\/\" target=\"_blank\" rel=\"noopener\" class=\"cpf-related-link\">Deploy High-Performance Cloud VPS on MeraHost (KVM NVMe, Price Lock)<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"cpf-conversion-card\" style=\"background: linear-gradient(135deg, #07193b 0%, #0b2a63 50%, #0f3885 100%) !important; border: 1px solid rgba(56, 189, 248, 0.35) !important; border-radius: 14px !important; padding: 28px 24px !important; margin: 36px 0 !important; text-align: center !important; box-shadow: 0 10px 30px rgba(7, 25, 59, 0.2) !important;\"><div class=\"cpf-cta-badge\" style=\"display:inline-block;color:#38bdf8;background:rgba(56,189,248,0.12);border:1px solid rgba(56,189,248,0.3);padding:4px 14px;border-radius:20px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;margin-bottom:12px;\">\ud83d\ude80 Production Cloud Infrastructure<\/div><h3 class=\"cpf-cta-title\" style=\"color:#ffffff;margin:0 0 8px 0;font-size:21px;font-weight:800;letter-spacing:-0.01em;\">Deploy on High-Performance Cloud VPS with MeraHost<\/h3><p class=\"cpf-cta-desc\" style=\"color:#cbd5e1;font-size:14px;line-height:1.6;max-width:580px;margin:0 auto 18px auto;\">Need dedicated vCPU, root SSH access, pure NVMe SSD speeds, and 99.95% uptime SLA for your production stack? Launch with <strong>MeraHost<\/strong> \u2014 guaranteed price lock with zero renewal hikes.<\/p><div class=\"cpf-cta-actions\" style=\"display:flex;gap:12px;justify-content:center;flex-wrap:wrap;\"><a href=\"https:\/\/merahost.org\/vps\/\" target=\"_blank\" rel=\"noopener\" class=\"cpf-cta-btn\" style=\"display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0284c7 0%,#0369a1 100%) !important;background-color:#0284c7 !important;color:#ffffff !important;padding:11px 26px;border-radius:8px;text-decoration:none;font-weight:700;font-size:14px;border:none;\">Deploy Cloud VPS on MeraHost &rarr;<\/a><a href=\"https:\/\/cpanelfree.com\/order\/free\" class=\"cpf-cta-btn\" style=\"display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.08) !important;border:1px solid rgba(255,255,255,0.2) !important;color:#ffffff !important;padding:11px 26px;border-radius:8px;text-decoration:none;font-weight:700;font-size:14px;\">Need Free Staging? Claim Free cPanel<\/a><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Why Self-Host Private Git Repositories with Forgejo \/ Gitea? While public GitHub and GitLab cloud platforms provide reliable version control, hosting proprietary commercial codebases, confidential client projects, and internal automation scripts on third-party SaaS platforms exposes organizations to policy changes, code scraping for AI training, and unexpected account suspensions. Additionally, enterprise self-hosted GitLab requires heavy &#8230; <a title=\"How to Self-Host Forgejo &amp; Gitea Lightweight Private Git Server on Ubuntu VPS\" class=\"read-more\" href=\"https:\/\/cpanelfree.com\/blog\/how-to-host-forgejo-gitea-private-git-server-vps\/\" aria-label=\"Read more about How to Self-Host Forgejo &amp; Gitea Lightweight Private Git Server on Ubuntu VPS\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":2518,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[166],"tags":[],"class_list":["post-1922","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developer-stacks"],"_links":{"self":[{"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/posts\/1922","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/comments?post=1922"}],"version-history":[{"count":13,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/posts\/1922\/revisions"}],"predecessor-version":[{"id":4155,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/posts\/1922\/revisions\/4155"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/media\/2518"}],"wp:attachment":[{"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/media?parent=1922"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/categories?post=1922"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cpanelfree.com\/blog\/wp-json\/wp\/v2\/tags?post=1922"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}