Browse Source

mv code -> woozie ๐Ÿ”

windhamdavid 2 years ago
parent
commit
28a137b817
3 changed files with 477 additions and 69 deletions
  1. 383 29
      docs/computers/woozie.md
  2. 84 35
      docs/host/Gogs.md
  3. 10 5
      docs/host/Icecast.md

+ 383 - 29
docs/computers/woozie.md

@@ -1,11 +1,36 @@
 # Woozie ๐Ÿฆฎ
 
+## Notes
+
 **23.02.04** - Documentation for the server migration of [Woozer](woozer) to [Woozie](woozie). I'm running into the EOL ( End of Life ) for 18.04 LTS on April 2023, so I'm giving myself some buffer time to get her warmed up. I also needed a new development server to test Rust and WASM for my [human updates](https://davidawindham.com/human-updates-available/).
+
+
+
 ## Log
 
 **23.02.04** - Init
 
-## Info 
+### Todo
+
+- Monit actions work but redirect to root /url
+- email settings for code.daw
+
+### Migration
+
+Transfer IP address - [Docs](https://www.linode.com/docs/products/compute/compute-instances/guides/manage-ip-addresses/#transferring-ip-addresses)  
+SCP (secure copy)
+```bash 
+# add key on woozer
+ssh-keygen ssh-keygen -t ed25519 -f ~/.ssh/tempkey
+# on woozie 
+scp -P (port) -C -i ~/.ssh/tempkey -p -r user@ip.ip.ip.ip:/home/user/dir /home/user
+scp -P (port) -C -i ~/.ssh/tempkey -p user@ip.ip.ip.ip:/home/user/file /home/user/dir
+```
+
+
+## System
+
+### Info 
 173.230.130.234  
 http://173.230.130.234  
 https://dv.davidawindham.com  
@@ -19,7 +44,42 @@ AMD EPYC 7542 32-Core Processor
 * Woozie - Create Swap - Completed Sat, 04 Feb 2023 22:08:39 GMT
 * Woozie - System Boot - Ubuntu 22.04 LTS Disk - Completed Sat, 04 Feb 2023 22:08:40 GMT
 
-## Init
+```bash 
+*******@woozie:~ ยป lscpu
+Architecture:            x86_64
+  CPU op-mode(s):        32-bit, 64-bit
+  Address sizes:         48 bits physical, 48 bits virtual
+  Byte Order:            Little Endian
+CPU(s):                  4
+  On-line CPU(s) list:   0-3
+Vendor ID:               AuthenticAMD
+  Model name:            AMD EPYC 7542 32-Core Processor
+    CPU family:          23
+    Model:               49
+    Thread(s) per core:  1
+    Core(s) per socket:  4
+    Socket(s):           1
+    Stepping:            0
+    BogoMIPS:            5799.99
+    Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clf
+                         lush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm rep_
+                         good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse
+                         4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand
+                          hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefet
+                         ch osvw perfctr_core ssbd ibrs ibpb stibp vmmcall fsgsbase tsc_adjust bmi1 
+                         avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetb
+                         v1 xsaves clzero xsaveerptr wbnoinvd arat umip rdpid arch_capabilities
+Virtualization features: 
+  Hypervisor vendor:     KVM
+  Virtualization type:   full
+Caches (sum of all):     
+  L1d:                   256 KiB (4 instances)
+  L1i:                   256 KiB (4 instances)
+  L2:                    2 MiB (4 instances)
+  L3:                    64 MiB (4 instances)
+  ```
+
+### Init
 
 ```bash
 ssh root@173.230.130.234
@@ -104,7 +164,9 @@ Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-58-generic x86_64)
 
 ```
 
-## Packages
+### systemd
+
+### packages
 
 ```bash
 apt list --installed
@@ -120,7 +182,31 @@ apt-get โ€“-purge remove packagename
 
 ```
 
-## iptables 
+### Backup
+
+System keeps daily, a 2-7 day old, and 8-14 day old
+
+```bash
+# crontab
+sudo crontab -e
+11 1 * * 1 /usr/bin/certbot renew --quiet --noninteractive
+11 1 * * 0 /home/user/scripts/mysql-cron.sh
+30 8 * * * /home/user/scripts/monitor.sh
+
+# mysql-cron.sh
+#!/bin/sh
+#Backup 'gg' to /home/user/backups/
+mysqldump gg --user=******* --password='*******' > /home/david/backups/$(date +"%Y%m%d").gg.sql
+#Optimize tables in 'gg'
+mysqlcheck -o gg --user=******* --password='*******'
+
+```
+
+## Security 
+
+
+
+### IPtables 
 
 ```bash 
 #show iptables
@@ -209,11 +295,75 @@ Reboot to test iptables
 
 ```
 
-## Monitor
+### Monitor
 
-## Audit
+```bash
+# htop
+sudo snap install htop 
 
-## Apache
+# netstat
+sudo apt install netstat
+sudo netstat -ntlp | grep -i 3000
+```
+
+### Monit
+
+```bash
+sudo apt-get install monit
+sudo service monit stop/start/restart/reload/status all/check -t
+
+sudo vi /etc/monit/monitrc
+  set daemon 600            #10 min intervals
+    with start delay 240    #delay start 4min
+
+  set alert email@email.com
+  set mailserver smtp.gmail.com port 587
+    username "email@email.com" password "application_specific"
+    using tls
+  set httpd port #### and
+    use address localhost
+    allow localhost
+    allow user:pass
+
+# https://mmonit.com/wiki/Monit/ConfigurationExamples
+sudo vi /etc/monit/conf.d/apache2.conf {etc}
+  check process php-fpm with pidfile /run/php/php8.1-fpm.pid
+    start program = "/usr/sbin/service php8.1-fpm start" with timeout 60 seconds
+    stop program = "/usr/sbin/service php8.1-fpm stop"
+    if failed unixsocket /var/run/php/php8.1-fpm.sock then restart
+  check process mysql with pidfile /var/run/mysqld/mysqld.pid
+    start program = "/usr/sbin/service mysql start" with timeout 60 seconds
+    stop program = "/usr/sbin/service mysql stop"
+    if failed unixsocket /var/run/mysqld/mysqld.sock then restart
+  check process apache2 with pidfile /var/run/apache2/apache2.pid
+    start program = "/bin/systemctl start apache2" with timeout 60 seconds
+    start program = "/bin/systemctl stop apache2"
+    restart program = "/bin/systemctl restart apache2" with timeout 120 seconds
+    if children > 255 for 5 cycles then alert
+    if cpu usage > 95% for 5 cycles then alert
+    if failed port 80 protocol http then restart
+
+sudo monit reload
+
+sudo service monit status
+โ— monit.service - LSB: service and resource monitoring daemon
+     Loaded: loaded (/etc/init.d/monit; generated)
+     Active: active (running) since Thu 2023-02-09 09:17:09 EST; 15min ago
+       Docs: man:systemd-sysv-generator(8)
+    Process: 5629 ExecStart=/etc/init.d/monit start (code=exited, status=0/SUCCESS)
+      Tasks: 2 (limit: 9405)
+     Memory: 2.4M
+        CPU: 123ms
+     CGroup: /system.slice/monit.service
+             โ””โ”€5635 /usr/bin/monit -c /etc/monit/monitrc
+
+```
+
+### Audit
+
+## Webserver
+
+### Apache
 
 ```bash
 sudo apt install apache2
@@ -238,13 +388,16 @@ sudo vi /etc/apache2/mods-available/mpm_event.conf
   MaxConnectionsPerChild  100000
 </IfModule>
 
-
+# List modules 
 sudo apachectl -L
 sudo apachectl -M | grep mpm
+sudo apachectl -M | sort
 
+# configtest
 sudo apachectl -t
 sudo apachectl configtest
 
+# status
 sudo systemctl status apache2
 sudo systemctl stop apache2
 sudo systemctl start apache2
@@ -265,13 +418,17 @@ sudo systemctl status apache2
 
 Feb 05 10:06:50 woozie systemd[1]: Starting The Apache HTTP Server...
 Feb 05 10:06:50 woozie systemd[1]: Started The Apache HTTP Server.
-
 Apache/2.4.52 (Ubuntu) Server
 
-# Enable http2 headers expires
+# Disable default conf
+sudo a2dissite 000-default.conf
+sudo systemctl reload apache2
+
+# Enable http2,headers,expires,rewrite
 sudo a2enmod headers
 sudo a2enmod expires
 sudo a2enmod http2
+sudo a2enmod rewrite
 
 # Disable TLS 1.0 and 1.1 
 sudo a2enmod ssl
@@ -280,25 +437,68 @@ SSLProtocol -all +TLSv1.2
 SSLCipherSuite HIGH:!aNULL:!MD5:!3DES
 sudo systemctl restart apache2
 
-# List modules 
-sudo apachectl -M | sort
+## server-status
+sudo a2enmod status
+sudo vi /etc/apache2/mods-enabled
+<IfModule mod_status.c>
+  <Location /server-status>
+    SetHandler server-status
+    #Require local
+    #Require ip 127.0.0.1
+    #Require host dv.davidawindham.com
+    Order deny,allow
+    Deny from all
+    Allow from 127.0.0.1
+    Allow from dv.davidawindham.com
+  </Location>
+  <IfModule mod_proxy.c>
+    ProxyStatus on
+  </IfModule>
+</IfModule>
 
+## don't log longview/server-status/status
+sudo vi /etc/apache2/conf-available/other-vhosts-access-log.conf
+  CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined env=!dontlog
+  SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
+  SetEnvIf Remote_Addr "::1" dontlog
+sudo vi /etc/apache2/sites-available/dev.dw.conf
+  SetEnvIf Request_URI "^/server-status*$" dontlog
+  SetEnvIf Request_URI "^/monit/$" dontlog
+
+# /etc/logrotate.d/apache2 
+create 640 root adm  -> create 644 root adm
+rotate 14 -> rotate 10
+
+# truncate logs
+sudo truncate -s 0 /var/log/apache2/*.log
+sudo truncate -s 0 /var/www/dv.davidawindham.com/log/*.log
+sudo truncate -s 0 /var/www/cd.davidawindham.com/log/*.log
 ```
 
-## Nginx
+### Nginx
 
-## Certbot
+### Certbot
 
 ```bash
 sudo snap install core
 sudo snap refresh core
 sudo snap install --classic certbot
 sudo ln -s /snap/bin/certbot /usr/bin/certbot
+
+sudo certbot --apache -d domain.com -d www.domain.com
+sudo systemctl restart apache2
 ```
 
-## DEV
+### Dev
+
+#### home
 
 ```bash
+sudo mkdir -p /var/www/code.davidawindham.com/{html,log,backup}
+sudo chown david:www-data -R /var/www/code.davidawindham.com/
+sudo a2ensite code.davidawindham.com.conf
+sudo systemctl reload apache2
+
 sudo mkdir -p /var/www/dv.davidawindham.com/{html,log,backup}
 sudo chown david:www-data -R /var/www/dv.davidawindham.com/
 sudo chmod -R 755 /var/www/dv.davidawindham.com/html
@@ -322,33 +522,187 @@ sudo a2ensite dv.davidawindham.com.conf
     Require all granted
   </Directory>
 
-  <Location /server-status>
-    SetHandler server-status
-    Order allow,deny
-    Deny from all
+  ProxyPreservehost On
+  ProxyRequests Off
+  ProxyPass /monit/ http://127.0.0.1:2812/ connectiontimeout=300 timeout=3-- Keepalive=On
+  ProxyPassReverse /monit/ http://127.0.0.1:2812/
+  <Location /monit/>
+    Require ip 0.0.0.0
+    ProxyPassReverseCookiePath / /monit/
   </Location>
 
   LogLevel warn
+  SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
+  SetEnvIf Remote_Addr "::1" dontlog
+  SetEnvIf Request_URI "^/server-status*$" dontlog
+  SetEnvIf Request_URI "^/monit/$" dontlog
   ErrorLog /var/www/dv.davidawindham.com/log/error.log
-  CustomLog /var/www/dv.davidawindham.com/log/access.log combined
-  CustomLog /var/log/other_vhosts_access.log combined
+  CustomLog /var/www/dv.davidawindham.com/log/access.log combined env=!dontlog
+  CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined env=!dontlog
 </VirtualHost>
 
-
 sudo certbot --apache -d dv.davidawindham.com -d www.dv.davidawindham.com
 sudo systemctl restart apache2
 ```
 
-## MariaDB
+### Gogs
+see - [/docs/host/gogs](/docs/host/Gogs)
+```bash
+sudo cp /home/******/gogs/scripts/systemd/gogs.service /etc/systemd/system/
+sudo systemctl start gogs
+sudo systemctl status gogs
+โ— gogs.service - Gogs
+     Loaded: loaded (/etc/systemd/system/gogs.service; enabled; vendor preset: enabled)
+     Active: active (running) since Fri 2023-02-10 16:07:32 EST; 1min 36s ago
+   Main PID: 31027 (gogs)
+      Tasks: 7 (limit: 9405)
+     Memory: 39.7M
+        CPU: 381ms
+     CGroup: /system.slice/gogs.service
+             โ””โ”€31027 /home/******/gogs/gogs web
+
+Feb 10 16:07:32 woozie systemd[1]: Started Gogs.
+Feb 10 16:07:32 woozie gogs[31027]: 2023/02/10 16:07:32
+```
+
+## Databases
+
+### MariaDB
+
+```bash 
+sudo apt install mariadb-server
+sudo mysql_secure_installation
+  Change the root password? n
+  Remove anonymous users? y
+  Disallow root login remotely? y
+  Remove test database? y
+  Reload privilege tables now? y
+
+sudo systemctl status mariadb
+โ— mariadb.service - MariaDB 10.6.11 database server
+     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
+     Active: active (running) since Tue 2023-02-07 09:39:05 EST; 2min ago
+       Docs: man:mariadbd(8)
+             https://mariadb.com/kb/en/library/systemd/
+   Main PID: 19765 (mariadbd)
+     Status: "Taking your SQL requests now..."
+      Tasks: 8 (limit: 9406)
+     Memory: 61.0M
+        CPU: 690ms
+     CGroup: /system.slice/mariadb.service
+             โ””โ”€19765 /usr/sbin/mariadbd
+
+sudo mysqladmin -p -u root version
+mysqladmin  Ver 9.1 Distrib 10.6.11-MariaDB, for debian-linux-gnu on x86_64
+Server version		10.6.11-MariaDB-0ubuntu0.22.04.1
+Protocol version	10
+Connection		Localhost via UNIX socket
+UNIX socket		/run/mysqld/mysqld.sock
+Uptime:			5 min 38 sec
+
+#obsure root user
+sudo mariadb
+  mysql> rename user 'root'@'localhost' to '********'@'localhost';
+  mysql> ALTER USER '********'@'localhost' IDENTIFIED BY '********';
+  mysql> FLUSH PRIVILEGES;
+
+# create new user
+  mysql> create user '********'@'localhost' identified by '********';
+  mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
+  mysql> GRANT ALL PRIVILEGES ON *.* TO '********'@'localhost' WITH GRANT OPTION;
+  mysql> FLUSH PRIVILEGES;
+  mysql> exit
+
+# /etc/mysql/my.cnf
+[client]
+default-character-set=utf8mb4
+
+[mysql]
+default-character-set=utf8mb4
+
+[mysqld]
+character-set-client-handshake = FALSE
+collation-server = utf8mb4_unicode_ci
+init-connect = 'SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci'
+character-set-server = utf8mb4
+local-infile=0
+bind-address = 127.0.0.1
+
+# mysqltuner
+wget -O /usr/bin/mysqltuner https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
+
+# phpmyadmin 
+CREATE USER 'pma'@'localhost' IDENTIFIED VIA mysql_native_password USING '********';
+GRANT SELECT, INSERT, UPDATE, DELETE ON `database`.* TO 'pma'@'localhost';
+
+```
+
+### PostgreSQL
+
+### Redis
 
-## Redis
+## Languages
+
+### Go
+```bash
+sudo apt-get install golang-go
+export PATH=$PATH:/usr/local/go/bin
+go version
+go version go1.18.1 linux/amd64
+```
 
-## Python
+### Node
 
-## PHP
 
-## Node
 
-## GoLang
+### PHP
+
+```bash
+sudo apt install php libapache2-mod-php php-mysql
+php -v
+PHP 8.1.2-1ubuntu2.10 (cli) (built: Jan 16 2023 15:19:49) (NTS)
+Zend Engine v4.1.2, with Zend OPcache v8.1.2-1ubuntu2.10
+
+# php.ini
+sudo vi /etc/php/8.1/apache2/php.ini
+max_execution_time = 30
+max_input_time = 60
+memory_limit = 512M
+post_max_size = 50M
+upload_max_filesize = 50M
+realpath_cache_size = 256k
+realpath_cache_ttl = 3600
+error_log = /var/log/php/error.log
+
+sudo mkdir /var/log/php
+sudo chown www-data /var/log/php
+
+sudo systemctl restart apache2
+
+# additional pkgs ( some already installed by default )
+sudo apt install php-bcmath php-curl php-gd php-imagick php-intl php-json php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
+sudo apt install libpcre3 libpcre3-dev
+
+## enable php8.1-fpm
+sudo apt install php8.1-fpm
+sudo a2enmod proxy_fcgi setenvif
+sudo systemctl restart apache2
+sudo a2enconf php8.1-fpm
+
+sudo vi /etc/php/8.1/fmp/php.ini
+sudo systemctl reload php8.1-fpm
+sudo systemctl restart php8.1-fpm
+sudo systemctl status php8.1-fpm
+sudo systemctl restart apache2
+
+```
+### Python
+```bash 
+python3
+Python 3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0] on linux
+
+```
+
+### Ruby
 
-## Rust
+### Rust

+ 84 - 35
docs/host/Gogs.md

@@ -1,8 +1,88 @@
+# Gogs
 
-#### (Go Git server)
+Gogs ( [https://gogs.io/docs](https://gogs.io/docs) ) is a Golang powered git service which I've been using for about 10 years now. I still keep a GitHub profile and mirror or duplicate my repos there as well. It's nice to have a backup and to be able to spin up user account for collaboration.
 
-[https://gogs.io/docs](https://gogs.io/docs)
+Although it's been forked off as Gitea, I still prefer the original version because of the simplicity and I've watched the owner gracefully handle pull requests. I support the BDFL ( [Benevolent Dictator for Life](https://en.wikipedia.org/wiki/Benevolent_dictator_for_life) ) approach in open source software because I've found that it mostly helps the project.  
 
+## Notes
+
+**23.02.10** - upgrading to version 0.12.9 while migrating servers. Dropping supervisor in favor of systemd. 
+
+```bash 
+sudo systemctl start/restart/stop/status gogs
+Application version 0.12.9
+Git version 2.34.1
+Go version go1.18.1
+Build time 2022-06-07 05:03:46 UTC
+Build commit 012a1ba19ed2f8f5185be4254f655ba6c4b34db2 
+
+sudo systemctl status gogs
+โ— gogs.service - Gogs
+     Loaded: loaded (/etc/systemd/system/gogs.service; enabled; vendor preset: enabled)
+     Active: active (running) since Fri 2023-02-10 16:07:32 EST; 1min 36s ago
+   Main PID: 31027 (gogs)
+      Tasks: 7 (limit: 9405)
+     Memory: 39.7M
+        CPU: 381ms
+     CGroup: /system.slice/gogs.service
+             โ””โ”€31027 /home/******/gogs/gogs web
+```
+### Migration
+
+Moving from [Woozer](/docs/computers/woozer) -> to [Woozie](/docs/computers/woozie)
+
+```bash 
+#migrate files
+scp -P ***** -C -i ~/.ssh/tempkey -p -r ******@45.79.219.165:/home/david/gogs /home/******
+scp -P ***** -C -i ~/.ssh/tempkey -p -r ******@45.79.219.165:/home/david/gogs-repositories /home/******
+
+mv gogs gogs_old
+wget https://dl.gogs.io/$VERSION/gogs_${VERSION}_${OS}_${ARCH}.tar.gz
+tar -zxvf gogs_${VERSION}_${OS}_${ARCH}.tar.gz
+cp -R gogs_old/{custom,data,log} gogs
+rm -rf gogs/custom/templates
+
+sudo cp /home/******/gogs/scripts/systemd/gogs.service /etc/systemd/system/
+sudo vi /etc/systemd/system/gogs.service
+sudo systemctl daemon-reload
+sudo systemctl start gogs
+sudo truncate -s 0 log/gogs.log
+```
+
+I also found that the .tar and .zip file archives were taking up a considerable amount of space so I'll be removing them along with the option to download since it's rarely ever used except by bots. 
+
+-> Admin Panel -> Operations -> Delete all repositories archives  
+-> Admin Panel -> Operations -> Do garbage collection on repositories
+
+I had made a bunch of customizations on the previous install which I'll bring up to the newest version. Some of the variable names have changed between versions and the templates are now packaged inside of the make file. In order to update the variable names, I just compared the edited templates with the versions from https://github.com/gogs/gogs/tree/v0.12.9/templates/
+
+```bash
+cd gogs 
+cp -R gogs_old/custom/templates/ gogs/custom/templates/
+cp -R gogs_old/custom/templates/user gogs/custom/templates/user
+cp -R gogs_old/custom/public gogs/custom/
+sudo systemctl restart gogs
+
+# create directory for log/backup
+sudo mkdir -p /var/www/code.davidawindham.com/{log,backup}
+sudo chown david:www-data -R /var/www/code.davidawindham.com/
+sudo a2ensite code.davidawindham.com.conf
+sudo systemctl reload apache2
+
+# on woozer
+sudo certbot delete --cert-name code.davidawindham.com
+
+# change the domain -> dns edit
+sudo certbot --apache -d code.davidawindham.com -d www.code.davidawindham.com
+sudo vi gogs/custom/conf/app.ini
+
+# rm the old version
+sudo rm -rf gogs_old
+
+sudo systemctl restart gogs
+```
+
+### Original Install 
 ```bash
 sudo apt-get install golang-go
 
@@ -35,45 +115,17 @@ user = david
 
 sudo service supervisor restart
 
-//restart gogs 
+#restart gogs 
 sudo supervisorctl restart gogs
 
-
 sudo vi /etc/apache2/sites-available/code.davidawindham.com.conf
 
-//add
-<VirtualHost *:80>
-  ServerAdmin david@davidawindham.com
-  ServerName  www.code.davidawindham.com
-  ServerAlias code.davidawindham.com
-
- # DirectoryIndex index.html index.php
- # DocumentRoot /var/www/code.davidawindham.com/html
-
-
-  ProxyPreserveHost On
-  ProxyRequests Off
-  ProxyPass / http://127.0.0.1:3000/
-  ProxyPassReverse / http://127.0.0.1:3000/
-
-  LogLevel warn
-  ErrorLog  /var/www/code.davidawindham.com/log/error.log
-  CustomLog /var/www/code.davidawindham.com/log/access.log combined
-RewriteEngine on
-RewriteCond %{SERVER_NAME} =code.davidawindham.com [OR]
-RewriteCond %{SERVER_NAME} =www.code.davidawindham.com
-RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
-</VirtualHost>
-
 <IfModule mod_ssl.c>
 <VirtualHost *:443>
   ServerAdmin david@davidawindham.com
   ServerName  www.code.davidawindham.com
   ServerAlias code.davidawindham.com
 
- # DirectoryIndex index.html index.php
- # DocumentRoot /var/www/code.davidawindham.com/html
-
   ProxyPreserveHost On
   ProxyRequests Off
   ProxyPass / http://127.0.0.1:3000/
@@ -87,7 +139,4 @@ SSLCertificateKeyFile /etc/letsencrypt/live/code.davidawindham.com/privkey.pem
 Include /etc/letsencrypt/options-ssl-apache.conf
 </VirtualHost>
 </IfModule>
-
-
-
-```
+```

+ 10 - 5
docs/host/Icecast.md

@@ -4,16 +4,21 @@
 
 ---
 
-20/02/21 - The Icecast2 gpg package key expired last month and the one available at Xiph hadn't been updated. I used the one from OpenSuse and installed the new key via:
-```
-wget -qO - https://download.opensuse.org/repositories/multimedia:/xiph/xUbuntu_18.10/Release.key  | sudo apt-key add -
+**23.02.08** - Since I'm migrating this to a new server, I noticed that I had installed both 18.04 and 18.10 versions in /etc/apt/sources.list.d/icecast.list. I removed one version and updated the key with:  
+
+```bash
+wget -qO - http://icecast.org/multimedia-obs.key | sudo apt-key add -
 ```
 
-**11/08/18** - I'll need this for later. A server update to Icecast overwrote ( because I was in a rush and didn't pay attention for the first couple of inputs ) some of the xml files I was using to pull data into my broadcast page @ [radio.davidawindham.com](http://radio.davidawindham.com)
+**20/02/21** - The Icecast2 gpg package key expired last month and the one available at Xiph hadn't been updated. I used the one from OpenSuse and installed the new key via:  
 
+```bash
+wget -qO - https://download.opensuse.org/repositories/multimedia:/xiph/xUbuntu_18.04/Release.key  | sudo apt-key add -
+```
 
+**11/08/18** - I'll need this for later. A server update to Icecast overwrote ( because I was in a rush and didn't pay attention for the first couple of inputs ) some of the xml files I was using to pull data into my broadcast page @ [radio.davidawindham.com](http://radio.davidawindham.com)
 
-```javascript
+```bash
 
 Setting up icecast2 (2.4.4-1) ...