Skip to content

Instantly share code, notes, and snippets.

@the0demiurge
Last active April 10, 2018 09:03
Show Gist options
  • Save the0demiurge/bd09db523f3d3eb2c525abcd12402650 to your computer and use it in GitHub Desktop.
Save the0demiurge/bd09db523f3d3eb2c525abcd12402650 to your computer and use it in GitHub Desktop.
vps重置之后安装所有所需软件,部署好ssr和nextcloud
#!/bin/bash
if [[ -z $TMUX ]]; then
echo 'must run in tmux'
apt update;apt install -y tmux
exit
fi
# Updating sources
read -p 'Updating packages(press Enter):'
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
add-apt-repository ppa:certbot/certbot
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D
echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE ./' >> /etc/apt/sources.list
# Installing packages
read -p 'Installing packages(press Enter):'
apt update
apt install loolwsd code-brand fish git unoconv elasticsearch imagemagick curl openjdk-8-jre smbclient python-certbot-apache htop nmap youtube-dl php-imagick php-memcached php-apcu php7.0-fileinfo php7.0-curl php7.0-intl php7.0-gmp php7.0-exif ffmpeg php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring php apache2 mariadb-server libapache2-mod-php7.0 unar aria2 transmission-cli software-properties-common vim-nox vim-tiny- vim- tmux
# Download ssr
read -p 'Downloading ssr install scripts(press Enter):'
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR.sh
chmod +x shadowsocksR.sh
# Install nextcloud
read -p 'Installing Nextcloud(press Enter):'
NEXTCLOUD="nextcloud-13.0.1.zip"
wget https://download.nextcloud.com/server/releases/$NEXTCLOUD
unar $NEXTCLOUD
mv nextcloud /var/www/
rm /var/www/html -r
chown -R www-data: /var/www
echo "Alias /nextcloud "/var/www/nextcloud/"
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
"|tee /etc/apache2/sites-available/nextcloud.conf
ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
a2enmod setenvif
a2enmod ssl
a2ensite default-ssl
ln -s /var/www/nextcloud/occ /usr/local/bin/occ
fish -c "abbr occ 'sudo -u www-data occ'"
echo "#!/bin/bash
sudo -u www-data occ files:cleanup
sudo -u www-data occ files:scan --all
sudo -u www-data occ files:scan-app-data
sudo -u www-data occ trashbin:expire
"|tee /etc/cron.hourly/occ.sh
chmod +x /etc/cron.hourly/occ.sh
echo "#!/bin/sh
### BEGIN INIT INFO
# Provides: aria2
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Aria2 Downloader
### END INIT INFO
case "$1" in
start)
echo -n "Starting aria2c"
sudo -u www-data aria2c -d /var/www/nextcloud/data/charles/files/Downloads -D --enable-rpc=true --continue=true
;;
stop)
echo -n "Shutting down aria2c "
killall aria2c
;;
restart)
killall aria2c
sudo -u www-data aria2c -d /var/www/nextcloud/data/charles/files/Downloads -D --enable-rpc=true --continue=true
;;
esac
exit
"|tee /etc/init.d/aria2c
chmod +x /etc/init.d/aria2c
sudo -u www-data mkdir -p /var/www/nextcloud/data/charles/files/Downloads
update-rc.d aria2c defaults
systemctl start aria2c
echo '
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 3
MaxClients 15
MaxRequestsPerChild 3000
</IfModule>
<IfModule mpm_worker_module>
StartServers 1
MinSpareThreads 5
MaxSpareThreads 15
ThreadLimit 25
ThreadsPerChild 5
MaxClients 25
MaxRequestsPerChild 200
</IfModule>
'|tee -a /etc/apache2/ports.conf
echo '#!/bin/bash
certbot renew
'|tee /etc/cron.daily/certbot
chmod +x /etc/cron.dailf/certbot
echo '*/15 * * * * php -f /var/www/nextcloud/cron.php':tee /var/spool/cron/crontabs/www-data
chown www-data:crontab /var/spool/cron/crontabs
chmod 600 /var/spool/cron/crontabs
service apache2 reload
service apache2 restart
read -p 'Change default nextcloud port to 50145?[y/N]' pmt
if [[ $pmt == "y" ]]; then
sed 's/Listen 80/Listen 50145/' /etc/apache2/ports.conf -i
echo 'cat /etc/apache2/ports.conf'
echo
cat /etc/apache2/ports.conf
fi
read -p 'mysql password?' pw
echo "create database nextcloud;
create user 'nextcloud'@'localhost' identified by '$pw';
grant all on nextcloud.* to 'nextcloud'@'localhost';
flush privileges;"|mysql -uroot
echo -e "mariadb info:
username:\tnextcloud
password\t$pw"
read -p 'root password?' pw
echo "set password for 'root'@'localhost' = password('$pw');"|mysql -uroot
./shadowsocksR.sh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment