aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorColin Okay <colin@cicadas.surf>2022-11-03 07:34:15 -0500
committerColin Okay <colin@cicadas.surf>2022-11-03 07:34:15 -0500
commit883e5fdf0bbb704fe4fe1dd78a7ee47eddb9cada (patch)
treee8abf72fde59f8c663767367f19bc1c1820da182
parent0c37f2801bc1c81d1a90f35be975a7d33cd5dbac (diff)
Add: readme and install
-rw-r--r--INSTALL94
-rw-r--r--README.org13
-rw-r--r--vampire.asd8
3 files changed, 111 insertions, 4 deletions
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..0cce93d
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,94 @@
+
++----------------------------------------------+
+| 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.
+
++------------------------------------------------------+
+| CONFIGURATION FILE |
++------------------------------------------------------+
+
+The configuration file is called config.lisp. Here is an example.
+
+ (:datastore-directory "/home/vampire/store/"
+ :static-directory "/home/vampire/static/"
+ :swank-port 5011
+ :port 8081
+ :downloader-threads 8)
+
+
+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.
+
+Hence, if you want to store media elsewhere, you can mount or symlink
+at the ./media subdirectory to the real location.
+
+The :swank-port field is optional. It is the localhost port where you
+can connect via SLIME to debug the live application.
+
++------------------------------------------------------+
+| 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>
+
+
++------------------------------------------------------+
+| 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.
diff --git a/README.org b/README.org
new file mode 100644
index 0000000..0c528d3
--- /dev/null
+++ b/README.org
@@ -0,0 +1,13 @@
+* 🧛 Vampire 🧛
+
+Vampire is a web based tool for collaborative creation of "mix
+tapes". It is meant to be self-hosted and shared by small groups of
+friends.
+
+Vampire was built with love in [[https://common-lisp.net/][Common Lisp]]. It uses the excellent [[https://github.com/rabbibotton/clog][CLOG]]
+system for its front end, and the easy-as-pie object prevelence system
+system [[https://github.com/sharplispers/bknr.datastore][BKNR.DATASTORE]] for its backend.
+
+To build and deploy, see the INSTALL file in this repository.
+
+
diff --git a/vampire.asd b/vampire.asd
index f9f9717..a089d47 100644
--- a/vampire.asd
+++ b/vampire.asd
@@ -1,10 +1,10 @@
;;;; vampire.asd
(asdf:defsystem #:vampire
- :description "Describe vampire here"
- :author "Your Name <your.name@example.com>"
- :license "Specify license here"
- :version "0.0.1"
+ :description "Live Collaborative Music Mixes"
+ :author "Colin <colin@cicadas.surf>"
+ :license "AGPL-3.0"
+ :version "0.1.0"
:serial t
:depends-on (#:clog
#:hunchentoot