{
  "id": "w0vALsJ5Y3lwwaGk",
  "name": "Automate Complete LAMP Stack Setup on Linux Server in Just 10 Seconds",
  "tags": [],
  "nodes": [
    {
      "id": "a89f0aff-13f3-4123-b661-2d8a6e7974fa",
      "name": "Start",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        40,
        120
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5a8009a5-390a-4da9-95fc-c9fd1f557a2b",
      "name": "Set Parameters",
      "type": "n8n-nodes-base.set",
      "position": [
        260,
        120
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "server_host",
              "value": "={{ $json.server_host || '192.168.1.100' }}"
            },
            {
              "name": "server_user",
              "value": "{{ $json.server_user || 'root' }}"
            },
            {
              "name": "server_password",
              "value": "{{ $json.server_password || 'your_password' }}"
            },
            {
              "name": "mysql_root_password",
              "value": "{{ $json.mysql_root_password || 'mysql_root_123' }}"
            },
            {
              "name": "php_version",
              "value": "{{ $json.php_version || '8.2' }}"
            },
            {
              "name": "mysql_version",
              "value": "{{ $json.mysql_version || '8.0' }}"
            },
            {
              "name": "username",
              "value": "{{ $json.username || 'webdev' }}"
            },
            {
              "name": "user_password",
              "value": "{{ $json.user_password || 'web123' }}"
            },
            {
              "name": "domain_name",
              "value": "{{ $json.domain_name || 'localhost' }}"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "2b3d7fc6-9749-49bf-ae64-a5edbb7a9be6",
      "name": "System Preparation",
      "type": "n8n-nodes-base.ssh",
      "position": [
        480,
        120
      ],
      "parameters": {
        "command": "#!/bin/bash\nset -e\n\necho \"\ud83d\ude80 Starting LAMP Stack Setup...\"\necho \"==============================\"\n\n# Update system\necho \"\ud83d\udce6 Updating system packages...\"\nexport DEBIAN_FRONTEND=noninteractive\napt update -y && apt upgrade -y\n\n# Install essential tools\necho \"\ud83d\udd27 Installing essential tools...\"\napt install -y curl wget git vim nano software-properties-common apt-transport-https ca-certificates gnupg lsb-release unzip\n\necho \"\u2705 System preparation completed!\"",
        "authentication": "privateKey"
      },
      "credentials": {
        "sshPrivateKey": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "48ccd00d-86ef-408e-95d2-2eba6bc83cef",
      "name": "Install Apache",
      "type": "n8n-nodes-base.ssh",
      "position": [
        700,
        120
      ],
      "parameters": {
        "command": "#!/bin/bash\nset -e\n\necho \"\ud83c\udf10 Installing Apache Web Server...\"\necho \"==================================\"\n\n# Install Apache\napt install -y apache2\n\n# Enable modules\na2enmod rewrite\na2enmod ssl\na2enmod headers\na2enmod deflate\n\n# Start and enable Apache\nsystemctl start apache2\nsystemctl enable apache2\n\n# Configure Apache\necho \"ServerName {{ $json.domain_name }}\" >> /etc/apache2/apache2.conf\n\n# Create virtual host\ncat > /etc/apache2/sites-available/{{ $json.domain_name }}.conf << 'EOF'\n<VirtualHost *:80>\n    ServerName {{ $json.domain_name }}\n    DocumentRoot /var/www/html\n    ErrorLog ${APACHE_LOG_DIR}/error.log\n    CustomLog ${APACHE_LOG_DIR}/access.log combined\n    \n    <Directory /var/www/html>\n        Options Indexes FollowSymLinks\n        AllowOverride All\n        Require all granted\n    </Directory>\n</VirtualHost>\nEOF\n\n# Enable site and restart Apache\na2ensite {{ $json.domain_name }}.conf\nsystemctl reload apache2\n\necho \"Apache version: $(apache2 -v | head -n 1)\"\necho \"\u2705 Apache installed and configured!\"",
        "authentication": "privateKey"
      },
      "credentials": {
        "sshPrivateKey": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "460b4c0f-1bf2-4d8c-941a-fc508c16ab7f",
      "name": "Install MySQL",
      "type": "n8n-nodes-base.ssh",
      "position": [
        920,
        120
      ],
      "parameters": {
        "command": "#!/bin/bash\nset -e\n\necho \"\ud83d\udc2c Installing MySQL Database Server...\"\necho \"=====================================\"\n\n# Pre-configure MySQL root password\necho \"mysql-server mysql-server/root_password password {{ $json.mysql_root_password }}\" | debconf-set-selections\necho \"mysql-server mysql-server/root_password_again password {{ $json.mysql_root_password }}\" | debconf-set-selections\n\n# Install MySQL\napt install -y mysql-server mysql-client\n\n# Start and enable MySQL\nsystemctl start mysql\nsystemctl enable mysql\n\n# Secure MySQL installation\nmysql -u root -p{{ $json.mysql_root_password }} -e \"DELETE FROM mysql.user WHERE User='';\"\nmysql -u root -p{{ $json.mysql_root_password }} -e \"DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');\"\nmysql -u root -p{{ $json.mysql_root_password }} -e \"DROP DATABASE IF EXISTS test;\"\nmysql -u root -p{{ $json.mysql_root_password }} -e \"DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';\"\nmysql -u root -p{{ $json.mysql_root_password }} -e \"FLUSH PRIVILEGES;\"\n\n# Create development database\nmysql -u root -p{{ $json.mysql_root_password }} -e \"CREATE DATABASE IF NOT EXISTS lamp_dev;\"\n\n# Install phpMyAdmin\nexport DEBIAN_FRONTEND=noninteractive\necho \"phpmyadmin phpmyadmin/dbconfig-install boolean true\" | debconf-set-selections\necho \"phpmyadmin phpmyadmin/app-password-confirm password {{ $json.mysql_root_password }}\" | debconf-set-selections\necho \"phpmyadmin phpmyadmin/mysql/admin-pass password {{ $json.mysql_root_password }}\" | debconf-set-selections\necho \"phpmyadmin phpmyadmin/mysql/app-pass password {{ $json.mysql_root_password }}\" | debconf-set-selections\necho \"phpmyadmin phpmyadmin/reconfigure-webserver multiselect apache2\" | debconf-set-selections\n\napt install -y phpmyadmin\n\n# Configure phpMyAdmin\necho \"Include /etc/phpmyadmin/apache.conf\" >> /etc/apache2/apache2.conf\nsystemctl reload apache2\n\necho \"MySQL version: $(mysql --version)\"\necho \"\u2705 MySQL and phpMyAdmin installed!\"",
        "authentication": "privateKey"
      },
      "credentials": {
        "sshPrivateKey": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1caf7a0e-01d0-44a0-8f47-00eddeca3ffc",
      "name": "Install PHP",
      "type": "n8n-nodes-base.ssh",
      "position": [
        1140,
        120
      ],
      "parameters": {
        "command": "#!/bin/bash\nset -e\n\necho \"\ud83d\udc18 Installing PHP and Extensions...\"\necho \"==================================\"\n\n# Add PHP repository\nadd-apt-repository -y ppa:ondrej/php\napt update\n\n# Install PHP and common extensions\napt install -y php{{ $json.php_version }} php{{ $json.php_version }}-fpm php{{ $json.php_version }}-mysql php{{ $json.php_version }}-curl php{{ $json.php_version }}-gd php{{ $json.php_version }}-mbstring php{{ $json.php_version }}-xml php{{ $json.php_version }}-zip php{{ $json.php_version }}-intl php{{ $json.php_version }}-bcmath php{{ $json.php_version }}-json php{{ $json.php_version }}-imagick php{{ $json.php_version }}-dev\n\n# Install Composer\ncurl -sS https://getcomposer.org/installer | php\nmv composer.phar /usr/local/bin/composer\nchmod +x /usr/local/bin/composer\n\n# Configure PHP\nphp_ini=/etc/php/{{ $json.php_version }}/apache2/php.ini\nsed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' $php_ini\nsed -i 's/post_max_size = 8M/post_max_size = 100M/' $php_ini\nsed -i 's/max_execution_time = 30/max_execution_time = 300/' $php_ini\nsed -i 's/memory_limit = 128M/memory_limit = 512M/' $php_ini\n\n# Enable PHP modules\na2enmod php{{ $json.php_version }}\n\n# Restart Apache\nsystemctl restart apache2\n\necho \"PHP version: $(php --version | head -n 1)\"\necho \"Composer version: $(composer --version)\"\necho \"\u2705 PHP and extensions installed!\"",
        "authentication": "privateKey"
      },
      "credentials": {
        "sshPrivateKey": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9a8d079f-c3c1-45a9-b086-66d243dd47be",
      "name": "Install Dev Tools",
      "type": "n8n-nodes-base.ssh",
      "position": [
        1360,
        120
      ],
      "parameters": {
        "command": "#!/bin/bash\nset -e\n\necho \"\ud83d\udee0\ufe0f Installing Development Tools...\"\necho \"==================================\"\n\n# Install Node.js and npm (for modern web development)\ncurl -fsSL https://deb.nodesource.com/setup_20.x | bash -\napt install -y nodejs\n\n# Install development tools\napt install -y git vim nano htop tree\n\n# Install VS Code Server (code-server)\ncurl -fsSL https://code-server.dev/install.sh | sh\n\n# Install additional PHP tools\ncomposer global require laravel/installer\ncomposer global require symfony/cli\n\n# Install WP-CLI for WordPress development\ncurl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar\nchmod +x wp-cli.phar\nmv wp-cli.phar /usr/local/bin/wp\n\necho \"Node.js version: $(node --version)\"\necho \"npm version: $(npm --version)\"\necho \"\u2705 Development tools installed!\"",
        "authentication": "privateKey"
      },
      "credentials": {
        "sshPrivateKey": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "cc6e24a7-fb32-43d6-ad59-cb888b8fe80b",
      "name": "Create Dev User",
      "type": "n8n-nodes-base.ssh",
      "position": [
        1580,
        120
      ],
      "parameters": {
        "command": "#!/bin/bash\nset -e\n\necho \"\ud83d\udc64 Creating Development User...\"\necho \"==============================\"\n\n# Create user\nuseradd -m -s /bin/bash {{ $json.username }}\necho \"{{ $json.username }}:{{ $json.user_password }}\" | chpasswd\nusermod -aG sudo,www-data {{ $json.username }}\n\n# Create project directories\nsu - {{ $json.username }} -c \"mkdir -p ~/projects/{php,laravel,wordpress,html}\"\nsu - {{ $json.username }} -c \"mkdir -p ~/backups ~/scripts\"\n\n# Set up Git\nsu - {{ $json.username }} -c \"git config --global user.name '{{ $json.username }}'\"\nsu - {{ $json.username }} -c \"git config --global user.email '{{ $json.username }}@example.com'\"\n\n# Generate SSH key\nsu - {{ $json.username }} -c \"ssh-keygen -t rsa -b 4096 -C '{{ $json.username }}@lamp-dev' -N '' -f ~/.ssh/id_rsa\"\n\n# Set permissions for web directory\nchown -R {{ $json.username }}:www-data /var/www/html\nchmod -R 755 /var/www/html\n\necho \"\u2705 Development user created!\"",
        "authentication": "privateKey"
      },
      "credentials": {
        "sshPrivateKey": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9e4d8dd8-5318-4487-b299-10c8b3f8782a",
      "name": "Final Configuration",
      "type": "n8n-nodes-base.ssh",
      "position": [
        1800,
        120
      ],
      "parameters": {
        "command": "#!/bin/bash\nset -e\n\necho \"\ud83d\udd27 Final Configuration...\"\necho \"========================\"\n\n# Configure firewall\nufw --force enable\nufw allow 22/tcp    # SSH\nufw allow 80/tcp    # HTTP\nufw allow 443/tcp   # HTTPS\nufw allow 3000/tcp  # Development server\n\n# Create sample PHP info page\ncat > /var/www/html/info.php << 'EOF'\n<?php\nphpinfo();\n?>\nEOF\n\n# Create sample index page\ncat > /var/www/html/index.php << 'EOF'\n<!DOCTYPE html>\n<html>\n<head>\n    <title>LAMP Stack - Welcome</title>\n    <style>\n        body { font-family: Arial, sans-serif; margin: 40px; background: #f4f4f4; }\n        .container { background: white; padding: 30px; border-radius: 10px; box-shadow: 0 0 10px rgba(0,0,0,0.1); }\n        h1 { color: #333; }\n        .status { background: #d4edda; color: #155724; padding: 10px; border-radius: 5px; margin: 10px 0; }\n        .info { background: #cce5ff; color: #004085; padding: 10px; border-radius: 5px; margin: 10px 0; }\n    </style>\n</head>\n<body>\n    <div class=\"container\">\n        <h1>\ud83d\ude80 LAMP Stack Setup Complete!</h1>\n        <div class=\"status\">\n            <strong>\u2705 Server Status:</strong> All services running successfully!\n        </div>\n        \n        <h2>Server Information</h2>\n        <div class=\"info\">\n            <strong>Server:</strong> {{ $json.domain_name }}<br>\n            <strong>PHP Version:</strong> <?php echo phpversion(); ?><br>\n            <strong>Apache Version:</strong> <?php echo apache_get_version(); ?><br>\n            <strong>MySQL Status:</strong> <?php \n                $connection = @mysqli_connect('localhost', 'root', '{{ $json.mysql_root_password }}');\n                echo $connection ? 'Connected \u2705' : 'Connection Failed \u274c';\n                if($connection) mysqli_close($connection);\n            ?>\n        </div>\n        \n        <h2>Quick Links</h2>\n        <p><a href=\"/info.php\">\ud83d\udcca PHP Info</a></p>\n        <p><a href=\"/phpmyadmin\">\ud83d\uddc4\ufe0f phpMyAdmin</a></p>\n        \n        <h2>Next Steps</h2>\n        <ul>\n            <li>Upload your PHP applications to <code>/var/www/html/</code></li>\n            <li>Use phpMyAdmin to manage your databases</li>\n            <li>SSH as user: {{ $json.username }} (password: {{ $json.user_password }})</li>\n        </ul>\n    </div>\n</body>\n</html>\nEOF\n\n# Set proper permissions\nchown -R {{ $json.username }}:www-data /var/www/html\nchmod -R 755 /var/www/html\n\n# Create environment file\ncat > /home/{{ $json.username }}/.env.example << 'EOF'\n# Database Configuration\nDB_HOST=localhost\nDB_NAME=lamp_dev\nDB_USER=root\nDB_PASSWORD={{ $json.mysql_root_password }}\n\n# Server Configuration\nSERVER_NAME={{ $json.domain_name }}\nDOCUMENT_ROOT=/var/www/html\n\n# Development\nDEBUG=true\nENVIRONMENT=development\nEOF\n\necho \"\ud83c\udf89 LAMP Stack Setup Complete!\"\necho \"============================\"\necho \"\ud83d\udcca Installation Summary:\"\necho \"\u2022 Apache: $(apache2 -v | head -n 1 | cut -d' ' -f3)\"\necho \"\u2022 MySQL: $(mysql --version | cut -d' ' -f3)\"\necho \"\u2022 PHP: $(php --version | head -n 1 | cut -d' ' -f2)\"\necho \"\u2022 Domain: {{ $json.domain_name }}\"\necho \"\u2022 Web Root: /var/www/html\"\necho \"\u2022 Dev User: {{ $json.username }}\"\necho \"\u2022 MySQL Root Password: {{ $json.mysql_root_password }}\"\necho \"\"\necho \"\ud83c\udf10 Access your server at: http://{{ $json.domain_name }}\"\necho \"\ud83d\uddc4\ufe0f phpMyAdmin: http://{{ $json.domain_name }}/phpmyadmin\"\necho \"\ud83d\udcca PHP Info: http://{{ $json.domain_name }}/info.php\"\necho \"Happy coding! \ud83c\udfaf\"",
        "authentication": "privateKey"
      },
      "credentials": {
        "sshPrivateKey": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a5256062-22cd-4bc9-a659-13f5925f6b22",
      "name": "Setup Complete",
      "type": "n8n-nodes-base.set",
      "position": [
        2020,
        120
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "setup_status",
              "value": "\u2705 LAMP Stack Setup Complete!"
            },
            {
              "name": "server_url",
              "value": "http://{{ $('Set Parameters').item.json.domain_name }}"
            },
            {
              "name": "phpmyadmin_url",
              "value": "http://{{ $('Set Parameters').item.json.domain_name }}/phpmyadmin"
            },
            {
              "name": "dev_user",
              "value": "{{ $('Set Parameters').item.json.username }}"
            },
            {
              "name": "mysql_root_password",
              "value": "{{ $('Set Parameters').item.json.mysql_root_password }}"
            },
            {
              "name": "web_root",
              "value": "/var/www/html"
            },
            {
              "name": "installed_stack",
              "value": "Linux + Apache + MySQL + PHP {{ $('Set Parameters').item.json.php_version }}"
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "d0a82a3c-4e94-4fdb-a9ec-78faf3c57a5a",
      "name": "Start Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        10,
        0
      ],
      "parameters": {
        "color": 3,
        "width": 160,
        "height": 280,
        "content": "Start LAMP Stack Setup"
      },
      "typeVersion": 1
    },
    {
      "id": "becfd39d-8acb-4f2e-be74-0c1cc155a15d",
      "name": "Parameters Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        230,
        0
      ],
      "parameters": {
        "color": 2,
        "width": 160,
        "height": 280,
        "content": "Configure server parameters"
      },
      "typeVersion": 1
    },
    {
      "id": "1533879e-8a6b-4805-b2e2-cadeab9caeaa",
      "name": "System Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        450,
        0
      ],
      "parameters": {
        "color": 4,
        "width": 160,
        "height": 280,
        "content": "Update system & install essentials"
      },
      "typeVersion": 1
    },
    {
      "id": "c1b355e3-80e5-4430-b742-09a86acf33a4",
      "name": "Apache Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        670,
        0
      ],
      "parameters": {
        "color": 6,
        "width": 160,
        "height": 280,
        "content": "Install Apache web server"
      },
      "typeVersion": 1
    },
    {
      "id": "d529afb8-6466-4400-babe-5d5412c5a434",
      "name": "MySQL Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        890,
        0
      ],
      "parameters": {
        "color": 2,
        "width": 160,
        "height": 280,
        "content": "Install MySQL & phpMyAdmin"
      },
      "typeVersion": 1
    },
    {
      "id": "7897cb6f-953b-4268-ad0c-13557c5f3a26",
      "name": "PHP Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1110,
        0
      ],
      "parameters": {
        "color": 5,
        "width": 160,
        "height": 280,
        "content": "Install PHP & extensions"
      },
      "typeVersion": 1
    },
    {
      "id": "ec11bcbf-9275-49c3-be7b-a6750cb891af",
      "name": "Tools Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1330,
        0
      ],
      "parameters": {
        "width": 160,
        "height": 280,
        "content": "Install development tools"
      },
      "typeVersion": 1
    },
    {
      "id": "a9d88831-9d15-4a47-bdb3-0d7bb83cf9b8",
      "name": "User Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1550,
        0
      ],
      "parameters": {
        "color": 6,
        "width": 160,
        "height": 280,
        "content": "Create development user"
      },
      "typeVersion": 1
    },
    {
      "id": "4abe9d32-85ee-4748-b75d-ef71c7290456",
      "name": "Final Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1770,
        0
      ],
      "parameters": {
        "color": 3,
        "width": 160,
        "height": 280,
        "content": "Final setup & configuration"
      },
      "typeVersion": 1
    },
    {
      "id": "89cf74e0-e809-426e-8b0d-340b22c8d65d",
      "name": "Complete Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1990,
        0
      ],
      "parameters": {
        "color": 2,
        "width": 160,
        "height": 280,
        "content": "Setup completion summary"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7e393c84-4230-4680-af72-25bef91b4780",
  "connections": {
    "Start": {
      "main": [
        [
          {
            "node": "Set Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Install PHP": {
      "main": [
        [
          {
            "node": "Install Dev Tools",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Install MySQL": {
      "main": [
        [
          {
            "node": "Install PHP",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Install Apache": {
      "main": [
        [
          {
            "node": "Install MySQL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Parameters": {
      "main": [
        [
          {
            "node": "System Preparation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Dev User": {
      "main": [
        [
          {
            "node": "Final Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Install Dev Tools": {
      "main": [
        [
          {
            "node": "Create Dev User",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "System Preparation": {
      "main": [
        [
          {
            "node": "Install Apache",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Final Configuration": {
      "main": [
        [
          {
            "node": "Setup Complete",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}