Skip to main content

Overview

Dockman keeps things simple with a flat-ish structure that makes sense for homelab setups.

The Rules

  • No nested folders - You can create folders in the root directory, but that's it. No folders inside folders.
  • Think startup-only - Any file in dockman should only be needed when your containers start up. Think compose.yaml, .env files, and initial config files.
  • Keep data separate - Application data like databases, logs, or user-generated content doesn't belong here. Mount those elsewhere.

The Philosophy

Your compose setup should be a clean collection of:

  • Core compose.yaml files
  • Supporting .env files
  • configuration files

That's it. If your container needs to write to it after startup, it probably doesn't belong in dockman.

Example Structure

stacks/
├── .env # a global .env file that can be read by all compose files
├── nextcloud/
│ ├── compose.yaml
│ ├── .env
│ └── config.php
├── traefik/
│ ├── compose.yaml
│ └── traefik.yml
└── media-compose.yaml # this file does not require any supporting files so it is placed at root

Think this is too limiting? Open an issue and we can argue about it.