diff options
Diffstat (limited to 'INSTALL.md')
-rw-r--r-- | INSTALL.md | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..2ff46a4 --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,126 @@ + +# INSTALL DEPENDENCIES + +Vampire requires the following software to operate properly. + +- youtube-dl +- ffmpeg (used by youtube-dl) + +Install youtube-dl: + + pip3 install youtube-dl + +Install ffmpeg + + sudo apt-get install ffmpeg + + + +# BUILDING + +I have only tested vampire using SBCL on Linux. + +First install the dependencies that are not in quicklisp: + + git clone https://cicadas.surf/cgit/colin/derrida.git ~/quicklisp/local-projects/ + git clone https://cicadas.surf/cgit/colin/vampire.git ~/quicklisp/local-projects/ + +Then cd into the vampire repo's directory and run the build script. + + cd ~/quicklisp/local-projects/vampire + sbcl --load build.lisp + +If it worked, you should be able to find the file bin/vampire. + +# SETUP AND CONFIGURATION + +## Choose an installation directory + +Choose a directory into which vampire files will be placed. For +example, if you make a user called `vampire`, you can use +`/home/vampire` for the vampire directory. + +For the rest of this document, I will refer to whatever directory you +have chosen as $VAMPIRE_HOME. + +## CREATE A CONFIGURATION FILE + +The configuration file is called config.lisp. Here is an example. + + (:datastore-directory "$VAMPIRE_HOME/store/" + :static-directory "$VAMPIRE_HOME/static/" + :swank-port 5011 + :port 8081 + :downloader-threads 8) + +Put the above into a file called "$VAMPIRE_HOME/config.lisp". + +The :datastore-directory and :static-directory fields are REQUIRED and +must be writable by the vampire process. In particular, a subdirectory +of the static-directory, called media, is where media files will be +stored. + +The :port optionis the where the http server will listen for incoming +connections on localhost. Vampire assumes you are using a reverse +proxy. + +The :swank-port field is optional. It is the localhost port where you +can connect via SLIME to debug the live application. + +## COPY CSS & CLOG FILES + +The application css and necessary clog files are stored in the git +repository within the subdirectory called `static`. Copy this whole +directory to the location you specified for the `:static-directory` +option in your `config.lisp`: + + cp -r /path/to/vampire.git/static $VAMPIRE_HOME/static + + +## SET UP A REVERSE PROXY + +I am using apache to set up a reverse proxy. If I'm running vampire on +host at 10.0.0.6, and serving over HTTPS using the domain name +vampire.yourhost.moo, then here's how I'd configure the proxy: + + <VirtualHost *:80> + ServerName vampire.yourhost.moo + Redirect / "https://vampire.yourhost.moo/" + </VirtualHost> + + <VirtualHost _default_:443> + ServerName vampire.yourhost.moo + SSLEngine on + SSLCertificateFile "/etc/letsencrypt/live/vampire.yourhost.moo/fullchain.pem" + SSLCertificateKeyFile "/etc/letsencrypt/live/vampire.yourhost.moo/privkey.pem" + + ProxyPass /clog ws://10.0.0.6:8081/clog + ProxyPass / http://10.0.0.6:8081/ + ProxyPassReverse / http://10.0.0.6:8081/ + + </VirtualHost> + + +## SYSTEMD SYSTEM SERVICE + +Use a systemd service to run vampire, ensuring that it restarts on +reboot. + + + [Unit] + Description=Vampire Service + + [Service] + Type=simple + ExecStart=/home/vampire/vampire/config --config /home/vampire/config.lisp + Restart=always + User=vampire + Group=vampire + + + [Install] + WantedBy=multi-user.target + +Put that into /etc/systemd/system/ + +and start it like any other systemd service. |