Dockman Documentation

website·Indexed 31 days ago

https://dockman.radn.dev

A management tool for Docker that includes a full-featured file explorer for Docker compose files and configs, multi-host support via SSH, and a custom toolkit for running containers. Features include YAML quick formatting, .dockman.yaml configuration, and support for Docker socket proxies and OIDC authentication.

Tokens
12.2K
Snippets
65
Records
107
Agent score
52%

What's inside Dockman

  1. Overview of Dockman

    Dockman is a lightweight web-based text editor designed specifically for managing Docker compose files. It aims to provide a simple, focused interface for editing YAML and environment files without the complexity or resource overhead associated with enterprise-grade container management tools.
  2. Overview of Dockman Docker management

    Dockman is a focused Docker management tool designed for users who prefer working directly with Docker Compose files rather than abstract GUIs. It provides a web UI with a built-in text editor, allowing users to write configurations and deploy stacks with a single click, eliminating the need to manually run CLI commands like docker compose up -d for every stack.
  3. Overview of Dockman file aliases

    File aliases allow users to browse and edit files in any host system directory (such as /opt/appdata, /mnt/storage, or /var/log) directly from the Dockman interface. This is achieved by mapping directories already mounted in the Dockman container, making them accessible via the file explorer for viewing, editing, uploading, and downloading.
  4. Manage files and directories in Dockman

    Dockman provides a full-featured file explorer for managing Docker compose files and configurations. Key capabilities include:

    • Basic file operations: Create, delete, rename, and move files.
    • File transfer: Upload files via drag-and-drop from a local computer or download files from the server.
    • Navigation: Use the search bar for quick file jumping.
    • File Aliases: Access and browse directories located outside the compose root (e.g., /mnt/media or /opt/appdata).
  5. View and edit SQLite databases in Dockman

    Dockman provides a built-in SQLite browser that allows users to view and edit database files directly within the file explorer. This is achieved by spinning up a container running sqlite-web, mounting the database file, and embedding the GUI in an iframe. The container is automatically removed when the tab is closed. Currently, only files with the .db extension are supported.
  6. Manage files using the Dockman file explorer

    Dockman provides a full-featured file explorer for managing Docker compose files and configurations. Key capabilities include:

    • Basic file operations: Create, delete, rename, and move files.
    • File transfer: Upload files via drag-and-drop from a local computer or download files to the local machine.
    • Navigation: Use the search bar for quick jumps to specific files.
    • File aliases: Access and browse directories located outside the compose root (e.g., /mnt/media or /opt/appdata).
  7. Configure Dockman using environment variables

    Dockman is customized via environment variables. To find the complete list of available configuration options, supported values, and descriptions for your specific version, check the information table that is automatically printed to the logs when a Dockman instance is launched.
  8. View and edit SQLite databases in Dockman

    Dockman provides a built-in SQLite browser powered by sqlite-web. When a user opens a file ending in .db, Dockman automatically spins up a container running sqlite-web, mounts the database file, and embeds the GUI in an iframe. Closing the tab automatically removes the container.

    Constraint: Only files with the .db extension are supported.

  9. Deploy Dockman with LinuxServer socket proxy

    This example demonstrates a full Docker Compose setup using lscr.io/linuxserver/socket-proxy. It includes security hardening such as no-new-privileges, cap_drop: ALL, and read_only: true for both the Dockman and proxy containers.
    services:
      dockman:
        container_name: dockman
        image: ghcr.io/ra341/dockman:canary
        security_opt:
          - no-new-privileges:true
        cap_drop:
          - ALL
        read_only: true
        tmpfs: [ "/tmp" ]
        healthcheck:
          test: wget --no-verbose --tries=1 --spider http://localhost:8866/ || exit 1
          interval: 5s
          timeout: 5s
          retries: 3
        environment:
          - DOCKMAN_COMPOSE_ROOT=/server/stacks
          - DOCKMAN_MACHINE_ADDR=${HOST_IP}
          - DOCKER_HOST=tcp://dockmanProxy:2375
        volumes:
          - ${DATA_PATH}/dockman/config:/config
          - /server/stacks:/server/stacks
        ports:
          - 8866:8866
        restart: always
    
      dockmanProxy:
        image: lscr.io/linuxserver/socket-proxy:latest
        container_name: dockmanProxy
        environment:
          PING: 1
          VERSION: 1
          INFO: 1
          EVENTS: 1
          CONTAINERS: 1
          IMAGES: 1
          NETWORKS: 1
          VOLUMES: 1
          EXEC: 1
          POST: 1
          SYSTEM: 1
          ALLOW_START: 1
          ALLOW_STOP: 1
          ALLOW_RESTARTS: 1
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock:ro
        tmpfs:
          - /run:rw,uid=${SUID},gid=${GUID},mode=0755
          - /tmp:rw,mode=1777
          - /var/lib/haproxy:rw,uid=${SUID},gid=${GUID},mode=0755
        security_opt:
          - no-new-privileges:true
        read_only: true
        cap_drop:
          - ALL
        user: ${SUID}:${GUID}
        group_add:
          - 990
        expose:
          - 2375
        restart: unless-stopped
  10. Set up a file alias to access host directories

    To access a host directory in Dockman, you must first mount the directory in the container and then create an alias in the UI.

    Step 1: Mount the Directory Add a volume mount to your docker-compose.yml. It is recommended to keep the host path and container path identical to avoid confusion.

    Step 2: Restart Container Apply the changes by restarting the container.

    Step 3: Create the Alias

    1. Open the file list and click the edit button in the sidebar.
    2. Enter the container path (the right side of the volume mount).
    3. Assign a friendly name (e.g., "appdata") for the file explorer.

    Step 4: Access Files The alias will now appear in the file explorer sidebar.

    services:
      dockman:
        image: ghcr.io/ra341/dockman:latest
        volumes:
          - /home/zaphodb/stacks:/home/zaphodb/stacks
          - /home/zaphodb/config/dockman:/config
          - /var/run/docker.sock:/var/run/docker.sock
          - /home/zaphodb/appdata:/home/zaphodb/appdata  # Example mount
    docker compose down && docker compose up -d