Hayden Guide

From Bibliotheca Anonoma
Revision as of 03:19, 15 August 2020 by Ctrl-s (talk | contribs) (more notes formatted)

Guide on how to setup and run hayden on a linux machine.


Warnings

Blame Ctrl-S for this document. (WIP) Hayden is not really reliably stable on linux right now and may decide to enter a state where it will reliably crash on startup. Hayden cares about the JSON config file syntax. If you missplace a comma it will probably reject the config file and crash.


Prerequisites

How to set up a system so hayden will download, build, and run.

  • Prep system for updates
    • Debian-based systems (ubuntu, debian, etc)
$ sudo apt update && sudo apt upgrade -y
$ sudo apt install -y git curl wget
    • RHEL-based systems (redhat, fedora, centos)
$ sudo yum update -y
  • Install Microsoft dotnet runtime

https://docs.microsoft.com/en-us/dotnet/core/install/linux-centos https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu

    • RHEL-based systems (redhat, fedora, centos)
$ sudo dnf install dotnet-sdk-3.1
    • Debian-based systems (ubuntu, debian, etc)
$ sudo apt-get install -y dotnet-sdk-3.1

Database install

TODO DB install

docker mariadb

Download and Build

  • Prepare location:
$ mkdir -vp /home/USER/hayden_2020/
$ cd /home/USER/hayden_2020/
  • Clone (download) Hayden source code from Github:
$ git clone https://github.com/bbepis/Hayden.git

Build the Hayden solution file:

$ dotnet build "/home/USER/hayden_2020/Hayden/Hayden.sln"
  • Run with config file:
$ "/home/USER/hayden_2020/Hayden/Hayden/bin/Debug/netcoreapp3.1/Hayden" "/home/USER/hayden_2020/hayden-config.json"

Configuration

  • Configuration for Hayden is done through a JSON file that is specified as a command-line argument when starting Hayden.
$ "/home/USER/hayden_2020/Hayden/Hayden/bin/Debug/netcoreapp3.1/Hayden" "/home/USER/hayden_2020/hayden-config.json"
  • Hayden is picy about the syntax of this JSON file.
    • Commas only go between key:value pars. Trailing commas are not tolerated by Hayden.
  • Some options are implimented but not shown in the example JSON file.
    • The option to scan archive.json to save threads that have recently fallen off the board: <code"ReadArchive": true
  • Some databses will not let you connect as the DB root account from a system user other than root.
    • As a result of this, you should create a DB user specifically for Hayden to use.
  • The database connection is defined by this string value:
"connectionString" : "Server=DB_NETWORK_ADDRESS;Port=DB_PORT;Database=DATABASE;Uid=DB_USERNAME;Pwd=DB_PASSWORD;CharSet=utf8mb4;IgnorePrepare=false",


e.g.

"connectionString" : "Server=localhost;Port=3306;Database=asagi;Uid=hayden;Pwd=some_secret_value;CharSet=utf8mb4;IgnorePrepare=false",
  • Image downloading is controlled by two options:


"fullImagesEnabled" : true,
"thumbnailsEnabled" : false,

    • These values must either be false ortrue.