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
|
Vervis is still in early development and the build process gets updates once in
|
||||||
and/or slightly outdated. At the time of writing, you can get a running Vervis
|
a while, but this file tries to keep up and list the latest instructions for
|
||||||
instance if you follow the steps below.
|
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
|
# (1) System libraries
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
Install dependency library development packages. It's very likely you already
|
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
|
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
|
- PostgreSQL client library
|
||||||
- ZLib
|
- ZLib
|
||||||
|
- libssl
|
||||||
|
|
||||||
On Debian based distros, installation can be done like this:
|
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)
|
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
|
and follow the instructions.
|
||||||
installed from FPComplete's old debian repo, you may need to upgrade it.
|
|
||||||
|
# (3) Version control systems Darcs and Git
|
||||||
|
|
||||||
Install Darcs. You can grab it from your distro, e.g.:
|
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
|
$ sudo apt install git
|
||||||
|
|
||||||
|
# (4) The Vervis source code
|
||||||
|
|
||||||
Clone the Vervis repo:
|
Clone the Vervis repo:
|
||||||
|
|
||||||
$ darcs clone https://dev.angeley.es/s/fr33domlover/r/vervis
|
$ darcs clone https://dev.angeley.es/s/fr33domlover/r/vervis
|
||||||
$ cd vervis
|
$ cd vervis
|
||||||
|
|
||||||
Install GHC. Unless you prefer to use a distro package or PPA or some other
|
Clone dependency libraries:
|
||||||
source, the easiest way is to install via stack:
|
|
||||||
|
|
||||||
$ stack setup
|
$ ./clone-deps.sh
|
||||||
|
|
||||||
Some of the dependency libraries need to be manually downloaded. Either because
|
# (5) Configuration and database
|
||||||
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
|
|
||||||
|
|
||||||
Generate a new SSH key with a blank password:
|
Generate a new SSH key with a blank password:
|
||||||
|
|
||||||
|
@ -118,10 +83,26 @@ settings.
|
||||||
$ cp config/settings-default.yaml config/settings.yml
|
$ cp config/settings-default.yaml config/settings.yml
|
||||||
$ vim 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
|
$ stack build
|
||||||
|
|
||||||
|
# (8) Development and deployment
|
||||||
|
|
||||||
For convenience, at least on actual deployments, you may wish to run the Vervis
|
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
|
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
|
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
|
`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
|
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!
|
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