{"id":21850348,"url":"https://github.com/terrylinooo/easybash","last_synced_at":"2026-03-08T02:04:36.905Z","repository":{"id":96801448,"uuid":"257511746","full_name":"terrylinooo/easybash","owner":"terrylinooo","description":"Quick deployment for LEMP / LAMP on Ubuntu.","archived":false,"fork":false,"pushed_at":"2023-05-09T12:50:46.000Z","size":166,"stargazers_count":13,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-09-02T20:47:40.397Z","etag":null,"topics":["bash-script","lamp","lemp","shell-script","ubuntu"],"latest_commit_sha":null,"homepage":"https://easybash.github.io/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/terrylinooo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-04-21T07:21:18.000Z","updated_at":"2025-06-30T14:31:27.000Z","dependencies_parsed_at":null,"dependency_job_id":"dbb578df-c529-44e2-b650-fb0a5fa067aa","html_url":"https://github.com/terrylinooo/easybash","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/terrylinooo/easybash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terrylinooo%2Feasybash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terrylinooo%2Feasybash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terrylinooo%2Feasybash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terrylinooo%2Feasybash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terrylinooo","download_url":"https://codeload.github.com/terrylinooo/easybash/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terrylinooo%2Feasybash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30242404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:58:18.660Z","status":"online","status_checked_at":"2026-03-08T02:00:06.215Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash-script","lamp","lemp","shell-script","ubuntu"],"created_at":"2024-11-28T00:17:12.307Z","updated_at":"2026-03-08T02:04:36.888Z","avatar_url":"https://github.com/terrylinooo.png","language":"Shell","readme":"# ![Ubuntu Logo](https://i.imgur.com/kf8Oeno.png) Easy bash for Ubuntu\n\n![](https://i.imgur.com/GcXUaF4.gif)\n\n:link: [Video Link](https://i.imgur.com/42dErDQ.mp4) :link:\n\nSeeking a solution for easy deployment of a new Ubuntu machine with **LAMP** or **LEMP** stacks? Here it is.\n\n```\nwget https://easybash.github.io/easybash.tar.gz\ntar -zxvf easybash.tar.gz\ncd easybash-latest\n./easybash.sh\n```\n\nEasybash is a tool for fully automatic installation of the most popular and useful packages to their latest versions on Ubuntu servers.\n\n### Supported Ubuntu Versions\n\nEasybash has been tested and can be used on the following LTS versions.\n\n- [Ubuntu 16.04 (Xenial Xerus)](https://github.com/terrylinooo/easybash/tree/master/ubuntu/16.04)\n- [Ubuntu 18.04 (Bionic Beaver)](https://github.com/terrylinooo/easybash/tree/master/ubuntu/18.04)\n- [Ubuntu 20.04 (Focal Fossa)](https://github.com/terrylinooo/easybash/tree/master/ubuntu/20.04)\n- [Ubuntu 22.04 (Jammy Jellyfish)](https://github.com/terrylinooo/easybash/tree/master/ubuntu/22.04)\n\n## :link: [Website](https://easybash.github.io/) :link:\n\n---\n\n## Packages\n\n| Package | Category |\n| --- | --- |\n| Apache | A |\n| Nginx | E |\n| MairaDB | M |\n| MySQL | M |\n| PHP-FPM | P |\n\n### MySQL Secure Installation\n\nEasybash also does what the `secure_mysql_installation` shell script does. Please check out the examples in the MySQL/MariaDB section.\n\n## How to Use\n\n- Wizard\n- Config\n- Standalone\n\n### Wizard Mode\n\nWizard mode will ask you several questions to configure settings and then proceed to install the LEMP or LAMP stacks.\n\n#### Download and Run\n```\nwget https://easybash.github.io/easybash.tar.gz\ntar -zxvf easybash.tar.gz\ncd easybash-latest\n./easybash.sh\n```\n\n### Config Mode \n\nConfig mode installs the entire LAMP or LEMP stack according to the config.yml configuration file.\n\n#### Download\n```\nwget https://easybash.github.io/easybash.tar.gz\ntar -zxvf easybash.tar.gz\ncd easybash-latest\n```\n#### Configure\n\n```\n./easybash.sh init\n```\nEdit `config.yml` to choose packages to install.\n```\nvi config.yml\n```\n#### Run\n```\n./easybash.sh install\n```\n\nThat's it. Easybash will install packages which defined in `install` section in `config.yml`\n\n---\n\n### Standalone Mode\n\nStandalone mode uses the bash command set of the package directly for installation, installing one package service at a time.\n\n#### Nginx\n\nDownload\n\n```shell\n# Ubuntu 16.04 LTS\nwget https://easybash.github.io/ubuntu/16.04/nginx.sh\n# Ubuntu 18.04 LTS\nwget https://easybash.github.io/ubuntu/18.04/nginx.sh\n# Ubuntu 20.04 LTS\nwget https://easybash.github.io/ubuntu/20.04/nginx.sh\n# Ubuntu 22.04 LTS\nwget https://easybash.github.io/ubuntu/22.04/nginx.sh\n```\n\nOptions\n\n```\n SYNOPSIS\n\n    nginx.sh [-h] [-i] [-v [version]]\n\n OPTIONS\n\n    -v ?, --version=?    Which version of Nginx you want to install?\n                         Accept vaule: stable, mainline, system\n                         \n    -h, --help           Print this help.\n    -i, --info           Print script information.\n\n    --aptitude           Use aptitude instead of apt-get as package manager\n\n EXAMPLES\n\n    $ ./nginx.sh -v stable\n    $ ./nginx.sh --version=mainline\n    $ ./nginx.sh\n```\n\n#### MariaDB\n\nDownload\n\n```shell\n# Ubuntu 16.04 LTS\nwget https://easybash.github.io/ubuntu/16.04/mariadb.sh\n# Ubuntu 18.04 LTS\nwget https://easybash.github.io/ubuntu/18.04/mariadb.sh\n# Ubuntu 20.04 LTS\nwget https://easybash.github.io/ubuntu/20.04/mariadb.sh\n# Ubuntu 22.04 LTS\nwget https://easybash.github.io/ubuntu/22.04/mariadb.sh\n```\n\nOptions\n\n```\n SYNOPSIS\n\n    mysql.sh [-h] [-p [password]] [-s [y|n]] [...]\n\n OPTIONS\n\n    -w ?, --password=?            Set mysql root password.\n    -s ?, --secure=?              Enable mysql secure configuration.\n                                  Accept vaule: y, n\n    -r ?, --remote=?              Enable access mysql remotely.\n                                  Accept vaule: y, n\n    -u ?, --remote-user=?         Remote user.\n    -p ?, --remote-password=?     Remote user's password.\n    -v ?, --version=?             Which version of MariaDB you want to install?\n                                  Accept vaule: latest, system\n    -h, --help                    Print this help.\n    -i, --info                    Print script information.\n\n    --aptitude                    Use aptitude instead of apt-get as package manager\n\n EXAMPLES\n\n    $ ./mariadb.sh -v latest -s y -r y -u test_user -p 12345678\n    $ ./mariadb.sh --version=system --secure=y --remote=y --remote-user=test_user --remote-password=12345678\n\n```\n\n#### MySQL\n\nDownload\n\n```shell\n# Ubuntu 16.04 LTS\nwget https://easybash.github.io/ubuntu/16.04/mysql.sh\n# Ubuntu 18.04 LTS\nwget https://easybash.github.io/ubuntu/18.04/mysql.sh\n# Ubuntu 20.04 LTS\nwget https://easybash.github.io/ubuntu/20.04/mysql.sh\n# Ubuntu 22.04 LTS\nwget https://easybash.github.io/ubuntu/22.04/mysql.sh\n```\n\nOptions\n\n```\n SYNOPSIS\n\n    mysql.sh [-h] [-p [password]] [-s [y|n]] [...]\n\n OPTIONS\n\n    -w ?, --password=?            Set mysql root password.\n    -s ?, --secure=?              Enable mysql secure configuration.\n                                  Accept vaule: y, n\n    -r ?, --remote=?              Enable access mysql remotely.\n                                  Accept vaule: y, n\n    -u ?, --remote-user=?         Remote user.\n    -p ?, --remote-password=?     Remote user's password.\n    -v ?, --version=?             Which version of MySQL you want to install?\n                                  Accept vaule: latest, system\n    -h, --help                    Print this help.\n    -i, --info                    Print script information.\n\n    --aptitude           Use aptitude instead of apt-get as package manager\n\n EXAMPLES\n\n    $ ./mysql.sh -v latest -s y -r y -ru test_user -rp 12345678\n    $ ./mysql.sh --version=system --secure=y --remote=y --remote-user=test_user --remote-password=12345678\n\n```\n\n#### PHP-FPM\n\nDownload\n\n```shell\n# Ubuntu 16.04 LTS\nwget https://easybash.github.io/ubuntu/16.04/php-fpm.sh\n# Ubuntu 18.04 LTS\nwget https://easybash.github.io/ubuntu/18.04/php-fpm.sh\n# Ubuntu 20.04 LTS\nwget https://easybash.github.io/ubuntu/20.04/php-fpm.sh\n# Ubuntu 22.04 LTS\nwget https://easybash.github.io/ubuntu/22.04/php-fpm.sh\n```\n\nOptions\n```\n SYNOPSIS\n\n    php-fpm.sh [-h] [-i] [-l] [-v [version]] [-m [modules]]\n\n OPTIONS\n\n    -v ?, --version=?    Which version of PHP-FPM you want to install?\n                         Accept vaule: 5.6, 7.0, 7,1, 7.2\n    -m ?, --modules=?    Which modules of PHP-FPM you want to install?\n                         Accept vaule: A comma-separated list of module names.\n                         See \"./php-fpm.sh --module-list\"\n    -h, --help           Print this help.\n    -i, --info           Print script information.\n    -l, --module-list    Print module list of PHP-FPM.\n\n    --aptitude           Use aptitude instead of apt-get as package manager\n\n EXAMPLES\n\n    $ ./php-fpm.sh -v 7.2\n    $ ./php-fpm.sh --version=7.2\n    $ ./php-fpm.sh\n```\n\n#### Apache\n\nDownload\n\n```shell\n# Ubuntu 16.04 LTS\nwget https://easybash.github.io/ubuntu/16.04/apache.sh\n# Ubuntu 18.04 LTS\nwget https://easybash.github.io/ubuntu/18.04/apache.sh\n# Ubuntu 20.04 LTS\nwget https://easybash.github.io/ubuntu/20.04/apache.sh \n# Ubuntu 22.04 LTS\nwget https://easybash.github.io/ubuntu/22.04/apache.sh \n```\nOptions\n```\n SYNOPSIS\n\n    apache.sh [-h] [-i] [-v [version]]\n\n OPTIONS\n\n    -v ?, --version=?    Which version of Apache you want to install?\n                         Accept vaule: latest, system\n    -h, --help           Print this help.\n    -i, --info           Print script information.\n    --aptitude           Use aptitude instead of apt-get as package manager\n\n EXAMPLES\n\n    $ ./apache.sh -v system\n    $ ./apache.sh --version=latest\n    $ ./apache.sh\n\n```\n\n### Install a package\n\nLet's take a look at MariaDB as an example.\n\n```shell\nwget https://easybash.github.io/ubuntu/16.04/mariadb.sh\nchmod 755 ./mariadb.sh\n./mariadb.sh --version=latest --password=12345678 --secure=y --remote=y --remote-user=testuser --remote-password=12345678\n```\n\n---\n\n### Vargrant Provisioning\n\nYou can use the files hosted on [GitHub page](https://github.com/easybash/easybash.github.io) to quickly provision your Vagrant machine.\n\n```shell\nVagrant.configure(\"2\") do |config|\n  \n  config.vm.box = \"ubuntu/xenial64\"\n  config.vm.box_check_update = false\n\n  config.vm.provision \"shell\", path: \"https://easybash.github.io/ubuntu/16.04/nginx.sh\", privileged: \"false\"\n  config.vm.provision \"shell\", path: \"https://easybash.github.io/ubuntu/16.04/php-fpm.sh\", privileged: \"false\"\n  config.vm.provision \"shell\", path: \"https://easybash.github.io/ubuntu/16.04/mariadb.sh\", privileged: \"false\"\n  \nend\n```\n\nWith script arguments:\n\n```shell\nVagrant.configure(\"2\") do |config|\n  \n  config.vm.box = \"ubuntu/xenial64\"\n  config.vm.box_check_update = false\n\n  config.vm.provision \"shell\" do |s|\n    s.path = \"https://easybash.github.io/ubuntu/16.04/mariadb.sh\"\n    s.privileged = \"false\"\n    s.args = [\"--version=latest\", \"--password=12345678\", \"--secure=y\",  \"--remote=y\", \"--remote-user=testuser\", \"--remote-password=12345678\"]\n  end\nend\n```\n\n## Contributing Code\n\nEnsure that the changes have been thoroughly tested on the corresponding system version. Use the following Vagrant file to create a development environment for testing.\n\n### Vagrant Files\n\n| Path |  Ubuntu version   |\n| --- | --- |\n| ubuntu/16.04/Vagrantfile | 16.04 |\n| ubuntu/18.04/Vagrantfile | 18.04 |\n| ubuntu/20.04/Vagrantfile | 20.04 |\n| ubuntu/22.04/Vagrantfile | 22.04 |\n\n### Steps\n\n- Fork a repository from the master branch.\n- Use the coding style outlined in the [Bash coding style guide](https://github.com/easybash/bash-coding-style-guide).\n- Submit a pull request to the development branch.\n- After the code has been reviewed, it will be merged into the master branch. Everything on the master branch will be included in the next major release.\n\n## Authors\n\n[Terry Lin](https://terryl.in/en/)\n\n## License\n\nMIT\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterrylinooo%2Feasybash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterrylinooo%2Feasybash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterrylinooo%2Feasybash/lists"}