SSH Portfolio
SSH Portfolio is a unique CLI tool that serves your professional portfolio over SSH using Go and Charm’s Bubble Tea framework. Instead of a traditional web portfolio, visitors connect via SSH to explore your projects, skills, and contact information through an elegant terminal user interface (TUI).What Makes SSH Portfolio Special?
SSH Portfolio transforms the humble terminal into a beautiful, interactive showcase for your work. Built with modern Go tools and the Charm ecosystem, it offers:- Interactive Terminal UI: Navigate with arrow keys through a polished TUI powered by Bubble Tea
- SSH Server Built-in: Uses Charm’s Wish library to handle SSH connections seamlessly
- YAML Configuration: Simple, declarative config.yaml to define your entire portfolio
- Lipgloss Styling: Beautiful color schemes and layouts using Catppuccin-inspired themes
- Project Showcase: Display your projects with descriptions, tech stacks, and links
- Skills Display: Organize skills by category with optional proficiency bars
- Docker Support: Deploy anywhere with included Dockerfile and docker-compose.yml
- Zero Dependencies: Visitors only need an SSH client (already on every system)
Key Features
Quickstart
Get SSH Portfolio running in under 5 minutes with Docker or Go
Installation
Detailed installation instructions for Docker, Go, and building from source
Configuration
Learn how to customize your portfolio with config.yaml
Deployment
Deploy your SSH portfolio to production servers
How It Works
- Configure: Edit
config.yamlwith your name, title, intro, skills, projects, and contact info - Run: Start the SSH server on port 2222 (or any port you choose)
- Share: Give people your SSH connection string:
ssh your-server.com -p 2222 - Impress: Visitors explore your portfolio through a beautiful terminal interface
Architecture Overview
SSH Portfolio is built with:- Go 1.24+: Modern Go with the latest features (go.mod:3)
- Bubble Tea: Charm’s TUI framework for building interactive terminal apps (main.go:13)
- Wish: SSH server middleware from Charm (main.go:14-18)
- Lipgloss: Terminal styling with colors and layouts (ui/theme.go)
- YAML: Human-friendly configuration format
- Main Server (main.go:24-77): Initializes the SSH server, loads config, handles connections
- UI Package (ui/): Contains the Bubble Tea models for each page (Home, Skills, Projects, Contact)
- Config Package (config/config.go): YAML parsing and data structures
- Navigation: Tab-based interface with keyboard shortcuts (← → to switch pages, ↑ ↓ to scroll)
Example Portfolio View
When someone connects to your SSH portfolio, they’ll see:Who Is This For?
SSH Portfolio is perfect for:- Developers who want to stand out with a unique portfolio format
- DevOps Engineers showcasing infrastructure and automation skills
- CLI Enthusiasts who prefer terminal interfaces over web browsers
- Anyone looking for a lightweight, zero-JavaScript portfolio solution
Next Steps
Quickstart
Get started in 5 minutes
Installation
Detailed setup guide
Configuration
Customize your portfolio