Advertisement
bheng8200

deployLaravelToDO.sh

Dec 8th, 2020 (edited)
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 7.37 KB | None | 0 0
  1. inputs :
  2.  
  3. SERVER_USERNAME=kyo
  4. SERVER_PORT=4780
  5. GIT_URL=git@bitbucket.org:kyo/sunset.git
  6. GIT_USERNAME=Kyo Lee
  7. GIT_EMAIL=kyo.me@gmail.com
  8. DB_USERNAME=kyo
  9. DB_PASSWORD=silly123
  10. DOMAIN=evening.com
  11. DO_API_KEY=123XXXXXXXXCXXXXXXXXXXXXXXXXXXXXXXXXXXX
  12.  
  13. ==================================
  14.  
  15. timedatectl set-timezone EST && date
  16.  
  17. apt-get update && apt-get dist-upgrade
  18.  
  19. useradd -m kyo
  20. adduser kyo sudo
  21. passwd kyo
  22.  
  23. #set the password to : silly123
  24.  
  25. ==================================
  26.  
  27. vi /etc/ssh/sshd_config
  28.  
  29. empty the file:
  30.  
  31. :1,$d
  32. ----------------------------------
  33.  
  34. Port 4780                                                                                                                                              
  35. PermitRootLogin no                                                                                                                                    
  36. PasswordAuthentication no
  37. ChallengeResponseAuthentication no
  38. UsePAM yes
  39. X11Forwarding yes
  40. PrintMotd no                                                                                                                                            
  41. AcceptEnv LANG LC_*                                                                                                                                    
  42. Subsystem      sftp    /usr/lib/openssh/sftp-server
  43. AllowUsers kyo root
  44.  
  45.  
  46. ==================================
  47. SSH in as kyo
  48.  
  49. Go to /home/kyo/, add my laptop key
  50.  
  51. su kyo
  52. type *****
  53. mkdir .ssh                                                      
  54. cd .ssh                                                        
  55. vi authorized_keys
  56.  
  57.  
  58. ssh-rsa AAAB3NzaC1yc2EAAAADAQABAAABAQC1YMlxQZEV2D5P5piW8mG9GlnZf2BUmhB/WwBDezE7IgRztR3jG44wMmTD6aWhTuxtNlRkn8K/0c3dTJmaRMLeEgp+u/cfMTCPHZ2MWb3W+3D0WpbQZ6hy8dTprc7NCq3eH3dG9WgyMFd17ra/LPALk6HkGgw91fpn2BCzeSaxAyIfrQ+2gwGqHMnA1KExPKF/uKjoXQi0mfHBllqfh2eraoV2SMjzVxuj6ezpzKvr4DwSduXB1CSJfNkIJh1eRqFRG3NQI+tbu1/8bjvBxkDAQFLZrxa2F4dfmellbMHkoQ3QvFqLMclMBANmH18Q2IPDW031OLg72AfwrLuYOz mbpr@local.com
  59.  
  60. exit
  61.  
  62. service ssh restart  
  63.  
  64.  
  65. service ssh status  
  66.  
  67. ==================================
  68. Clone as kyo SSH
  69.  
  70.  
  71. su kyo
  72. cd .ssh    
  73. ssh-keygen -t rsa -b 4096 -C "$(whoami)@$(hostname)"
  74. cat id_rsa.pub
  75.  
  76. #add that to bitbucket in account SSH
  77. #can we script this into my DO account base on API key ?
  78.  
  79.  
  80. ==================================
  81. Install latest PHP packages
  82.  
  83. #7.2 need to by dynamic
  84.  
  85. sudo su
  86.  
  87.  
  88. apt-get install -y toilet &&
  89. apt-get install -y nginx &&
  90. apt-get install -y composer &&
  91. apt-get install -y git &&
  92. apt-get install -y mysql-server &&
  93. apt-get install -y mysql-client &&
  94. apt-get install -y php7.2-cli &&
  95. apt-get install -y php7.2-curl &&
  96. apt-get install -y php7.2-dom &&
  97. apt-get install -y php7.2-mbstring &&
  98. apt-get install -y php7.2-fpm &&
  99. apt-get install -y php7.2-mysql &&
  100. apt-get install -y php7.2-gd &&
  101. apt-get install -y php7.2-imagick &&
  102. apt-get install -y php7.2-recode &&
  103. apt-get install -y php7.2-tidy &&
  104. apt-get install -y php7.2-xmlrpc &&
  105. apt-get install -y php7.2-zip
  106.  
  107.  
  108. ==================================
  109. File Upload Post Size
  110.  
  111. memory_limit 2048M
  112. post_max_size 1024M
  113. upload_max_filesize 1024M
  114.  
  115. cat /etc/php/7.4/fpm/php.ini | grep memory_limit
  116.  
  117.  
  118. sed -i -e 's/.*memory_limit.*/memory_limit = 2048M/g' /etc/php/7.4/fpm/php.ini
  119. sed -i -e 's/.*post_max_size.*/post_max_size = 1024M/g' /etc/php/7.4/fpm/php.ini
  120. sed -i -e 's/.*upload_max_filesize.*/upload_max_filesize = 1024M/g' /etc/php/7.4/fpm/php.ini
  121.  
  122.  
  123. cat /etc/php/7.4/fpm/php.ini | grep memory_limit
  124. cat /etc/php/7.4/fpm/php.ini | grep post_max_size
  125. cat /etc/php/7.4/fpm/php.ini | grep upload_max_filesize
  126.  
  127. /etc/init.d/php7.4-fpm restart
  128.  
  129. ==================================
  130. Test
  131.  
  132. mysql --version
  133. php -v
  134. nginx -v
  135.  
  136. ==================================
  137. update .bashrc
  138.  
  139. sudo su
  140.  
  141. for kyo : green
  142.  
  143. apt install toilet -y &&
  144. apt install -y jq &&
  145. apt install -y mailutils &&
  146. apt install whois
  147.  
  148. // if want to back up on existing VM
  149. // mv .bashrc .bashrc.$(date "+%Y-%m-%d-%H-%M-%S").bk
  150.  
  151.  
  152. #only on a none root
  153. wget https://www.123.com/download/V1cxR2VtRklTbXBVVjBaNlpFZFdlVXh1VG04PQ==?key=D0wl0aD -O .bashrc
  154.  
  155.  
  156.  
  157. root
  158. SFTP edit
  159.  
  160. ==================================
  161. Clone and install dependencies
  162.  
  163. git clone git@bitbucket.org:kyo/sunset.git
  164. cd sunset/
  165.  
  166. composer install
  167. cp .env-example .env
  168. php artisan key:generate
  169. chmod -R 777 storage/ bootstrap/
  170. php artisan serve
  171.  
  172.  
  173.  
  174. Update local GIT  
  175.  
  176. git config user.name "Kyo Lee"
  177. git config user.email kyo.me@gmail.com
  178.  
  179.  
  180.  
  181. ==================================
  182. Connect to database
  183.  
  184. #Create a user
  185.  
  186. CREATE USER 'kyo'@'localhost' IDENTIFIED WITH mysql_native_password BY 'silly123';
  187. GRANT ALL PRIVILEGES ON * . * TO 'kyo'@'localhost';
  188. FLUSH PRIVILEGES;
  189. select User,Host from mysql.user;
  190.  
  191. #DROP USER 'kyo'@'localhost';
  192.  
  193. sudo /etc/init.d/mysql stop
  194. sudo /etc/init.d/mysql start
  195.  
  196.  
  197.  
  198. ==================================
  199. #Test Connection  
  200.  
  201. Remote
  202. ——————
  203. Host :127.0.0.1
  204. Port : 3306
  205. User : kyo
  206. Pw   : silly123
  207.  
  208.  
  209. #Test Database Settings
  210.  
  211. cd public/
  212. wget https://github.com/vrana/adminer/releases/download/v4.7.6/adminer-4.7.6.php
  213. mv adminer-4.7.6.php adminer.php
  214. chmod +x adminer.php
  215. echo -e "http://$(curl ifconfig.me)/adminer.php"
  216. echo "Done"
  217. #rm -rf adminer*
  218.  
  219. ==================================
  220. Nginx config
  221.  
  222. cd /etc/nginx/sites-enabled
  223. vi ssl.conf
  224.  
  225. cat /etc/nginx/sites-enabled/ssl.conf    
  226.  
  227. └── cat /etc/nginx/sites-available/default                                                                                                      
  228. # service nginx restart
  229.  
  230. server {
  231.  
  232.     listen 443 ssl;
  233.     ssl_certificate /etc/nginx/ssl/evening.com.crt;
  234.     ssl_certificate_key /etc/nginx/ssl/evening.com.key;
  235.     server_name evening.com www.evening.com;
  236.  
  237.  
  238.     #listen 80 default_server;
  239.     #listen [::]:80 default_server;
  240.     #server_name _;
  241.  
  242.  
  243.     root /home/kyo/sunset;
  244.  
  245.     index index.html index.htm index.php;
  246.  
  247.  
  248.     charset utf-8;
  249.  
  250.  
  251.     location ~ \.php$ {
  252.             try_files $uri $uri/ /index.php?$query_string;
  253.             fastcgi_split_path_info ^(.+\.php)(/.+)$;
  254.             fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
  255.             fastcgi_index index.php;
  256.             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  257.             include /etc/nginx/fastcgi_params;
  258.     }
  259.  
  260.  
  261.  
  262.  
  263.     location = /favicon.ico { access_log off; log_not_found off; }
  264.     location = /robots.txt  { access_log off; log_not_found off; }
  265.  
  266.  
  267.     access_log on;
  268.     error_log  /var/log/nginx/error.log error;
  269.     error_page 404 /index.php;
  270.  
  271.  
  272.     client_max_body_size 500M;
  273.  
  274.  
  275. }
  276. _________________________________________________________________________________________________      
  277.  
  278.  
  279. #Permission
  280. #===========
  281. sudo chown -R www-data:www-data /home/kyo/sunset/ &&
  282. sudo usermod -a -G www-data kyo &&
  283. sudo chown -R kyo:www-data /home/kyo/sunset/ &&
  284. sudo find /home/kyo/sunset/ -type f -exec chmod 664 {} \; &&
  285. sudo find /home/kyo/sunset/ -type d -exec chmod 775 {} \; &&
  286. sudo chgrp -R www-data storage /home/kyo/sunset/bootstrap/cache &&
  287. sudo chmod -R ug+rwx storage /home/kyo/sunset/bootstrap/cache vendor
  288.  
  289.  
  290. #PHP Artisan
  291. #===========
  292. php artisan key:generate
  293. cat .env
  294. php artisan migrate
  295.  
  296.  
  297. _________________________________________________________________________________________________      
  298.  
  299.  
  300. #IP     = 1.1.1.1
  301. #DOMAIN = https://www.evening.com
  302.  
  303.  
  304.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement