Weeklys

Week 01 — Project Management

Planted February 3, 2026

This week I set up the website for the rest of Fab Academy with using Hugo, SSH Key and GitLab. My goal was to create a website that I can edit in VSCode, then push to FabCloud and have the website update easily.

Achievements

By the end of the week, I was able to:

  • Set up SSH authentication for GitLab (FabCloud)

  • Clone the official Fab Academy repository

  • Build and run a Hugo website locally and publicly

  • How to deploy a website with GitLab Pages

  • Understand the difference between source files and build output


Environment

  • Device: MacBook (macOS Sequoia 15.6.1)

  • Editor: VSCode

  • Terminal: macOS / VSCode terminal

  • Version control: Git + GitLab

  • Site generator: Hugo


Setting up Git + SSH Key

Using SSH keys is important because it avoids typing username/password every push and is more secure.

Check existing keys


ls ~/.ssh

id_ed25519

id_ed25519.pub

id_rsa_gitlab

id_rsa_gitlab.pub

known_hosts

  

Since SSH keys already existed, but I decided to use a new SSH key specifically for FabCloud.

  

---

  

### Generate SSH Key for FabCloud

  

```sh

ssh-keygen -t rsa -C "my-email@example.com" -f ~/.ssh/id_rsa_gitlab

This command creates a public/private key pair that will only be used for FabCloud.


Copy Public Key


cat ~/.ssh/id_rsa_gitlab.pub

I copied the output and added it to:

GitLab -> Preferences -> SSH Keys and instert key and your prefered mail.


Add SSH Key to Agent


ssh-add --apple-use-keychain ~/.ssh/id_rsa_gitlab

This allows macOS to securely store and reuse the key.


SSH Configuration

To make sure the correct key is always used i used this code:


nano ~/.ssh/config

Host gitlab.fabcloud.org

HostName gitlab.fabcloud.org

User git

IdentityFile ~/.ssh/id_rsa_gitlab

AddKeysToAgent yes

UseKeychain yes

Test SSH Connection


ssh -T git@gitlab.fabcloud.org

A welcome message confirmed that SSH authentication was working correctly.


Cloning the Fab Academy Repository

After setting up SSH, I cloned my official Fab Academy repository with this code:


git clone git@gitlab.fabcloud.org:academany/fabacademy/2026/labs/hisar/students/can-ortanc.git

cd can-ortanc

and


cd can-ortanc

This repository is the source for my Fab Academy documentation.


Installing Hugo

Hugo was already installed in my computer, but for those to install you can use this commands but first you should install Homebrew:


brew install hugo

To verify the installation use this:


hugo version

Setting Up Hugo Website

Since the FabCloud website already existed, I created the Hugo site inside the repository.


hugo new site site

Adding Theme (Digital Garden)

I added the Digital Garden theme as a git submodule:


git submodule add https://github.com/apvarun/digital-garden-hugo-theme.git site/themes/digital-garden

Then I configured Hugo by editing site/hugo.toml:


baseURL = "https://fabacademy.org/2026/labs/hisar/students/can-ortanc/"

languageCode = "en-us"

title = "Can Ortanc | Fab Academy"

theme = "digital-garden"

Running the Website Locally

To preview the website locally:


hugo server -s site

The site was available at http://localhost:1313.


Building the Public Website

The public/ folder is automatically generated by Hugo and should not be edited manually (by terminal).


rm -rf public

hugo -s site -d public

Deploying to GitLab Pages

After verifying everything locally, I pushed the changes to GitLab:


git add .

git commit -m "Week 01 – Project Management setup"

git push origin main

GitLab CI automatically builds and deploys the website to GitLab Pages.


What I Learned

  • How SSH keys improve security and workflow efficiency

  • How Git and GitLab manage version control for long-term projects

  • The difference between Hugo source files and generated output

  • How Git submodules are used to manage themes

  • How GitLab Pages automates website deployment This week established a solid foundation for documenting the rest of Fab Academy.

After this documentation, I looked at my website once more, and I saw that it was not working, and in my mail, there was a bunch of pipeline errors with different types. Here are their names:

And I fixed these errors by changing my GitLab.ci-yml to the default form, changing the hugo toml, removing the document in the general file named “Week 01”, I changed the root from master to main, and changed something to /public in hugo.toml and I fixed the baseURL by adding a fabaccademy.org URL and using these 2 commands :

canonifyURLs = true relativeURLs = false

And it was all fixed and ready for publication again.