Fresh installs, Hyvä auto-setup, remote cloning, Magento upgrades, and multi-store routing — all from one script.
One command. Zero frustration.
mage-mirror is a high-speed Magento development environment generator built for Warden, Docker, and Hyvä.
It automates:
- Fresh Magento installs
- Hyvä theme installation
- Cloning local or remote sites
- Magento upgrades
- Multi-store routing
- SSH sync via rsync or tar
- OpenSearch reconfiguration
- Full Warden environment setup
Everything runs through:
_mage-mirror.sh_mage-mirror.config
git clone https://github.com/j-scriptz/mage-mirror.git
cd mage-mirror
chmod +x _mage-mirror.shthen
./_mage-mirror.shor
sh _mage-mirror.shEnvironment URLs:
- https://mage.test
- https://app.mage.test (if multi-store enabled)
If you plan to use remote cloning, rsync, or remote DB dumps, set up SSH keys so your local machine can authenticate to your server without repeatedly entering a password.
macOS / Linux (recommended: Ed25519)
ssh-keygen -t ed25519 -C "your_email@example.com"- Press Enter to accept the default path:
~/.ssh/id_ed25519 - Add a passphrase (recommended)
If Ed25519 isn’t supported in your environment, use RSA:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519(If you created an RSA key, replace id_ed25519 with your key filename.)
ssh-copy-id -i ~/.ssh/id_ed25519.pub youruser@yourserver.com- Print your public key:
cat ~/.ssh/id_ed25519.pub- SSH into your server (password-based login once):
ssh youruser@yourserver.com- On the server, create
.ssh, paste the key, and lock permissions:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
# Paste the full public key line, save, exit
chmod 600 ~/.ssh/authorized_keysssh -i ~/.ssh/id_ed25519 youruser@yourserver.comCreate or edit ~/.ssh/config:
Host myserver
HostName yourserver.com
User youruser
IdentityFile ~/.ssh/id_ed25519Then connect with:
ssh myserverPermission denied (publickey)usually means:- the key wasn’t added to
authorized_keys, - permissions are wrong (
~/.sshshould be700,authorized_keysshould be600), - or you’re connecting as the wrong user.
- the key wasn’t added to
- Non-standard SSH port:
ssh -p 2222 youruser@yourserver.com- Composer create-project
- Admin creation
- Hyvä auto-install
- Sample data support
- DI compile + static deploy
- OpenSearch configuration
Supports:
- Local SQL + env.php/config.php
- Remote over SSH
- Remote DB via mysqldump
- Remote rsync/tar sync modes
Modes:
- Code only
- DB only
- Code + DB
- Code + DB (no media)
- Full sync
UPGRADE_MAGENTO=yes
UPGRADE_MAGENTO_VERSION=2.4.*mage-mirror will:
- Import site
- Adjust Composer constraints
- Run composer update
- Run setup:upgrade
- Build static assets
| Domain | Website |
|---|---|
| app.mage.test | base |
| mage.test | subcats |
Also:
- Writes to
/etc/hosts - Patches pub/index.php
- Sets base URLs
Example:
PROJECT_NAME=mage
MAGENTO_VERSION=2.4.*
INSTALL_HYVA=ask
WITH_SAMPLE_DATA=ask
USE_EXISTING_DB=ask
USE_RSYNC_MAGENTO=ask
USE_REMOTE_DB_DUMP=no
ENABLE_MULTISTORE=ask
UPGRADE_MAGENTO=ask
UPGRADE_MAGENTO_VERSION=2.4.*Supports: yes, no, ask
PROJECT_NAME=mage USE_EXISTING_DB=no WITH_SAMPLE_DATA=yes INSTALL_HYVA=yes ./_mage-mirror.shPROJECT_NAME=mage USE_EXISTING_DB=yes EXISTING_DB_SQL=db/site.sql EXISTING_ENV_PHP=config/env.php ./_mage-mirror.shPROJECT_NAME=mage USE_EXISTING_DB=yes USE_RSYNC_MAGENTO=yes USE_REMOTE_DB_DUMP=yes UPGRADE_MAGENTO=yes UPGRADE_MAGENTO_VERSION=2.4.* ./_mage-mirror.shHyvä + Luma compatible subcategory card module:
https://mage.jscriptz.com/jscriptz-subcats.html
PRs and feature requests welcome.
If mage-mirror saved you time:
⭐ Please star the repo — it helps visibility!
GNU Public License v3.0
