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:
- Fix: clean gitlab-ci.yml
- Fix: clean gitlab-ci.yml (again)
- Update home page
- Fix CI: build Hugo from /site
- Week 01 – Project Management setup
- Week 01 – Project Management setup (again)
- Fix Pages: build to /public
- Fix baseURL + menu links for fabacademy subpath
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.