# Installation _TODO: describe the system requirements and installation process._ ## Setting up the `piku` user _TODO: describe the need for a separate user and why it's configured this way._ If you're impatient, you need to make sure you have a `~/.ssh/authorized_keys` file that looks like this: ```bash command="FINGERPRINT= NAME=default /home/piku/piku.py $SSH_ORIGINAL_COMMAND",no-agent-forwarding,no-user-rc,no-X11-forwarding,no-port-forwarding ``` ## uWSGI Installation [uWSGI][uwsgi] can be installed in a variety of fashions. However, these instructions assume you're installing it from source, and as such may vary from system to system. ### Raspbian Since Raspbian's a fairly old distribution by now, its `uwsgi-*` packages are outdated (and depend on Python 2.6), so we have to compile and install our own version, as well as using an old-style `init` script to have it start automatically upon boot. ```bash sudo apt-get install build-essential python-dev libpcre3-dev # at the time of this writing, this installs 2.0.12 sudo pip install uwsgi # refer to our executable using a link, in case there are more versions installed sudo ln -s `which uwsgi` /usr/local/bin/uwsgi-piku # set up our init script sudo cp uwsgi-piku.dist /etc/init.d/uwsgi-piku sudo chmod +x /etc/init.d/uwsgi-piku sudo update-rc.d uwsgi-piku defaults sudo service uwsgi-piku start ``` ## Go Installation (on Raspberry Pi) > This is **EXPERIMENTAL** and may not work at all. Since Raspbian's Go compiler is version 1.0.2, we need something more up-to-date. 1. Get an [ARM 6 binary tarball][goarm] 2. Unpack it under the `piku` user like such: ```bash cd ~ tar -zxvf /tmp/go1.5.3.linux-arm.tar.gz ``` 3. Give it a temporary `GOPATH` and install `godep`: ```bash cd ~ GOROOT=$HOME/go GOPATH=$HOME/golibs PATH=$PATH:$HOME/go/bin go get github.com/tools/godep ``` _TODO: complete this._ [goarm]: http://dave.cheney.net/unofficial-arm-tarballs [uwsgi]: https://github.com/unbit/uwsgi