Update INSTALL.md to reflect latest status

This commit is contained in:
fr33domlover 2018-12-10 13:58:39 +00:00
parent 33338a73cc
commit f9045e211b

View file

@ -1,23 +1,11 @@
Vervis is still in early development. These instructions may be incomplete
and/or slightly outdated. At the time of writing, you can get a running Vervis
instance if you follow the steps below.
Vervis is still in early development and the build process gets updates once in
a while, but this file tries to keep up and list the latest instructions for
running a Vervis instance.
Check the version of OpenSSL installed on your system. For example:
At the time of writing, you can get a running Vervis instance if you follow the
steps below.
$ apt show openssl
Currently Vervis is using a slightly old software configuration, and until I
fix that, it doesn't build with OpenSSL 1.1 and needs the older 1.0 or 1.0.1
version. If your distro has 1.1, see if you can grab 1.0 or 1.0.1 in some way,
either through the distro package or by downloading OpenSSL manually from its
website, or some alternative package manager such as GNU Guix.
UPDATE: If you proceed with the steps below and `stack build` throws an error
while building `HsOpenSSL`, there's a chance you can still use OpenSSL 1.1
successfully if you run these commands:
$ stack build HsOpenSSL --flag HsOpenSSL:-fast-bignum
$ stack build
# (1) System libraries
Install dependency library development packages. It's very likely you already
have them all installed, and if you're missing some, the build process will
@ -27,14 +15,18 @@ building, and let me know.
- PostgreSQL client library
- ZLib
- libssl
On Debian based distros, installation can be done like this:
$ sudo apt install libpq-dev zlib1g-dev
$ sudo apt install libpq-dev zlib1g-dev libssl-dev
# (2) The Stack build tool
Install stack. To install stack, go to its [website](https://haskellstack.org)
and follow the instructions. If you have some old version, such as one
installed from FPComplete's old debian repo, you may need to upgrade it.
and follow the instructions.
# (3) Version control systems Darcs and Git
Install Darcs. You can grab it from your distro, e.g.:
@ -45,45 +37,18 @@ can install it from a distro package too, e.g.:
$ sudo apt install git
# (4) The Vervis source code
Clone the Vervis repo:
$ darcs clone https://dev.angeley.es/s/fr33domlover/r/vervis
$ cd vervis
Install GHC. Unless you prefer to use a distro package or PPA or some other
source, the easiest way is to install via stack:
Clone dependency libraries:
$ stack setup
$ ./clone-deps.sh
Some of the dependency libraries need to be manually downloaded. Either because
I've written them and haven't released yet, or because they have unreleased
changes, or because I'm using a patched version of some library and the patch
hasn't found its way upstream.
In the `stack.yaml` file, under the `packages` field, there is a list of such
libraries. While `stack` supports fetching dependencies from Git repositories,
it doesn't support Darcs (if that changes and I haven't noticed, let me know!),
so we need to download them by ourselves. A line in the `packages` list that
looks like this needs manual download:
` - '../some-library-name'`
These details change often because of all the unreleased libraries and patches,
so until there are sane releases for everything, the instructions here aren't
always up to date. Basically it works like this:
- Those extra repos should be found at the
[Vervis project page](https://dev.angeley.es/s/fr33domlover/p/vervis)
- If something is missing there, try my
[Darcs Hub page](https://hub.darcs.net/fr33domlover)
- Use `darcs clone` to grab the library source code
As of May 24, 2018, you can grab these libraries by simply running the
[`clone-deps.sh`](./clone-deps.sh) script.
Update `stack.yaml` to specify the paths in the `packages` section if needed:
$ vim stack.yml
# (5) Configuration and database
Generate a new SSH key with a blank password:
@ -118,10 +83,26 @@ settings.
$ cp config/settings-default.yaml config/settings.yml
$ vim config/settings.yml
Build.
# (6) GHC Haskell compiler
`stack` can automatically install the correct GHC version for you, in an
isolated location that doesn't conflict with any system packages. Unless you
have a specific reason to get GHC in some other way, getting it through `stack`
is recommended.
If you'd like to install GHC manually (from a distro package, from a PPA,
etc.), this is the time to do so. And I trust you to arrange things such that
`stack` uses your manually download GHC. Otherwise, simply proceed to the next
step.
# (7) Build Vervis
Build. This will also automatically install GHC.
$ stack build
# (8) Development and deployment
For convenience, at least on actual deployments, you may wish to run the Vervis
SSH server on port 22, so that people don't have to specify a custom port. For
that to work, the user that runs the Vervis server needs to get permission to
@ -141,3 +122,7 @@ Browse to `http://localhost:3000` and have fun!
`yesod devel` is another way to run the application, useful for rapid
development, but I haven't been using it and I'm not sure it works, possibly I
broke something along the way. But feel free to try!
I have a little script for deploying Vervis on my server. I just haven't
published it yet and haven't explained how it works. If you're interested, ask
me about it, and it will motivate me to write about it sooner :)