diff --git a/assets/lemp/default.nginxconf b/assets/lemp/default.nginxconf new file mode 100644 index 0000000..6ec0f8e --- /dev/null +++ b/assets/lemp/default.nginxconf @@ -0,0 +1,66 @@ +server { + listen 80 default_server; + listen [::]:80 default_server; + + # SSL configuration + # + # listen 443 ssl default_server; + # listen [::]:443 ssl default_server; + # + # Note: You should disable gzip for SSL traffic. + # See: https://bugs.debian.org/773332 + # + # Read up on ssl_ciphers to ensure a secure configuration. + # See: https://bugs.debian.org/765782 + # + # Self signed certs generated by the ssl-cert package + # Don't use them in a production server! + # + # include snippets/snakeoil.conf; + + root /var/www/html; + + # Add index.php to the list if you are using PHP + index index.html index.htm index.nginx-debian.html index.php; + + server_name _; + + location / { + # First attempt to serve request as file, then + # as directory, then fall back to displaying a 404. + try_files $uri $uri/ =404; + } + + # pass PHP scripts to FastCGI server + location ~ \.php$ { + fastcgi_pass 127.0.0.1:9000; + fastcgi_index index.php; + include fastcgi.conf; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + } + + # deny access to .htaccess files, if Apache's document root + # concurs with nginx's one + location ~ /\.ht { + deny all; + } + + ## Images and static content is treated different + location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { + access_log off; + expires max; + } + + location ~ /(libraries|setup/frames|setup/libs) { + deny all; + return 404; + } + + location /nginx_status { + stub_status on; + access_log off; + allow 127.0.0.1; + # allow CURRENT-SERVER-IP; + deny all; + } +} diff --git a/assets/lemp/index.php b/assets/lemp/index.php new file mode 100644 index 0000000..c1dfcd8 --- /dev/null +++ b/assets/lemp/index.php @@ -0,0 +1,11 @@ + + + + + Alpine linux lemp + + +

Server is running

+ + + diff --git a/bin/bash.sh b/bin/bash.sh index e69de29..5784959 100755 --- a/bin/bash.sh +++ b/bin/bash.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +apk add bash bash-doc bash-completion + +sed -i 's/root:\/bin\/ash/root:\/bin\/bash/g' /etc/passwd diff --git a/bin/dotfiles.sh b/bin/dotfiles.sh new file mode 100644 index 0000000..b0adf16 --- /dev/null +++ b/bin/dotfiles.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +echo ' + ___ _ ___ _ _ + | \ ___| |_| __(_) |___ ___ + | |) / _ \ _| _|| | / -_|_-< + |___/\___/\__|_| |_|_\___/__/ +' +#installing better prompt and some goodies +echo "Installing shell prompt for current user $USER " +sleep 2 +# +# # get the current position +# _cwd="$(pwd)" +# +# # check for assets forlder +# _assets="$_cwd/assets" +# if [ ! -d "$_assets" ]; then +# _assets="$_cwd/../assets" +# if [ ! -d "$_assets" ]; then +# echo "!! can't find assets directory !!" +# exit +# fi +# fi +# +# cp "$_assets"/dotfiles/.vimrc /home/"$USER"/ +# cp -r "$_assets"/dotfiles/.vim /home/"$USER"/ +# +# cp "$_assets"/dotfiles/.inputrc /home/"$USER"/ + + +# get the current position +_cwd="$(pwd)" +# go to user home +cd +echo "cloning https://figureslibres.io/gogs/bachir/dotfiles-server.git" +git clone https://figureslibres.io/gogs/bachir/dotfiles-server.git ~/.dotfiles-server && cd ~/.dotfiles-server && ./install.sh && cd ~ +source ~/.bashrc +# return to working directory +cd "$_cwd" + +echo "Dot files installed for $USER" diff --git a/bin/email.sh b/bin/email.sh index fe3c165..a020059 100755 --- a/bin/email.sh +++ b/bin/email.sh @@ -1,13 +1,12 @@ #!/bin/sh -echo '\033[35m - __ ______ ______ - / |/ / | / _/ / - / /|_/ / /| | / // / - / / / / ___ |_/ // /___ -/_/ /_/_/ |_/___/_____/ -\033[0m' -echo "\033[35;1mEnable mail sending for php \033[0m" +echo ' + __ __ _ _ + | \/ |__ _(_) | + | |\/| / _` | | | + |_| |_\__,_|_|_| +' +echo "Enable mail sending for php" . bin/checkroot.sh @@ -28,6 +27,9 @@ sleep 2 apk add mailx postfix +mkdir /var/mail +postmap /etc/postfix/aliases + rc-update add postfix /etc/init.d/postfix start diff --git a/bin/fail2ban.sh b/bin/fail2ban.sh index 35b2d18..a3c05ac 100755 --- a/bin/fail2ban.sh +++ b/bin/fail2ban.sh @@ -1,13 +1,12 @@ #!/bin/sh -echo -e '\033[35m - ______ _ _____ __ - / ____/___ _(_) /__ \ / /_ ____ _____ - / /_ / __ `/ / /__/ // __ \/ __ `/ __ \ - / __/ / /_/ / / // __// /_/ / /_/ / / / / -/_/ \__,_/_/_//____/_.___/\__,_/_/ /_/ -\033[0m' -echo -e "\033[35;1mInstalling fall2ban \033[0m" +echo -e ' + ___ _ _ ___ _ + | __|_ _(_) |_ ) |__ __ _ _ _ + | _/ _` | | |/ /| ._ \/ _` | . \ + |_|\__,_|_|_/___|_.__/\__,_|_||_| +' +echo -e "Installing fall2ban" . bin/checkroot.sh @@ -21,4 +20,4 @@ rc-update add fail2ban # service fail2ban start /etc/init.d/fail2ban start -echo -e "\033[92;1mfail2ban installed and configured\033[Om" +echo -e "fail2ban installed" diff --git a/bin/knockd.sh b/bin/knockd.sh index 90feffb..9f387c4 100755 --- a/bin/knockd.sh +++ b/bin/knockd.sh @@ -2,14 +2,13 @@ # TODO check if root -echo -e '\033[35m - __ __ __ - / /______ ____ _____/ /______/ / - / //_/ __ \/ __ \/ ___/ //_/ __ / - / ,< / / / / /_/ / /__/ ,< / /_/ / -/_/|_/_/ /_/\____/\___/_/|_|\__,_/ -\033[0m' -echo -e "\033[35;1mInstalling knockd to control ssh port opening\033[0m" +echo -e ' + _ __ _ + | |/ /_ _ ___ __| |__ + | . <| . \/ _ \/ _| / / + |_|\_\_||_\___/\__|_\_\ +' +echo -e "Installing knockd to control ssh port opening" . bin/checkroot.sh @@ -49,7 +48,7 @@ rc-update add knockd ufw delete allow ssh -echo -e "\033[92;1mknockd installed and configured\033[Om" -echo -e "\033[92;1mplease note this sequence for future ssh knocking\033[Om" +echo -e "knockd installed and configured" +echo -e "please note this sequence for future ssh knocking" echo "$sq" sleep 3 diff --git a/bin/lemp.sh b/bin/lemp.sh old mode 100755 new mode 100644 index 1a24852..c2fe2bf --- a/bin/lemp.sh +++ b/bin/lemp.sh @@ -1 +1,276 @@ #!/bin/sh + +echo -e ' + _ + | |___ _ __ _ __ + | / -_) ' \| '_ \ + |_\___|_|_|_| .__/ + |_| +' +echo -e "LEMP server (Nginx Mysql Php-fpm)" + +. bin/checkroot.sh + +# get the current position +_cwd="$(pwd)" +# check for assets forlder +_assets="$_cwd/assets" +if [ ! -d "$_assets" ]; then + _assets="$_cwd/../assets" + if [ ! -d "$_assets" ]; then + echo "!! can't find assets directory !!" + exit + fi +fi + +sleep 2 + +echo -e ' + _ + _ __ _ _ ___ __ _| | + | . \ || (_- /etc/nginx/sites-available/phpmyadmin.conf +# ln -s /etc/nginx/sites-available/phpmyadmin.conf /etc/nginx/sites-enabled/phpmyadmin.conf +# +# # echo -e "securing phpMyAdmin" +# # sed -i "s/DirectoryIndex index.php/DirectoryIndex index.php\nAllowOverride all/" +# # cp "$_assets"/phpmyadmin_htaccess > /usr/share/phpmyadmin/.htaccess +# # echo -n "define a user name for phpmyadmin : " +# # read un +# # htpasswd -c /etc/phpmyadmin/.htpasswd $un +# # service apache2 restart +# echo -e "phpMyAdmin installed" +# echo -e "You can access it at yourip/phpmyadmin" + +echo -e ' + ____ ___ + / __ \___ ____/ (_)____ + / /_/ / _ \/ __ / / ___/ + / _, _/ __/ /_/ / (__ ) +/_/ |_|\___/\__,_/_/____/ +' +echo -e "Installing Redis" +sleep 3 +apk add redis-server php-redis + +# TODO set maxmemory=2gb +# TODO set maxmemory-policy=volatile-lru +# TODO comment all save line + + +systemctl enable redis-server +systemctl restart redis-server +systemctl restart php7.0-fpm +echo -e "Redis installed" + +echo -e ' + ______ + / ____/___ ____ ___ ____ ____ ________ _____ + / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ +/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / +\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ + /_/ +' +echo -e "Installing Composer" +sleep 3 +export COMPOSER_HOME=/usr/local/composer +curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + +echo -e "Composer installed" + + +echo -e ' + ____ __ + / __ \_______ _______/ /_ + / / / / ___/ / / / ___/ __ \ + / /_/ / / / /_/ (__ ) / / / +/_____/_/ \__,_/____/_/ /_/ +' +echo -e "Installing Drush and DrupalConsole" +sleep 3 +curl https://drupalconsole.com/installer -L -o /usr/local/bin/drupal +chmod +x /usr/local/bin/drupal +curl https://github.com/drush-ops/drush-launcher/releases/download/0.6.0/drush.phar -L -o /usr/local/bin/drush +chmod +x /usr/local/bin/drush +echo -e "Drush and DrupalConsoleinstalled" + + + +# TODO supervising +# echo -e ' +# __ ___ _ __ __ __ ___ _ +# / |/ /__ ___ (_) /_ _/_/ / |/ /_ _____ (_)__ +# / /|_/ / _ \/ _ \/ / __/ _/_/ / /|_/ / // / _ \/ / _ \ +# /_/ /_/\___/_//_/_/\__/ /_/ /_/ /_/\_,_/_//_/_/_//_/ +#' +# echo -e "Installing Munin" +# sleep 3 +# # https://www.howtoforge.com/tutorial/server-monitoring-with-munin-and-monit-on-debian/ +# apt-get --yes --force-yes install munin munin-node munin-plugins-extra +# # Configure Munin +# # enable plugins +# ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_ +# ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes +# ln -s /usr/share/munin/plugins/mysql_innodb /etc/munin/plugins/mysql_innodb +# ln -s /usr/share/munin/plugins/mysql_isam_space_ /etc/munin/plugins/mysql_isam_space_ +# ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries +# ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries +# ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/mysql_threads +# +# ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/ +# ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/ +# ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/ +# +# # ln -s /usr/share/munin/plugins/fail2ban /etc/munin/plugins/ +# +# # dbdir, htmldir, logdir, rundir, and tmpldir +# sed -i 's/^#dbdir/dbdir/' /etc/munin/munin.conf +# sed -i 's/^#htmldir/htmldir/' /etc/munin/munin.conf +# sed -i 's/^#logdir/logdir/' /etc/munin/munin.conf +# sed -i 's/^#rundir/rundir/' /etc/munin/munin.conf +# sed -i 's/^#tmpldir/tmpldir/' /etc/munin/munin.conf +# +# sed -i "s/^\[localhost.localdomain\]/[${HOSTNAME}]/" /etc/munin/munin.conf +# +# # ln -s /etc/munin/apache24.conf /etc/apache2/conf-enabled/munin.conf +# sed -i 's/Require local/Require all granted\nOptions FollowSymLinks SymLinksIfOwnerMatch/g' /etc/munin/apache24.conf +# htpasswd -c /etc/munin/munin-htpasswd admin +# sed -i 's/Require all granted/AuthUserFile \/etc\/munin\/munin-htpasswd\nAuthName "Munin"\nAuthType Basic\nRequire valid-user/g' /etc/munin/apache24.conf +# +# +# service apache2 restart +# service munin-node restart +# echo -e "Munin installed" +# +# echo -e "Installing Monit" +# sleep 3 +# # https://www.howtoforge.com/tutorial/server-monitoring-with-munin-and-monit-on-debian/2/ +# apt-get --yes --force-yes install monit +# # TODO setup monit rc +# cat "$_assets"/monitrc > /etc/monit/monitrc +# +# # TODO setup webaccess +# passok=0 +# while [ "$passok" = "0" ] +# do +# echo -n "Write web access password to monit" +# read passwda +# echo -n "ReWrite web access password to monit" +# read passwdb +# if [ "$passwda" = "$passwdb" ]; then +# sed -i 's/PASSWD_TO_REPLACE/$passwda/g' /etc/monit/monitrc +# passok=1 +# else +# echo -e "pass words don't match, please try again" +# fi +# done +# +# # TODO setup mail settings +# sed -i "s/server1\.example\.com/$HOSTNAME/g" /etc/monit/monitrc +# +# mkdir /var/www/html/monit +# echo -e "hello" > /var/www/html/monit/token +# +# service monit start +# +# echo -e "Monit installed" + + +# echo -e ' +# ___ __ __ +# / |_ _______/ /_____ _/ /_ +# / /| | | /| / / ___/ __/ __ `/ __/ +# / ___ | |/ |/ (__ ) /_/ /_/ / /_ +# /_/ |_|__/|__/____/\__/\__,_/\__/ +#' +# echo -e "Installing Awstat" +# sleep 3 +# apt-get --yes --force-yes install awstats +# # Configure AWStats +# temp=`grep -i sitedomain /etc/awstats/awstats.conf.local | wc -l` +# if [ $temp -lt 1 ]; then +# echo SiteDomain="$_domain" >> /etc/awstats/awstats.conf.local +# fi +# # Disable Awstats from executing every 10 minutes. Put a hash in front of any line. +# sed -i 's/^[^#]/#&/' /etc/cron.d/awstats +# echo -e "Awstat installed" diff --git a/bin/misc.sh b/bin/misc.sh index ad1be53..35e4a34 100755 --- a/bin/misc.sh +++ b/bin/misc.sh @@ -1,13 +1,11 @@ #!/bin/sh -echo -e '\033[35m - __ ____ - / |/ (_)_________ - / /|_/ / / ___/ ___/ - / / / / (__ ) /__ -/_/ /_/_/____/\___/ - -\033[0m' +echo -e ' + __ __ _ + | \/ (_)___ __ + | |\/| | (_- /etc/timezone echo -e "\033[92;1mMisc done \033[Om" diff --git a/bin/ssh.sh b/bin/ssh.sh index 4761129..a22eb6c 100755 --- a/bin/ssh.sh +++ b/bin/ssh.sh @@ -1,17 +1,16 @@ #!/bin/sh -echo '\033[35m - __________ __ __ - / ___/ ___// / / / - \__ \\__ \/ /_/ / - ___/ /__/ / __ / -/____/____/_/ /_/ -\033[0m' +echo ' + _ + _____| |_ + (_-<_-< . \ + /__/__/_||_| +' . bin/checkroot.sh -sed -i 's/#PermitRootLogin\ prohibit-password/PermitRootLogin no/g' /etc/ssh/sshd_config +sed -i 's/#PermitRootLogin\ prohibit-password/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config sed -i 's/#PermitEmptyPasswords\ yes/PermitEmptyPasswords no/g' /etc/ssh/sshd_config /etc/init.d/sshd restart -echo "\033[92;1mSSH secured\033[Om" +echo "SSH secured" diff --git a/bin/ufw.sh b/bin/ufw.sh index 21bf975..cffc188 100755 --- a/bin/ufw.sh +++ b/bin/ufw.sh @@ -1,13 +1,12 @@ #!/bin/sh -echo -e '\033[35m - ______________ _______ _____ __ __ - / ____/ _/ __ \/ ____/ | / / | / / / / - / /_ / // /_/ / __/ | | /| / / /| | / / / / - / __/ _/ // _, _/ /___ | |/ |/ / ___ |/ /___/ /___ -/_/ /___/_/ |_/_____/ |__/|__/_/ |_/_____/_____/ -\033[0m' -echo -e "\033[35;1mInstalling ufw and setup firewall (allowing only ssh and http) \033[0m" +echo -e ' + _ _ _____ __ + | | | | __\ \ / / + | |_| | _| \ \/\/ / + \___/|_| \_/\_/ +' +echo -e "Installing ufw and setup firewall (allowing only ssh and http)" . bin/checkroot.sh sleep 2 @@ -23,4 +22,4 @@ ufw allow https ufw enable ufw status verbose -echo -e "\033[92;1mufw installed and firwall configured\033[Om" +echo -e "ufw installed and firwall configured" diff --git a/bin/upgrade.sh b/bin/upgrade.sh index 14a27b5..92b0268 100755 --- a/bin/upgrade.sh +++ b/bin/upgrade.sh @@ -2,13 +2,13 @@ # TODO check if root -echo '\033[35m - __ ______ __________ ___ ____ ______ - / / / / __ \/ ____/ __ \/ | / __ \/ ____/ - / / / / /_/ / / __/ /_/ / /| | / / / / __/ -/ /_/ / ____/ /_/ / _, _/ ___ |/ /_/ / /___ -\____/_/ \____/_/ |_/_/ |_/_____/_____/ -\033[0m' +echo -e ' + _ _ _ + | | | |_ __ __ _ _ _ __ _ __| |___ + | |_| | ._ \/ _` | ._/ _. / _. / -_) + \___/| .__/\__, |_| \__,_\__,_\___| + |_| |___/ +' . bin/checkroot.sh diff --git a/bin/user.sh b/bin/user.sh index 1738f62..e810a6f 100755 --- a/bin/user.sh +++ b/bin/user.sh @@ -1,13 +1,12 @@ #!/bin/sh -echo -e '\033[35m - __ _______ __________ - / / / / ___// ____/ __ \ - / / / /\__ \/ __/ / /_/ / -/ /_/ /___/ / /___/ _, _/ -\____//____/_____/_/ |_| -\033[0m' -echo -e "\033[35;1mCreate new user (you will be asked a user name and a password) \033[0m" +echo -e ' + _ _ + | | | |___ ___ _ _ + | |_| (_-