Update INSTALL.md to reflect latest status
This commit is contained in:
parent
33338a73cc
commit
f9045e211b
1 changed files with 39 additions and 54 deletions
93
INSTALL.md
93
INSTALL.md
|
@ -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 :)
|
||||
|
|
Loading…
Reference in a new issue