Under development.
# Setup environment apt-get install zsh locale-conf locale-gen en_US.UTF-8 dpkg-reconfigure localeconf # Setup email servers apt-get install postfix postgrey dovecot-imapd amavisd-new spamassassin pax dpkg-reconfigure postfix vim /etc/amavis/conf.d/15-content_filter_mode Uncomment: @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); vim /etc/amavis/conf.d/50-user Add $pax='pax'; adduser amavis /etc/init.d/amavis restart vim /etc/postfix/master.cf amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks -o smtpd_bind_address=127.0.0.1 /etc/init.d/postfix restart apt-get install razor pyzor vim /etc/spamassassin/local.cf #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor pyzor_add_header 1 #razor use_razor2 1 razor_config /etc/razor/razor-agent.conf #bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 /etc/init.d/amavis restart apt-get install apache2-mpm-worker php5 apt-get install postgresql-8.2 ssl-cert apt-get install ruby irb ri rake apt-get install build-essential apt-get install ruby1.8-dev libopenssl-ruby gem install rails mongrel tzinfo sudo apt-get install libpq-dev $ POSTGRES_INCLUDE=/usr/include/postgresql sudo gem install postgres apt-get install munin munin-node apt-get install sysv-rc-conf apt-get install libdbd-pg-perl apt-get install libarchive-zip-perl perlmagick libxml-atom-perl libmail-sendmail-perl libcrypt-openssl-dsa-perl libcompress-zlib-perl make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/certs/selfsigned.pem apt-get install apache2-threaded-dev libxml2-dev --libpng12-dev mcrypt libmcrypt-dev # PHP5 Apache2 ./configure --with-openssl --with-gd --enable-mbstring --with-pgsql --enable-maintainer-zts --with-apxs2=/usr/bin/apxs2 --enable-fastcgi --enable-cgi --prefix=/usr --with-mcrypt make && make install # PHP (F)CGI ./configure --with-openssl --with-gd --enable-mbstring --with-pgsql --enable-maintainer-zts --enable-fastcgi --enable-cgi --prefix=/usr --with-mcrypt --enable-force-cgi-redirect make && make install apt-get install rrdtool mailgraph dpkg-reconfigure mailgraph ln -s /usr/lib/cgi-bin/mailgraph.cgi /var/www/mailgraph.cgi apt-get install pflogsumm
Create /etc/logrotate.d/mail:
/var/log/mail.log { missingok daily rotate 7 create compress start 0 }
Create /opt/postfix_reports.sh
#!/bin/sh date=`date --rfc-3339=date` savedir="/var/www/admin/stats" gunzip /var/log/mail.log.0.gz pflogsumm -d yesterday /var/log/mail.log.0 > $savedir/mailstats$date gzip /var/log/mail.log.0 rm $savedir/mailstats-latest ln -s $savedir/mailstats$date $savedir/mailstats-latest totaldays=$(ls -ltr $savedir | grep 'mailstats[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}$' | wc -l) oldestday=$(ls -ltr $savedir | grep 'mailstats[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}$' | tail -1) if [ "$totaldays" -gt "7" ]; then rm $oldestday fi
chmod +x /opt/postfix_reports.sh crontab -e 0 7 * * * /opt/postfix_reports.sh &> /dev/null
Nginx:
./configure --sbin-path=/usr/local/sbin --with-http_ssl_module --with-http_dav_module make && make install
Nginx init script:
#! /bin/sh ### BEGIN INIT INFO # Provides: nginx # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the nginx web server # Description: starts nginx using start-stop-daemon ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/sbin/nginx NAME=nginx DESC=nginx test -x $DAEMON || exit 0 # Include nginx defaults if available if [ -f /etc/default/nginx ] ; then . /etc/default/nginx fi set -e case "$1" in start) echo -n "Starting $DESC: " start-stop-daemon --start --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \ --exec $DAEMON -- $DAEMON_OPTS echo "$NAME." ;; stop) echo -n "Stopping $DESC: " start-stop-daemon --stop --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \ --exec $DAEMON echo "$NAME." ;; restart|force-reload) echo -n "Restarting $DESC: " start-stop-daemon --stop --quiet --pidfile \ /usr/local/nginx/logs/$NAME.pid --exec $DAEMON sleep 1 start-stop-daemon --start --quiet --pidfile \ /usr/local/nginx/logs/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS echo "$NAME." ;; reload) echo -n "Reloading $DESC configuration: " start-stop-daemon --stop --signal HUP --quiet --pidfile /usr/local/nginx/logs/$NAME.pid \ --exec $DAEMON echo "$NAME." ;; *) N=/etc/init.d/$NAME echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 exit 1 ;; esac exit 0
chmod +x /etc/init.d/nginx update-rc.d -f nginx defaults
