Skip to main content

Configuration System

SSH Portfolio uses a single YAML configuration file to define your entire portfolio content. This file controls your profile information, skills, projects, and contact details.

Configuration File Location

The configuration file is named config.yaml and should be placed in the same directory as the SSH Portfolio executable, or you can specify a custom path when starting the application. By default, SSH Portfolio looks for config.yaml in:
  • The current working directory
  • The directory where the executable is located

YAML Structure Overview

The config.yaml file has the following top-level structure:
name: "Your Name"
title: "Your Title"
ascii_art: |
  Your ASCII art here
intro: |
  Your introduction text
  Multiple lines supported

skills:
  - category: "Category Name"
    items:
      - "Skill 1"
      - name: "Skill 2"
        level: 5

projects:
  - name: "Project Name"
    description: "Project description"
    tech: ["Tech1", "Tech2"]
    url: "https://example.com"

contact:
  email: "[email protected]"
  github: "https://github.com/username"
  linkedin: "https://linkedin.com/in/username"
  website: "https://yoursite.com"
  twitter: "https://twitter.com/username"

Configuration Sections

The configuration is divided into several sections:
  • Profile Information - Your name, title, ASCII art, and introduction
  • Skills - Technical skills organized by categories with optional proficiency levels
  • Projects - Your portfolio projects with descriptions and technologies
  • Contact - Your contact information and social media links

How to Reload Configuration

Currently, SSH Portfolio reads the configuration file on startup. To apply changes:
  1. Edit your config.yaml file
  2. Save the changes
  3. Restart the SSH Portfolio application
Future versions may support hot-reloading of configuration without requiring a restart.

Configuration Schema

The configuration is parsed using Go structs defined in config/config.go. The main structure is:
type Config struct {
    Name     string
    Title    string
    ASCIIArt string
    Intro    string
    Skills   []SkillCategory
    Projects []Project
    Contact  Contact
}
Each section has its own struct definition with specific fields. See the individual section documentation for detailed field information.

Validation

SSH Portfolio will validate your YAML syntax on startup. If there are errors in your configuration file, the application will fail to start and display an error message indicating the issue. Common validation errors:
  • Invalid YAML syntax (indentation issues, missing colons)
  • Missing required fields
  • Invalid data types (e.g., providing a string where an array is expected)

Next Steps

Profile Configuration

Configure your name, title, and introduction

Skills Configuration

Set up your technical skills with proficiency levels

Projects Configuration

Add your portfolio projects

Contact Configuration

Configure your contact information

Build docs developers (and LLMs) love