aboutsummaryrefslogtreecommitdiff
path: root/doc/tips/nearlyfreespeech.mdwn
blob: 3a389ca3a081a09dd29dbe9541144d7c4d68a8a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
[NearlyFreeSpeech.net](http://NearlyFreeSpeech.net) is a shared hosting
provider with very cheap pay as you go pricing. Here's how to install ikiwiki
there if you don't have a dedicated server.

Note that you can also follow these instructions, get your wiki set up on
NearlyFreeSpeech, and then use the [[plugins/Amazon_S3]] plugin to inject
the static web pages into Amazon S3. Then NearlyFreeSpeech will handle the
CGI, and S3 will handle the web serving. This might be a more cost effective,
scalable, or robust solution than using NearlyFreeSpeech alone.

## Register for an account and set up a site

After you [get an account](https://www.nearlyfreespeech.net/about/start.php),
create a site using their web interface. 

Mine is named `ikiwiki-test` and I used their DNS instead of getting my
own, resulting in <http://ikiwiki-test.nfshost.com/>

They gave me 2 cents free funding for signing up, which is enough to pay
for 10 megabytes of bandwidth, or about a thousand typical page views, at
their current rates. Plenty to decide if this is right for you. If it is,
$5 might be a good starting amount of money to put in your account.

## ssh in and configure the environment

ssh into their server using the ssh hostname and username displayed on
the site's information page. For me this was:

	ssh joeyh_ikiwiki-test@ssh.phx.nearlyfreespeech.net

Now set up .profile to run programs from ~/bin.

	cd $HOME
	echo "PATH=$PATH:$HOME/bin" > .profile
	. .profile

## Download an unpack ikiwiki

Use `wget` to [[download]] the ikiwiki tarball. Then unpack it:

	tar zxvf ikiwiki*.tar.gz

## Install perl modules

Use CPAN to install the perl modules it uses into your home directory:

	PERL5LIB=`pwd`/ikiwiki:`pwd`/ikiwiki/cpan:`pwd`/lib/perl5 PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'CPAN::Shell->install("Bundle::IkiWiki")'
	
	PERL5LIB=`pwd`/ikiwiki:`pwd`/ikiwiki/cpan:`pwd`/lib/perl5 PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'CPAN::Shell->force(install => "Bundle::IkiWiki::Extras")'

This will take a while. As long as the first command succeeds, ikiwiki will be
usable. The second command adds extra modules that some plugins use, so it's
ok if installation of some of them fail.

## Build and install ikiwiki

	cd ikiwiki
	export MAKE=gmake
	perl Makefile.PL INSTALL_BASE=$HOME PREFIX=
	$MAKE
	$MAKE install

## Set up a wiki in the usual way

With ikiwiki installed, you can follow the regular [[setup]] tutorial for
settng up your wiki. Make sure to set `destdir` to `/home/htdocs/` so that
the wiki is published on the web site. I recommend using git for revision
control; you can then clone your wiki's git repository as an offsite backup.

Here is an example of how I set up a wiki:

	mkdir ~/wiki
	cd ~/wiki
	cp ~/ikiwiki/doc/ikiwiki.setup .
	cp -r ~/ikiwiki/doc/examples/blog/* .
	nano ikiwiki.setup
	# Set destdir to /home/htdocs
	# Set srcdir to /home/private/wiki
	# Set url to http://yoursite.nfshost.com/ , set cgiurl likewise
	# Uncomment the `rcs => "git"` line, and the cgi and git
	# post-update wrapper blocks.
	# Set the cgi wrapper path to /home/htdocs/ikiwiki.cgi
	# Set the git wrapper path to /home/private/wiki.git/hooks/post-update
	# Configure the rest to your liking and save the file.
	ikiwiki-makerepo git . ../wiki.git
	ikiwiki -setup ikiwiki.setup

## Clean up

Finally, you can save a _lot_ of disk space by cleaning up the ikiwiki
tarball and .cpan directory and a few other peices of cruft. Since you'll be
charged one cent per month per megabyte, this is a quick way to save several
dollars.

rm -rf ~/ikiwiki*.tar.gz ~/.cpan ~/ikiwiki ~/man ~/lib/perl5/5.8.8

That should cut things down to less than 4 megabytes. If you want to save
even more space, delete unused perl modules from ~/lib/perl5

## Enjoy!

Have fun and do good things. --[[Joey]]