Week 13 - Systems

App Development lifecycle

Continuous integration (CI)

Continuous Delivery (CD)

Packaging and Docker

Docker setup

Building an API server

Deployments

Intro to Cloud

Using local LLMs

Appendix 1 yaml syntax

Appendix 2 Docker commands

Practice

Assignment

Core program

YAML Syntax Reference

YAML ("YAML Ain't Markup Language") is a human-readable data format used for configuration files. It uses indentation (spaces, never tabs) to define structure.

Key-Value Pairs

name: HackYourFuture
version: 2.1
active: true
count: 42

Comments

# This is a comment
name: app  # Inline comment

Strings

unquoted: hello world
single: 'contains "double" quotes'
double: "contains 'single' quotes and \\n newlines"

Multi-line Strings

# Literal block (|) — preserves newlines exactly
script: |
  echo "line 1"
  echo "line 2"

# Folded block (>) — joins lines into one
description: >
  This will become
  a single long line
  of text.

Lists (Sequences)

fruits:
  - apple
  - banana
  - cherry

Inline style (JSON-compatible):

fruits: [apple, banana, cherry]

Nested Maps

database:
  host: localhost
  port: 5432
  credentials:
    user: admin
    password: secret

List of Maps

services:
  - name: web
    port: 3000
  - name: api
    port: 8080

Boolean & Null Values

enabled: true
debug: false
value: null  # or ~

Common Mistakes

Mistake Wrong Correct
Using tabs ⇥key: value key: value (spaces)
Missing space after : name:value name: value
Inconsistent indentation Mix of 2 and 4 spaces Pick one, stick to it
Unquoted special chars message: yes (parsed as true) message: "yes"

Quick Rules

  1. Indent with spaces — tabs will break your file
  2. Colon + spacekey: value, not key:value
  3. Dash + spaceitem, not item
  4. Consistent indentation — 2 spaces is standard for GitHub Actions
  5. Quote when in doubt — especially values like yes, no, on, off (YAML treats these as booleans)

Additional Resources

Reading


The HackYourFuture curriculum is licensed under CC BY-NC-SA 4.0 *https://hackyourfuture.net/*

CC BY-NC-SA 4.0 Icons

Built with ❤️ by the HackYourFuture community · Thank you, contributors

Found a mistake or have a suggestion? Let us know in the feedback form.