Hayden Guide: Difference between revisions

From Bibliotheca Anonoma
(more notes formatted)
(Formatting and more sections)
Line 3: Line 3:


== Warnings ==
== Warnings ==
Blame Ctrl-S for this document. (WIP)
* 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 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.
* Hayden cares about the JSON config file syntax. If you missplace a comma it will probably reject the config file and crash.




== Prerequisites ==
== Prerequisites ==
How to set up a system so hayden will download, build, and run.
How to set up a system so hayden will download, build, and run.
* Prep system for updates
# Prep system for updates
** Debian-based systems (ubuntu, debian, etc)
#* Debian-based systems (ubuntu, debian, etc)
<syntaxhighlight lang="bash">
#: <syntaxhighlight lang="bash">
$ sudo apt update && sudo apt upgrade -y
$ sudo apt update && sudo apt upgrade -y
$ sudo apt install -y git curl wget
$ sudo apt install -y git curl wget
</syntaxhighlight>
</syntaxhighlight>
** RHEL-based systems (redhat, fedora, centos)
#* RHEL-based systems (redhat, fedora, centos)
<syntaxhighlight lang="bash">
#: <syntaxhighlight lang="bash">
$ sudo yum update -y
$ sudo yum update -y
</syntaxhighlight>
</syntaxhighlight>


* Install Microsoft dotnet runtime
# 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-centos
https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu
<br>https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu
** RHEL-based systems (redhat, fedora, centos)
#* RHEL-based systems (redhat, fedora, centos)
<syntaxhighlight lang="bash">$ sudo dnf install dotnet-sdk-3.1</syntaxhighlight>
#: <syntaxhighlight lang="bash">$ sudo dnf install dotnet-sdk-3.1</syntaxhighlight>
** Debian-based systems (ubuntu, debian, etc)
#* Debian-based systems (ubuntu, debian, etc)
<syntaxhighlight lang="bash">$ sudo apt-get install -y dotnet-sdk-3.1</syntaxhighlight>
#: <syntaxhighlight lang="bash">$ sudo apt-get install -y dotnet-sdk-3.1</syntaxhighlight>


=== Database install ===
=== Database install ===
TODO DB install
Hayden works with MariaDB and I dont know if it works with others.
==== docker mariadb ====
<br>You could use any MariaDB installation if you wanted to, however that is left to advanced users who know how and is outside the scope of this guide.


==== Docker+Mariadb - Install Docker ====
https://docs.docker.com/engine/install/#server
<br>https://docs.docker.com/engine/install/centos/
# Setup repository:
#: <syntaxhighlight lang="bash">
$ sudo yum install -y yum-utils
$ sudo yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
</syntaxhighlight>
# Install docker engine:
#: <syntaxhighlight lang="bash">$ sudo yum install docker-ce docker-ce-cli containerd.io</syntaxhighlight>
# Start docker service:
#: <syntaxhighlight lang="bash">$ sudo systemctl start docker</syntaxhighlight>
# Verify docker works
#: <syntaxhighlight lang="bash">$ sudo docker run hello-world</syntaxhighlight>
==== Docker+Mariadb - Install docker-compose ====
https://docs.docker.com/compose/
# Install docker-compose:
#: <syntaxhighlight lang="bash">
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
</syntaxhighlight>
# Symlink into $PATH:
#: <syntaxhighlight lang="bash">$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose</syntaxhighlight>
# Test installation:
#: <syntaxhighlight lang="bash">$ docker-compose --version</syntaxhighlight>
==== Docker+Mariadb - Setup Container ====
* TODO
==== Docker+Mariadb - Setup DB ====
* TODO
==== Docker+Mariadb - Usage ====
* TODO


== Download and Build ==
== Download and Build ==
* Prepare location:
# Prepare location:
<syntaxhighlight lang="bash">
#: <syntaxhighlight lang="bash">
$ mkdir -vp /home/USER/hayden_2020/
$ mkdir -vp /home/USER/hayden_2020/
$ cd /home/USER/hayden_2020/
$ cd /home/USER/hayden_2020/
</syntaxhighlight>
</syntaxhighlight>
* Clone (download) Hayden source code from Github:
# Clone (download) Hayden source code from Github:
<syntaxhighlight lang="bash">$ git clone https://github.com/bbepis/Hayden.git</syntaxhighlight>
#: <syntaxhighlight lang="bash">$ git clone https://github.com/bbepis/Hayden.git</syntaxhighlight>
Build the Hayden solution file:
# Build the Hayden solution file:
<syntaxhighlight lang="bash">$ dotnet build "/home/USER/hayden_2020/Hayden/Hayden.sln"</syntaxhighlight>
#: <syntaxhighlight lang="bash">$ dotnet build "/home/USER/hayden_2020/Hayden/Hayden.sln"</syntaxhighlight>
* Run with config file:
# Run with config file:
<syntaxhighlight lang="bash">$ "/home/USER/hayden_2020/Hayden/Hayden/bin/Debug/netcoreapp3.1/Hayden" "/home/USER/hayden_2020/hayden-config.json"</syntaxhighlight>
#: <syntaxhighlight lang="bash">$ "/home/USER/hayden_2020/Hayden/Hayden/bin/Debug/netcoreapp3.1/Hayden" "/home/USER/hayden_2020/hayden-config.json"</syntaxhighlight>


== Configuration ==
== Configuration ==

Revision as of 05:33, 15 August 2020

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.

  1. 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
    
  1. 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

Hayden works with MariaDB and I dont know if it works with others.
You could use any MariaDB installation if you wanted to, however that is left to advanced users who know how and is outside the scope of this guide.

Docker+Mariadb - Install Docker

https://docs.docker.com/engine/install/#server
https://docs.docker.com/engine/install/centos/

  1. Setup repository:
    $ sudo yum install -y yum-utils
    $ sudo yum-config-manager  --add-repo  https://download.docker.com/linux/centos/docker-ce.repo
    
  2. Install docker engine:
    $ sudo yum install docker-ce docker-ce-cli containerd.io
    
  3. Start docker service:
    $ sudo systemctl start docker
    
  4. Verify docker works
    $ sudo docker run hello-world
    


Docker+Mariadb - Install docker-compose

https://docs.docker.com/compose/

  1. Install docker-compose:
    $ sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    $ sudo chmod +x /usr/local/bin/docker-compose
    
  2. Symlink into $PATH:
    $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    
  3. Test installation:
    $ docker-compose --version
    

Docker+Mariadb - Setup Container

  • TODO

Docker+Mariadb - Setup DB

  • TODO

Docker+Mariadb - Usage

  • TODO

Download and Build

  1. Prepare location:
    $ mkdir -vp /home/USER/hayden_2020/
    $ cd /home/USER/hayden_2020/
    
  2. Clone (download) Hayden source code from Github:
    $ git clone https://github.com/bbepis/Hayden.git
    
  3. Build the Hayden solution file:
    $ dotnet build "/home/USER/hayden_2020/Hayden/Hayden.sln"
    
  4. 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.