summaryrefslogtreecommitdiff
path: root/INSTALL.md
diff options
context:
space:
mode:
authorcolin <colin@cicadas.surf>2023-01-01 09:01:10 -0800
committercolin <colin@cicadas.surf>2023-01-01 09:01:10 -0800
commit32310d910b8721f46c96cfb3709ca2d13da7b066 (patch)
treea9119888faf1c0f7eb65bdb59e8dffe3e43c678c /INSTALL.md
parent23b40732d41589380d38235e67b27bdd9269b658 (diff)
Docs: Changed Hacking and Install docs
Diffstat (limited to 'INSTALL.md')
-rw-r--r--INSTALL.md126
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.