Managing the Ports Tree with Portsnap

General Information

The FreeBSD ports tree is the most common method of installing software. With the latest 6.x releases of FreeBSD, the old method of keeping your ports tree updated is now considered obsolete. This guide will teach you how to install and maintain your ports tree using the built-in portsnap utility.

[Read more...]

Apache, PHP, and MySQL

General Information

This guide will teach you how to set up a basic web server with Apache, PHP support, and MySQL for the database.

[Read more...]

Build a Home-Office Router Using FreeBSD and PF

General Information

This guide will outline the basic steps for building a home-office router for use with a cable modem or DSL line using FreeBSD and Packet Filter (PF). It will cover updating FreeBSD, building a new kernel, and installing and configuring a DHCP server and DNS server to support a small internal network.

[Read more...]

Build a Dynamic Web and Email Serving Platform

General Information

Using FreeBSD, Apache-modSSL, MySQL, PHP, Sendmail and CuCiPop, you can setup an open source solution that will have you serving dynamic web pages and email quickly, reliably, securely, and efficiently without any out-of-pocket expense.

[Read more...]

Daemontools

General Information

This guide will help you set up Dan Bernstein’s daemontools, which is a program that supervises another daemon so that when it does fail, it will automatically be restarted.

[Read more...]

Folding@Home using daemontools

General Information

This guide will help you set up Folding@Home using Dan Bernstein’s daemontools, for easy maintenance and also so that on a server reboot folding@home automatically comes back up.

Requirements

You will need the following items to be able to complete this guide:

  1. Root access to a FreeBSD machine
  2. Daemontools running
  3. Linux compatibility installed

Installing Linux Compat

Folding@home only makes Linux binaries. If you do not have the Linux emulation mode enabled, then run the following command:

# pkg_add -r linux_base-8
# echo 'linux_enable="YES"' >> /etc/rc.conf

If you wish, you can compile from source, using the /usr/ports/emulators/linux_base-8/

At this point you need to restart, for the new linux emulation mode to become enabled.

# shutdown -r now

Setting up Folding@home

Here one creates the service directory and also a directory where the Folding@home client is run.

# mkdir /usr/local/folding@home/
# mkdir /usr/local/folding@home/root

Next we need to get the binary. Yes this is the Linux binary eventhough it contains an .exe extension.

# cd /usr/local/folding@home/root/
# fetch http://www.stanford.edu/group/pandegroup/release/FAH502-Linux.exe
# chmod +x FAH502-Linux.exe
# brandelf -t Linux FAH502-Linux.exe

You can always get the latest version of the client at http://folding.stanford.edu/download.html.

# mkdir /usr/local/folding@home/log
# mkdir /usr/local/folding@home/env
# mkdir /usr/local/folding@home/log/main

We create the directory structure needed for folding@home to be run under Dan Bernstein’s daemontools. We also need to chown/chmod them to the right permissions:

# cd /usr/local/folding@home
# chown -R nobody:nobody root env log/main
# chmod 2755 root log log/main

Now before doing anything else, we need to get the client set up. You need to give it a username to be able to say that you contributed, or you can stay anonymous.

# cd root
# setuidgid nobody ./FAH502-Linux.exe -configonly
# cd ..

Next set up the run file, this is the most important file, as it runs your Folding@home client using daemontools’ supervise, which will make sure it is always up.

# cat << EOF > run
# #!/bin/sh
# exec 2>&1
# exec envdir ./env sh -c '
#  cd /usr/local/folding@home/root/
#  exec setuidgid nobody /usr/bin/nice -n 20 /usr/local/folding@home/root/FAH502-Linux.exe -freeBSD
# '
# EOF
# chmod 700 run

Logging is important. Of course, we want to know how far along we are.

# cat << EOF > log/run
# #!/bin/sh
# exec setuidgid nobody multilog t ./main
# EOF
# chmod 700 log/run

Starting Folding@home

Now, to get Folding@Home started using svscan and have it running under supervise, we have to let svscan know about our service.

# cd /var/service
# ln -s /usr/local/folding@home

It should now be running, to see if it really is running, check with ps.

# ps auxwwww | grep -i fah

You should see several different processes named FAH*-Core.exe, this means you are good to go. To check how long it has been running, use svstat like follows:

# svstat /var/service/folding@home/

Secure Installation of Postgresql

General Information

This guide will help you set up, and start running PostgreSQL using the ports tree. For information of how to use PostgreSQL, try google. This guide will not help you with PostgreSQL past installing it.

[Read more...]

djbdns dnscache

General Information

This guide will walk you through setting up a DJB dnscache resolver.

[Read more...]

Network Configuration FreeBSD

General Information

Network configuration in FreeBSD can be a bit difficult because there are a few different text files to edit in order for your changes to be permanent. Hopefully this guide will clear some things up.

[Read more...]

Installing Applications FreeBSD

General Information

Coming from a Linux or Windows background, many people begin to wonder where to get and how to install applications on FreeBSD. Well, with FreeBSD most applications can be installed from the Internet so you don’t have to find the tarballs. There are two different installation methods to choose from and they both do a great job dealing with dependancies.

[Read more...]