Server

From Hegemon Wiki
Jump to navigation Jump to search

Server Ports

Misc[edit | edit source]

New CHEAP 10GbE NICs and Switches 10Gbase-T for 2026 - RTL8127

TP-Link TL-SX105, TRENDnet TEG-S750 / TEG-S708 / TEG-S7102, NICGIGA Unmanaged 10 GbE Switches, QNAP and MikroTik models

Sonarr, Radarr, Lidarr, Readarr, Whisparr, Swappar)

Home Assistant[edit | edit source]

The server 'hextor' is running a docker container running home assistant. It is a self hosted install and does not use HACS.

Updating Home Assistant[edit | edit source]

Start by finding the current version of home assistant that is running from http://hegemon.crabdance.com:8123/config/info

1. Download the latest version of the home assistant container (If there is no new version then nothing else needs to be done).

docker pull homeassistant/home-assistant:stable


2. Obtain the home assistant container's current docker run command paramaters

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike -p home-assistant


3. Stop and remove the old container

docker stop home-assistant
docker rm home-assistant


4. Run the new version of home assistant using the run paramaters that where obtained in step 1, for example:

docker run --name=home-assistant \
        --hostname=hextor \
        --volume /mnt/storage5/data/home-automation/home-assistant:/config \
        --volume /etc/localtime:/etc/localtime:ro \
        --env=TZ=Australia/Melbourne \
        --network=host \
        --privileged \
        --workdir=/config \
        --restart=unless-stopped \
        --device /dev/ttyACM0:/dev/ttyACM0 \
        --log-driver=journald \
        --runtime=runc \
        homeassistant/home-assistant:stable
docker run -d --name=home-assistant --hostname=hextor --volume /mnt/storage5/data/home-automation/home-assistant:/config --volume /etc/localtime:/etc/localtime:ro --env=TZ=Australia/Melbourne --network=host --privileged --workdir=/config --restart=unless-stopped --device /dev/ttyACM0:/dev/ttyACM0 --log-driver=journald --runtime=runc homeassistant/home-assistant:stable

The home assistant install uses some custom components they are installed in "/mnt/storage5/data/home-automation/home-assistant/custom_components"


Download the latest releases from the github page.

https://github.com/basnijholt/adaptive-lighting/releases


Check the tarball structure befoure extracting.

Installing[edit | edit source]

Docker[edit | edit source]

n8n[edit | edit source]

Docker apparently won't populate the volume if it's a local bind giving a "Error: Command "start" not found"

For the first time I created the docker volume then manually copied out the contents. This should not be necessary anymore.

mkdir -p /mnt/storage5/data/docker/n8n

docker volume create n8n_data

docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

docker volume inspect n8n_data

sudo rsync -avP /var/lib/docker/volumes/n8n_data/_data/ /mnt/storage5/data/docker/n8n/

In order to allow connections from the network:

N8N_SECURE_COOKIE to false

N8N_BASIC_AUTH_ACTIVE=trueand then add the user and password you want for N8N_BASIC_AUTH_USER andN8N_BASIC_AUTH_PASSWORD

How to install n8n:[edit | edit source]
<docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  --network host \
  -v /mnt/storage5/data/docker/n8n:/home/node/.n8n \
  -e N8N_SECURE_COOKIE=false \
  -e N8N_BASIC_AUTH_ACTIVE=true \
  -e N8N_BASIC_AUTH_USER=hegemon \
  -e N8N_BASIC_AUTH_PASSWORD=nopassword \
  -e N8N_RUNNERS_ENABLED=true \
  n8nio/n8n:stable
Gogs[edit | edit source]
docker run --name=gogs \
        --hostname=a6085e10821c \
        --mac-address=02:42:ac:11:00:02 \
        --volume /backup \
        --volume /mnt/storage5/data/gogs:/data \
        --network=bridge \
        --workdir=/app/gogs \
        -p 10022:22 \
        -p 10080:3000 \
        --restart=always \
        --log-driver=journald \
        --runtime=runc \
        --detach=true \
        gogs/gogs:0.12 \
        /bin/s6-svscan /app/gogs/docker/s6/

Not sure what that executable is? The latest version of gog's 0.13 has an issue....

Orpington-news[edit | edit source]

I created a database

hegemon@hextor ~/s/r/server (master)> sudo -u postgres psql
psql (16.10 (Ubuntu 16.10-0ubuntu0.24.04.1))
Type "help" for help.
postgres=# CREATE DATABASE orpington;
CREATE DATABASE
postgres=# CREATE USER orpington WITH PASSWORD 'A4_PASSWORD';
CREATE ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE orpington TO orpington;
GRANT
postgres=#

The service is started with:

docker run -it --name orpington-news --restart=always \
-e APP_URL=http://hextor:3333  \
-e DB_USER=orpington \
-e DB_NAME=orpington \
-e DB_HOST=hextor  \
-e DB_PASS=alpha4  \
-e DISABLE_SECURE_COOKIE=true \
-p 3333:8000  \
-d ghcr.io/frysztak/orpington-news

tt-rss[edit | edit source]

comment out the extended_filtering line in /usr/share/tt-rss/www/classes/classes/urlhelper.php:99 to allow local ips and non-standard ports


Add the following to the function

     static function build_url($parts) {

       $tmp = $parts['scheme'] . "://" . $parts['host'];

 

       // Include port if it exists and is not standard

       if (isset($parts['port']) && !in_array($parts['port'], ['', 80, 443])) {

         $tmp .= ':' . $parts['port'];

       }

Hermes Agent Database[edit | edit source]

 hegemon@hextor ~> sudo -u postgres psql
 psql (16.13 (Ubuntu 16.13-0ubuntu0.24.04.1))
 Type "help" for help.
 postgres=# CREATE DATABASE hermes;
 CREATE DATABASE
 postgres=# CREATE USER hermes WITH PASSWORD 'hermes';
 CREATE ROLE
 postgres=# CREATE EXTENSION vector;
 CREATE EXTENSION
 postgres=# SELECT extname, extversion FROM pg_extension WHERE extname = 'vector';
  extname | extversion
 ---------+------------
  vector  | 0.6.0
 (1 row)
 postgres=# GRANT ALL PRIVILEGES ON DATABASE hermes TO hermes;
 GRANT
 postgres=#
hegemon@hextor ~ [2]> sudo -u postgres psql -d hermes
psql (16.13 (Ubuntu 16.13-0ubuntu0.24.04.1))
Type "help" for help.
hermes=# CREATE EXTENSION vector;
CREATE EXTENSION
hermes=# SELECT extname, extversion FROM pg_extension WHERE extname = 'vector';
 extname | extversion
---------+------------
 vector  | 0.6.0
(1 row)
hermes=#

Monitoring[edit | edit source]

Grafana

RSS Reader[edit | edit source]

https://github.com/awesome-selfhosted/awesome-selfhosted?tab=readme-ov-file#feed-readers

https://www.reddit.com/r/selfhosted/search?q=rss&restrict_sr=on&sort=relevance&t=all

Name Comment
Tiny Tiny RSS Apparently bad code and dev but seems to more fleshed out. 220 (It's on gitlab) No drag and drop. Some issues with things like updating feeds... No sort order. NO LIST VIEW! Articles open full size and have to be scrolled though
FreshRSS Doesn't support reordering (There is a issue request). Clunky UI. Supports extensions (Including a YouTube one). 12.3k No drag and drop. UI kind shit.
RSSMonster Looks nice and should have drag and drop reordering. Requires a MySQL database. 456 Drag and drop only reordered categories, not feed order. Massive pain to setup. Can't edit feeds after adding or even change category.
orpington-news Looks nice and should have drag and drop reordering. Requires a Postgresql database. 126 Hasn't been updated in the last 2 years :(
danb/rss Someone on reddit said it's not good at management but the UI is nice. WTF is codeberg
miniflux/v2 Reddit recommendation from 7 years ago still seems to be recommended today. See also ReactFlux 8k No drag and drop. UI kind shit. NextFlux frontend not much better.
CommaFeed Nice but no drag an drop, does have a fairly simple 'priority' though. 3.2k
newspipe Screenshot shows feeds not in alphabetical order.
glean New, need to checkout.
Name Comment
QuiteRSS Desktop App! Is there sync? Saw it recommended on a github issue.
fluent-reader Reddit was saying you can use the Google Reader API on FreshRSS with this desktop app.
RSS Bridge It generates web feeds for websites that don't have one.

Troubleshooting[edit | edit source]

IO Issues[edit | edit source]

   sudo perf record -g -a sleep 10


   ./tpoint -H block:block_rq_insert


Slow login issues[edit | edit source]

   execsnoop