GitLearn
⌨️ Practice ⟳ Flow
15px

🚀 Deploying GitLearn

This site is four plain HTML files — no build step, no server required. Pick the option that matches your setup and follow the steps.

Before You Deploy — What to Include

Only these four files need to be on the web server. Everything else is development tooling.

✓ index.html # main guide ✓ examples.html # real-world examples ✓ comparisons.html # command comparisons ✓ gitlab.html # GitLab platform guide ✓ deploy.html # this page (optional) ✗ .claude/ # Claude Code internal files ✗ .agents/ # agent config files ✗ examples/ # markdown source files (content already in examples.html) ✗ docs/ # planning documents ✗ CLAUDE.md # Claude instructions ✗ LEARNING_PATH.md # planning doc ✗ skills-lock.json # skills config
⚠️
Tailwind CSS loads from a public CDN. All four pages use <script src="https://cdn.tailwindcss.com">. If you're on a network that blocks external URLs, styles will not load. Test this before deploying.
🐙
GitHub Pages
Free · No config needed · Live in 2 minutes
Easiest

The repo is already on GitHub. Enabling Pages takes one click — GitHub serves the HTML files directly from the repo.

1
Go to github.com/PankitPanchal/learnGit → click the Settings tab.
2
In the left sidebar click Pages.
3
Under Build and deployment → Source, select Deploy from a branch.
4
Set Branch to main and folder to / (root). Click Save.
5
Wait ~60 seconds. Refresh the page — GitHub shows your live URL:
https://pankitpanchal.github.io/learnGit/
From now on, every git push to main automatically updates the live site within ~30 seconds. No extra steps needed.
⚠️
GitHub Pages on a public repo is publicly accessible. Anyone with the URL can read the site. To restrict access, either make the repo private (requires a paid GitHub plan for Pages) or use GitLab Pages or IIS instead.
🦊
GitLab Pages
Best for private hosting · Auto-deploys on push · Access control built in
Recommended for internal use

GitLab Pages is a clean option if you already have a GitLab instance. Push the repo, add one CI file, and GitLab serves the site automatically. Access can be restricted to logged-in users only.

1
Create a new project on your GitLab instance — e.g., gitlab.example.com/team/gitlearn.
2
Add the GitLab remote to your local repo:
git remote add gitlab https://gitlab.example.com/team/gitlearn.git
git push gitlab main
3
Create a .gitlab-ci.yml file in the root of the repo with the following content. This tells GitLab CI to publish the HTML files as a website:
pages:
  stage: deploy
  script:
    - mkdir public
    - cp index.html examples.html comparisons.html gitlab.html deploy.html public/
  artifacts:
    paths:
      - public
  only:
    - main
4
Commit and push the CI file:
git add .gitlab-ci.yml
git commit -m "chore: add GitLab Pages deployment"
git push gitlab main
5
Watch the pipeline run: CI/CD → Pipelines. When it goes green, your site is live at:
https://team.gitlab.example.com/gitlearn/
(The exact URL is shown under Settings → Pages after the first deploy.)
6
Restrict access: go to Settings → General → Visibility and set the project to Internal (visible to all logged-in GitLab users) or Private (only project members). Under Settings → Pages, set Access Control to require authentication.
Once set up, every push to main re-runs the pipeline and updates the live site automatically. No manual steps needed when you add new content.
☁️
Azure Static Web Apps
Free tier · Custom domain · Auto-deploys from GitHub
Free tier

If your company already uses Azure, this is a natural fit. Azure Static Web Apps has a generous free tier and deploys automatically from your GitHub repo via GitHub Actions.

1
Go to the Azure Portal → search for Static Web Apps → click Create.
2
Fill in the basics:
  • Subscription / Resource Group — use your company's group
  • Name — e.g., gitlearn
  • Plan — Free
  • Region — closest to your team
3
Under Deployment details, choose GitHub. Authorise Azure to access your GitHub account, then select:
  • Organisation: PankitPanchal
  • Repository: learnGit
  • Branch: main
4
Under Build Details, set:
  • Build Preset: Custom
  • App location: /
  • Output location: /
  • Leave API location empty
5
Click Review + CreateCreate. Azure adds a GitHub Actions workflow file to your repo automatically and kicks off the first deploy.
6
Once deployed, Azure gives you a URL like https://random-name.azurestaticapps.net. You can add a custom domain (e.g., gitlearn.company.com) under Custom Domains in the Azure resource.
💡
To restrict access to specific users, use Azure Active Directory authentication under Settings → Authentication in your Static Web App resource. Only users in your AAD tenant will be able to open the site.
🖥️
IIS / Internal Web Server
No internet needed · Fully private · Manual updates
No cloud required

If you have an internal Windows server with IIS running, you can host the site there with no cloud services needed. Fully air-gapped if required.

1
Copy the four HTML files to your server — either manually or via a deployment script:
# PowerShell — copy files to the server
$files = @("index.html","examples.html","comparisons.html","gitlab.html","deploy.html")
$dest  = "\\internal-server\inetpub\wwwroot\gitlearn\"

New-Item -ItemType Directory -Force $dest
$files | ForEach-Object { Copy-Item $_ $dest }
2
Create a new IIS site (or add a virtual directory to an existing site):
  • Open IIS Manager on the server
  • Right-click SitesAdd Website
  • Set Physical path to your destination folder
  • Set Binding to your internal hostname, e.g., gitlearn.internal on port 80
  • Click OK
3
Add a DNS entry on your internal DNS server pointing gitlearn.internal (or whatever hostname you chose) to the server's IP address. Users can then open http://gitlearn.internal in any browser.
4
Fix the Tailwind CDN issue for air-gapped networks. If you can't reach cdn.tailwindcss.com, download the Tailwind standalone CLI and generate a CSS file:
# Download the Tailwind standalone CLI for Windows
# https://github.com/tailwindlabs/tailwindcss/releases/latest

# Generate a CSS file from all four HTML files
tailwindcss.exe -i "" --content "*.html" -o tailwind.css --minify
Then replace the CDN script tag in all four HTML files with:
<link rel="stylesheet" href="tailwind.css">
💡
For access control on IIS, use Windows Authentication — users who are logged into the domain are authenticated automatically with no login prompt.
Updating the Site After Changes
Deployment How to update
GitHub PagesJust git push — site updates automatically within ~30 seconds
GitLab PagesJust git push gitlab main — pipeline re-runs and redeploys
Azure Static Web AppsJust git push — GitHub Actions redeploys automatically
IIS / Internal ServerRe-copy the updated HTML files to the server folder. Consider a scheduled task or a simple deploy script to automate this.