X-Git-Url: https://plomlompom.com/repos/?p=config;a=blobdiff_plain;f=jessie_postinstall.sh;h=0b628e520d87425aea8106a8e060efea46042dc4;hp=1b2978aec1c34ed181d2eec3259b68433f9ce9e1;hb=HEAD;hpb=67e783c56b750fdb3d9e77eada3cd3dd9935d5f7 diff --git a/jessie_postinstall.sh b/jessie_postinstall.sh index 1b2978a..0b628e5 100755 --- a/jessie_postinstall.sh +++ b/jessie_postinstall.sh @@ -6,25 +6,29 @@ if [ ! "$1" = "thinkpad" ] && [ ! "$1" = "server" ]; then echo "Need argument." false fi - if [ "$1" = "thinkpad" ] && [ ! "$2" = "X200s" ] && [ ! "$2" = "T450s" ]; then echo "Need Thinkpad type." false fi - -if [ "$1" = "server" ] && [ ! "$2" = "plomlompom.com" ] && \ - [ ! "$2" = "test.plomlompom.com" ]; then - echo "Need server type." +if [ "$1" = "server" ] && [ ! "$2" = "personal" ] && [ ! "$2" = "public" ]; then + echo "Need server purpose." + false +fi +if [ "$2" = "personal" ] && [ ! "$3" = "test.plomlompom.com" ] && \ + [ ! "$3" = "plomlompom.com" ]; then + echo "Need server domain" false fi # Some important variables -if [ "$2" = "plomlompom.com" ]; then +if [ "$3" = "plomlompom.com" ]; then hostname="plomlompom" -elif [ "$2" = "test.plomlompom" ]; then - hostname="test.plomlompom.com" +elif [ "$3" = "test.plomlompom.com" ]; then + hostname="test.plomlompom" +elif [ "$2" = "public" ]; then + hostname="htwtxt.plomlompom" elif [ "$2" = "X200s" ]; then - hostname="X220s" + hostname="X200s" elif [ "$2" = "T450s" ]; then hostname="T450s" fi @@ -57,8 +61,8 @@ echo $hostname > /etc/hostname hostname $hostname if [ "$1" = "server" ]; then echo '127.0.0.1 localhost' > /etc/hosts - ip=`hostname -I` - echo "$ip $2 $hostname" >> /etc/hosts + ip=`hostname -I | cut -d " " -f 1` + echo "$ip $hostname.com $hostname" >> /etc/hosts # Call dhclient on startup. cat > /etc/systemd/system/dhclient.service << EOF @@ -81,7 +85,7 @@ echo 'deb http://security.debian.org/ jessie/updates main contrib non-free' \ >> /etc/apt/sources.list echo 'deb http://ftp.debian.org/debian/ jessie-updates main contrib non-free' \ >> /etc/apt/sources.list -if [ "$1" = "thinkpad" ]; then +if [ "$1" = "thinkpad" ] || [ "$2" = "public" ]; then echo 'deb http://ftp.debian.org/debian/ jessie-backports main contrib' \ ' non-free' >> /etc/apt/sources.list echo 'deb http://ftp.debian.org/debian/ testing main contrib non-free' \ @@ -93,7 +97,9 @@ if [ "$1" = "thinkpad" ]; then echo 'APT::Default-Release "stable";' \ >> /etc/apt/apt.conf.d/99defaultrelease fi -dhclient eth0 +if [ "$1" = "thinkpad" ]; then + dhclient eth0 +fi apt-get update apt-get -y dist-upgrade @@ -112,6 +118,10 @@ if [ "$1" = "thinkpad" ]; then '#START_CHARGE_THRESH_BAT0/' /etc/default/tlp sed -i 's/^#STOP_CHARGE_THRESH_BAT0/STOP_CHARGE_THRESH_BAT0=95 '\ '#STOP_CHARGE_THRESH_BAT0/' /etc/default/tlp + sed -i 's/^#START_CHARGE_THRESH_BAT1/START_CHARGE_THRESH_BAT0=10 '\ +'#START_CHARGE_THRESH_BAT1/' /etc/default/tlp + sed -i 's/^#STOP_CHARGE_THRESH_BAT1/STOP_CHARGE_THRESH_BAT0=95 '\ +'#STOP_CHARGE_THRESH_BAT1/' /etc/default/tlp sed -i 's/^#DEVICES_TO_DISABLE_ON_STARTUP/DEVICES_TO_DISABLE_ON_STARTUP='\ '"bluetooth wifi wwan" #DEVICES_TO_DISABLE_ON_STARTUP/' /etc/default/tlp tlp start @@ -153,7 +163,13 @@ config/bin/symlink.sh useradd -m -s /bin/bash plom rm -rf /home/plom/config su - plom -c 'git clone http://github.com/plomlompom/config /home/plom/config' -su plom -c '/home/plom/config/bin/symlink.sh '$1' '$2 +su plom -c '/home/plom/config/bin/symlink.sh '$1' '$2' '$3 + +# Allow user to sudo. +if [ "$1" = "thinkpad" ]; then + apt-get -y install sudo + adduser plom sudo +fi # Set up editor. mkdir -p .vimbackups @@ -172,33 +188,96 @@ if [ "$1" = "server" ]; then su plom -c 'mkdir -p /home/plom/mail/inbox/{cur,new,tmp}' su plom -c 'mkdir -p /home/plom/mail/new_inbox/{cur,new,tmp}' sed -i 's/^delete = true$/delete = false/g' \ - /home/plom/config/dotfiles/user/server/getmail/getmailrc - DEBIAN_FRONTEND=noninteractive apt-get -y install getmail4 procmail mutt \ - postfix maildrop + /home/plom/config/dotfiles/user/server/personal/minimal/getmail/getmailrc + DEBIAN_FRONTEND=noninteractive apt-get -y install mutt postfix maildrop cp config/systemfiles/main.cf /etc/postfix/main.cf + sed -i 's/HOSTNAME/'$hostname.com'/g' /etc/postfix/main.cf cp config/systemfiles/aliases /etc/aliases newaliases service postfix restart + if [ "$2" = "personal" ]; then + apt-get -y install getmail4 procmail + fi # Set up regular system update reminder. apt-get -y install cron su plom -c "echo '0 18 * * 0 ~/config/bin/simplemail.sh '\ '~/config/mails/update_reminder' | crontab -" - # Set up screen/weechat/OTR/bitlbee. Make bitlbee listen only locally. - apt-get -y install screen weechat-plugins python-potr bitlbee - sed -i 's/^# DaemonInterface/DaemonInterface = 127.0.0.1 '\ + if [ "$2" = "personal" ]; then + # Set up screen/weechat/OTR/bitlbee. Make bitlbee listen only locally. + apt-get -y install screen weechat-plugins python-potr bitlbee + sed -i 's/^# DaemonInterface/DaemonInterface = 127.0.0.1 '\ '# DaemonInterface/' /etc/bitlbee/bitlbee.conf - sedtest=`grep -E '^DaemonInterface = 127.0.0.1 #' \ - /etc/bitlbee/bitlbee.conf | wc -l | cut -d ' ' -f 1` - if [ 0 -eq $sedtest ]; then - false + sedtest=`grep -E '^DaemonInterface = 127.0.0.1 #' \ + /etc/bitlbee/bitlbee.conf | wc -l | cut -d ' ' -f 1` + if [ 0 -eq $sedtest ]; then + false + fi + cp config/systemfiles/weechat.service \ + /etc/systemd/system/weechat.service + systemctl enable /etc/systemd/system/weechat.service + + # Send instructions mail. + config/bin/simplemail.sh config/mails/server_postinstall_finished + + elif [ "$2" = "public" ]; then + + # Set up htwtxt and environment. + apt-get -y install screen + apt-get -y -t jessie-backports install golang + su - plom -c 'git clone https://github.com/plomlompom/htwtxt $GOPATH/src/htwtxt' + su - plom -c 'go get htwtxt' + path=`su - plom -c 'echo $GOPATH/bin/htwtxt'` + su - plom -c 'mkdir -p ~/htwtxt' + cp config/systemfiles/htwtxt_restart_reminder.service \ + /etc/systemd/system/htwtxt_restart_reminder.service + systemctl enable /etc/systemd/system/htwtxt_restart_reminder.service + + # Set up nginx and letsencrypt. + apt-get -y install nginx + cp config/systemfiles/nginx.conf /etc/nginx/nginx.conf + cd ~ + git clone https://github.com/letsencrypt/letsencrypt + echo '0 18 * * 0 ~/config/bin/renew_certs.sh' | crontab - + + # Set up plomlombot. + apt-get -y install python3 python3-venv python3-pip + su - plom -c 'cd && git clone http://github.com/plomlompom/plomlombot-irc' + su - plom -c 'mkdir -p ~/plomlombot_db' + cp config/systemfiles/plomlombot.service \ + /etc/systemd/system/plomlombot.service + systemctl enable /etc/systemd/system/plomlombot.service + + # Set up plomlombot logging infrastructure. + mkdir -p /var/www/html/irclogs/ + ln -s /home/plom/plomlombot_db/6f322d574618816aa2d6d1ceb4fd2551/3c0248e76a1de3a6ee5bf3421f7379b0/logs/ /var/www/html/irclogs/zrolaps + touch /var/www/password_irclogs_zrolaps + ln -s /home/plom/plomlombot_db/6f322d574618816aa2d6d1ceb4fd2551/657eea42f86866f2954d39f92a6c71ff/logs/ /var/www/html/irclogs/nodrama.de + touch /var/www/password_irclogs_nodrama_de + ln -s /home/plom/plomlombot_db/6f322d574618816aa2d6d1ceb4fd2551/a083c5d5efca3734294fa656692990b6/logs/ /var/www/html/irclogs/freakazoid + touch /var/www/password_irclogs_freakazoid + + # Set up other web-served directories. + su - plom -c 'mkdir -p /home/plom/dump' + ln -s /home/plom/dump/ /var/www/html/dump + su - plom -c 'mkdir -p /home/plom/geheim' + ln -s /home/plom/geheim/ /var/www/html/geheim + su - plom -c 'mkdir -p /home/plom/lesekreis' + ln -s /home/plom/geheim/ /var/www/html/lesekreis + su - plom -c 'mkdir -p /home/plom/zettel' + ln -s /home/plom/zettel/ /var/www/html/zettel + su - plom -c 'git init --bare /home/plom/zettel.git' + su - plom -c 'cp ~/config/systemfiles/post-update ~/zettel.git/hooks/' + su - plom -c 'chmod a+x /home/plom/zettel.git/hooks/post-update' + + # Install website generator tools + apt-get -y install pandoc wget + wget http://news.dieweltistgarnichtso.net/bin/archives/redo-sh.tar.gz + tar -oxzf redo-sh.tar.gz -C /usr/local + rm redo-sh.tar.gz + apt-get --purge autoremove wget fi - cp config/systemfiles/weechat.service /etc/systemd/system/weechat.service - systemctl enable /etc/systemd/system/weechat.service - - # Send instructions mail. - config/bin/simplemail.sh config/mails/server_postinstall_finished elif [ "$1" = "thinkpad" ]; then # Set up networking (wifi!). @@ -240,7 +319,7 @@ elif [ "$1" = "thinkpad" ]; then apt-get -y install x11-xserver-utils # Set up pentadactyl. - apt-get -y install iceweasel + apt-get -y install iceweasel xul-ext-noscript apt-get -y -t jessie-backports install xul-ext-pentadactyl apt-get -y install vim-gtk su plom -c 'mkdir -p /home/plom/downloads/' @@ -256,4 +335,4 @@ passwd plom rm jessie_postinstall.sh # Finalize everything with a reboot. -reboot +echo "You may reboot now with the 'reboot' command unless there's more to do."