DockAMP is a Docker image with a responsive web interface to manage official Apache/Nginx, PHP, Python, Node.js, MySQL/MariaDB/PostgeSQL and proxy containers in Docker - also available as a macOS app. Docker version 1.3 | macOS version 1.3 | developed by Kevin Tobler π www.kevintobler.ch
π³ The Docker version can run on any Docker-compatible environment. The image includes support for both linux/amd64 and linux/arm64.
π The macOS version supports Docker Desktop and OrbStack (macOS 14.6 Sonoma or newer)
- Browser-based management interface in English and German
- Web/PHP, Python, or Node.js server types
- Apache or Nginx for each Web/PHP server
- Automatic PHP version discovery with legacy PHP versions available
- Automatic Python and Node.js version discovery
- Advanced PHP, Apache, and Nginx configuration with structured dropdowns for common values
- Python app support with FastAPI, Flask, Django, Streamlit, Gradio, and generic Python apps
- Node.js app support with Express, Fastify, Next.js, Vite, Nuxt, and generic Node.js apps
- Per-app start commands, install commands, package/runtime settings, and automatic default starter files
- Python requirements management with per-server requirements files and optional virtualenv volumes
- Node.js package handling with
package.json/lockfile detection and optionalnode_modulesDocker volumes - Apache and Nginx security header controls for X-Frame-Options, Referrer-Policy, CSP, and related directives
- MySQL, MariaDB, and PostgreSQL
- Shared global or dedicated per-server database containers
- Automatic database image and data migration checks
- Nginx Proxy Manager integration
- phpMyAdmin integration
- Adminer integration for PostgreSQL databases
- SQL dump exports
- Container logs and status overview
- Live visitor overview with active request paths and per-server traffic speed
- Automatic free web-port selection starting above DockAMP's own port
- CPU and memory limits based on the available Docker host resources
- Docker volumes or host paths for persistent storage
- Initial setup can detect and choose Docker volumes or host mounts for
/dataand/sites - Separate storage handling for DockAMP configuration and website/runtime files
- Storage migration between Docker volumes and host mounts where supported
- Host folder browser for document roots, host mounts, additional server mounts, and backup targets
- Folder creation and safer folder deletion dialogs in folder browser views
- Website and app file browser for document roots, Python apps, Node.js apps, and additional mounts
- Upload files or whole folders directly through the browser
- Rename, copy, move, delete, and download website files or folders
- Download folders as compressed archives
- Webserver and app permission checks for document roots, app paths, package/requirements files, and additional mounts, with repair actions
- Global image update checker for DockAMP-managed images, including DockAMP itself, web servers, PHP runtimes, Python and Node.js runtimes, database tools, proxy, Adminer, phpMyAdmin, and helper images
- DockAMP-managed unused image cleanup
- DockAMP-managed unused volume overview with individual delete actions
- User login and account management
- Automatic container restart and auto-start options
- Backup and restore support for Docker volumes and host-mounted storage paths
- Backup selection for DockAMP config, sites/runtime files, Python and Node.js app files, mounted web/app paths, dedicated databases, global database, and Proxy Manager data
- Optional restore selection per backup archive plus backup download as a compressed archive
- DockAMP automatically exports Docker Compose files, runtime files, Python requirements, and Node.js recovery commands so your containers can be started without DockAMP if needed.
The following command stores DockAMP configuration and website data in named Docker volumes:
docker run -d \
--name dockamp \
--restart unless-stopped \
-p 8080:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v dockamp_data:/data \
-v dockamp_sites:/sites \
--add-host host.docker.internal:host-gateway \
keepcoolch/dockamp:latestWhen using a persistent host-mount:
docker run -d \
--name dockamp \
--restart unless-stopped \
-p 8080:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /volume1/path-to-folder/data:/data \
-v /volume1/path-to-folder/sites:/sites \
-e DOCKAMP_DATA_HOST_PATH=/volume1/path-to-folder/data \
-e DOCKAMP_SITES_HOST_PATH=/volume1/path-to-folder/sites \
--add-host host.docker.internal:host-gateway \
keepcoolch/dockamp:latestThis is also the recommended starting point for Docker-capable NAS systems. The Docker socket may need to be selected through the NAS Docker Manager.
docker run -d \
--name dockamp \
--restart unless-stopped \
-p 8080:8080 \
-v "$HOME/.docker/run/docker.sock:/var/run/docker.sock" \
-v dockamp_data:/data \
-v dockamp_sites:/sites \
--add-host host.docker.internal:host-gateway \
keepcoolch/dockamp:latestHost directories selected later as document roots must be shared with Docker
Desktop under Settings -> Resources -> File Sharing.
docker run -d \
--name dockamp \
--restart unless-stopped \
-p 8080:8080 \
-v "$HOME/.orbstack/run/docker.sock:/var/run/docker.sock" \
-v dockamp_data:/data \
-v dockamp_sites:/sites \
--add-host host.docker.internal:host-gateway \
keepcoolch/dockamp:latestCreate a compose.yaml file with docker volumes:
services:
dockamp:
image: keepcoolch/dockamp:latest
container_name: dockamp
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- dockamp_data:/data
- dockamp_sites:/sites
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
dockamp_data:
dockamp_sites:When using a persistent host-mount:
services:
dockamp:
image: keepcoolch/dockamp:latest
container_name: dockamp
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /volume1/path-to-folder/data:/data
- /volume1/path-to-folder/sites:/sites
environment:
- DOCKAMP_DATA_HOST_PATH=/volume1/path-to-folder/data
- DOCKAMP_SITES_HOST_PATH=/volume1/path-to-folder/sites
extra_hosts:
- "host.docker.internal:host-gateway"Start DockAMP:
docker compose up -dOn macOS, replace /var/run/docker.sock in the Compose file with:
${HOME}/.docker/run/docker.sock
For OrbStack use:
${HOME}/.orbstack/run/docker.sock
After startup, open:
http://localhost:8080
On a remote server or NAS, replace localhost with the IP address or hostname of the Docker host. The first visit opens the administrator account setup.
Individual server document roots can also point to absolute paths on the Docker host. Those paths must be accessible to the Docker daemon.
DockAMP includes a host folder browser for supported Docker environments. It can help select document roots, storage paths, and additional mounts from host paths that are visible to the Docker daemon.
/data: DockAMP configuration, users, sessions, application state, generated runtime configuration, and compose export/sites: website files- Database and Proxy Manager data: separate named volumes by default
During the first setup, DockAMP shows the detected storage method for /data and /sites and lets you keep Docker volumes or switch to host mounts. The same storage areas can also be adjusted later from the Storage page.
You can update DockAMP directly from the dashboard, so there's no need to run manual update commands in the terminal.
Important
DockAMP requires access to the Docker socket because it creates and manages
other containers. Access to docker.sock effectively grants Docker host
administration privileges. Only expose DockAMP on trusted networks and use
a strong administrator password.
- Apache or Nginx per server
- Web/PHP, Python, or Node.js server types
- Python
3.9-3.13and Node.js18-24runtime selection with configurable internal port and start commands - Framework presets with automatic ports, commands, and dependency suggestions for FastAPI, Flask, Django, Streamlit, Gradio, Express, Fastify, Next.js, Vite, and Nuxt
- Docker-version test-page templates are created automatically when a selected project folder is empty
- Dynamic PHP version list from Docker Hub (with local fallback)
- Database support: MySQL, MariaDB, PostgreSQL
- Per-server start, stop, restart
- Global actions: start/restart/stop all servers
- Server auto-start on app launch
- Right-click server actions: duplicate and delete
- Automatic next free web-port assignment starting at
8081 - Server list shows the configured web port next to web server and PHP version
- No database
- Global shared database container
- Dedicated database container per server
- Automatic DB/user provisioning for enabled database mode
- Stored database credentials can be changed and reused by DockAMP runtime config
- Optional auto-stop of global DB when no global server is still active
- Dedicated DB container stops with its server
- Built-in Nginx Proxy Manager integration
- Start / Stop / Restart
- Auto-start with app option
- HTTP/HTTPS/Admin ports configurable
- Named volumes or host-path persistence
- Internal or external Proxy Manager mode
- External Proxy Manager admin host can be opened from DockAMP
- Stored NPM administrator credentials with connection testing
- Automatic creation and updating of per-server NPM Proxy Hosts
- Existing NPM Proxy Hosts can be loaded, selected, and adopted without replacing certificates, Advanced Config, or Custom Locations
- Public domains reuse or request Let's Encrypt certificates; local domains remain available over HTTP
- Extensive PHP settings (performance, errors, sessions, OPcache, directives)
- Optional extension/tool toggles with custom PHP runtime image build
- Web server settings for Apache and Nginx
- Reset Web/PHP containers from image defaults
- Additional bind mounts (with add/remove rows and read-only toggle)
- Finder folder picker for document roots and additional host roots
- Container path browser for additional mounts through a temporary helper container
- Dedicated Python and Node.js app containers with direct host-port publishing
- Python requirements installation and editable runtime command
- Node.js install/start commands with optional persistent
node_modulesvolume - Runtime settings, app logs, database modes, auto-start, backups, image updates, and Recovery Compose Export
- Separate Image Update Center for DockAMP-managed Docker images
- System Maintenance window for Backup & Restore, Recovery Compose Export, unused images, and unused volumes
- Unused dangling image overview with individual delete actions
- Unused Docker volume overview with individual delete actions
- Backup and restore for DockAMP configuration, website document roots, and database SQL dumps
- Automatic backups with manual, daily, weekly, and monthly intervals
- Recovery Compose Export writes
docker-compose.yml, per-server YAMLs, global database/proxy YAMLs, README, and manifest files to~/Documents/DockAMP/compose-export - Recovery Compose Export updates automatically when server, global database, or Proxy Manager settings are saved
- Menu bar app with server list and status dots
- Menu bar actions: open app, start/restart/stop all, quit
- Main window only in Dock when visible; menu bar mode when closed
- Live activity indicator for long-running actions
- Toolbar buttons for Maintenance, Image Update Center, Proxy Manager, Live Visitors, Container Center, and Compose YAMLs
- Container logs for web, PHP, database
- Container Center for DockAMP-managed and other Docker containers
- Container Center actions for start, stop, restart, delete, logs, and published-port opening
- Live Visitors view with active request paths and per-server traffic speed, refreshed every second
- Quick DB actions:
- Open in Sequel Pro/Ace
- Open in phpMyAdmin (starts container automatically)
- phpMyAdmin auto-stops when no database container is running
- Compose YAML Center for saved Docker Compose YAML files
- Import, create, edit, copy, rename, delete, and run saved Compose YAMLs
- Simple single-container Compose YAMLs are started as plain
docker runcontainers instead of Compose stacks - Docker Run converter creates a saved Compose YAML from a
docker runcommand
Important
DockAMP requires access to the Docker socket because it creates and manages
other containers. Access to docker.sock effectively grants Docker host
administration privileges.
- macOS 14.6 Sonoma or newer
- Docker Desktop or OrbStack (OrbStack recommended for faster network speed)
- Install Docker Desktop or OrbStack (OrbStack recommended for faster network speed).
- Open DockAMP.app
- Open DockAMP.app
- Click
+(or useFile -> New Server...) - Configure server name, web server, PHP version, ports, and document root
- Choose database mode (
No Database,Global Database,Dedicated Container) - Save/create
- Use
Start,Stop,Restartin the server detail header - Use
Reset Web/PHPto recreate only web and PHP containers from image defaults
For DB tools use:
- Host:
host.docker.internal - Port: shown in the Database tab
- Database/user/password: from server database settings
Inside containers, service names/network aliases are used automatically by DockAMP runtime config.
DockAMP stores configuration JSON files under ~/Documents/DockAMP/:
servers/<server-id>.json(server settings)databases/global_database.json(global DB settings + shared entries)databases/<server-id>.json(dedicated DB server entries)- Proxy Manager settings in the DockAMP app directory (managed by
ProxyManagerStore) - Custom PHP runtime images are tagged and reused by signature
- On server removal, related containers/resources are cleaned up (including dedicated DB containers)
Kevin Tobler
π www.kevintobler.ch


















