Host ListLog on Your Domain with GitLab Pages - Help Center

Host ListLog on Your Domain with GitLab Pages

Learn how to deploy your ListLog blog to your custom domain using GitLab Pages. Complete step-by-step guide from setup to custom domain configuration.

Set Up Your GitLab Repository

First, create a new GitLab project to host your ListLog blog:

  1. Create a new project on GitLab.com
  2. Clone the ListLog repository:
    git clone https://gitlab.com/grouplist/listlog.git your-blog-name
    cd your-blog-name
  3. Update the remote origin:
    git remote set-url origin https://gitlab.com/yourusername/your-blog-name.git
  4. Push to your repository:
    git push -u origin main
Tip: Make sure your repository is set to Public for GitLab Pages to work on the free tier.

Configure Your Blog

Edit the listlog.config.json file to customize your blog settings:

{
  "site": {
    "name": "My Awesome Blog",
    "description": "Thoughts on technology and life",
    "url": "https://yourdomain.com",
    "author": "Your Name",
    "language": "en"
  },
  "build": {
    "postsPerPage": 10,
    "generateSitemap": true,
    "generate404": true
  },
  "social": {
    "twitter": "https://twitter.com/yourusername", 
    "gitlab": "https://gitlab.com/yourusername"
  }
}

Key settings to update:

  • site.url — Your custom domain (e.g., https://yourdomain.com)
  • site.name — Your blog's title
  • site.author — Your name
  • social — Your social media profiles

Write Your First Post

Create your first blog post in the posts/ directory:

---
title: Welcome to My Blog
date: 2025-05-29
author: Your Name
tags: welcome, first-post, blogging
excerpt: Welcome to my new blog powered by ListLog and hosted on GitLab Pages!
---

# Welcome to My Blog!

I'm excited to launch my new blog using **ListLog**, a simple yet powerful static site generator.

## Why I Chose ListLog

- **Simple**: Write in markdown, publish automatically
- **Fast**: Static files load instantly
- **Free**: GitLab Pages hosting costs nothing
- **Professional**: Clean, responsive design

## What's Next?

I'll be sharing thoughts on technology, web development, and my projects. Stay tuned!

---

*This blog is powered by ListLog and hosted on GitLab Pages.*

Save this as posts/2025-05-29-welcome.md (using today's date).

Enable GitLab Pages

GitLab Pages will automatically build and deploy your blog:

  1. Commit and push your changes:
    git add .
    git commit -m "Initial blog setup"
    git push origin main
  2. Check the CI/CD pipeline:
    • Go to your project → CI/CD → Pipelines
    • Wait for the build to complete (usually 2-3 minutes)
    • Look for a green "Passed" status
  3. Access your blog:
    • Go to Settings → Pages in your GitLab project
    • Your blog will be available at: https://yourusername.gitlab.io/your-blog-name
Build Failed? Check the pipeline logs in CI/CD → Pipelines. Common issues include missing dependencies or configuration errors.

Set Up Custom Domain

To use your own domain name instead of the default GitLab URL:

Step 1: Configure GitLab Pages

  1. Go to your project → Settings → Pages
  2. Click "New Domain"
  3. Enter your domain (e.g., blog.yourdomain.com)
  4. Leave certificate settings as default for now
  5. Click "Create New Domain"

Step 2: Update DNS Records

In your domain registrar's DNS settings, add these records:

Type Name Value
CNAME blog yourusername.gitlab.io

For root domain (yourdomain.com), use A record pointing to GitLab's IP addresses.

Step 3: Enable SSL Certificate

  1. Wait 24-48 hours for DNS propagation
  2. Return to Settings → Pages → Your Domain
  3. Click "Edit" next to your domain
  4. Check "Force HTTPS"
  5. GitLab will automatically provision a Let's Encrypt certificate
Success! Your blog will now be accessible at your custom domain with SSL encryption.

Publishing Workflow

Publishing new posts is simple with GitLab's automatic deployment:

Method 1: Local Development

  1. Write a new post in the posts/ directory
  2. Test locally:
    npm install
    npm run build
    npm run dev
  3. Commit and push:
    git add .
    git commit -m "Add new post: Post Title"
    git push origin main
  4. Automatic deployment — GitLab builds and publishes your changes

Method 2: GitLab Web Editor

  1. Go to your GitLab project
  2. Navigate to posts/ directory
  3. Click "+""New file"
  4. Write your post using the web editor
  5. Commit directly to main branch
Build Time: Your site typically updates within 2-5 minutes after pushing changes.

Advanced Features

Custom Themes

Customize your blog's appearance by editing:

  • assets/style.css — Main stylesheet
  • templates/index.html — Homepage layout
  • templates/post.html — Individual post layout

Analytics Integration

Add Google Analytics to track your blog traffic:

"analytics": {
  "googleAnalytics": "G-XXXXXXXXXX"
}

SEO Optimization

ListLog automatically generates:

  • XML sitemap at /sitemap.xml
  • RSS feed at /feed.xml
  • Meta tags for social sharing
  • Custom 404 error page

Performance Features

  • Static files — Lightning-fast loading
  • CDN-ready — Works with GitLab's global CDN
  • Mobile-optimized — Responsive design
  • Minimal resources — No JavaScript required for basic functionality

Troubleshooting

Common Issues

  • Check that package.json and build.js are present
  • Verify your listlog.config.json has valid JSON syntax
  • Ensure you have at least one .md file in the posts/ directory
  • Check the pipeline logs for specific error messages
  • Wait 24-48 hours for DNS propagation
  • Use dig yourdomain.com to verify DNS records
  • Ensure CNAME points to yourusername.gitlab.io (not the full project URL)
  • Check that your domain is verified in GitLab Pages settings
  • Ensure DNS is properly configured first
  • Wait up to 1 hour for Let's Encrypt certificate provisioning
  • Try removing and re-adding the domain in GitLab Pages settings
  • Contact GitLab support if issues persist beyond 24 hours

What's Next?

Congratulations! Your ListLog blog is now live on your custom domain. Here are some next steps:

  • Write more posts — Add content regularly to build your audience
  • Customize your theme — Make your blog unique with custom CSS
  • Set up analytics — Track your visitors and popular content
  • Optimize for SEO — Use good titles, descriptions, and keywords
  • Share your content — Promote your blog on social media
Pro Tip: Consider setting up a automated publishing workflow for even easier content management.