#+TITLE: Server Configuration * Preface This is a literate shell program written. The formatting is pretty straightforward. You can have documentation and code mixed up and make nice PDFs but also spit out code. It's good for public projects. It looks okay on Github. I'll set it up so that it automatically exports a companion shell script in time. Let's set up a tilde.club server! * Base machine - A standard unix server, Ubuntu or CentOS. - [TK explain servers and server math] * TODO Getting started - [ ] Add apropos descriptions for each application? We need to start by installing some basics. First we automatically upgrade the system #+begin_src bash echo "Installing basics" yum upgrade #+end_src And we remove Java; it's a beast and it takes a lot of memory and is generally a pretty bad citizen on machines that many people share. #+begin_src bash echo "Removing java" yum uninstall java #+end_src * Shells #+begin_src bash yum install zsh yum install csh yum-config-manager --add-repo http://fishshell.com/files/linux/RedHat_RHEL-6/fish.release:2.repo yum install fish #+end_src * Data #+begin_src bash yum install rrdtool yum install jq #+end_src * Games #+begin_src bash yum install frotz yum install mlmmj #+end_src I also downloaded and installed nethack. which was a terrible pain and requires much configuration. When we move to Ubuntu it won't be necessary since there's a package so I'm ignoring it for now. * Editors #+begin_src bash yum install mg vile zile #+end_src * Usenet Slrn is a pain to get working on CentOS. #+begin_src bash yum install slang slang-devel slang-static slang-slsh #+end_src * Languages #begin_src bash yum install R chmod 700 /usr/bin/java* #end_src bash R is a huge, shitty install that requires, like LaTeX. And Java. And AWS wants Java too. Rather than fight the Java virus I just made it 700 root. * Servers Now we install servers, which allow client software to connect and issue commands. Each server is like a small computer unto itself. The first server we fetch is Webmin, which is a systems administration tool that you can use from the web. #+begin_src bash echo "Installing servers" echo "1) Webmin" yum install perl-Net-SSLeay # (so that webmin uses HTTPS rather than HTTP) wget http://prdownloads.sourceforge.net/webadmin/webmin-1.710-1.noarch.rpm rpm -U webmin-1.710-1.noarch.rpm echo "2) HTTPD/Apache" yum install httpd echo "3) Unix Talk" yum install talk-server echo "4) postfix mail server" yum install postfix #+end_src ** TODO Is postfix even necessary? - [ ] We could just do maildrop. - [ ] I do not know. ** TODO Log into webmin and set things up? * Applications #+begin_src bash yum install emacs yum install tmux yum install htop yum install elinks yum install nail # [?why did I did this] yum install lynx yum install figlet yum install ImageMagick yum --enablerepo=epel install -y mosh # Irc clients yum install ScrollZ yum install irssi yum install alpine yum install pico yum install readline yum install tig yum install sbcl yum install fortune-mod yum install tidy yum install jq yum install git-core yum --enablerepo=epel install nodejs yum --enablerepo=epel install npm #+end_src ** TODO Figure out mosh ports ** TODO Decided if we want mailman for internal private mailing lists. Probably so! * Development Tools #+begin_src bash yum groupinstall "Development Tools" yum install gcc chmod 700 /usr/bin/gcc* chmod 700 /usr/bin/cc* #+end_src * Add other things - Get the right racket for the box at http://racket-lang.org/download/