]> Sergey Matveev's repositories - paster.git/blob - INSTALL
Fix typo
[paster.git] / INSTALL
1 Install paster itself:
2
3     $ go get go.stargrave.org/paster
4
5 Add "paster" user and "pastes" directory, also accessible by HTTP service:
6
7     # pw useradd paster -s /usr/sbin/nologin -w no -d /path/to/pastes
8     # mkdir /path/to/pastes
9     # echo "<html><body>Paste service</body></html>" > /path/to/pastes/index.html
10     # chown -R paster:lighttpd pastes
11     # chmod 2750 pastes
12     # chmod 640 /path/to/pastes/index.html
13
14 Create daemontools+ucspi-tcp service:
15
16     # mkdir -p /var/service/.paster/log/main
17     # cat > /var/service/.paster/run <<EOF
18     #!/bin/sh -e
19     cd /path/to/pastes
20     umask 027
21     exec setuidgid paster tcpserver -DRH -l 0 ::0 2020 \
22         $GOPATH/bin/paster http://paster.example.com/ 2>&1
23     EOF
24     # cat > /var/service/.paster/log/run <<EOF
25     #!/bin/sh -e
26     exec setuidgid paster multilog t ./main
27     EOF
28     # chmod +x /var/service/.paster/run /var/service/.paster/log/run
29     # chown paster /var/service/.paster/log/main
30     # mv /var/service/.paster /var/service/paster
31
32 Optionally prepare X.509 certificate for TLS enabled service:
33
34     # umask 077
35     # certtool --generate-privkey --bits 256 --ecc --outfile \
36         paster.example.com.key.pem
37     # tmpl=`mktemp`
38     # cat > $tmpl <<EOF
39     dn = "cn=paster.example.com"
40     expiration_days = 365
41     signing_key
42     dns_name = "paster.example.com"
43     EOF
44     # certtool --generate-self-signed \
45         --load-privkey paster.example.com.key.pem \
46         --template $tmpl --outfile paster.example.com.pem
47     # cat paster.example.com.key.pem >> paster.example.com.pem
48     # rm paster.example.com.key.pem $tmpl
49     # chown paster:paster paster.example.com.pem
50     # chmod 600 paster.example.com.pem
51
52 prepare stunnel configuration:
53
54     # cat > stunnel.conf <<EOF
55     foreground = yes
56     syslog = no
57     debug = 3
58     cert = paster.example.com.pem
59     exec = $GOPATH/bin/paster
60     execArgs = $GOPATH/bin/paster http://paster.example.com/
61     EOF
62     # chown paster stunnel.conf
63
64 and run "stunnel /path/to/stunnel.conf" in service/paster.