Skip to content

MROvaiz/magento-nix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nix Flake Magento

This Config is about magento development environment setup using nix flake.

Prerequisite:

  • NixOS or Nix Package Manager(flake enable).
  • Devenv development environment.
  • Magento System Requirements (only for understanding).

Features:

  1. PHP.
  2. mariadb.
  3. Redis.
  4. OpenSearch.
  5. Xdebug.
  6. Mailpit.
  7. Adminer.
  8. Caddy with Local SSL certificate.
  9. RabbitMQ(WIP).

Installation:

Install Nix/Devenv:

Install Nix and Devenv from installation, make sure to enable experimental features for flake.

Clone Repository

Give permission for caddy for port 80 and 443:

On enterShell Run this, which give non-privileged user access for port 80, 443 and increase buffer size:

sudo sysctl -w net.ipv4.ip_unprivileged_port_start=0
sudo sysctl -w net.core.rmem_max=7500000
sudo sysctl -w net.core.wmem_max=7500000

Or you can add in your NixOS config which runs on boot, (unprivileged, buffer-size and caddy-permission):

boot.kernel.sysctl = {
    "net.ipv4.ip_unprivileged_port_start" = false;
    "net.core.rmem_max" = 7500000;
    "net.core.wmem_max" = 7500000;
};

Hosts Setup

add below, which gives write permission to /etc/hosts file (only for NixOS), refer.

environment.etc.hosts.mode = "0644";

hosts in flake.nix, will add entry in /etc/hosts

hosts = {
    "dev.magento2.local" = "127.0.0.1";
};

Steps to start:

  • Entering the Flake shell: nix develop --no-pure-eval.
  • Start all services with devenv up.
  • Test SSL Host:
curl -k --resolve dev.magento2.local:443:127.0.0.1 https://dev.magento2.local
  • Make sure to comment Caddy acme-staging(CA), after everything is working fine.

Note: Sometimes there is a problem with /etc/hosts. try deleting .devenv/state/hostctl once and devenv up, if /etc/hosts is not writing(sudo-permission).

Get Open Source Magento:

  • Make sure you have ~/.config/composer/auth.json or auth.json in existing project (get the keys from magento marketplace).
  • Run composer install for existing project.
  • Or get latest magento community edition:
composer create-project --repository-url=https://repo.magento.com magento/project-community-edition magento2

Magento install

php bin/magento setup:install \
--base-url=https://dev.magento2.local \
--cleanup-database \
--db-host=127.0.0.1 \
--db-name=magento2 \
--db-user=magento2 \
--db-password=magento2 \
--backend-frontname=admin \
--admin-firstname=admin \
--admin-lastname=admin \
[email protected] \
--admin-user=admin \
--admin-password=admin123 \
--language=en_US \
--currency=INR \
--timezone=Asia/Kolkata \
--use-rewrites=1 \
--search-engine=opensearch \
--opensearch-host=127.0.0.1 \
--opensearch-port=9200 \
--session-save-redis-host=127.0.0.1 \
--session-save-redis-port=6379 \
--session-save-redis-db=0 \
--cache-backend-redis-server=127.0.0.1 \
--cache-backend-redis-port=6379 \
--cache-backend-redis-db=1 \
--page-cache-redis-server=127.0.0.1 \
--page-cache-redis-port=6379 \
--page-cache-redis-db=2 

Access:

  • Magento url: https://dev.magento2.local
  • Adminer url: https://dev.adminer.local
  • Mailpit url: https://dev.mailpit.local

Operations

disable 2fa(not required, mailpit is working for 2FA):

bin/magento module:disable Magento_TwoFactorAuth Magento_AdminAdobeImsTwoFactorAuth

update https configs(not required, setup during installation):

bin/magento config:set web/unsecure/base_url https://dev.magento2.local/ 
bin/magento config:set web/secure/base_url https://dev.magento2.local/ 

Credits

Please find the initial config and idea magento2-devenv(devenv use)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published