This guide documents the setup process for the Work Mac Studio as a Docker server for work projects.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
## Docker Desktop for Mac
brew install --cask docker
## Docker Compose (if not included with Docker Desktop)
brew install docker-compose
## Development tools
brew install git tmux vim wget curl
## Monitoring tools
brew install osquery
mkdir -p ~/docker/work-projects
mkdir -p ~/docker/volumes
mkdir -p ~/docker/configs
## Create isolated network for work containers
docker network create work-net
## Verify network
docker network ls
## Copy osquery config from management workstation
scp user@management:/path/to/osquery.conf /etc/osquery/
## Start osquery
sudo osqueryctl start
Configure syslog to forward to Seq:
## Add to /etc/syslog.conf
*.* @seq.speicher.family:514
## Download and install Beszel agent
curl -sL https://github.com/henrygd/beszel-agent/releases/latest/download/beszel-agent_darwin_arm64 -o beszel-agent
chmod +x beszel-agent
sudo mv beszel-agent /usr/local/bin/
## Configure as LaunchDaemon
## (See family-macbook setup for example plist file)
ssh-keygen -t ed25519 -C "work-mac-studio"
## Add authorized keys from management workstation
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "ssh-ed25519 AAAA... management@homelab" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
brew install --cask tailscale
## Start Tailscale and authenticate
open /Applications/Tailscale.app
## Follow GUI to connect
~/docker/work-project-example/
├── docker-compose.yml
├── .env
├── config/
│ └── app.conf
├── data/
│ └── (persistent data)
└── README.md
version: '3.8'
services:
app:
image: work-app:latest
container_name: work-app
restart: unless-stopped
networks:
- work-net
volumes:
- ./data:/data
- ./config:/config
environment:
- APP_ENV=development
ports:
- "8080:8080"
networks:
work-net:
external: true
brew upgradedocker system prunebrew upgradedocker statsdocker logs <container>top
## Restart Docker Desktop
killall Docker && open /Applications/Docker.app
## Reset Docker to factory defaults
## Docker Desktop → Preferences → Reset
## Check Tailscale status
tailscale status
## Test connectivity
ping seq.speicher.family
docker image prune -adocker volume prune