Week 1 — Principles and practices, presentations
Project management: Git, SSH, Fab Cloud GitLab, GitLab Pages, and documenting
the student agreement. This write-up follows the
Fab Academy recitation on version control & GitLab. The live site is plain HTML/CSS; pushing to main runs CI that
copies the repo root into public/ for Pages (see
.gitlab-ci.yml). Final-project sketches are documented on
final-project.html instead of this page.
Individual assignment
Notes, screenshots, and workflow for Week 1: SSH keys, cloning the documentation repo, commits and pipelines, image compression, and the signed student agreement.
There was no ~/.ssh folder yet, so I created an Ed25519 key
with ssh-keygen and copied the public key to the clipboard for
GitLab.
id_ed25519.pub (newline
stripped) on macOS.
In GitLab I opened Preferences → SSH Keys, pasted the key, set a title, and saved it so the server trusts this laptop.
I tested the setup with ssh -T git@gitlab.fabcloud.org. On the
first try I had to type yes to store the host fingerprint;
then GitLab returned “Welcome to GitLab”, which confirms SSH authentication
works. (On some networks the command can hang until the connection
improves.)
known_hosts and successful welcome message.
I used the SSH clone URL from the project page, cloned into a folder named
john-yu, ran cd john-yu, and checked
git status on branch main.
I edited index.html at the repository root, then ran
git add index.html, git commit, and
git push. The CI job copies HTML and assets into
public/ for GitLab Pages. I opened GitLab
CI/CD → Pipelines and verified the latest pipeline passed for that
commit.
origin/main.
I shrank a screenshot in
Squoosh
(MozJPEG), saved it under images/, linked it from
index.html, and pushed the image and HTML together. Small files
keep the documentation site quick to load.
git add for the new image and index.html, then
push with a message describing the image on the home page.
Day-to-day commands I use look like this:
git status → git add … →
git commit -m "…" → git push.
git add .
git commit -m "describe changes"
git push
For Week 1 I committed the Fab Academy student agreement as assignments/students.md, following the official template at fabacademy.org/2026/doc/students.md, and signed it as John Yu.
References: Fab Academy — version control & GitLab, GitLab SSH, GitLab Pages, and Squoosh.