NA
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Joakim Svensson 2024-01-02 21:39:44 +00:00
parent b892dd7b83
commit 73cdd424c5
7 changed files with 1 additions and 459 deletions

View File

@ -1,5 +1,5 @@
--- ---
title: Stationensinfo title: Stationsinfo
--- ---
- Mast - Mast

View File

@ -1,105 +0,0 @@
---
title: 10Gb uppgradering
---
Hur snabb är nasen om man kör lite dd direkt i plåten
```bash
dd if=/dev/zero of=speedtest_zero_100k bs=100k count=10000 conv=fdatasync
1024000000 bytes (1.0 GB) copied, 2.25785 s, 454 MB/s
dd if=speedtest_rand_100k of=speedtest_rand_to_copy_100k bs=100k count=10000 conv=fdatasync
1024000000 bytes (1.0 GB) copied, 4.6004 s, 223 MB/s
dd if=speedtest_rand_100k of=/dev/null bs=100k
1024000000 bytes (1.0 GB) copied, 1.50065 s, 682 MB/s
dd if=/dev/zero of=speedtest_zero_4M bs=4M count=250 conv=fdatasync
1048576000 bytes (1.0 GB) copied, 4.51282 s, 232 MB/s
dd if=speedtest_rand_4M of=speedtest_rand_to_copy_4M bs=4M count=250 conv=fdatasync
1048576000 bytes (1.0 GB) copied, 4.95129 s, 212 MB/s
dd if=speedtest_rand_4M of=/dev/null bs=4M
1048576000 bytes (1.0 GB) copied, 1.86645 s, 562 MB/s
```
## Före uppgradering
Inget dedikerat nätverk för storage. All kommunkation går över 1Gbit.
### ISCSI
```bash
dd if=/dev/zero of=/speedtest_zero_100k bs=100k count=10000 conv=fdatasync
1024000000 bytes (1.0 GB, 977 MiB) copied, 3.25017 s, 315 MB/s
dd if=/dev/random of=speedtest_rand_100k bs=100k count=10000 conv=fdatasync
1024000000 bytes (1.0 GB, 977 MiB) copied, 15.2797 s, 67.0 MB/s
dd if=speedtest_rand_100k of=speedtest_rand_to_copy_100k bs=100k count=10000 conv=fdatasync
1024000000 bytes (1.0 GB, 977 MiB) copied, 9.94453 s, 103 MB/s
dd if=speedtest_rand_100k of=/dev/null bs=100k
1024000000 bytes (1.0 GB, 977 MiB) copied, 0.247002 s, 4.1 GB/s
dd if=/dev/zero of=speedtest_zero_4M bs=4M count=250 conv=fdatasync
1048576000 bytes (1.0 GB, 1000 MiB) copied, 3.0012 s, 349 MB/s
dd if=/dev/random of=speedtest_rand_4M bs=4M count=250 conv=fdatasync
1048576000 bytes (1.0 GB, 1000 MiB) copied, 15.4937 s, 67.7 MB/s
dd if=speedtest_rand_4M of=speedtest_rand_to_copy_4M bs=4M count=250
1048576000 bytes (1.0 GB, 1000 MiB) copied, 10.1666 s, 103 MB/s
dd if=speedtest_rand_4M of=/dev/null bs=4M
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.263826 s, 4.0 GB/s
```
### NFS
```bash
dd if=/dev/zero of=/speedtest_zero_100k bs=100k count=10000 conv=fdatasync
1024000000 bytes (1.0 GB, 977 MiB) copied, 2.67222 s, 383 MB/s
dd if=/dev/random of=speedtest_rand_100k bs=100k count=10000 conv=fdatasync
1024000000 bytes (1.0 GB, 977 MiB) copied, 14.2113 s, 72.1 MB/s
dd if=speedtest_rand_100k of=speedtest_rand_to_copy_100k bs=100k count=10000 conv=fdatasync
1024000000 bytes (1.0 GB, 977 MiB) copied, 18.786 s, 54.5 MB/s
dd if=speedtest_rand_100k of=/dev/null bs=100k
1024000000 bytes (1.0 GB, 977 MiB) copied, 0.236514 s, 4.3 GB/s
dd if=/dev/zero of=speedtest_zero_4M bs=4M count=250 conv=fdatasync
1048576000 bytes (1.0 GB, 1000 MiB) copied, 10.0907 s, 104 MB/s
dd if=/dev/random of=speedtest_rand_4M bs=4M count=250 conv=fdatasync
1048576000 bytes (1.0 GB, 1000 MiB) copied, 15.9203 s, 65.9 MB/s
dd if=speedtest_rand_4M of=speedtest_rand_to_copy_4M bs=4M count=250 conv=fdatasync
1048576000 bytes (1.0 GB, 1000 MiB) copied, 10.2786 s, 102 MB/s
dd if=speedtest_rand_4M of=/dev/null bs=4M
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.239652 s, 4.4 GB/s
```
### En liten koll till
```bash
time md5sum speedtest_rand_4M
4a63d3cf77b7b3db43e5cb6560edb6ff speedtest_rand_4M
real 0m2.391s
user 0m2.118s
sys 0m0.260s
```
## Efter uppgradering
Dedikerat nätverk för storage. ISCSI och NFS över 10Gbit.
### ISCSI
```bash
```
### NFS
```bash
```
## Slutsats

Binary file not shown.

Before

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 793 KiB

View File

@ -1,49 +0,0 @@
---
title: Quake
---
![](assets/quake.png)
**Klicka på länken för att spela**
**[http://playquake.svenman.net](http://playquake.svenman.net)**
**Klicka på länk om du vill kolla pågående match**
**[http://playquake.svenman.net:26000](http://playquake.svenman.net:26000)**
**Skicka ````quake```` till 0760202998 så missar du aldrig en match**
Det kostar inget :)
---
***From the masterminds behind DOOM and Wolfenstein comes an FPS classic that will warp your world. Building on the successful elements that drew players to DOOM, Quake brings a more Gothic flavour to the FPS genre and, like its predecessor, has spawned copycats and sequels over the years.***
Källa: [https://www.gog.com/game/quake_the_offering](https://www.gog.com/game/quake_the_offering)
Här kan du spela shareware-versionen direkt i din webbläsare. När du startar så annsluts du automatiskt till en deathmatch men du kan också spela banorna från den första episoden ensam. Implementationen av denna snygga webgl version av Quake är gord av Triang3l och vill du veta mer om WebQuake hittar du det här: [https://github.com/Triang3l/WebQuake](https://github.com/Triang3l/WebQuake)
Tanken med quake.svenman.net är just deathmatch. När du startar så ansluter du direkt till vår server med ett slumpmässigt valt namn och slumpade färger. Sätt gärna ditt eget naman genom att i konsolen skriva ````name DITTNAMN````. Konsolen får du fram genom att trycka på Ö. Konsolen finns också på andra raden under options. Menyn får du fram genom att trycka på escape. Ett annat tipps är att zooma sidan lite, då blir det lättare att se informationen. 175% är lagom.
För att få veta när det är aktivitet på servern så kan du skicka ett sms med texten ````quake```` till 0760202998. Vill du avsluta den tjänsten är det bara att skicka ````quake stop````.
Aktuell server info hittar du här: [http://playquake.svenman.net:26000](http://playquake.svenman.net:26000)
## Nyheter
- **20220103**
SMS-tjänsten är cool men den skickar så mycket sms att man tröttnar. Med anledning av det har jag dragit ner lite på utskicken.
1. Minst en spelare måste vara inne i minst 61 sekunder innan meddelande skickas
2. Game over-meddelanden skickas inte längre ut
3. Vill man bara kolla om är någon aktivitet kan man kolla serverstatus via länken ovan
- **20220103**
Nu är servern uppe igen. Problemet som uppstått är att två spelare inte kan komma in med samma IP-adress. Så två spelare som delar internetanslutning kommer då att blockera varandra. Jag har försökt lösa detta genom att tilldela varje spelare en unik port och sen via något jag kallar för quake-relay ge varje spelare en unik IP-adress internt hos oss. Första försöket baserade jag på antalet spelare online. Första spelaren som anslöt fick första porten och nästa den andra osv. Men om den första lämnar så minskar antalet spelare så den tredje som försöker ansluta kommer då få den andra porten och ingenting fungerar.
Nu har vi andra försöket som jag hopps kommer att fungera. Den delar istället ut den lägsta lediga porten. Så om spelare ett lämnar så kommer den att ersättas först när nya spelare ansluter. När jag testar verkar det fungera men man vet inte för det är testat skarp med användare.
Game on!
- **20220102**
Problemet är tydligen inte löst. Principen funkar men jag måste fila lite till på lösningen.
- **20220101**
Problemt är löst! Quakeservern är uppe igen.
- **20220101**
Det går inte att ansluta flera spelare från samma ip-adress. Det går alltså inte att ansluta flera spelare från samma hushåll. Detta är givetvis ett problem som måste lösas! Arbete pågår.
## Länkar
- **Det blir roligare om man kan prata med varandra**
[https://svenman.net/mumble](mumble.md)
- **Konsolkommandon**
[https://www.eecis.udel.edu/~portnoi/quake/quakecom.html](https://www.eecis.udel.edu/~portnoi/quake/quakecom.html)

View File

@ -1,304 +0,0 @@
---
title: Authelia
---
Det mesta är hämtat från:
[https://thehomelab.wiki/books/dns-reverse-proxy/page/setup-authelia-to-work-with-nginx-proxy-manager](https://thehomelab.wiki/books/dns-reverse-proxy/page/setup-authelia-to-work-with-nginx-proxy-manager)
* **./config/configuration.yml**
```yaml
##############################################################################
# Authelia configuration #
##############################################################################
host: 0.0.0.0
port: 9091 # if you need this changed make sure it reflects also in the docker-compose.yml
log_level: debug
jwt_secret: bdbb82d7c204a795d962540f3d243483
default_redirection_url: https://authelia.svenman.net
totp:
issuer: svenman.net
period: 30
skew: 1
#duo_api: ## If you want push notifictions of login attempts you can pay for this feature
# hostname: api-123456789.example.com
# integration_key: ABCDEF
# secret_key: yet-another-long-string-of-characters-and-numbers-and-symbols
authentication_backend:
disable_reset_password: false
file:
path: /config/users_database.yml # Make sure this file exists
password:
algorithm: argon2id
iterations: 1
salt_length: 16
parallelism: 8
memory: 64
access_control:
default_policy: deny
rules:
# Rules applied to everyone
- domain: authelia.svenman.net
policy: bypass
- domain: svenman.net
resources: "^/zonezero/"
policy: one_factor
- domain: svenman.net
policy: bypass
- domain: heimdall.svenman.net
policy: one_factor
session:
name: authelia_session
# This secret can also be set using the env variables AUTHELIA_SESSION_SECRET_FILE
secret: ddd1df9b73343df7600faf9cd1dec30b
expiration: 3600 # 1 hour
inactivity: 7200 # 2 hours
domain: svenman.net # Needs to be your root domain
redis:
host: authelia_redis_1
port: 6379
# This secret can also be set using the env variables AUTHELIA_SESSION_REDIS_PASSWORD_FILE
# password: authelia
regulation:
max_retries: 5
find_time: 2m
ban_time: 10m
theme: dark # options: dark, light
storage:
local:
path: /config/db.sqlite3
notifier:
filesystem:
filename: /config/notification.txt
# smtp:
# username: <your-user@your-email-domain.org>
# password: <your-user-email-password-for-smtp>
# host: <your-email-host-url-or-ip>
# port: <your-email-port-for-smtp> # 25 non-ssl, 443 ssl, 587 tls
# sender: <sender@your-email-domain.org>
# subject: "[Authelia] {title}"
# disable_require_tls: false # set to true if your domain uses no tls or ssl only
# disable_html_emails: false # set to true if you don't want html in your emails
# tls:
# server_name: <your-email-host-url-or-ip>
# skip_verify: false
# minimum_version: TLS1.2
```
* **./comfig/users_database.yml**
```yaml
###############################################################
# Users Database #
###############################################################
# This file can be used if you do not have an LDAP set up.
# List of users
users:
joakim:
displayname: "Joakim Svensson"
password: "$argon2id$v=19$m=65536,t=1,p=8$aGtkQVhYVkJiVkUxVVFneg$OvKt030Ok+TkBlWon1MJqbjw6t9WRDWrFIE9A+ISXhM"
email: js@joakim.pw
groups:
- admins
- dev
friend:
displayname: "Hack me if you can"
password: "$argon2id$v=19$m=65536,t=1,p=8$bU5wOVJleEl0RUVTeVYrcQ$eB0cZ3roI+yMHx+m6JtHw4M1n4wShfhLg7fPb25wmbY"
email: js@joakim.pw
groups:
- admins
- dev
```
För att generera lösenorden kör:
```bash
docker run authelia/authelia:latest authelia hash-password 'testAuthelia'
```
* **docker-compose.yaml**
```yaml
version: '3.3'
services:
authelia:
# image: authelia/authelia
image: authelia/authelia:4.31
volumes:
- ./config:/config
ports:
- 9091:9091
restart: unless-stopped
healthcheck:
disable: true
environment:
- TZ=America/Stockholm
depends_on:
- redis
redis:
image: redis:alpine
volumes:
- ./redis:/data
expose:
- 6379
restart: unless-stopped
environment:
- TZ=America/Stockholm
```
/etc/nginx/sites-enabled/authelia.svenman.net
```json
server {
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
include snippets/wildcard.svenman.net.conf;
if ($http_x_forwarded_proto = "http") {
return 301 https://$server_name$request_uri;
}
server_name bazarr.svenman.net;
location / {
set $upstream_authelia http://192.168.6.31:9091;
proxy_pass $upstream_authelia;
client_body_buffer_size 128k;
#Timeout if the real server is dead
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
# Advanced Proxy Config
send_timeout 5m;
proxy_read_timeout 360;
proxy_send_timeout 360;
proxy_connect_timeout 360;
# Basic Proxy Config
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Uri $request_uri;
proxy_set_header X-Forwarded-Ssl on;
proxy_redirect http:// $scheme://;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;
proxy_buffers 64 256k;
# If behind reverse proxy, forwards the correct IP
set_real_ip_from 10.0.0.0/8;
set_real_ip_from 172.0.0.0/8;
set_real_ip_from 192.168.0.0/16;
set_real_ip_from fc00::/7;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
}
}
```
/etc/nginx/sites-enabled/svenman.net
```json
server {
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
include snippets/wildcard.svenman.net.conf;
if ($http_x_forwarded_proto = "http") {
return 301 https://$server_name$request_uri;
}
server_name svenman.net;
location /authelia {
internal;
set $upstream_authelia http://192.168.6.31:9091/api/verify; #ADD YOUR IP AND PORT OF AUTHELIA
proxy_pass_request_body off;
proxy_pass $upstream_authelia;
proxy_set_header Content-Length "";
# Timeout if the real server is dead
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
client_body_buffer_size 128k;
proxy_set_header Host $host;
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Uri $request_uri;
proxy_set_header X-Forwarded-Ssl on;
proxy_redirect http:// $scheme://;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;
proxy_buffers 4 32k;
send_timeout 5m;
proxy_read_timeout 240;
proxy_send_timeout 240;
proxy_connect_timeout 240;
}
location / {
set $upstream_svenman http://192.168.6.31:8041; #CHANGE NAME AND IP AND PORT
proxy_pass $upstream_svenman; #change name of the service
auth_request /authelia;
auth_request_set $target_url $scheme://$http_host$request_uri;
auth_request_set $user $upstream_http_remote_user;
auth_request_set $groups $upstream_http_remote_groups;
proxy_set_header Remote-User $user;
proxy_set_header Remote-Groups $groups;
error_page 401 =302 https://authelia.svenman.net/?rd=$target_url; #change YOURDOMAIN.COM to your domain
client_body_buffer_size 128k;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
send_timeout 5m;
proxy_read_timeout 360;
proxy_send_timeout 360;
proxy_connect_timeout 360;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Uri $request_uri;
proxy_set_header X-Forwarded-Ssl on;
proxy_redirect http:// $scheme://;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;
proxy_buffers 64 256k;
set_real_ip_from 192.168.1.0/16;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
}
}
```