Magento 2 installation - Magenx e-commerce webstack
Debian 11 | Ubuntu 20.04
Production ready + AWS Graviton2 ARM support
get your $100 credit and deploy on DigitalOcean
π Installation:
curl -Lo magenx.sh https://magenx.sh && bash magenx.sh
magenx_magento_installation_intro.mp4
you can run in screen
to have indestructible session:
dnf install -y epel-release; dnf install -y screen
screen
bash magenx.sh
System requirements:
Dedicated server / Container
8Gb RAM
*like DigitalOcean cloud servers
πΎ MagenX ecommerce webstack for Magento 2 Open Source
Get a fully pre-configured server with Magento and LEMP stack in just 10 minutes!
- Linux system packages with automatic updates
- Initial system optimization and hardening
- Varnish HTTPS cache setup
- MariaDB my.cnf optimization
- Nginx optimized config with security
- ELK 7.x stack - Elasticsearch latest (log4j2 fixed)
- PHP-FPM (apcu, opcache, lzf, snappy, redis)
- Redis Magento Cache and Sessions (2 instances)
- RabbitMQ message queue
- Letsencrypt/certbot configuration
- Separate Magento files owner and php-fpm user
- Advanced ACL linux permissions, read/write protection
- Chroot configuration: jailed ssh and php user (optional)
Extra premium options available:
- Multiple environments
- Webmin control panel
- SFTP advanced configuration
- SSH private key access ready
- ConfigServer Security and Firewall advanced configuration
- Nginx and CSF Firewall DDOS mitigation
- Nginx and CSF Firewall Carding Attack mitigation
- MariaDB database optimization
- Mytop database monitoring
- Proxysql split database / custom port
- n98-magerun2 Magento 2 cli management
- PhpMyAdmin custom path with http auth
- Goaccess nginx log visualization
- Malware scanner (mwscan,maldet) with email alerts
- Auditd Magento 2 files monitoring
- Automatic nginx images optimization
- Magento 2 logs rotation
- PWA Studio ready
- Hyva Theme ready
- Ready for production.
Complete linux stack including:
- linux and webstack settings optimization
- letsencrypt
- iotop
- sysstat
- git/svn
- strace
- python-pip
- iptraf
- nginx images optimization
- geoip
- logs rotation
- separate permissions for nginx and php user
- and many more
π‘ Environment / Magento mode:
You can select the type of environment and Magento mode respectively. By installing 3 environments on one server at the same time - developer, staging and production, or one type only if you use simple development or even different servers per environment. The script configures users, folders, and all settings for a given environment.
π Get config:
All configuration parameters saved in sqlite database.
sqlite3 -line /opt/magenx/config/magenx.db "SELECT * FROM magento;"
sqlite3 -line /opt/magenx/config/magenx.db "SELECT * FROM system;"
π‘οΈ SSL / HTTPS:
Once up and running, set up SSL with certbot (already installed):
certbot certonly --agree-tos --no-eff-email --email {EMAIL} --webroot -w /home/{USER}/public_html/pub
and uncomment the lines for SSL in:
- /etc/nginx/nginx.conf
- /etc/nginx/sites-available/{DOMAIN_NAME}.conf
- /etc/nginx/conf_m2/varnish_proxy.conf
π οΈ DevOps idea:
You have the opportunity to install a new Magento 2, and it is best to do this in a developer environment. Push the code to your Github repository and from there develop and deploy to production and staging environment using Github Actions.
This is the safest and most productive approach.
There are few configuration files available for Github Actions [paid extra] deployments:
~/deploy.sh
- basic script to catch Github Actions deployment input and run git and magento commands~/.env
- magento 2 environment variables~/.ssh/authorized_keys
- pre-configured ssh keys
π§° Tools:
you can use the following:
sudo cacheflush
- to flush magento cache and restart php-fpm / nginxmysqltuner
- to see mysql metrics and parametersmytop
- database query monitoring / managementn98-magerun2
- magento 2 extented cli- magento profiler built in nginx -
?developer=xxx
Magento-nginx-config/magento2/conf_m2/maps.conf
π» Support the project
You can use this for free. But its not free to create it. This takes time and research.
If you are using this project, there are few ways you can support it:
- Star and sharing the project
- Open an issue to help make it better
- Donate