Setup

  • wget ubuntu.tystuff.com/setup
  • sudo bash setup

Hermes Domain Manager

  • wget ubuntu.tystuff.com/hermes
  • sudo bash hermes -d domain.com -u domaincomuser

Update Kernel

Build Boost

Install MariaDB

Install PHP 7.2

  • add-apt-repository ppa:ondrej/php
  • apt update
  • apt upgrade -y
  • apt install php7.2-fpm php7.2-curl -y
  • # Set cgi.fix_pathinfo=0 in /etc/php/7.2/fpm/php.ini
  • service php7.2-fpm restart

Install Ruby

  • apt-add-repository ppa:brightbox/ruby-ng
  • apt update
  • apt install ruby2.4 -y

Install Redis

  • add-apt-repository ppa:chris-lea/redis-server
  • apt update
  • apt install redis-server -y
  • apt install php-redis -y
  • service php7.2-fpm restart

Install Nginx

  • add-apt-repository ppa:nginx/stable
  • apt update
  • apt install nginx -y

Add User for Nginx

  • adduser sitecom
  • mkdir -m 750 /home/sitecom/www
  • mkdir -m 700 /home/sitecom/logs
  • touch /home/sitecom/logs/access_log
  • touch /home/sitecom/logs/error_log
  • chmod 640 /home/sitecom/logs/access_log
  • chmod 640 /home/sitecom/logs/error_log
  • chown sitecom:www-data /home/sitecom/www
  • chown sitecom:sitecom /home/sitecom/logs
  • chown www-data:sitecom /home/sitecom/logs/access_log
  • chown www-data:sitecom /home/sitecom/logs/error_log
  • chmod a-w /home/sitecom

Add Pool to FPM

  • touch /etc/php/7.2/fpm/pool.d/sitecom.conf
  • service php7.2-fpm restart

Install Certbot-Auto

  • wget https://dl.eff.org/certbot-auto
  • chmod a+x ./certbot-auto

Generate New SSL Certs

  • certbot --nginx certonly -d site.com -d www.site.com

Install Pip

  • apt install python3-pip -y
  • pip3 install --upgrade pip

FTP Settings

  • anonymous_enable=NO
  • local_enable=YES
  • write_enable=YES
  • chroot_local_user=YES
  • local_umask=002

Fresh Install Essentials

  • apt install build_essential tcl -y
  • apt install gcc g++ make vim -y
  • apt install screen aptitude openssh-server -y

Default Nginx Config

server {
    listen 80;
    listen [::]:80;

    server_name site.com www.site.com;

    access_log /home/sitecom/logs/access_log;
    error_log /home/sitecom/logs/error_log;

    return 301 https://$server_name$request_uri;
}

server {
    listen 443;
    listen [::]:443;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/site.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/site.com/privkey.pem;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    
    include /etc/letsencrypt/options-ssl-nginx.conf;

    autoindex off;

    server_name site.com www.site.com;
    root /home/sitecom/www;
    index index.html index.php;

    access_log /home/sitecom/logs/access_log;
    error_log /home/sitecom/logs/error_log;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root:/tmp";
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
    }
}