One-time fully automated shell script to install all needed software to run Laravel on Ubuntu 18.04 LTS. Creates user, installs ufw, nginx, php, nodejs/yarn, MariaDB/MySQL, PostgreSQL, Certbot (Let's Encrypt), Redis, Memcached, Beanstalkd, fail2ban, mosh. Optional parameters available.
One-time fully automated shell script to install all needed software to run any php framework on Ubuntu 18.04 LTS. Creates user, installs ufw, nginx (or apache), php, nodejs/yarn, MariaDB/MySQL, PostgreSQL, Certbot (Let's Encrypt), Redis, Memcached, Beanstalkd, fail2ban, mosh. Optional parameters available.
Beyond the description, here some things that this script does (by default):
ncdu
, awscli
, whois
, httpie
, mc
, speedtest
, micro
, mosh
To better choose what to install, check Parameters section
curl
or wget
should be installed (unless you clone the repo)Without a new server, the script possible will ask things to replace files. Never recommended.
This script is installed by running one of the following commands in your terminal. You can install this via the command-line with either curl
or wget
.
At the end you'll receive a report with all passwords. Keep it safe.
bash -c "$(curl -fsSL https://git.io/Jv9a6)"
bash -c "$(wget -qO- https://git.io/Jv9a6)"
It's a good idea to inspect the install script from projects you don't yet know. You can do that by downloading the install script first, looking through it so everything looks normal, then running it:
curl -Lo install.sh https://raw.githubusercontent.com/insign/server-for-laravel/master/install.sh
bash install.sh
-u|--user=
- set new user name. Default: laravel-p|--pass=
- set new user password. Default is random (shown at the end)--name=
- set your name. Default is DevOps
--email=
- set your e-mail. Default is none@none
--dont-create-new-user
- don't creates a new user (not recommended)--keep-existing-user
- keep existent user if it exists--skip-swap
- skip creation swapfile (not recommended unless already exists)--swap-size
- set swap file size in MB. Default is 2048 (2GB)--skip-updates
- Skip updates and upgrade the system (not recommended)--no-omz
- don't install oh-my-zsh framework (not recommended)--no-mosh
- don't install mosh (ssh alternative)--no-ufw
- don't install or configure UFW firewall (not recommended)--prefer-apache
- Install Apache Server (and don't install or configure nginx)--no-nginx
- don't install or configure nginx--no-php
- don't install or configure php--no-node
- don't install or configure yarn/node/npm--no-mysql
- don't install or configure mysql (MariaDB actually)--my-pass-root=
- set the mysql root password. Default is random (shown at the end)--my-pass-user=
- set the mysql user password. Default is random (shown at the end)--no-postgres
- don't install or configure postgresql--pg-pass=
- set the system user 'postgres' password. Default is random (shown at the end)--pg-pass-root=
- set the pg postgres user password. Default is random (shown at the end)--pg-pass-user=
- set the pg user password. Default is random (shown at the end)--no-supervisor
- don't install or configure supervisor daemon--no-certbot
- don't install or configure certbot (let's encrypt)--no-redis
- don't install or configure redis-server--redis-pass
- set the redis master password. Default is random (shown at the end)--no-memcached
- don't install or configure memcached--no-beanstalkd
- don't install or configure beanstalkd--key-only=
- put here (with quotes) your personal ssh pubkey if you want to disable login using password. WARNING: Be sure to know what you are doing.
--reboot
- reboot the system at the end of the script executation. Normally should not be used.--human
- If there is a human waiting for the end. Then enters new terminal.ssh [email protected] "bash -c \"\$(curl -fsSL https://git.io/Jv9a6)\" \"\" --reboot --key-only=\"$(cat ~/.ssh/id_rsa.pub)\""
In the above case, it is safe to use
--reboot
parameter.
bash -c "$(curl -fsSL https://git.io/Jv9a6)" "" --no-mysql --no-postgres --no-redis --no-memcached --no-beanstalkd
UFW are not configured to allow remote ports to db or cache. You should prefer private networking.
bash -c "$(curl -fsSL https://git.io/Jv9a6)" "" --no-nginx --no-php --no-postgres --no-node --no-certbot --no-redis --no-memcached --no-beanstalkd
bash -c "$(curl -fsSL https://git.io/Jv9a6)" "" --no-mysql --no-nginx --no-php --no-node --no-certbot --no-redis --no-memcached --no-beanstalkd
bash -c "$(curl -fsSL https://git.io/Jv9a6)" "" --no-mysql --no-nginx --no-php --no-node --no-postgres --no-certbot
fdfind
, fzf
on 19.04+You are welcome, just do a PR with some explanation.
Licensed under lgpl-3.0. Check the GNU GPL3 License file for more details.