]> Sergey Matveev's repositories - paster.git/blob - INSTALL
Tiny refactor
[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     # chown paster:lighttpd pastes
10     # chmod 2750 pastes
11
12 Create daemontools+ucspi-tcp service:
13
14     # mkdir -p /var/service/.paster/log/main
15     # cat > /var/service/.paster/run <<EOF
16     #!/bin/sh -e
17     cd /path/to/pastes
18     umask 027
19     exec setuidgid paster tcpserver -DRH -l 0 ::0 2020 \
20         $GOPATH/bin/paster http://paster.example.com/ 2>&1
21     EOF
22     # cat > /var/service/.paster/log/run <<EOF
23     #!/bin/sh -e
24     exec setuidgid paster multilog t ./main
25     EOF
26     # chmod +x /var/service/.paster/run /var/service/.paster/log/run
27     # chown paster /var/service/.paster/log/main
28     # mv /var/service/.paster /var/service/paster
29
30 Optionally prepare X.509 certificate for TLS enabled service:
31
32     # umask 077
33     # certtool --generate-privkey --bits 256 --ecc --outfile \
34         paster.example.com.key.pem
35     # tmpl=`mktemp`
36     # cat > $tmpl <<EOF
37     dn = "cn=paster.example.com"
38     expiration_days = 365
39     signing_key
40     dns_name = "paster.example.com"
41     EOF
42     # certtool --generate-self-signed \
43         --load-privkey paster.example.com.key.pem \
44         --template $tmpl --output paster.example.com.pem
45     # cat paster.example.com.key.pem >> paster.example.com.pem
46     # rm paster.example.com.key.pem $tmpl
47     # chown paster:paster paster.example.com.pem
48     # chmod 600 paster.example.com.pem
49
50 prepare stunnel configuration:
51
52     # cat > stunnel.conf <<EOF
53     foreground = yes
54     syslog = no
55     debug = 3
56     cert = paster.example.com.pem
57     exec = $GOPATH/bin/paster
58     execArgs = $GOPATH/bin/paster http://paster.example.com/
59     EOF
60     # chown paster stunnel.conf
61
62 and run "stunnel /path/to/stunnel.conf" in service/paster.