A web-based interface for managing Docker containers and docker-compose configurations with powerful project creation and backup capabilities.
- View, start, stop, restart, and delete containers
- Real-time logs viewing and container inspection
- Resource usage stats (CPU, memory, uptime)
- Container tagging and custom launch URLs
- Built-in terminal for executing commands within containers
- Project Creation Wizard: Step-by-step tool for creating new Docker Compose projects
- Smart Template System: Pre-built templates with automatic environment variable extraction
- Multi-location Support: Create projects in different directories with flexible location management
- Edit and apply compose files directly from the web interface
- Create & Deploy: One-click project creation with intelligent deployment and error handling
- Visual tracking of compose stack status and stats
- Complete Configuration Backup: One-click backup of all containers, compose files, and settings
- Unified Backup Archives: Downloadable ZIP files containing everything needed for restoration
- Metadata Preservation: Container tags, custom URLs, and stack assignments included
- Automated Restore: Included restore scripts for easy deployment on new systems
- Backup History: Track and manage previous backups locally
- Stack Grouping: Automatically groups containers by Docker Compose project
- Tag-based Organization: Categorize containers with custom tags
- Multiple Sorting Options: By name, CPU, memory, uptime, or tag
- Filter Support: By status, tags, stacks, or text search
- Four theme options (Refined Dark, Night Owl, Nord, Light Breeze)
- Mobile-optimized design with responsive layouts
- CodeMirror Editor: Lightweight, fast syntax highlighting for YAML, shell scripts, and configuration files
- Batch operations for multiple containers
- Desktop/mobile filter layout optimization
- Save bookmarks to quickly access other Composr instances on your network
- Open multiple Composr instances managing different servers
- Test connections to ensure your bookmarked instances are available
The new Project Creation feature makes it easy to start new Docker Compose projects:
- Go to Config tab → Create subtab
- Step 1: Enter project name, choose location, and customize the compose template
- Step 2: Configure environment variables (auto-extracted from compose file)
- Step 3: Review your project and choose to create or create & deploy
- Template-based Creation: Start with a proven template and customize as needed
- Environment Variable Extraction: Automatically identifies and extracts variables from your compose file
- Multiple Project Locations: Choose between main compose directory or additional configured directories
- Create & Deploy Options:
- Create: Just create the project files for later deployment
- Create & Deploy: Create files and immediately start the containers
- Intelligent Error Handling: If deployment fails, get detailed error information and options to fix issues
Protect your Docker setup with comprehensive backup capabilities:
- Go to the Backup tab
- Enter a backup name (or use the auto-generated timestamp)
- Choose what to include (compose files, environment files)
- Click Create Backup to download a ZIP archive
- Go to the Backup tab
- Click Select Backup File and choose your backup ZIP
- Click Restore Backup to restore all configurations
- Container Configurations: Complete container settings, ports, volumes, environment variables
- Compose Files: All your docker-compose.yml files
- Environment Files: All .env files from your projects
- Container Metadata: Tags, custom URLs, and stack assignments
- Restore Scripts: Automated scripts for easy deployment
- Documentation: README with restoration instructions
Each backup ZIP contains:
backup-compose.yml
- Unified compose file with all containersbackup-metadata.json
- Complete container metadataoriginal-compose-files/
- Your original compose filesenv-files/
- All environment filesrestore.sh
- Automated restore scriptREADME.md
- Detailed restoration guide
Composr includes a container terminal feature, allowing you to execute commands directly within your containers from the web interface.
- Click on a container card to open the container details popup
- Click the "Terminal" button in the actions section
- Enter commands in the terminal prompt that appears
- The available commands depend on what's installed in the target container
- Minimal containers (like Alpine-based images) may have limited command availability
- Common commands that work in most containers:
echo $PATH
- Show the PATH environment variablepwd
- Show current directorycat /etc/os-release
- Show OS information (if available)env
- List all environment variables
For Alpine-based containers: If you want to enhance terminal capabilities in your containers, you can add utilities to your Dockerfile:
# Example addition to your own Alpine-based Dockerfile
RUN apk update && apk add busybox-extras
services:
composr:
image: vansmak/composr:latest
container_name: composr
ports:
- "5003:5003"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /path/to/docker/projects:/app/projects
- /path/to/config/composr:/app/data
- /path/to/config/caddy:/caddy_config # Optional
environment:
COMPOSE_DIR: /app/projects
METADATA_DIR: /app/data
CONTAINER_METADATA_FILE: /app/data/metadata.json
CADDY_CONFIG_DIR: /caddy_config # Optional
CADDY_CONFIG_FILE: Caddyfile # Optional
EXTRA_COMPOSE_DIRS: /path1:/path2:/path3 # Optional
restart: unless-stopped
For ARM-based devices like Raspberry Pi, you need to specify the platform:
services:
composr:
image: vansmak/composr:latest
platform: linux/arm64 # Use this for 64-bit ARM (Pi 4)
# OR use platform: linux/arm/v7 for 32-bit ARM (older Pi models)
container_name: composr
ports:
- "5003:5003"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /path/to/docker/projects:/app/projects
- /path/to/config/composr:/app/data
environment:
COMPOSE_DIR: /app/projects
METADATA_DIR: /app/data
restart: unless-stopped
Create a new directory for Composr:
mkdir -p ~/composr/data
Create a docker-compose.yml
file:
nano ~/composr/docker-compose.yml
Paste the appropriate compose example for your system (see above).
Start Composr:
cd ~/composr
docker compose up -d
After installation, access Composr in your web browser at:
http://localhost:5003
- Compose File Editor: Edit docker-compose files directly with syntax highlighting
- Auto-discovery: Automatically finds compose files in configured directories
- Apply Changes: Apply edited compose files directly from the interface
- Project Creation: Create new projects with the step-by-step wizard
- Extract Variables: Extract environment variables from compose files with one click
- Create .env Files: Generate .env files directly from extracted variables
- Multi-location Support: Manage environment files across different project directories
- Edit Caddyfile and restart your Caddy server
- Useful for managing web proxies for your containers
Composr automatically identifies Docker Compose stacks by:
- Using the com.docker.compose.project label
- Parsing compose file directory names
- Checking custom composr.stack labels
When viewing containers, you can:
- Group by stack to see all containers in a project together
- Click on stack headers to open the associated compose file
- See aggregate stack stats (running containers, total CPU/memory)
- Custom Tags: Add multiple tags to any container for flexible organization
- Custom Launch URLs: Set specific URLs for accessing container web interfaces
- Smart Sorting: Group by stack or tag for logical view of your Docker environment
The bookmarks feature allows you to:
- Access multiple Composr instances across your network
- Quickly switch between different servers running Composr
- Organize your Docker infrastructure by purpose or location
To add a bookmark:
- Go to the "Hosts" tab
- Enter a name and URL for the Composr instance
- Click "Add Instance"
- Use the dropdown in the filter menu to quickly switch between instances
- Docker Engine installed and running
- Python 3.9+
- Access to Docker socket
- Required Python packages (see requirements.txt)
- Clone the repository:
git clone https://github.com/Vansmak/composr
cd composr
- Install dependencies:
pip install -r requirements.txt
- Configure the path to your projects directory:
COMPOSE_DIR = '/path/to/your/projects'
python app.py
docker build -t composr:local .
docker run -d \
--name composr \
-p 5003:5003 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /path/to/projects:/app/projects \
composr:local
Backup Security: Backup files contain your complete Docker configuration including environment variables. Store backup files securely and avoid sharing them unless necessary.