$ why did i build this?
# short answer
i got tired of googling the same docker-compose syntax for the 400th time. so i started writing things down. then i realized other people might benefit from my suffering too.
# the real answer
every time i learn something about linux, networking, containers, or CI/CD -- i forget it in 2 weeks. this site is my external memory. it’s a man page for the stuff nobody writes man pages for.
# what you’ll find here
no fluff. no “top 10 things” listicles. just real configs, real commands, and real war stories from production. if it helped me at 3am during an incident, it’s going in here.
$ cat /var/log/dev-arguments.log
“just use a VM, it’s simpler”
“docker is just a VM with extra steps”
“i’ll just add another column to the users table”
“works on my machine ¯\_(ツ)_/¯”
“the docs say to run kubectl apply -f but don’t mention which namespace. classic.”
“that’s literally why i built this site”
$ ls /etc/topics/
Linux
from chmod to cgroups, from grep to systemd services. the stuff you google at 2am when production is on fire and the senior engineer is offline.
Docker
dockerfiles that actually work. compose setups that don’t break on monday morning. networking explained without the headaches. and yes, we’ll talk about why docker system prune feels like a crime.
DevOps
CI/CD pipelines, infrastructure as code, monitoring, alerting, and the art of pretending your deployments are “planned maintenance.” because if it’s documented, it didn’t happen.
$ man devdocs
DEVDOCS(1) User Commands DEVDOCS(1)
NAME
devdocs — a curated collection of linux, docker, devops, and development knowledge
SYNOPSIS
browse the docs. copy the commands. fix your stuff.
DESCRIPTION
this site contains practical, no-nonsense documentation for sysadmins, developers, and anyone who has ever said “it works on my machine.” topics include linux internals, docker workflows, CI/CD pipelines, and the occasional rage-quit-worthy debugging session.
EXAMPLES
$ docker run -d --name postgres \
-e POSTGRES_PASSWORD=secret \
-v pgdata:/var/lib/postgresql/data \
postgres:16-alpine
# don't do this in production. or do. i'm not your boss.