<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.tinkernet.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tinker</id>
	<title>The TinkerNet Wiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tinkernet.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tinker"/>
	<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php/Special:Contributions/Tinker"/>
	<updated>2026-05-22T14:21:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=IoT_-_Acurite_Weather_Station&amp;diff=1913</id>
		<title>IoT - Acurite Weather Station</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=IoT_-_Acurite_Weather_Station&amp;diff=1913"/>
		<updated>2025-09-01T00:34:02Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Not an actual IoT device...&amp;amp;nbsp; But can be if you manage to connect the indoor display unit to a computer...&lt;br /&gt;
&lt;br /&gt;
Accurite has a bad habit of using multitudes of model numbers all at once.&lt;br /&gt;
&lt;br /&gt;
*Package &lt;br /&gt;
**01024?&lt;br /&gt;
**01036&lt;br /&gt;
**02064&lt;br /&gt;
**Whodafuk knows... ask him...&lt;br /&gt;
*Sensor &lt;br /&gt;
**06004&lt;br /&gt;
**[https://www.acurite.com/kbase/General/06004RM_Sensor.html KB]&lt;br /&gt;
*Display &lt;br /&gt;
**[https://www.acurite.com/add-on-display-with-pc-connect-for-5-in-1-sensor-data-1036rx.html 06006]&lt;br /&gt;
*Repeater &lt;br /&gt;
**&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
The manufacturers software &amp;amp; such suck.&lt;br /&gt;
&lt;br /&gt;
We use [[NerdWiki:WeeWX Weather Server|WeeWX]] here&lt;br /&gt;
&lt;br /&gt;
=====Links:=====&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=SBN_-_Building_Notes&amp;diff=1912</id>
		<title>SBN - Building Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=SBN_-_Building_Notes&amp;diff=1912"/>
		<updated>2025-09-01T00:33:43Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just to make sure you know the score...&lt;br /&gt;
&lt;br /&gt;
Pretty much ALL of the notes &amp;amp; instructions here assume you have SSH (or direct terminal) access to the servers in question.&lt;br /&gt;
&lt;br /&gt;
(Also, I am a strong believer in ESXi.  All of the servers I have created these instructions while building are running on VMs under ESXi)&lt;br /&gt;
&lt;br /&gt;
Also, I tend to use Linux Mint (latest version) since that's what I run on my desktops. But, these notes should apply to any Debian-based distro. (For example...  I'm experimenting with SparkyLinux ATM.)&lt;br /&gt;
&lt;br /&gt;
*[[SBN - Baseline Server Notes|Baseline Server Notes]]&lt;br /&gt;
*[[SBN - Web Server Notes|Web Server Notes]]&lt;br /&gt;
*[[SBN - Blog Server Notes|Blog Server Notes]]&lt;br /&gt;
*[[SBN - Wiki Server Notes|Wiki Server Notes]]&lt;br /&gt;
*[[SBN - Database Server Notes|Database Server Notes]]&lt;br /&gt;
*[[SBN - Automation Server Notes|Automation Server Notes]]&lt;br /&gt;
*[[NerdWiki:WeeWX Weather Server|Weather Server Notes]]&lt;br /&gt;
*[[SBN - Forum Server Notes|Forum Server Notes]]&lt;br /&gt;
*[[SBN - Proxy Server Notes|Proxy Server Notes]]&lt;br /&gt;
*[[SBN - Gateway Server Notes|Gateway Server Notes]]&lt;br /&gt;
*[[NerdWiki:Server Building#Download Servers|Download Server Notes]]&lt;br /&gt;
*[[SBN - Media Server Notes|Media Server Notes]]&lt;br /&gt;
*[[SBN - Storage Server Notes|Storage Server Notes]]&lt;br /&gt;
*[[SBN - FTP Server Notes|FTP Server Notes]]&lt;br /&gt;
*[[SBN - Repo Mirror Server Notes|Repo Mirror Server Notes]]&lt;br /&gt;
*[[SBN - PXE Server Notes|PXE Server Notes]]&lt;br /&gt;
*[[SBN - GIT Server Notes|GIT Server Notes]]&lt;br /&gt;
*[[SBN - Backup Server Notes|Backup Server Notes]]&lt;br /&gt;
*[[SBN - FOG Server Notes|FOG Server Notes]]&lt;br /&gt;
*[[SBN - IRC Server Notes|IRC Server Notes]]&lt;br /&gt;
*[[SBN - BBS Server Notes|BBS Server Notes]]&lt;br /&gt;
*[[SBN - Mail Server Notes|Mail Server Notes]]&lt;br /&gt;
*[[SBN - NextCloud Server Notes|NextCloud Server Notes]]&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=NUT_Learning_Notes&amp;diff=1894</id>
		<title>NUT Learning Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=NUT_Learning_Notes&amp;diff=1894"/>
		<updated>2025-08-31T06:50:36Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://networkupstools.org/ &amp;lt;big&amp;gt;'''NUT'''&amp;lt;/big&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
===ESXi===&lt;br /&gt;
&lt;br /&gt;
====Research====&lt;br /&gt;
&lt;br /&gt;
*[https://forum.openmediavault.org/index.php/Thread/8432-NUT-not-turning-server-off-if-UPS-reaches-low-battery-is-set-working-with-UPS-go/ NUT not turning server off if UPS reaches low battery is set (working with UPS goes on battery setup)]&lt;br /&gt;
*[https://www.ixsystems.com/community/threads/ups-shutdown-esxi-6-5.63211/ UPS shutdown ESXI 6.5]&lt;br /&gt;
*[https://superuser.com/questions/1084274/shutdown-esxi-server-over-ssh Shutdown Esxi server over ssh]&lt;br /&gt;
&lt;br /&gt;
====What's Where====&lt;br /&gt;
&amp;lt;code&amp;gt;ls /opt/nut/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''bin   etc   lib   sbin'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ls /opt/nut/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''notify.sh  smtpblast  [https://networkupstools.org/docs/man/upsc.html upsc]'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ls /opt/nut/etc/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''notify.conf           notify.conf.template  [https://networkupstools.org/docs/man/upsmon.conf.html upsmon.conf]           upsmon.conf.template'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/nut/lib/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''libupsclient.so        libupsclient.so.4      libupsclient.so.4.0.0'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ls /opt/nut/sbin/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''[https://networkupstools.org/docs/man/upsmon.html upsmon]'''&lt;br /&gt;
&lt;br /&gt;
====Example Commands====&lt;br /&gt;
Force Shut Down:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/opt/nut/sbin/upsmon -c fsd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
*[https://networkupstools.org/docs/FAQ.html#_why_don_8217_t_the_pathnames_in_your_documentation_match_the_package_i_installed Why don't the pathnames in your documentation match the package I installed?]&lt;br /&gt;
**chop off the &amp;lt;code&amp;gt;/usr/local/ups&amp;lt;/code&amp;gt; part &amp;amp; all is good.  (at least here...)&lt;br /&gt;
*[https://networkupstools.org/docs/FAQ.html#_why_do_the_client_programs_say_emphasis_driver_not_connected_emphasis_when_i_try_to_run_them Why do the client programs say Driver not connected when I try to run them?]&lt;br /&gt;
**oops... &amp;lt;code&amp;gt;sudo ''upsdrvctl start''&amp;lt;/code&amp;gt; ''hasn't happened...''&lt;br /&gt;
*[https://networkupstools.org/docs/FAQ.html#_what_8217_s_this_about_emphasis_data_stale_emphasis What's this about data stale?]&lt;br /&gt;
**Brute force solutions:&lt;br /&gt;
***Unplug &amp;amp; replug the USB cable...&lt;br /&gt;
***or restart the driver...&lt;br /&gt;
****&amp;lt;code&amp;gt;sudo upsdrvctl stop&amp;lt;/code&amp;gt;&lt;br /&gt;
****&amp;lt;code&amp;gt;sudo upsdrvctl start&amp;lt;/code&amp;gt;&lt;br /&gt;
****(dunno why there's no &amp;quot;restart&amp;quot; option...)&lt;br /&gt;
**hhhmmm...  Wonder if &amp;lt;code&amp;gt;/etc/init.d/nut-server force-reload&amp;lt;/code&amp;gt; would fix it...&lt;br /&gt;
***yup...&lt;br /&gt;
&lt;br /&gt;
= NUT on a Proxmox LXC =&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Linux_-_Remote_Desktop&amp;diff=1893</id>
		<title>Linux - Remote Desktop</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Linux_-_Remote_Desktop&amp;diff=1893"/>
		<updated>2025-04-23T03:37:52Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Remmina */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
===Remmina===&lt;br /&gt;
&lt;br /&gt;
[https://www.remmina.org/ Remmina]&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/FreeRDP/Remmina/wiki/Remmina-Usage-FAQ Remmina Usage FAQ]&lt;br /&gt;
*[https://github.com/FreeRDP/Remmina/wiki Remmina wiki]&lt;br /&gt;
*[https://github.com/FreeRDP/Remmina/wiki/Remmina-User's-guide Remmina User's guide]&lt;br /&gt;
*&amp;lt;s&amp;gt;MIGHT be&amp;lt;/s&amp;gt; IS better than ssvnc... &lt;br /&gt;
**Tho I do wish to hell it didn't keep stuffing new sessions onto the same window with whichever session got opened first...&lt;br /&gt;
**Well... Apparently, it groups the windows into tabs based on the &amp;quot;Group&amp;quot; field...&amp;amp;nbsp; Almost makes some kind of sense...&lt;br /&gt;
*Does seem capable of connecting to Windows machines through RDP&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
sudo apt-add-repository ppa:remmina-ppa-team/remmina-next&lt;br /&gt;
&amp;lt;/blockquote&amp;gt; &amp;lt;blockquote&amp;gt;&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&amp;lt;/blockquote&amp;gt; &amp;lt;blockquote&amp;gt;&lt;br /&gt;
sudo apt-get install remmina remmina-plugin-rdp&amp;amp;nbsp;remmina-plugin-vnc libfreerdp-plugins-standard&lt;br /&gt;
&amp;lt;/blockquote&amp;gt; &lt;br /&gt;
&lt;br /&gt;
*Saves remote connection information in '''~/.remmina''' &lt;br /&gt;
**or... maybe in '''~/.local/share/remmina'''&lt;br /&gt;
&lt;br /&gt;
===SSVNC===&lt;br /&gt;
&lt;br /&gt;
*Requires encryption to be turned off in Vino &lt;br /&gt;
**gsettings set org.gnome.Vino require-encryption false&lt;br /&gt;
*[https://automatthias.wordpress.com/2008/06/03/ctrl-key-not-working-in-vnc/ Ctrl key not working in VNC]&lt;br /&gt;
&lt;br /&gt;
===RDP===&lt;br /&gt;
&lt;br /&gt;
[https://www.google.ca/search?q=linux+rdp&amp;amp;gws_rd=cr,ssl&amp;amp;dcr=0&amp;amp;ei=kFvVWbDJFIbqjwSLmKyAAw Google Search]&lt;br /&gt;
&lt;br /&gt;
*[[Installing_&amp;amp;_Running_xrdp|Installing &amp;amp; Running xrdp]]&lt;br /&gt;
*[http://www.freerdp.com/ FreeRDP] &lt;br /&gt;
**[https://github.com/awakecoding/FreeRDP-Manuals/blob/master/Configuration/FreeRDP-Configuration-Manual.markdown FreeRDP-Configuration-Manual]&lt;br /&gt;
&lt;br /&gt;
===X11 Forwarding===&lt;br /&gt;
&lt;br /&gt;
*Research Required&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=SBN_-_FTP_Server_Notes&amp;diff=1892</id>
		<title>SBN - FTP Server Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=SBN_-_FTP_Server_Notes&amp;diff=1892"/>
		<updated>2025-01-30T18:57:57Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See the [https://wiki.nerdmage.ca/index.php/FTP_Serving article on NerdMage]&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=SBN_-_FTP_Server_Notes&amp;diff=1891</id>
		<title>SBN - FTP Server Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=SBN_-_FTP_Server_Notes&amp;diff=1891"/>
		<updated>2025-01-30T18:57:15Z</updated>

		<summary type="html">&lt;p&gt;Tinker: Replaced content with &amp;quot;See the article on NerdMage&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See the article on NerdMage&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=ESP-M3&amp;diff=1890</id>
		<title>ESP-M3</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=ESP-M3&amp;diff=1890"/>
		<updated>2024-01-16T23:52:53Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NOTICE!!!:''' In the SZDoIT documentation for this module (What you see below as the pinout &amp;amp; user manual...) pin 3 of the module is shown as GPIO13.  This is '''NOT''' correct.  After it was brought to my attention recently (Thanks Ronald), I've done some digging &amp;amp; testing.  Even my oldest M3 modules, purchased directly from SZDoIT, have GPIO12 broken out on pin3. I would strongly suggest checking it with a test script on any modules you buy.  Fortunately, this is something that can generally be fixed in your firmware.&lt;br /&gt;
&lt;br /&gt;
[[File:ESP-M3 pinout.jpeg|left|thumb]]&lt;br /&gt;
[[File:DOIT ESP-M3(V1 0) User Manual.pdf|none|thumb]]&lt;br /&gt;
Made by [http://en.doit.am/ Shenzhen DOIT]&lt;br /&gt;
&lt;br /&gt;
([https://github.com/SmartArduino/SZDOITWiKi/wiki Their WIKI])&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
There is some confusion, ATM, about pin 3 of this module.  All of the documentation from Shenzen DoIT shows this pin as GPIO13 of the ESP chip.  Some actual modules have it listed on the silkscreen as GPIO12.&lt;br /&gt;
&lt;br /&gt;
Further testing and research will be needed to prove which it actually is.&lt;br /&gt;
&lt;br /&gt;
(hhhmmm... this actually explains the error in my ESP-M3 Everything! board.  testing may be quicker than expected.)&lt;br /&gt;
&lt;br /&gt;
== Usage in local projects ==&lt;br /&gt;
&lt;br /&gt;
[[IoT - ESP-M3 Everything!|ESP-M3 Everything!]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=ESP-M3&amp;diff=1889</id>
		<title>ESP-M3</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=ESP-M3&amp;diff=1889"/>
		<updated>2024-01-16T23:49:47Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NOTICE!!!:''' In the SZDoIT documentation for this module (What you see below as the pinout &amp;amp; user manual...) pin 3 of the module is shown as GPIO13.  This is '''NOT''' correct.  After it was brought to my attention recently (Thanks Ronald), I've done some digging &amp;amp; testing.  Even my oldest M3 modules, purchased directly from SZDoIT, have GPIO12 broken out on pin3.&lt;br /&gt;
&lt;br /&gt;
[[File:ESP-M3 pinout.jpeg|left|thumb]]&lt;br /&gt;
[[File:DOIT ESP-M3(V1 0) User Manual.pdf|none|thumb]]&lt;br /&gt;
Made by [http://en.doit.am/ Shenzhen DOIT]&lt;br /&gt;
&lt;br /&gt;
([https://github.com/SmartArduino/SZDOITWiKi/wiki Their WIKI])&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
There is some confusion, ATM, about pin 3 of this module.  All of the documentation from Shenzen DoIT shows this pin as GPIO13 of the ESP chip.  Some actual modules have it listed on the silkscreen as GPIO12.&lt;br /&gt;
&lt;br /&gt;
Further testing and research will be needed to prove which it actually is.&lt;br /&gt;
&lt;br /&gt;
(hhhmmm... this actually explains the error in my ESP-M3 Everything! board.  testing may be quicker than expected.)&lt;br /&gt;
&lt;br /&gt;
== Usage in local projects ==&lt;br /&gt;
&lt;br /&gt;
[[IoT - ESP-M3 Everything!|ESP-M3 Everything!]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=ESP-M3&amp;diff=1888</id>
		<title>ESP-M3</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=ESP-M3&amp;diff=1888"/>
		<updated>2024-01-14T18:05:56Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:ESP-M3 pinout.jpeg|left|thumb]]&lt;br /&gt;
[[File:DOIT ESP-M3(V1 0) User Manual.pdf|none|thumb]]&lt;br /&gt;
Made by [http://en.doit.am/ Shenzhen DOIT]&lt;br /&gt;
&lt;br /&gt;
([https://github.com/SmartArduino/SZDOITWiKi/wiki Their WIKI])&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
There is some confusion, ATM, about pin 3 of this module.  All of the documentation from Shenzen DoIT shows this pin as GPIO13 of the ESP chip.  Some actual modules have it listed on the silkscreen as GPIO12.&lt;br /&gt;
&lt;br /&gt;
Further testing and research will be needed to prove which it actually is.&lt;br /&gt;
&lt;br /&gt;
(hhhmmm... this actually explains the error in my ESP-M3 Everything! board.  testing may be quicker than expected.)&lt;br /&gt;
&lt;br /&gt;
== Usage in local projects ==&lt;br /&gt;
&lt;br /&gt;
[[IoT - ESP-M3 Everything!|ESP-M3 Everything!]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=BlogServer_-_WordPress_Installation&amp;diff=1887</id>
		<title>BlogServer - WordPress Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=BlogServer_-_WordPress_Installation&amp;diff=1887"/>
		<updated>2023-11-23T05:21:31Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Thing you might trip over */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Proven on Mint 19.3 ... (Seems to get MySQL 5.7)&lt;br /&gt;
*Proven on Mint 20 ... (Gets MySQL 8.0)&lt;br /&gt;
*Proven on SparkyLinux 5.11 ... (You'll have to [https://tecadmin.net/install-mysql-server-on-debian9-stretch/ fix the missing MySQL] thing &amp;amp; install vim first)&lt;br /&gt;
**[[Getting MySQL onto SparkyLinux]]&lt;br /&gt;
*Proven on LMDE 4 ... (You'll have to [https://linuxize.com/post/how-to-install-mysql-on-debian-10/ fix the missing MySQL] thing &amp;amp; install vim first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#c0392b&amp;quot;&amp;gt;'''NOTE:'''  These instructions, as they stand, set up WordPress as just a part of your existing web site.  (eg.: www.foo.bar/WP)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install the LAMP Stack==&lt;br /&gt;
&lt;br /&gt;
[[WebServer - Basic LAMP Stack Install|Basic LAMP Stack Install]]&lt;br /&gt;
&lt;br /&gt;
==Install WordPress==&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;wget -c &amp;lt;nowiki&amp;gt;http://wordpress.org/latest.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;tar -xzvf latest.tar.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo rsync -av wordpress/* /var/www/html/WP/&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo chown -R www-data:www-data /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo chmod -R 755 /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo mysql -u root -p&amp;lt;/code&amp;gt; &lt;br /&gt;
**To wipe the database if needed...&lt;br /&gt;
**&amp;lt;code&amp;gt;DROP DATABASE wp_Someblog;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE wp_Someblog;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wp_Someblog.* TO 'somebody'@'localhost';&lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 EXIT;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo mv /var/www/html/WP/wp-config-sample.php /var/www/html/WP/wp-config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo vim /var/www/html/WP/wp-config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 // ** MySQL settings - You can get this info from your web host ** //&lt;br /&gt;
 /** The name of the database for WordPress */&lt;br /&gt;
 define('DB_NAME', 'wp_Someblog');&lt;br /&gt;
 /** MySQL database username */&lt;br /&gt;
 define('DB_USER', 'somebody');&lt;br /&gt;
 /** MySQL database password */&lt;br /&gt;
 define('DB_PASSWORD', 'somebody');&lt;br /&gt;
 /** MySQL hostname */&lt;br /&gt;
 define('DB_HOST', 'localhost');&lt;br /&gt;
 /** Database Charset to use in creating database tables. */&lt;br /&gt;
 define('DB_CHARSET', 'utf8');&lt;br /&gt;
 /** The Database Collate type. Don't change this if in doubt. */&lt;br /&gt;
 define('DB_COLLATE', &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl restart mysql.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extra Notes ==&lt;br /&gt;
=== Thing you might trip over ===&lt;br /&gt;
Some plugins require mod_rewrite &amp;amp; won't work without AllowOverride being enabled in apache2.conf.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo vi /etc/apache2/apache2.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Scroll down &amp;amp; find the '''&amp;lt;Directory /var/www/&amp;gt;''' block.&lt;br /&gt;
&lt;br /&gt;
Change '''AllowOverride None''' to '''AllowOverride All'''&lt;br /&gt;
&lt;br /&gt;
Save the file &amp;amp; restart Apache.&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=BlogServer_-_WordPress_Installation&amp;diff=1886</id>
		<title>BlogServer - WordPress Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=BlogServer_-_WordPress_Installation&amp;diff=1886"/>
		<updated>2023-11-23T05:17:30Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Proven on Mint 19.3 ... (Seems to get MySQL 5.7)&lt;br /&gt;
*Proven on Mint 20 ... (Gets MySQL 8.0)&lt;br /&gt;
*Proven on SparkyLinux 5.11 ... (You'll have to [https://tecadmin.net/install-mysql-server-on-debian9-stretch/ fix the missing MySQL] thing &amp;amp; install vim first)&lt;br /&gt;
**[[Getting MySQL onto SparkyLinux]]&lt;br /&gt;
*Proven on LMDE 4 ... (You'll have to [https://linuxize.com/post/how-to-install-mysql-on-debian-10/ fix the missing MySQL] thing &amp;amp; install vim first)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#c0392b&amp;quot;&amp;gt;'''NOTE:'''  These instructions, as they stand, set up WordPress as just a part of your existing web site.  (eg.: www.foo.bar/WP)&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Install the LAMP Stack==&lt;br /&gt;
&lt;br /&gt;
[[WebServer - Basic LAMP Stack Install|Basic LAMP Stack Install]]&lt;br /&gt;
&lt;br /&gt;
==Install WordPress==&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;wget -c &amp;lt;nowiki&amp;gt;http://wordpress.org/latest.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;tar -xzvf latest.tar.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo rsync -av wordpress/* /var/www/html/WP/&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo chown -R www-data:www-data /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo chmod -R 755 /var/www/html/&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo mysql -u root -p&amp;lt;/code&amp;gt; &lt;br /&gt;
**To wipe the database if needed...&lt;br /&gt;
**&amp;lt;code&amp;gt;DROP DATABASE wp_Someblog;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 CREATE DATABASE wp_Someblog;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wp_Someblog.* TO 'somebody'@'localhost';&lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 EXIT;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo mv /var/www/html/WP/wp-config-sample.php /var/www/html/WP/wp-config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo vim /var/www/html/WP/wp-config.php&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 // ** MySQL settings - You can get this info from your web host ** //&lt;br /&gt;
 /** The name of the database for WordPress */&lt;br /&gt;
 define('DB_NAME', 'wp_Someblog');&lt;br /&gt;
 /** MySQL database username */&lt;br /&gt;
 define('DB_USER', 'somebody');&lt;br /&gt;
 /** MySQL database password */&lt;br /&gt;
 define('DB_PASSWORD', 'somebody');&lt;br /&gt;
 /** MySQL hostname */&lt;br /&gt;
 define('DB_HOST', 'localhost');&lt;br /&gt;
 /** Database Charset to use in creating database tables. */&lt;br /&gt;
 define('DB_CHARSET', 'utf8');&lt;br /&gt;
 /** The Database Collate type. Don't change this if in doubt. */&lt;br /&gt;
 define('DB_COLLATE', &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl restart apache2.service&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl restart mysql.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extra Notes ==&lt;br /&gt;
=== Thing you might trip over ===&lt;br /&gt;
Some plugins require mod_rewrite &amp;amp; won't work without AllowOverride being enabled in apache2.conf.&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Linux_-_How_to_use_vi_(or_vim)&amp;diff=1885</id>
		<title>Linux - How to use vi (or vim)</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Linux_-_How_to_use_vi_(or_vim)&amp;diff=1885"/>
		<updated>2023-08-23T05:46:55Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;background-color: rgb(153, 204, 0); color: rgb(0, 0, 255);&amp;quot; data-mce-style=&amp;quot;background-color: #99cc00; color: #0000ff;&amp;quot;&amp;gt;'''&amp;lt;big&amp;gt;Now on Wiki.NerdMage.Ca&amp;lt;/big&amp;gt;'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://www.cs.colostate.edu/helpdocs/vi.html Basic vi Commands] (CSU)&lt;br /&gt;
*[https://www.ccsf.edu/Pub/Fac/vi.html UNIX:  vi Editor] (City College of SF)&lt;br /&gt;
*VI Text Editor with Commands: Linux/Unix Tutorial (Guru99)&lt;br /&gt;
** Link removed because Guru99 apparently no longer wants traffic&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=ESXi_-_ghettoVCB&amp;diff=1884</id>
		<title>ESXi - ghettoVCB</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=ESXi_-_ghettoVCB&amp;diff=1884"/>
		<updated>2023-08-23T05:46:10Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Using vi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/lamw/ghettoVCB ghettoVCB on GitHub]&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
===Install ghettoVCB===&lt;br /&gt;
&lt;br /&gt;
#[http://www.virtubytes.com/2017/04/21/enable-ssh-vmware-esxi-6-5/ SSH (as root) into the machine]&lt;br /&gt;
#Create a Utilities folder on an existing datastore&lt;br /&gt;
#*&amp;lt;code&amp;gt;mkdir &amp;quot;/vmfs/volumes/Admin/Utilities/&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#*(This exact location is specific to my testbed server...)&lt;br /&gt;
#*'''Remember this location...'''  It'll be very useful...&lt;br /&gt;
#switch to this folder&lt;br /&gt;
#*&amp;lt;code&amp;gt;cd &amp;quot;/vmfs/volumes/Admin/Utilities/&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#download ghettoVCB&lt;br /&gt;
#*&amp;lt;s&amp;gt;wget &amp;lt;nowiki&amp;gt;https://github.com/lamw/ghettoVCB/archive/master.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/s&amp;gt;&lt;br /&gt;
#**(wget doesn't seem to like https...)&lt;br /&gt;
#*''&amp;lt;small&amp;gt;&amp;lt;sub&amp;gt;wget &amp;lt;nowiki&amp;gt;http://web.tinkernow.net/otherfiles/ghettoVCB.zip&amp;lt;/nowiki&amp;gt;&amp;lt;/sub&amp;gt;&amp;lt;/small&amp;gt;''&lt;br /&gt;
#**''&amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;(inside my local network...)&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt;''&lt;br /&gt;
#*wget &amp;lt;nowiki&amp;gt;http://tinker.farted.net/otherfiles/ghettoVCB.zip&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#**(a copy accessible to wget without https)&lt;br /&gt;
#Unpack &amp;amp; rename ghettoVCB&lt;br /&gt;
#*&amp;lt;code&amp;gt;unzip ghettoVCB.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
#*&amp;lt;code&amp;gt;mv ghettoVCB-master ghettoVCB&amp;lt;/code&amp;gt;&lt;br /&gt;
#switch to the new folder &lt;br /&gt;
#*&amp;lt;code&amp;gt;cd ghettoVCB&amp;lt;/code&amp;gt;&lt;br /&gt;
#Install it!&lt;br /&gt;
#*&amp;lt;code&amp;gt;esxcli software vib install -v &amp;quot;/vmfs/volumes/Admin/Utilities/ghettoVCB/vghetto-ghettoVCB.vib&amp;quot; -f&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;Have ya noticed the usefulness of remembering &amp;quot;/vmfs/volumes/Alpha/Utility_Room/&amp;quot; yet?&amp;lt;br /&amp;gt;&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Create a Backup folder on the datastore===&lt;br /&gt;
&lt;br /&gt;
'''Not needed if your datastores are set up in the &amp;quot;standard&amp;quot; way...'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;&amp;lt;code&amp;gt;mkdir &amp;quot;/vmfs/volumes/Backups&amp;quot;&amp;lt;/code&amp;gt;&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ghettoVCB will create subfolders for each VM you backup inside this folder.&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vi ghettoVCB.conf&amp;lt;/code&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
VM_BACKUP_VOLUME=&amp;quot;/vmfs/volumes/Beta/BACKUPS&amp;quot;&lt;br /&gt;
DISK_BACKUP_FORMAT=thin&lt;br /&gt;
VM_BACKUP_ROTATION_COUNT=3&lt;br /&gt;
POWER_VM_DOWN_BEFORE_BACKUP=0&lt;br /&gt;
ENABLE_HARD_POWER_OFF=0&lt;br /&gt;
ITER_TO_WAIT_SHUTDOWN=3&lt;br /&gt;
POWER_DOWN_TIMEOUT=5&lt;br /&gt;
ENABLE_COMPRESSION=0&lt;br /&gt;
VM_SNAPSHOT_MEMORY=0&lt;br /&gt;
VM_SNAPSHOT_QUIESCE=0&lt;br /&gt;
ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP=0&lt;br /&gt;
ENABLE_NON_PERSISTENT_NFS=0&lt;br /&gt;
UNMOUNT_NFS=0&lt;br /&gt;
NFS_SERVER=&lt;br /&gt;
NFS_VERSION=&lt;br /&gt;
NFS_MOUNT=&lt;br /&gt;
NFS_LOCAL_NAME=&lt;br /&gt;
NFS_VM_BACKUP_DIR=&lt;br /&gt;
SNAPSHOT_TIMEOUT=15&lt;br /&gt;
EMAIL_ALERT=0&lt;br /&gt;
EMAIL_LOG=0&lt;br /&gt;
EMAIL_SERVER=&lt;br /&gt;
EMAIL_SERVER_PORT=25&lt;br /&gt;
EMAIL_DELAY_INTERVAL=1&lt;br /&gt;
EMAIL_USER_NAME=&lt;br /&gt;
EMAIL_USER_PASSWORD=&lt;br /&gt;
EMAIL_TO=&lt;br /&gt;
EMAIL_ERRORS_TO=&lt;br /&gt;
EMAIL_FROM=&lt;br /&gt;
WORKDIR_DEBUG=0&lt;br /&gt;
VM_SHUTDOWN_ORDER=&lt;br /&gt;
VM_STARTUP_ORDER=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;(just an example...)&lt;br /&gt;
&lt;br /&gt;
You may note that there are A LOT of things you can configure here.&lt;br /&gt;
&lt;br /&gt;
The important one here is the first line where it points to your backup folder.&lt;br /&gt;
&lt;br /&gt;
Sadly, vi seems to be the only editor available under ESXi.  Somebody remind my to write up a tutorial for using it... For now, look [[ESXi - ghettoVCB#Using vi|here]].&lt;br /&gt;
&lt;br /&gt;
==Testing==&lt;br /&gt;
&lt;br /&gt;
I'm using a VM called &amp;quot;Manager&amp;quot; as my test...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./ghettoVCB.sh -g ./ghettoVCB.conf -m &amp;quot;Manager&amp;quot; -d dryrun&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you see &amp;quot;'''info: ###### Final status: OK, only a dryrun. ######'''&amp;quot;, it's OK.&lt;br /&gt;
&lt;br /&gt;
Now you can do a real backup...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./ghettoVCB.sh -g ./ghettoVCB.conf -m &amp;quot;Manager&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you see: &amp;quot;'''info: ###### Final status: All VMs backed up OK! ######'''&amp;quot;, congratulations, you have a manual backup.&lt;br /&gt;
&lt;br /&gt;
===Restoring a VM===&lt;br /&gt;
&lt;br /&gt;
Edit the input file for &amp;lt;code&amp;gt;ghettoVCB-restore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vi vms_to_restore&amp;lt;/code&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;batch&amp;quot;&amp;gt;&lt;br /&gt;
#&amp;quot;&amp;lt;DIRECTORY or .TGZ&amp;gt;;&amp;lt;DATASTORE_TO_RESTORE_TO&amp;gt;;&amp;lt;DISK_FORMAT_TO_RESTORE&amp;gt;;&amp;lt;OPTIONAL_RESTORED_VM_DISPLAY_NAME&amp;gt;&amp;quot;&lt;br /&gt;
# DISK_FORMATS&lt;br /&gt;
# 1 = zeroedthick&lt;br /&gt;
# 2 = 2gbsparse&lt;br /&gt;
# 3 = thin&lt;br /&gt;
# 4 = eagerzeroedthick&lt;br /&gt;
### To restore the VM back to its original name (DELETE the original first!):&lt;br /&gt;
#/vmfs/volumes/Beta/BACKUPS/Manager/Manager-2019-09-08_21-01-00;/vmfs/volumes/Alpha;1&lt;br /&gt;
### To duplicate the VM under a new name:&lt;br /&gt;
/vmfs/volumes/Beta/BACKUPS/Manager/Manager-2019-09-08_21-01-00;/vmfs/volumes/Alpha;1;FooBar&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;(just an example...&lt;br /&gt;
&lt;br /&gt;
I'm restoring a backup of &amp;quot;Manager&amp;quot;, but renaming it to &amp;quot;FooBar&amp;quot; in the process.  This is a potential way to rapidly duplicate preconfigured VMs.)&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;&amp;lt;code&amp;gt;/vmfs/volumes/Beta/BACKUPS/Manager/Manager-2019-09-08_21-01-00&amp;lt;/code&amp;gt;&amp;quot; part of the non-commented line is the name of the actual backup being restored.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;&amp;lt;code&amp;gt;/vmfs/volumes/Alpha&amp;lt;/code&amp;gt;&amp;quot; part is the folder containing the original VM. (or, at least, the folder you want to restore to...)&lt;br /&gt;
&lt;br /&gt;
If you are restoring to the original VM, delete the original VM first:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;s&amp;gt;rm -R /vmfs/volumes/Alpha/Manager&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(do it in the GUI...)&lt;br /&gt;
&lt;br /&gt;
Restore the VM:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./ghettoVCB-restore.sh -c vms_to_restore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Customization==&lt;br /&gt;
&lt;br /&gt;
===Set up a cron job===&lt;br /&gt;
I'll have to properly detail this yet...&lt;br /&gt;
&lt;br /&gt;
Meanwhile:  [[ESXi - Add cron Job|Add cron Job to VMware ESX/ESXi]]&lt;br /&gt;
&lt;br /&gt;
Here's an ugly example based on how I got it working here...&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;/bin/kill $(cat /var/run/crond.pid)&amp;lt;/code&amp;gt;&lt;br /&gt;
**This stops cron&lt;br /&gt;
*&amp;lt;code&amp;gt;vi /var/spool/cron/crontabs/root&amp;lt;/code&amp;gt;&lt;br /&gt;
**Add the following at the bottom:&lt;br /&gt;
**&amp;lt;code&amp;gt;1    2    *   *   *   &amp;quot;/vmfs/volumes/Admin/Utilities/ghettoVCB/ghettoVCB.sh&amp;quot; -m &amp;quot;Manager&amp;quot; -g &amp;quot;/vmfs/volumes/Admin/Utilities/ghettoVCB/ghettoVCB.conf&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;/usr/lib/vmware/busybox/bin/busybox crond&amp;lt;/code&amp;gt;&lt;br /&gt;
**This starts cron back up&lt;br /&gt;
*&amp;lt;code&amp;gt;vi /etc/rc.local.d/local.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
**The following lines added '''BEFORE''' the &amp;lt;code&amp;gt;exit 0&amp;lt;/code&amp;gt; line tell ESXi to do the modification to &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; at boot time:&lt;br /&gt;
**&amp;lt;code&amp;gt;/bin/kill $(cat /var/run/crond.pid)&amp;lt;/code&amp;gt;&lt;br /&gt;
**&amp;lt;code&amp;gt;/bin/echo '1    2    *   *   *   &amp;quot;/vmfs/volumes/Admin/Utilities/ghettoVCB/ghettoVCB.sh&amp;quot; -g &amp;quot;/vmfs/volumes/Admin/Utilities/ghettoVCB/ghettoVCB.conf&amp;quot; -m &amp;quot;Manager&amp;quot;' &amp;gt;&amp;gt; /var/spool/cron/crontabs/root&amp;lt;/code&amp;gt;&lt;br /&gt;
**&amp;lt;code&amp;gt;/usr/lib/vmware/busybox/bin/busybox crond&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;/sbin/auto-backup.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
**Ensures that the changes to &amp;lt;code&amp;gt;local.sh&amp;lt;/code&amp;gt; get written back to the boot thumbdrive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simplifying manual backups===&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' Need to do some sort of error handling. ATM, if you try to backup a VM that doesn't exist, it fails silently.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /vmfs/volumes/Admin/Utilities/ghettoVCB/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vi backup.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh                                                                           &lt;br /&gt;
                                                                                    &lt;br /&gt;
 export PATH=/bin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 for VMName in &amp;quot;$@&amp;quot;&lt;br /&gt;
 do&lt;br /&gt;
 echo &amp;quot;###############################&amp;quot;&lt;br /&gt;
 echo &amp;quot;#  Backing up &amp;quot;$VMName&lt;br /&gt;
 echo &amp;quot;###############################&amp;quot;&lt;br /&gt;
 echo&lt;br /&gt;
 &lt;br /&gt;
 logger &amp;quot;ghettoVCB/backup.sh is backing up &amp;quot;$VMName&amp;quot;.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 /vmfs/volumes/Admin/Utilities/ghettoVCB/ghettoVCB.sh \&lt;br /&gt;
    -g /vmfs/volumes/Admin/Utilities/ghettoVCB/ghettoVCB.conf \&lt;br /&gt;
    -m $VMName&lt;br /&gt;
 &lt;br /&gt;
 logger &amp;quot;ghettoVCB/backup.sh is finished backing up &amp;quot;$VMName&amp;quot;.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;###############################&amp;quot;&lt;br /&gt;
 echo &amp;quot;# &amp;quot;$VMName&amp;quot; is backed up&amp;quot;&lt;br /&gt;
 echo &amp;quot;###############################&amp;quot;&lt;br /&gt;
 done&lt;br /&gt;
 &lt;br /&gt;
 logger &amp;quot;ghettoVCB/backup.sh finished&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod +x backup.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can do fun things like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./backup.sh Manager WebServer Automation Download&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; all the VMs will get backed up.&lt;br /&gt;
&lt;br /&gt;
(Now find out how to put it directly in the execution path...)&lt;br /&gt;
&lt;br /&gt;
====Running a backup remotely====&lt;br /&gt;
Note:  You'll need to have SSHed into the server previously from the machine you want to run this command from.  (SSH is a strange beast... It REALLY wants to set up stuff on your local machine for verification. Whoda Thunkit)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh root@ESXiServer &amp;quot;/vmfs/volumes/Admin/Utilities/ghettoVCB/backup.sh VMname&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Simplifying Clone Deployment===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;cd /vmfs/volumes/Admin/Utilities/ghettoVCB/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;vi clone.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #!/bin/sh                                                                &lt;br /&gt;
 &lt;br /&gt;
 export PATH=/bin:/sbin&lt;br /&gt;
 &lt;br /&gt;
 for VMName in &amp;quot;$@&amp;quot;&lt;br /&gt;
 do&lt;br /&gt;
 echo &amp;quot;###############################&amp;quot;&lt;br /&gt;
 echo &amp;quot;#  Creating &amp;quot;$VMName&lt;br /&gt;
 echo &amp;quot;###############################&amp;quot;&lt;br /&gt;
 echo&lt;br /&gt;
 &lt;br /&gt;
 logger &amp;quot;ghettoVCB/clone.sh is creating &amp;quot;$VMName&amp;quot; from CloneMe.&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 echo &amp;quot;/vmfs/volumes/Admin/CloneMe/CloneMe-Mint-19.3/CloneMe-Mint-19.3-0;/vmfs/volumes/Admin;1;&amp;quot;$VMName &amp;gt; CloneIt&lt;br /&gt;
 /vmfs/volumes/Admin/Utilities/ghettoVCB/ghettoVCB-restore.sh -c CloneIt&lt;br /&gt;
 &lt;br /&gt;
 logger &amp;quot;ghettoVCB/clone.sh &amp;quot;$VMName&amp;quot; finished&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 echo&lt;br /&gt;
 echo &amp;quot;###############################&amp;quot;&lt;br /&gt;
 echo &amp;quot;# &amp;quot;$VMName&amp;quot; is created&amp;quot;&lt;br /&gt;
 echo &amp;quot;###############################&amp;quot;&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;chmod +x clone.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then you can do fun things like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;./clone.sh Manager WebServer Automation Download&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; all the VMs will be created as clones of '''CloneMe'''.&lt;br /&gt;
&lt;br /&gt;
====Thoughts====&lt;br /&gt;
&lt;br /&gt;
*Need to create a '''CloneMe''' creator script.&lt;br /&gt;
**Multiple '''CloneMes''' would be good...&lt;br /&gt;
**Duplicate &amp;lt;code&amp;gt;ghetoVCB.conf&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;CloneMe.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
***Add in,&lt;br /&gt;
****&amp;lt;code&amp;gt;VM_BACKUP_VOLUME=&amp;quot;/vmfs/volumes/Admin/CloneMe&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
****&amp;lt;code&amp;gt;VM_BACKUP_DIR_NAMING_CONVENTION=&amp;quot;0&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
***Then:&lt;br /&gt;
****&amp;lt;code&amp;gt;./ghettoVCB.sh -g ./CloneMe.conf -m CloneMe-Mint-19.3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Need a way to tell &amp;lt;code&amp;gt;clone.sh&amp;lt;/code&amp;gt; which '''CloneMe''' to use...&lt;br /&gt;
**This particular rabbit hole has forced the realisation that '''sh''' as implemented in ESXi is a poor substitute for bash.&lt;br /&gt;
**The [[GhettoVCB - clone.sh BASH Script|script]] to provide a menu of available '''CloneMe'''s in bash is quite elegant.&lt;br /&gt;
**The [[GhettoVCB - clone.sh Script|script]] to do the same in ESXis '''sh''' is a fugly mess of hard-coded information.&lt;br /&gt;
*&amp;amp;, of course, where to actually put the clone.&lt;br /&gt;
**(see comments just above about shell implementation...  :( )&lt;br /&gt;
&lt;br /&gt;
===Simplifying Restoration of a Backup===&lt;br /&gt;
Coming Soon&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
==Tricks with ghettoVCB backups==&lt;br /&gt;
&lt;br /&gt;
===Cloning preconfigured VMs===&lt;br /&gt;
Yes, this IS a good way to duplicate preconfigured VMs.&lt;br /&gt;
&lt;br /&gt;
===Moving &amp;amp; copying VMs to another physical machine===&lt;br /&gt;
Duplicate the backup onto the destination machine.&lt;br /&gt;
&lt;br /&gt;
*'''On the Source machine:'''&lt;br /&gt;
**change to the folder containing the backups of interest:&lt;br /&gt;
***&amp;lt;code&amp;gt;cd /vmfs/volumes/Beta/BACKUPS/Manager/&amp;lt;/code&amp;gt;&lt;br /&gt;
**Create an archive of the backup set required:&lt;br /&gt;
***&amp;lt;code&amp;gt;tar c -z -f Manager.tgz Manager-2019-09-08_21-01-00&amp;lt;/code&amp;gt;&lt;br /&gt;
*'''On the Destination machine:'''&lt;br /&gt;
**change to the backups folder:&lt;br /&gt;
***&amp;lt;code&amp;gt;cd /vmfs/volumes/Beta/BACKUPS/&amp;lt;/code&amp;gt;&lt;br /&gt;
**Create a destination:&lt;br /&gt;
***&amp;lt;code&amp;gt;mkdir Manager/&amp;lt;/code&amp;gt;&lt;br /&gt;
*Move the archive to the backups folder on the destination machine (transport method of your choice...)&lt;br /&gt;
**Enter the destination backup folder:&lt;br /&gt;
***&amp;lt;code&amp;gt;cd Manager&amp;lt;/code&amp;gt;&lt;br /&gt;
**Extract the archive:&lt;br /&gt;
***&amp;lt;code&amp;gt;tar x -z -f Manager.tgz&amp;lt;/code&amp;gt;&lt;br /&gt;
**Now you can simply restore it as normal.&lt;br /&gt;
&lt;br /&gt;
==Still to be done==&lt;br /&gt;
&lt;br /&gt;
*Look into partial backups.  i.e.: select specific drives on a per-VM basis&lt;br /&gt;
&lt;br /&gt;
==Backing up (or copying/moving) the Backups==&lt;br /&gt;
'''&amp;lt;big&amp;gt;This is a Work In Progress&amp;lt;/big&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
*Over the network&lt;br /&gt;
**Using the web interface&lt;br /&gt;
**#Sign into the machine with a web browser&lt;br /&gt;
**#Select Storage&lt;br /&gt;
**#Click &amp;quot;Datastore browser&amp;quot;&lt;br /&gt;
**#Navigate to the backups&lt;br /&gt;
**#Download them&lt;br /&gt;
**Using NFS&lt;br /&gt;
***ghettoVCB has this built-in, but you'll need an NFS server available full time.&lt;br /&gt;
**&amp;lt;span style=&amp;quot;color:green&amp;quot;&amp;gt;'''Using SCP'''&amp;lt;/span&amp;gt;&lt;br /&gt;
***First things first...  Enable outgoing SCP on the host. (SSH Client)&lt;br /&gt;
****[https://4sysops.com/archives/how-to-open-and-close-firewall-ports-on-vmware-esxi-hosts/ How to Open and Close Firewall Ports on vmWare ESXi Hosts]&lt;br /&gt;
***Next, change to your backups folder.&lt;br /&gt;
****&amp;lt;code&amp;gt;cd /vmfs/volumes/Backup&amp;lt;/code&amp;gt;&lt;br /&gt;
***Then, SCP your backup to another machine.&lt;br /&gt;
****&amp;lt;code&amp;gt;scp -r Backup user@machine:destination&amp;lt;/code&amp;gt;&lt;br /&gt;
*Using a hot-swap drive&lt;br /&gt;
**If your server has hot-swap bays, it's a simple matter of copying your backups to a datastore located on one of the hot-swappable drives &amp;amp;, well, hot-swapping it.&lt;br /&gt;
*Using an external drive&lt;br /&gt;
**'''Careful...  This is a good way to mess up your server'''&lt;br /&gt;
***&amp;lt;s&amp;gt;Start here:  [https://www.virten.net/2015/10/usb-devices-as-vmfs-datastore-in-vsphere-esxi-6-0/ USB Devices as VMFS Datastore in vSphere ESXi 6.0]&amp;lt;/s&amp;gt;&lt;br /&gt;
****[https://www.virten.net/2016/11/usb-devices-as-vmfs-datastore-in-vsphere-esxi-6-5/ &amp;lt;s&amp;gt;USB Devices as VMFS Datastore in vSphere ESXi 6.5&amp;lt;/s&amp;gt;]&lt;br /&gt;
***&amp;lt;s&amp;gt;An example sequence of commands used here:&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;code&amp;gt;&amp;lt;s&amp;gt;/etc/init.d/usbarbitrator stop&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
****&amp;lt;code&amp;gt;&amp;lt;s&amp;gt;ls /dev/disks/&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*****&amp;lt;s&amp;gt;My external drive (a 1TB WD My Passport  Ultra)shows up as &amp;lt;code&amp;gt;mpx.vmhba36&amp;lt;/code&amp;gt;&amp;lt;/s&amp;gt;&lt;br /&gt;
****&amp;lt;code&amp;gt;&amp;lt;s&amp;gt;partedUtil mklabel /dev/disks/mpx.vmhba36\:C0\:T0\:L0 gpt&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
****&amp;lt;code&amp;gt;&amp;lt;s&amp;gt;partedUtil setptbl /dev/disks/mpx.vmhba36\:C0\:T0\:L0 gpt &amp;quot;1 2048 1953455804 AA31E02A400F11DB9590000C2911D1B8 0&amp;quot;&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
****&amp;lt;code&amp;gt;&amp;lt;s&amp;gt;vmkfstools -C vmfs5 -S VMFS-Backups /dev/disks/mpx.vmhba36\:C0\:T0\:L0:1&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
****&amp;lt;code&amp;gt;&amp;lt;s&amp;gt;cp -R /vmfs/volumes/Beta/BACKUPS/* /vmfs/volumes/VMFS-Backups/&amp;lt;/s&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Reference Links==&lt;br /&gt;
&lt;br /&gt;
*The original package on GitHub&lt;br /&gt;
**[https://github.com/lamw/ghettoVCB lamw/'''ghettoVCB''']&lt;br /&gt;
*Documentation for ghettoVCB&lt;br /&gt;
**[https://communities.vmware.com/docs/DOC-8760 ghettoVCB.sh - Free alternative for backing up VM's for ESX(i)]&lt;br /&gt;
*Documentation for ghettoVCB-restore&lt;br /&gt;
**[https://communities.vmware.com/docs/DOC-10595 ghettoVCB-restore.sh - Restoring VM's backed up from ghettoVCB to ESX(i)]&lt;br /&gt;
*[https://communities.vmware.com/groups/ghettovcb VMTN ghettoVCB discussion group]&lt;br /&gt;
*[https://blog.kingj.net/2016/07/03/how-to/backing-up-vmware-esxi-vms-with-ghettovcb/ Backing up VMware ESXi VMs with ghettoVCB]&lt;br /&gt;
&lt;br /&gt;
===Using vi===&lt;br /&gt;
&lt;br /&gt;
*[https://www.cs.colostate.edu/helpdocs/vi.html Basic vi Commands] (CSU)&lt;br /&gt;
*[https://www.ccsf.edu/Pub/Fac/vi.html UNIX:  vi Editor] (City College of SF)&lt;br /&gt;
*VI Text Editor with Commands: Linux/Unix Tutorial (Guru99)&lt;br /&gt;
** Link removed because Guru99 apparently no longer wants traffic&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Main_Page&amp;diff=1883</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Main_Page&amp;diff=1883"/>
		<updated>2023-08-19T23:07:58Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tbrun2.png|512px|Tbrun2.png|alt=&amp;quot;Aaarrrggg!&amp;quot;|right]]&lt;br /&gt;
&amp;lt;strong&amp;gt;&amp;lt;big&amp;gt;Welcome to the TinkerNet Wiki!&amp;lt;/big&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Most of the things people worry about, aren't worth worrying about, and most of the things that are worth worrying about, aren't fixed by worrying. So don't worry!&amp;quot; -- Atomic Shrimp 2023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''[[SBN - Building Notes|Web &amp;amp; Wiki Installs &amp;amp; Stuff]]'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''[[IoT - ESP-Everything!|The ESP-Everything! project]]'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mostly it ain't filled in yet...&lt;br /&gt;
&lt;br /&gt;
(getting there tho...)&lt;br /&gt;
&lt;br /&gt;
[[File:Uokpl.rs-tip-jar-png-4283629.png|left|frameless|81x81px|alt=&amp;quot;Go ahead, buy me a beer :)&amp;quot;|link=https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=scott%40tinkernet.ca&amp;amp;item_name=Spreading+Knowledge&amp;amp;currency_code=CAD&amp;amp;source=url]] If you're desperately searching for something that hasn't made it into this version yet, you can still go hunting on [https://www.tinkernet.ca/wiki/index.php/Main_Page the old wiki]. If that fails you &amp;amp; what you remember seeing has vanished...  It's most likely sitting in Lab Notes waiting for cleanup, corrections &amp;amp; expansion.  Feel free to [[contact me]] &amp;amp; I'll see about moving it here quicker.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;There is some [[weird testing]] going on&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Main_Page&amp;diff=1882</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Main_Page&amp;diff=1882"/>
		<updated>2023-08-19T23:07:10Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tbrun2.png|512px|Tbrun2.png|alt=&amp;quot;Aaarrrggg!&amp;quot;|right]]&lt;br /&gt;
&amp;lt;strong&amp;gt;&amp;lt;big&amp;gt;Welcome to the TinkerNet Wiki!&amp;lt;/big&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Most of the things people worry about, aren't worth worrying about, and most of the things that are worth worrying about, aren't fixed by worrying. So don't worry! -- Atomic Shrimp 2023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''[[SBN - Building Notes|Web &amp;amp; Wiki Installs &amp;amp; Stuff]]'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''[[IoT - ESP-Everything!|The ESP-Everything! project]]'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mostly it ain't filled in yet...&lt;br /&gt;
&lt;br /&gt;
(getting there tho...)&lt;br /&gt;
&lt;br /&gt;
[[File:Uokpl.rs-tip-jar-png-4283629.png|left|frameless|81x81px|alt=&amp;quot;Go ahead, buy me a beer :)&amp;quot;|link=https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=scott%40tinkernet.ca&amp;amp;item_name=Spreading+Knowledge&amp;amp;currency_code=CAD&amp;amp;source=url]] If you're desperately searching for something that hasn't made it into this version yet, you can still go hunting on [https://www.tinkernet.ca/wiki/index.php/Main_Page the old wiki]. If that fails you &amp;amp; what you remember seeing has vanished...  It's most likely sitting in Lab Notes waiting for cleanup, corrections &amp;amp; expansion.  Feel free to [[contact me]] &amp;amp; I'll see about moving it here quicker.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;There is some [[weird testing]] going on&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Electronics&amp;diff=1881</id>
		<title>Electronics</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Electronics&amp;diff=1881"/>
		<updated>2023-05-06T22:13:29Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is a bloody mess&lt;br /&gt;
&lt;br /&gt;
But it's a placeholder... so...  meh.&lt;br /&gt;
&lt;br /&gt;
*[[NerdWiki:VSCode &amp;amp; PlatformIO|PlatformIO-Install-Linux]]&lt;br /&gt;
&lt;br /&gt;
== Microcontroller Stuff ==&lt;br /&gt;
&lt;br /&gt;
* [[Connecting stuff to Microcontrollers]]&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=SBN_-_Building_Notes&amp;diff=1878</id>
		<title>SBN - Building Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=SBN_-_Building_Notes&amp;diff=1878"/>
		<updated>2023-04-17T22:56:39Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just to make sure you know the score...&lt;br /&gt;
&lt;br /&gt;
Pretty much ALL of the notes &amp;amp; instructions here assume you have SSH (or direct terminal) access to the servers in question.&lt;br /&gt;
&lt;br /&gt;
(Also, I am a strong believer in ESXi.  All of the servers I have created these instructions while building are running on VMs under ESXi)&lt;br /&gt;
&lt;br /&gt;
Also, I tend to use Linux Mint (latest version) since that's what I run on my desktops. But, these notes should apply to any Debian-based distro. (For example...  I'm experimenting with SparkyLinux ATM.)&lt;br /&gt;
&lt;br /&gt;
*[[SBN - Baseline Server Notes|Baseline Server Notes]]&lt;br /&gt;
*[[SBN - Web Server Notes|Web Server Notes]]&lt;br /&gt;
*[[SBN - Blog Server Notes|Blog Server Notes]]&lt;br /&gt;
*[[SBN - Wiki Server Notes|Wiki Server Notes]]&lt;br /&gt;
*[[SBN - Database Server Notes|Database Server Notes]]&lt;br /&gt;
*[[SBN - Automation Server Notes|Automation Server Notes]]&lt;br /&gt;
*[[WeeWX|Weather Server Notes]]&lt;br /&gt;
*[[SBN - Forum Server Notes|Forum Server Notes]]&lt;br /&gt;
*[[SBN - Proxy Server Notes|Proxy Server Notes]]&lt;br /&gt;
*[[SBN - Gateway Server Notes|Gateway Server Notes]]&lt;br /&gt;
*[[NerdWiki:Server Building#Download Servers|Download Server Notes]]&lt;br /&gt;
*[[SBN - Media Server Notes|Media Server Notes]]&lt;br /&gt;
*[[SBN - Storage Server Notes|Storage Server Notes]]&lt;br /&gt;
*[[SBN - FTP Server Notes|FTP Server Notes]]&lt;br /&gt;
*[[SBN - Repo Mirror Server Notes|Repo Mirror Server Notes]]&lt;br /&gt;
*[[SBN - PXE Server Notes|PXE Server Notes]]&lt;br /&gt;
*[[SBN - GIT Server Notes|GIT Server Notes]]&lt;br /&gt;
*[[SBN - Backup Server Notes|Backup Server Notes]]&lt;br /&gt;
*[[SBN - FOG Server Notes|FOG Server Notes]]&lt;br /&gt;
*[[SBN - IRC Server Notes|IRC Server Notes]]&lt;br /&gt;
*[[SBN - BBS Server Notes|BBS Server Notes]]&lt;br /&gt;
*[[SBN - Mail Server Notes|Mail Server Notes]]&lt;br /&gt;
*[[SBN - NextCloud Server Notes|NextCloud Server Notes]]&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=DownloadServer_-_Youtube&amp;diff=1877</id>
		<title>DownloadServer - Youtube</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=DownloadServer_-_Youtube&amp;diff=1877"/>
		<updated>2023-04-17T17:49:25Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BREAKING NEWS: Might be time to switch to [https://github.com/yt-dlp/yt-dlp yt-dlp]&lt;br /&gt;
&lt;br /&gt;
There are a few good reasons to be set up to download YouTube videos.&lt;br /&gt;
&lt;br /&gt;
*Geofencing&lt;br /&gt;
*Reliability&lt;br /&gt;
*Bandwidth Management&lt;br /&gt;
&lt;br /&gt;
Fortunately, it's pretty easy to do.&lt;br /&gt;
&lt;br /&gt;
But you may need to install python first...&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt install python&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==youtube-dl==&lt;br /&gt;
[https://youtube-dl.org/ youtube-dl] is a pretty awesome tool.&lt;br /&gt;
&lt;br /&gt;
But don't install it through the package manager.  It gets incredibly regular updates &amp;amp; the package manager kinda borks this.&lt;br /&gt;
&lt;br /&gt;
Instead, install it directly:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo wget &amp;lt;nowiki&amp;gt;https://yt-dl.org/downloads/latest/youtube-dl&amp;lt;/nowiki&amp;gt; -O /usr/local/bin/youtube-dl&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo chmod a+rx /usr/local/bin/youtube-dl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This allows you to regularly update (maybe even through cron) it with the command:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo youtube-dl -U&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Which guarantees you keep up with the multitude of random changes made at YouTube.&lt;br /&gt;
&lt;br /&gt;
===scripting===&lt;br /&gt;
Example of a useful script to update a local copy of a YouTube Channel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;youtube-dl -w --download-archive 11111111-ARCHIVE --write-description -f mp4 -o &amp;quot;%(upload_date)s - %(title)s.%(ext)s&amp;quot; &amp;lt;nowiki&amp;gt;https://www.youtube.com/user/LastWeekTonight&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This particular little script maintains a local archive of a channel that YouTube thinks Canadians should not be allowed to watch...  (needless to say, it gets run on the VPN equipped Download Server.)&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
====ERROR: Did not get any data blocks====&lt;br /&gt;
This is often caused by YouTube being weird...&lt;br /&gt;
&lt;br /&gt;
Adding &amp;lt;code&amp;gt;-f &amp;quot;bestvideo[height&amp;lt;=720]+bestaudio/best&amp;quot; --merge-output-format mp4&amp;lt;/code&amp;gt; into the command line sometimes fixes it.&lt;br /&gt;
&lt;br /&gt;
([https://www.reddit.com/r/youtubedl/comments/s4pd6h/what_is_the_meaning_of_error_did_not_get_any_data/hssg8xs/ Reference])&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=InfluxDB&amp;diff=1874</id>
		<title>InfluxDB</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=InfluxDB&amp;diff=1874"/>
		<updated>2023-04-09T18:19:10Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Installing InfluxDB on Debial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally written by Grant Reed&lt;br /&gt;
&lt;br /&gt;
(you will need '''curl''' &amp;amp; '''gnupg''')&lt;br /&gt;
&lt;br /&gt;
==Installing InfluxDB on Mint 19.3 and 20==&lt;br /&gt;
&lt;br /&gt;
===Start by adding it to the repository===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;echo &amp;quot;deb &amp;lt;nowiki&amp;gt;https://repos.influxdata.com/debian&amp;lt;/nowiki&amp;gt; stretch stable&amp;quot; | sudo tee /etc/apt/sources.list.d/influxdb.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install GPG Key===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo curl -sL &amp;lt;nowiki&amp;gt;https://repos.influxdata.com/influxdb.key&amp;lt;/nowiki&amp;gt; | sudo apt-key add -&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Update the index and INSTALL===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Start, Enable and Verify it is running===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl start influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl enable influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;systemctl status influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing InfluxDB on Debian==&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt install influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt install influxdb-client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setting up a Database==&lt;br /&gt;
This will set up an initial database to start with. This gets really deep, really fast if you are not familiar with databases or the coding behind the system. The guide for this can be found at https://docs.influxdata.com/influxdb/v1.8/introduction/get-started/ Good luck with that.&lt;br /&gt;
&lt;br /&gt;
You need to access InfluxDB so open a terminal on the machine it is hosted on (or SSH into it if that is your thing)... type in the terminal&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;influx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see a message like this:&lt;br /&gt;
&lt;br /&gt;
 $ influx -precision rfc3339&lt;br /&gt;
 Connected to &amp;lt;nowiki&amp;gt;http://localhost:8086&amp;lt;/nowiki&amp;gt; version 1.8.x&lt;br /&gt;
 InfluxDB shell 1.8.x&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
A fresh install of if InfluxDB has no useable databases outside of the default internal one. So type this at the prompt, replacing &amp;lt;db-name&amp;gt; with the name you want&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;CREATE DATABASE &amp;lt;db-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If all went properly, you won't see any additional info, just the prompt again. Now let's make sure that the database is good just for giggles&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SHOW DATABASES&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see your database listed. If not, something borked and I can't help you with that. &lt;br /&gt;
&lt;br /&gt;
Are you planning to use this with Grafana? You will need to set up a datasource in Grafana then. &lt;br /&gt;
&lt;br /&gt;
==Using this with Node Red==&lt;br /&gt;
A [[Node-RED - with InfluxDB|minimum example]]&lt;br /&gt;
&lt;br /&gt;
==Using this with Grafana==&lt;br /&gt;
Set up your database in Grafana by going here... [[Grafana#Connecting with InfluxDB|Connecting with InfluxDB]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=OpenVPN_Autoconnect_-_Using_PIA&amp;diff=1873</id>
		<title>OpenVPN Autoconnect - Using PIA</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=OpenVPN_Autoconnect_-_Using_PIA&amp;diff=1873"/>
		<updated>2023-03-17T20:24:29Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Autoconnect PIA VPN on Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Autoconnect PIA VPN on Boot===&lt;br /&gt;
&lt;br /&gt;
Create the OpenVPN autoconnect init.d startup script file&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo vim /etc/init.d/openvpnauto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paste this OpenVPN autoconnect startup script, if you do not want to use Sweden.ovpn then replace it in the &amp;lt;code&amp;gt;DAEMON_OPTS&amp;lt;/code&amp;gt; line&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides:          OpenVPN Autoconnect&lt;br /&gt;
# Required-Start:    $local_fs $remote_fs $network&lt;br /&gt;
# Required-Stop:     $local_fs $remote_fs $network&lt;br /&gt;
# Default-Start:     2 3 4 5&lt;br /&gt;
# Default-Stop:      0 1 6&lt;br /&gt;
# Short-Description: OpenVPN Autoconnect&lt;br /&gt;
# Description:       OpenVPN Autoconnect&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Documentation available at&lt;br /&gt;
# http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptfunc.html&lt;br /&gt;
# Debian provides some extra functions though&lt;br /&gt;
. /lib/lsb/init-functions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DAEMON_NAME=&amp;quot;openvpnauto&amp;quot;&lt;br /&gt;
DAEMON_USER=root&lt;br /&gt;
DAEMON_PATH=&amp;quot;/usr/sbin/openvpn&amp;quot;&lt;br /&gt;
DAEMON_OPTS=&amp;quot;--config /etc/openvpn/Sweden.ovpn --auth-user-pass /etc/openvpn/login.txt&amp;quot;&lt;br /&gt;
DAEMON_PWD=&amp;quot;/etc/openvpn&amp;quot;&lt;br /&gt;
DAEMON_DESC=$(get_lsb_header_val $0 &amp;quot;Short-Description&amp;quot;)&lt;br /&gt;
DAEMON_PID=&amp;quot;/var/run/${DAEMON_NAME}.pid&amp;quot;&lt;br /&gt;
DAEMON_NICE=0&lt;br /&gt;
DAEMON_LOG='/var/log/openvpnauto.log'&lt;br /&gt;
&lt;br /&gt;
[ -r &amp;quot;/etc/default/${DAEMON_NAME}&amp;quot; ] &amp;amp;&amp;amp; . &amp;quot;/etc/default/${DAEMON_NAME}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
do_start() {&lt;br /&gt;
  local result&lt;br /&gt;
&lt;br /&gt;
    pidofproc -p &amp;quot;${DAEMON_PID}&amp;quot; &amp;quot;${DAEMON_PATH}&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
    if [ $? -eq 0 ]; then&lt;br /&gt;
        log_warning_msg &amp;quot;${DAEMON_NAME} is already started&amp;quot;&lt;br /&gt;
        result=0&lt;br /&gt;
    else&lt;br /&gt;
        log_daemon_msg &amp;quot;Starting ${DAEMON_DESC}&amp;quot; &amp;quot;${DAEMON_NAME}&amp;quot;&lt;br /&gt;
        touch &amp;quot;${DAEMON_LOG}&amp;quot;&lt;br /&gt;
        chown $DAEMON_USER &amp;quot;${DAEMON_LOG}&amp;quot;&lt;br /&gt;
        chmod u+rw &amp;quot;${DAEMON_LOG}&amp;quot;&lt;br /&gt;
        if [ -z &amp;quot;${DAEMON_USER}&amp;quot; ]; then&lt;br /&gt;
            start-stop-daemon --start --quiet --oknodo --background \&lt;br /&gt;
                --nicelevel $DAEMON_NICE \&lt;br /&gt;
                --chdir &amp;quot;${DAEMON_PWD}&amp;quot; \&lt;br /&gt;
                --pidfile &amp;quot;${DAEMON_PID}&amp;quot; --make-pidfile \&lt;br /&gt;
                --exec &amp;quot;${DAEMON_PATH}&amp;quot; -- $DAEMON_OPTS&lt;br /&gt;
            result=$?&lt;br /&gt;
        else&lt;br /&gt;
            start-stop-daemon --start --quiet --oknodo --background \&lt;br /&gt;
                --nicelevel $DAEMON_NICE \&lt;br /&gt;
                --chdir &amp;quot;${DAEMON_PWD}&amp;quot; \&lt;br /&gt;
                --pidfile &amp;quot;${DAEMON_PID}&amp;quot; --make-pidfile \&lt;br /&gt;
                --chuid &amp;quot;${DAEMON_USER}&amp;quot; \&lt;br /&gt;
                --exec &amp;quot;${DAEMON_PATH}&amp;quot; -- $DAEMON_OPTS&lt;br /&gt;
            result=$?&lt;br /&gt;
        fi&lt;br /&gt;
        log_end_msg $result&lt;br /&gt;
    fi&lt;br /&gt;
    return $result&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
do_stop() {&lt;br /&gt;
    local result&lt;br /&gt;
&lt;br /&gt;
    pidofproc -p &amp;quot;${DAEMON_PID}&amp;quot; &amp;quot;${DAEMON_PATH}&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
    if [ $? -ne 0 ]; then&lt;br /&gt;
        log_warning_msg &amp;quot;${DAEMON_NAME} is not started&amp;quot;&lt;br /&gt;
        result=0&lt;br /&gt;
    else&lt;br /&gt;
        log_daemon_msg &amp;quot;Stopping ${DAEMON_DESC}&amp;quot; &amp;quot;${DAEMON_NAME}&amp;quot;&lt;br /&gt;
        killproc -p &amp;quot;${DAEMON_PID}&amp;quot; &amp;quot;${DAEMON_PATH}&amp;quot;&lt;br /&gt;
        result=$?&lt;br /&gt;
        log_end_msg $result&lt;br /&gt;
        rm &amp;quot;${DAEMON_PID}&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
    return $result&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
do_restart() {&lt;br /&gt;
    local result&lt;br /&gt;
    do_stop&lt;br /&gt;
    result=$?&lt;br /&gt;
    if [ $result = 0 ]; then&lt;br /&gt;
        do_start&lt;br /&gt;
        result=$?&lt;br /&gt;
    fi&lt;br /&gt;
    return $result&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
do_status() {&lt;br /&gt;
    local result&lt;br /&gt;
    status_of_proc -p &amp;quot;${DAEMON_PID}&amp;quot; &amp;quot;${DAEMON_PATH}&amp;quot; &amp;quot;${DAEMON_NAME}&amp;quot;&lt;br /&gt;
    result=$?&lt;br /&gt;
    return $result&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
do_usage() {&lt;br /&gt;
    echo $&amp;quot;Usage: $0 {start | stop | restart | status}&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
start)   do_start;   exit $?&amp;amp;nbsp;;;&lt;br /&gt;
stop)    do_stop;    exit $?&amp;amp;nbsp;;;&lt;br /&gt;
restart) do_restart; exit $?&amp;amp;nbsp;;;&lt;br /&gt;
status)  do_status;  exit $?&amp;amp;nbsp;;;&lt;br /&gt;
*)       do_usage;   exit  1&amp;amp;nbsp;;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable the '''OpenVPN PIA Autoconnect''' script&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo chmod +x /etc/init.d/openvpnauto&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo systemctl enable openvpnauto&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;amp; for some reason I've forgotten:&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo update-rc.d openvpnauto defaults 98&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can connect to PIA’s VPN automatically by running&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo service openvpnauto start&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can retest your IP to verify it’s not your ISP’s IP address&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;wget http://ipinfo.io/ip -qO -&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If it is not your regular IP shown on [http://whatsmyip.org whatsmyip.org] then you can reboot and test your IP address again&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo reboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test your IP again and compare it to [http://whatsmyip.org whatsmyip.org]’s result&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;wget &amp;lt;nowiki&amp;gt;http://ipinfo.io/ip&amp;lt;/nowiki&amp;gt; -qO -&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you’ve set up installing and autoconnecting to Private Internet Access VPN on Linux on boot&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Grafana&amp;diff=1870</id>
		<title>Grafana</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Grafana&amp;diff=1870"/>
		<updated>2023-03-13T00:03:22Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally written by Grant Reed&lt;br /&gt;
&lt;br /&gt;
(you will need '''gnupg''')&lt;br /&gt;
&lt;br /&gt;
==How To Install Grafana on Linux Mint 20==&lt;br /&gt;
https://grafana.com/docs/grafana/latest/installation/debian/&lt;br /&gt;
&lt;br /&gt;
Installation was tested on a fresh VM of Mint 20 so if i screwed something up, it wasn't going to be my Automation server&lt;br /&gt;
&lt;br /&gt;
There are 2 versions that could be installed -OSS and Enterprise. It is suggested by Grafana to install the Enterprise version for stability. We will be installing the latest version in this setup. Run the following in a teminal window that is local or SSH'd into your system that will host it...&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y apt-transport-https&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y software-properties-common wget&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;wget -q -O - &amp;lt;nowiki&amp;gt;https://packages.grafana.com/gpg.key&amp;lt;/nowiki&amp;gt; | sudo apt-key add -&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add the repository to the list and install===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;echo &amp;quot;deb &amp;lt;nowiki&amp;gt;https://packages.grafana.com/enterprise/deb&amp;lt;/nowiki&amp;gt; stable main&amp;quot; | sudo tee -a /etc/apt/sources.list.d/grafana.list&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install grafana-enterprise&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Start the Server===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl daemon-reload&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl start grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verify that its running properly===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl status grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Now configure it to start at boot===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl enable grafana-server.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Package details===&lt;br /&gt;
&lt;br /&gt;
*Installs binary to &amp;lt;code&amp;gt;/usr/sbin/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs Init.d script to &amp;lt;code&amp;gt;/etc/init.d/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Creates default file (environment vars) to &amp;lt;code&amp;gt;/etc/default/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs configuration file to &amp;lt;code&amp;gt;/etc/grafana/grafana.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs systemd service (if systemd is available) name &amp;lt;code&amp;gt;grafana-server.service&amp;lt;/code&amp;gt;&lt;br /&gt;
*The default configuration sets the log file at &amp;lt;code&amp;gt;/var/log/grafana/grafana.log&amp;lt;/code&amp;gt;&lt;br /&gt;
*The default configuration specifies a SQLite3 db at &amp;lt;code&amp;gt;/var/lib/grafana/grafana.db&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs HTML/JS/CSS and other Grafana files at &amp;lt;code&amp;gt;/usr/share/grafana&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Getting Started with Grafana==&lt;br /&gt;
The home for this information is here:&lt;br /&gt;
&lt;br /&gt;
https://grafana.com/docs/grafana/latest/getting-started/getting-started/&lt;br /&gt;
&lt;br /&gt;
Open a browser to your new Grafana install, in my case its '''''192.168.1.139:3000'''''&lt;br /&gt;
&lt;br /&gt;
Default user is admin/admin and it will make you change the password&lt;br /&gt;
&lt;br /&gt;
==Using this with Node Red==&lt;br /&gt;
[[Node-RED - with Grafana|Watch this space...]]&lt;br /&gt;
&lt;br /&gt;
==Connecting with InfluxDB==&lt;br /&gt;
https://grafana.com/docs/grafana/latest/datasources/influxdb/&lt;br /&gt;
&lt;br /&gt;
Open up the Web-GUI for Grafana ('''ServerName:3000'''). Log in and click on  the '''Configuration'' icon (looks like a gear) on the left tab. One of the options will be '''Data Sources'''. Click that and select '''Add Data Source'''.&lt;br /&gt;
&lt;br /&gt;
Give the data source a meaningful name. I gave mine 'InfluxDB'. Select '''InfluxDB''' under '''Time series databases'''. &lt;br /&gt;
&lt;br /&gt;
My databases are not set up for authorization or credentials since this setup will not be allowed to go play in the streets so all auth is turned off.&lt;br /&gt;
&lt;br /&gt;
This will open a screen titled '''Data Sources / InfluxDB'''&lt;br /&gt;
&lt;br /&gt;
Give this new data source a '''Name''' (or leave it as the default of '''InfluxDB''').&lt;br /&gt;
&lt;br /&gt;
Leave '''Query Language''' as the default '''InfluxQL'''.&lt;br /&gt;
&lt;br /&gt;
Fill in the '''URL''' box with the address of your database server.  (On a typical installation, with the database &amp;amp; Grafana on a single machine, this will be '''&amp;lt;nowiki&amp;gt;http://localhost:8086&amp;lt;/nowiki&amp;gt;''')&lt;br /&gt;
&lt;br /&gt;
Scroll down to '''InfluxDB Details'''.&lt;br /&gt;
&lt;br /&gt;
Put in the name of your new database.&lt;br /&gt;
&lt;br /&gt;
Put in the username and password.&lt;br /&gt;
&lt;br /&gt;
'''Optional:''' Select the type of http access you want. The simple version is '''GET'''. If you are going to be doing long requests then select ''''POST'''.&lt;br /&gt;
&lt;br /&gt;
Hit '''Save and Test'''.&lt;br /&gt;
&lt;br /&gt;
You should get a green bar that says '''Data source is working'''.&lt;br /&gt;
&lt;br /&gt;
You are connected to the proper database and all is well.&lt;br /&gt;
&lt;br /&gt;
==Oddities &amp;amp; Issues==&lt;br /&gt;
If you keep the UI web page open for a while, sometimes it'll log you out without giving ANY indication that it's done so.  If you happen to have a dashboard open that you're working on &amp;amp; try to save it, Grafana will say &amp;quot;NO!&amp;quot;.  At this point, attempting to log in will throw away your edits. &lt;br /&gt;
&lt;br /&gt;
There IS a solution! &lt;br /&gt;
&lt;br /&gt;
*Duplicate the tab&lt;br /&gt;
*Login on the duplicate tab&lt;br /&gt;
*Return to the one you were working in&lt;br /&gt;
*&amp;amp; pretend it never happened.&lt;br /&gt;
&lt;br /&gt;
And a way to decrease the annoyance (found [https://community.grafana.com/t/admin-getting-logged-out-frequently/37953/3 here]):&lt;br /&gt;
&lt;br /&gt;
*Edit the [https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/ configuration]&lt;br /&gt;
**&amp;lt;code&amp;gt;sudo vi /etc/grafana/grafana.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
*Change &amp;lt;code&amp;gt;token_rotation_interval_minutes&amp;lt;/code&amp;gt; to something larger than the default of '''10''' minutes.&lt;br /&gt;
*There also seems to be mention of changing &amp;lt;code&amp;gt;login_maximum_inactive_lifetime_days&amp;lt;/code&amp;gt; but it doesn't seem to exist. (Possibly &amp;lt;code&amp;gt;login_maximum_inactive_lifetime_duration&amp;lt;/code&amp;gt;?)&lt;br /&gt;
&lt;br /&gt;
The documentation does not seem to mention it, but I suspect you need to restart Grafana after editing the configuration...&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl start grafana-server&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=InfluxDB&amp;diff=1869</id>
		<title>InfluxDB</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=InfluxDB&amp;diff=1869"/>
		<updated>2023-03-12T23:13:23Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Installing InfluxDB on Debial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally written by Grant Reed&lt;br /&gt;
&lt;br /&gt;
(you will need '''curl''' &amp;amp; '''gnupg''')&lt;br /&gt;
&lt;br /&gt;
==Installing InfluxDB on Mint 19.3 and 20==&lt;br /&gt;
&lt;br /&gt;
===Start by adding it to the repository===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;echo &amp;quot;deb &amp;lt;nowiki&amp;gt;https://repos.influxdata.com/debian&amp;lt;/nowiki&amp;gt; stretch stable&amp;quot; | sudo tee /etc/apt/sources.list.d/influxdb.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install GPG Key===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo curl -sL &amp;lt;nowiki&amp;gt;https://repos.influxdata.com/influxdb.key&amp;lt;/nowiki&amp;gt; | sudo apt-key add -&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Update the index and INSTALL===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Start, Enable and Verify it is running===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl start influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl enable influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;systemctl status influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing InfluxDB on Debial ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo apt install influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo apt install influxdb-client&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setting up a Database==&lt;br /&gt;
This will set up an initial database to start with. This gets really deep, really fast if you are not familiar with databases or the coding behind the system. The guide for this can be found at https://docs.influxdata.com/influxdb/v1.8/introduction/get-started/ Good luck with that.&lt;br /&gt;
&lt;br /&gt;
You need to access InfluxDB so open a terminal on the machine it is hosted on (or SSH into it if that is your thing)... type in the terminal&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;influx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see a message like this:&lt;br /&gt;
&lt;br /&gt;
 $ influx -precision rfc3339&lt;br /&gt;
 Connected to &amp;lt;nowiki&amp;gt;http://localhost:8086&amp;lt;/nowiki&amp;gt; version 1.8.x&lt;br /&gt;
 InfluxDB shell 1.8.x&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
A fresh install of if InfluxDB has no useable databases outside of the default internal one. So type this at the prompt, replacing &amp;lt;db-name&amp;gt; with the name you want&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;CREATE DATABASE &amp;lt;db-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If all went properly, you won't see any additional info, just the prompt again. Now let's make sure that the database is good just for giggles&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SHOW DATABASES&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see your database listed. If not, something borked and I can't help you with that. &lt;br /&gt;
&lt;br /&gt;
Are you planning to use this with Grafana? You will need to set up a datasource in Grafana then. &lt;br /&gt;
&lt;br /&gt;
==Using this with Node Red==&lt;br /&gt;
A [[Node-RED - with InfluxDB|minimum example]]&lt;br /&gt;
&lt;br /&gt;
==Using this with Grafana==&lt;br /&gt;
Set up your database in Grafana by going here... [[Grafana#Connecting with InfluxDB|Connecting with InfluxDB]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=InfluxDB&amp;diff=1868</id>
		<title>InfluxDB</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=InfluxDB&amp;diff=1868"/>
		<updated>2023-03-12T23:12:47Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Installing InfluxDB on Mint 19.3 and 20 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally written by Grant Reed&lt;br /&gt;
&lt;br /&gt;
(you will need '''curl''' &amp;amp; '''gnupg''')&lt;br /&gt;
&lt;br /&gt;
==Installing InfluxDB on Mint 19.3 and 20==&lt;br /&gt;
&lt;br /&gt;
===Start by adding it to the repository===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;echo &amp;quot;deb &amp;lt;nowiki&amp;gt;https://repos.influxdata.com/debian&amp;lt;/nowiki&amp;gt; stretch stable&amp;quot; | sudo tee /etc/apt/sources.list.d/influxdb.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install GPG Key===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo curl -sL &amp;lt;nowiki&amp;gt;https://repos.influxdata.com/influxdb.key&amp;lt;/nowiki&amp;gt; | sudo apt-key add -&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Update the index and INSTALL===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Start, Enable and Verify it is running===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl start influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl enable influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;systemctl status influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing InfluxDB on Debial ==&lt;br /&gt;
&lt;br /&gt;
* sudo apt install influxdb&lt;br /&gt;
* sudo apt install influxdb-client&lt;br /&gt;
&lt;br /&gt;
==Setting up a Database==&lt;br /&gt;
This will set up an initial database to start with. This gets really deep, really fast if you are not familiar with databases or the coding behind the system. The guide for this can be found at https://docs.influxdata.com/influxdb/v1.8/introduction/get-started/ Good luck with that.&lt;br /&gt;
&lt;br /&gt;
You need to access InfluxDB so open a terminal on the machine it is hosted on (or SSH into it if that is your thing)... type in the terminal&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;influx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see a message like this:&lt;br /&gt;
&lt;br /&gt;
 $ influx -precision rfc3339&lt;br /&gt;
 Connected to &amp;lt;nowiki&amp;gt;http://localhost:8086&amp;lt;/nowiki&amp;gt; version 1.8.x&lt;br /&gt;
 InfluxDB shell 1.8.x&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
A fresh install of if InfluxDB has no useable databases outside of the default internal one. So type this at the prompt, replacing &amp;lt;db-name&amp;gt; with the name you want&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;CREATE DATABASE &amp;lt;db-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If all went properly, you won't see any additional info, just the prompt again. Now let's make sure that the database is good just for giggles&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SHOW DATABASES&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see your database listed. If not, something borked and I can't help you with that. &lt;br /&gt;
&lt;br /&gt;
Are you planning to use this with Grafana? You will need to set up a datasource in Grafana then. &lt;br /&gt;
&lt;br /&gt;
==Using this with Node Red==&lt;br /&gt;
A [[Node-RED - with InfluxDB|minimum example]]&lt;br /&gt;
&lt;br /&gt;
==Using this with Grafana==&lt;br /&gt;
Set up your database in Grafana by going here... [[Grafana#Connecting with InfluxDB|Connecting with InfluxDB]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Grafana&amp;diff=1867</id>
		<title>Grafana</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Grafana&amp;diff=1867"/>
		<updated>2023-03-12T22:29:42Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Getting Started with Grafana */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally written by Grant Reed&lt;br /&gt;
&lt;br /&gt;
==How To Install Grafana on Linux Mint 20==&lt;br /&gt;
https://grafana.com/docs/grafana/latest/installation/debian/&lt;br /&gt;
&lt;br /&gt;
Installation was tested on a fresh VM of Mint 20 so if i screwed something up, it wasn't going to be my Automation server&lt;br /&gt;
&lt;br /&gt;
There are 2 versions that could be installed -OSS and Enterprise. It is suggested by Grafana to install the Enterprise version for stability. We will be installing the latest version in this setup. Run the following in a teminal window that is local or SSH'd into your system that will host it...&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y apt-transport-https&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y software-properties-common wget&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;wget -q -O - &amp;lt;nowiki&amp;gt;https://packages.grafana.com/gpg.key&amp;lt;/nowiki&amp;gt; | sudo apt-key add -&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add the repository to the list and install===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;echo &amp;quot;deb &amp;lt;nowiki&amp;gt;https://packages.grafana.com/enterprise/deb&amp;lt;/nowiki&amp;gt; stable main&amp;quot; | sudo tee -a /etc/apt/sources.list.d/grafana.list&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install grafana-enterprise&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Start the Server===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl daemon-reload&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl start grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verify that its running properly===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl status grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Now configure it to start at boot===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl enable grafana-server.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Package details===&lt;br /&gt;
&lt;br /&gt;
*Installs binary to &amp;lt;code&amp;gt;/usr/sbin/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs Init.d script to &amp;lt;code&amp;gt;/etc/init.d/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Creates default file (environment vars) to &amp;lt;code&amp;gt;/etc/default/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs configuration file to &amp;lt;code&amp;gt;/etc/grafana/grafana.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs systemd service (if systemd is available) name &amp;lt;code&amp;gt;grafana-server.service&amp;lt;/code&amp;gt;&lt;br /&gt;
*The default configuration sets the log file at &amp;lt;code&amp;gt;/var/log/grafana/grafana.log&amp;lt;/code&amp;gt;&lt;br /&gt;
*The default configuration specifies a SQLite3 db at &amp;lt;code&amp;gt;/var/lib/grafana/grafana.db&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs HTML/JS/CSS and other Grafana files at &amp;lt;code&amp;gt;/usr/share/grafana&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Getting Started with Grafana==&lt;br /&gt;
The home for this information is here:&lt;br /&gt;
&lt;br /&gt;
https://grafana.com/docs/grafana/latest/getting-started/getting-started/&lt;br /&gt;
&lt;br /&gt;
Open a browser to your new Grafana install, in my case its '''''192.168.1.139:3000'''''&lt;br /&gt;
&lt;br /&gt;
Default user is admin/admin and it will make you change the password&lt;br /&gt;
&lt;br /&gt;
==Using this with Node Red==&lt;br /&gt;
[[Node-RED - with Grafana|Watch this space...]]&lt;br /&gt;
&lt;br /&gt;
==Connecting with InfluxDB==&lt;br /&gt;
https://grafana.com/docs/grafana/latest/datasources/influxdb/&lt;br /&gt;
&lt;br /&gt;
Open up the Web-GUI for Grafana ('''ServerName:3000'''). Log in and click on  the '''Configuration'' icon (looks like a gear) on the left tab. One of the options will be '''Data Sources'''. Click that and select '''Add Data Source'''.&lt;br /&gt;
&lt;br /&gt;
Give the data source a meaningful name. I gave mine 'InfluxDB'. Select '''InfluxDB''' under '''Time series databases'''. &lt;br /&gt;
&lt;br /&gt;
My databases are not set up for authorization or credentials since this setup will not be allowed to go play in the streets so all auth is turned off.&lt;br /&gt;
&lt;br /&gt;
This will open a screen titled '''Data Sources / InfluxDB'''&lt;br /&gt;
&lt;br /&gt;
Give this new data source a '''Name''' (or leave it as the default of '''InfluxDB''').&lt;br /&gt;
&lt;br /&gt;
Leave '''Query Language''' as the default '''InfluxQL'''.&lt;br /&gt;
&lt;br /&gt;
Fill in the '''URL''' box with the address of your database server.  (On a typical installation, with the database &amp;amp; Grafana on a single machine, this will be '''&amp;lt;nowiki&amp;gt;http://localhost:8086&amp;lt;/nowiki&amp;gt;''')&lt;br /&gt;
&lt;br /&gt;
Scroll down to '''InfluxDB Details'''.&lt;br /&gt;
&lt;br /&gt;
Put in the name of your new database.&lt;br /&gt;
&lt;br /&gt;
Put in the username and password.&lt;br /&gt;
&lt;br /&gt;
'''Optional:''' Select the type of http access you want. The simple version is '''GET'''. If you are going to be doing long requests then select ''''POST'''.&lt;br /&gt;
&lt;br /&gt;
Hit '''Save and Test'''.&lt;br /&gt;
&lt;br /&gt;
You should get a green bar that says '''Data source is working'''.&lt;br /&gt;
&lt;br /&gt;
You are connected to the proper database and all is well.&lt;br /&gt;
&lt;br /&gt;
==Oddities &amp;amp; Issues==&lt;br /&gt;
If you keep the UI web page open for a while, sometimes it'll log you out without giving ANY indication that it's done so.  If you happen to have a dashboard open that you're working on &amp;amp; try to save it, Grafana will say &amp;quot;NO!&amp;quot;.  At this point, attempting to log in will throw away your edits. &lt;br /&gt;
&lt;br /&gt;
There IS a solution! &lt;br /&gt;
&lt;br /&gt;
*Duplicate the tab&lt;br /&gt;
*Login on the duplicate tab&lt;br /&gt;
*Return to the one you were working in&lt;br /&gt;
*&amp;amp; pretend it never happened.&lt;br /&gt;
&lt;br /&gt;
And a way to decrease the annoyance (found [https://community.grafana.com/t/admin-getting-logged-out-frequently/37953/3 here]):&lt;br /&gt;
&lt;br /&gt;
*Edit the [https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/ configuration]&lt;br /&gt;
**&amp;lt;code&amp;gt;sudo vi /etc/grafana/grafana.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
*Change &amp;lt;code&amp;gt;token_rotation_interval_minutes&amp;lt;/code&amp;gt; to something larger than the default of '''10''' minutes.&lt;br /&gt;
*There also seems to be mention of changing &amp;lt;code&amp;gt;login_maximum_inactive_lifetime_days&amp;lt;/code&amp;gt; but it doesn't seem to exist. (Possibly &amp;lt;code&amp;gt;login_maximum_inactive_lifetime_duration&amp;lt;/code&amp;gt;?)&lt;br /&gt;
&lt;br /&gt;
The documentation does not seem to mention it, but I suspect you need to restart Grafana after editing the configuration...&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl start grafana-server&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=InfluxDB&amp;diff=1866</id>
		<title>InfluxDB</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=InfluxDB&amp;diff=1866"/>
		<updated>2023-03-12T22:10:01Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally written by Grant Reed&lt;br /&gt;
&lt;br /&gt;
(you will need '''curl''' &amp;amp; '''gnupg''')&lt;br /&gt;
&lt;br /&gt;
==Installing InfluxDB on Mint 19.3 and 20==&lt;br /&gt;
&lt;br /&gt;
===Start by adding it to the repository===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;echo &amp;quot;deb &amp;lt;nowiki&amp;gt;https://repos.influxdata.com/debian&amp;lt;/nowiki&amp;gt; stretch stable&amp;quot; | sudo tee /etc/apt/sources.list.d/influxdb.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Install GPG Key===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo curl -sL &amp;lt;nowiki&amp;gt;https://repos.influxdata.com/influxdb.key&amp;lt;/nowiki&amp;gt; | sudo apt-key add -&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Update the index and INSTALL===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Start, Enable and Verify it is running===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl start influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl enable influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;systemctl status influxdb&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setting up a Database==&lt;br /&gt;
This will set up an initial database to start with. This gets really deep, really fast if you are not familiar with databases or the coding behind the system. The guide for this can be found at https://docs.influxdata.com/influxdb/v1.8/introduction/get-started/ Good luck with that.&lt;br /&gt;
&lt;br /&gt;
You need to access InfluxDB so open a terminal on the machine it is hosted on (or SSH into it if that is your thing)... type in the terminal&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;influx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see a message like this:&lt;br /&gt;
&lt;br /&gt;
 $ influx -precision rfc3339&lt;br /&gt;
 Connected to &amp;lt;nowiki&amp;gt;http://localhost:8086&amp;lt;/nowiki&amp;gt; version 1.8.x&lt;br /&gt;
 InfluxDB shell 1.8.x&lt;br /&gt;
 &amp;gt;&lt;br /&gt;
A fresh install of if InfluxDB has no useable databases outside of the default internal one. So type this at the prompt, replacing &amp;lt;db-name&amp;gt; with the name you want&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;CREATE DATABASE &amp;lt;db-name&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If all went properly, you won't see any additional info, just the prompt again. Now let's make sure that the database is good just for giggles&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;SHOW DATABASES&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see your database listed. If not, something borked and I can't help you with that. &lt;br /&gt;
&lt;br /&gt;
Are you planning to use this with Grafana? You will need to set up a datasource in Grafana then. &lt;br /&gt;
&lt;br /&gt;
== Using this with Node Red ==&lt;br /&gt;
A [[Node-RED - with InfluxDB|minimum example]]&lt;br /&gt;
&lt;br /&gt;
==Using this with Grafana==&lt;br /&gt;
Set up your database in Grafana by going here... [[Grafana#Connecting with InfluxDB|Connecting with InfluxDB]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Grafana&amp;diff=1863</id>
		<title>Grafana</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Grafana&amp;diff=1863"/>
		<updated>2023-02-12T07:31:53Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Oddities &amp;amp; Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally written by Grant Reed&lt;br /&gt;
&lt;br /&gt;
==How To Install Grafana on Linux Mint 20==&lt;br /&gt;
https://grafana.com/docs/grafana/latest/installation/debian/&lt;br /&gt;
&lt;br /&gt;
Installation was tested on a fresh VM of Mint 20 so if i screwed something up, it wasn't going to be my Automation server&lt;br /&gt;
&lt;br /&gt;
There are 2 versions that could be installed -OSS and Enterprise. It is suggested by Grafana to install the Enterprise version for stability. We will be installing the latest version in this setup. Run the following in a teminal window that is local or SSH'd into your system that will host it...&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y apt-transport-https&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y software-properties-common wget&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;wget -q -O - &amp;lt;nowiki&amp;gt;https://packages.grafana.com/gpg.key&amp;lt;/nowiki&amp;gt; | sudo apt-key add -&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add the repository to the list and install===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;echo &amp;quot;deb &amp;lt;nowiki&amp;gt;https://packages.grafana.com/enterprise/deb&amp;lt;/nowiki&amp;gt; stable main&amp;quot; | sudo tee -a /etc/apt/sources.list.d/grafana.list&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install grafana-enterprise&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Start the Server===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl daemon-reload&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl start grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verify that its running properly===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl status grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Now configure it to start at boot===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl enable grafana-server.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Package details===&lt;br /&gt;
&lt;br /&gt;
*Installs binary to &amp;lt;code&amp;gt;/usr/sbin/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs Init.d script to &amp;lt;code&amp;gt;/etc/init.d/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Creates default file (environment vars) to &amp;lt;code&amp;gt;/etc/default/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs configuration file to &amp;lt;code&amp;gt;/etc/grafana/grafana.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs systemd service (if systemd is available) name &amp;lt;code&amp;gt;grafana-server.service&amp;lt;/code&amp;gt;&lt;br /&gt;
*The default configuration sets the log file at &amp;lt;code&amp;gt;/var/log/grafana/grafana.log&amp;lt;/code&amp;gt;&lt;br /&gt;
*The default configuration specifies a SQLite3 db at &amp;lt;code&amp;gt;/var/lib/grafana/grafana.db&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs HTML/JS/CSS and other Grafana files at &amp;lt;code&amp;gt;/usr/share/grafana&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Getting Started with Grafana==&lt;br /&gt;
The home for this information is here:&lt;br /&gt;
&lt;br /&gt;
https://grafana.com/docs/grafana/latest/getting-started/getting-started/&lt;br /&gt;
&lt;br /&gt;
Open a browser to your new Grafana install, in my case its '''''192.168.1.139:3000'''''&lt;br /&gt;
&lt;br /&gt;
Default user is admin/admin and it will make you change the password&lt;br /&gt;
&lt;br /&gt;
The test install login is admin/Fiddlehead&lt;br /&gt;
&lt;br /&gt;
==Using this with Node Red==&lt;br /&gt;
[[Node-RED - with Grafana|Watch this space...]]&lt;br /&gt;
&lt;br /&gt;
==Connecting with InfluxDB==&lt;br /&gt;
https://grafana.com/docs/grafana/latest/datasources/influxdb/&lt;br /&gt;
&lt;br /&gt;
Open up the Web-GUI for Grafana ('''ServerName:3000'''). Log in and click on  the '''Configuration'' icon (looks like a gear) on the left tab. One of the options will be '''Data Sources'''. Click that and select '''Add Data Source'''.&lt;br /&gt;
&lt;br /&gt;
Give the data source a meaningful name. I gave mine 'InfluxDB'. Select '''InfluxDB''' under '''Time series databases'''. &lt;br /&gt;
&lt;br /&gt;
My databases are not set up for authorization or credentials since this setup will not be allowed to go play in the streets so all auth is turned off.&lt;br /&gt;
&lt;br /&gt;
This will open a screen titled '''Data Sources / InfluxDB'''&lt;br /&gt;
&lt;br /&gt;
Give this new data source a '''Name''' (or leave it as the default of '''InfluxDB''').&lt;br /&gt;
&lt;br /&gt;
Leave '''Query Language''' as the default '''InfluxQL'''.&lt;br /&gt;
&lt;br /&gt;
Fill in the '''URL''' box with the address of your database server.  (On a typical installation, with the database &amp;amp; Grafana on a single machine, this will be '''&amp;lt;nowiki&amp;gt;http://localhost:8086&amp;lt;/nowiki&amp;gt;''')&lt;br /&gt;
&lt;br /&gt;
Scroll down to '''InfluxDB Details'''.&lt;br /&gt;
&lt;br /&gt;
Put in the name of your new database.&lt;br /&gt;
&lt;br /&gt;
Put in the username and password.&lt;br /&gt;
&lt;br /&gt;
'''Optional:''' Select the type of http access you want. The simple version is '''GET'''. If you are going to be doing long requests then select ''''POST'''.&lt;br /&gt;
&lt;br /&gt;
Hit '''Save and Test'''.&lt;br /&gt;
&lt;br /&gt;
You should get a green bar that says '''Data source is working'''.&lt;br /&gt;
&lt;br /&gt;
You are connected to the proper database and all is well.&lt;br /&gt;
&lt;br /&gt;
==Oddities &amp;amp; Issues==&lt;br /&gt;
If you keep the UI web page open for a while, sometimes it'll log you out without giving ANY indication that it's done so.  If you happen to have a dashboard open that you're working on &amp;amp; try to save it, Grafana will say &amp;quot;NO!&amp;quot;.  At this point, attempting to log in will throw away your edits. &lt;br /&gt;
&lt;br /&gt;
There IS a solution! &lt;br /&gt;
&lt;br /&gt;
*Duplicate the tab&lt;br /&gt;
*Login on the duplicate tab&lt;br /&gt;
*Return to the one you were working in&lt;br /&gt;
*&amp;amp; pretend it never happened.&lt;br /&gt;
&lt;br /&gt;
And a way to decrease the annoyance (found [https://community.grafana.com/t/admin-getting-logged-out-frequently/37953/3 here]):&lt;br /&gt;
&lt;br /&gt;
* Edit the [https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/ configuration]&lt;br /&gt;
** &amp;lt;code&amp;gt;sudo vi /etc/grafana/grafana.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change &amp;lt;code&amp;gt;token_rotation_interval_minutes&amp;lt;/code&amp;gt; to something larger than the default of '''10''' minutes.&lt;br /&gt;
* There also seems to be mention of changing &amp;lt;code&amp;gt;login_maximum_inactive_lifetime_days&amp;lt;/code&amp;gt; but it doesn't seem to exist. (Possibly &amp;lt;code&amp;gt;login_maximum_inactive_lifetime_duration&amp;lt;/code&amp;gt;?)&lt;br /&gt;
&lt;br /&gt;
The documentation does not seem to mention it, but I suspect you need to restart Grafana after editing the configuration...&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo systemctl start grafana-server&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Grafana&amp;diff=1862</id>
		<title>Grafana</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Grafana&amp;diff=1862"/>
		<updated>2023-02-12T07:02:18Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Oddities &amp;amp; Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally written by Grant Reed&lt;br /&gt;
&lt;br /&gt;
==How To Install Grafana on Linux Mint 20==&lt;br /&gt;
https://grafana.com/docs/grafana/latest/installation/debian/&lt;br /&gt;
&lt;br /&gt;
Installation was tested on a fresh VM of Mint 20 so if i screwed something up, it wasn't going to be my Automation server&lt;br /&gt;
&lt;br /&gt;
There are 2 versions that could be installed -OSS and Enterprise. It is suggested by Grafana to install the Enterprise version for stability. We will be installing the latest version in this setup. Run the following in a teminal window that is local or SSH'd into your system that will host it...&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y apt-transport-https&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y software-properties-common wget&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;wget -q -O - &amp;lt;nowiki&amp;gt;https://packages.grafana.com/gpg.key&amp;lt;/nowiki&amp;gt; | sudo apt-key add -&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add the repository to the list and install===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;echo &amp;quot;deb &amp;lt;nowiki&amp;gt;https://packages.grafana.com/enterprise/deb&amp;lt;/nowiki&amp;gt; stable main&amp;quot; | sudo tee -a /etc/apt/sources.list.d/grafana.list&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install grafana-enterprise&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Start the Server===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl daemon-reload&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl start grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verify that its running properly===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl status grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Now configure it to start at boot===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl enable grafana-server.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Package details===&lt;br /&gt;
&lt;br /&gt;
*Installs binary to &amp;lt;code&amp;gt;/usr/sbin/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs Init.d script to &amp;lt;code&amp;gt;/etc/init.d/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Creates default file (environment vars) to &amp;lt;code&amp;gt;/etc/default/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs configuration file to &amp;lt;code&amp;gt;/etc/grafana/grafana.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs systemd service (if systemd is available) name &amp;lt;code&amp;gt;grafana-server.service&amp;lt;/code&amp;gt;&lt;br /&gt;
*The default configuration sets the log file at &amp;lt;code&amp;gt;/var/log/grafana/grafana.log&amp;lt;/code&amp;gt;&lt;br /&gt;
*The default configuration specifies a SQLite3 db at &amp;lt;code&amp;gt;/var/lib/grafana/grafana.db&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs HTML/JS/CSS and other Grafana files at &amp;lt;code&amp;gt;/usr/share/grafana&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Getting Started with Grafana==&lt;br /&gt;
The home for this information is here:&lt;br /&gt;
&lt;br /&gt;
https://grafana.com/docs/grafana/latest/getting-started/getting-started/&lt;br /&gt;
&lt;br /&gt;
Open a browser to your new Grafana install, in my case its '''''192.168.1.139:3000'''''&lt;br /&gt;
&lt;br /&gt;
Default user is admin/admin and it will make you change the password&lt;br /&gt;
&lt;br /&gt;
The test install login is admin/Fiddlehead&lt;br /&gt;
&lt;br /&gt;
==Using this with Node Red==&lt;br /&gt;
[[Node-RED - with Grafana|Watch this space...]]&lt;br /&gt;
&lt;br /&gt;
==Connecting with InfluxDB==&lt;br /&gt;
https://grafana.com/docs/grafana/latest/datasources/influxdb/&lt;br /&gt;
&lt;br /&gt;
Open up the Web-GUI for Grafana ('''ServerName:3000'''). Log in and click on  the '''Configuration'' icon (looks like a gear) on the left tab. One of the options will be '''Data Sources'''. Click that and select '''Add Data Source'''.&lt;br /&gt;
&lt;br /&gt;
Give the data source a meaningful name. I gave mine 'InfluxDB'. Select '''InfluxDB''' under '''Time series databases'''. &lt;br /&gt;
&lt;br /&gt;
My databases are not set up for authorization or credentials since this setup will not be allowed to go play in the streets so all auth is turned off.&lt;br /&gt;
&lt;br /&gt;
This will open a screen titled '''Data Sources / InfluxDB'''&lt;br /&gt;
&lt;br /&gt;
Give this new data source a '''Name''' (or leave it as the default of '''InfluxDB''').&lt;br /&gt;
&lt;br /&gt;
Leave '''Query Language''' as the default '''InfluxQL'''.&lt;br /&gt;
&lt;br /&gt;
Fill in the '''URL''' box with the address of your database server.  (On a typical installation, with the database &amp;amp; Grafana on a single machine, this will be '''&amp;lt;nowiki&amp;gt;http://localhost:8086&amp;lt;/nowiki&amp;gt;''')&lt;br /&gt;
&lt;br /&gt;
Scroll down to '''InfluxDB Details'''.&lt;br /&gt;
&lt;br /&gt;
Put in the name of your new database.&lt;br /&gt;
&lt;br /&gt;
Put in the username and password.&lt;br /&gt;
&lt;br /&gt;
'''Optional:''' Select the type of http access you want. The simple version is '''GET'''. If you are going to be doing long requests then select ''''POST'''.&lt;br /&gt;
&lt;br /&gt;
Hit '''Save and Test'''.&lt;br /&gt;
&lt;br /&gt;
You should get a green bar that says '''Data source is working'''.&lt;br /&gt;
&lt;br /&gt;
You are connected to the proper database and all is well.&lt;br /&gt;
&lt;br /&gt;
==Oddities &amp;amp; Issues==&lt;br /&gt;
If you keep the UI web page open for a while, sometimes it'll log you out without giving ANY indication that it's done so.  If you happen to have a dashboard open that you're working on &amp;amp; try to save it, Grafana will say &amp;quot;NO!&amp;quot;.  At this point, attempting to log in will throw away your edits. &lt;br /&gt;
&lt;br /&gt;
There IS a solution! &lt;br /&gt;
&lt;br /&gt;
*Duplicate the tab&lt;br /&gt;
*Login on the duplicate tab&lt;br /&gt;
*Return to the one you were working in&lt;br /&gt;
*&amp;amp; pretend it never happened.&lt;br /&gt;
&lt;br /&gt;
And a way to decrease the annoyance (found [https://community.grafana.com/t/admin-getting-logged-out-frequently/37953/3 here]):&lt;br /&gt;
&lt;br /&gt;
* Edit the configuration&lt;br /&gt;
** &amp;lt;code&amp;gt;sudo vi /etc/grafana/grafana.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change &amp;lt;code&amp;gt;token_rotation_interval_minutes&amp;lt;/code&amp;gt; to something larger than the default of '''10''' minutes.&lt;br /&gt;
* There also seems to be mention of changing &amp;lt;code&amp;gt;login_maximum_inactive_lifetime_days&amp;lt;/code&amp;gt; but it doesn't seem to exist. (Possibly &amp;lt;code&amp;gt;login_maximum_inactive_lifetime_duration&amp;lt;/code&amp;gt;?)&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Grafana&amp;diff=1861</id>
		<title>Grafana</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Grafana&amp;diff=1861"/>
		<updated>2023-02-12T06:49:50Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Oddities &amp;amp; Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Originally written by Grant Reed&lt;br /&gt;
&lt;br /&gt;
==How To Install Grafana on Linux Mint 20==&lt;br /&gt;
https://grafana.com/docs/grafana/latest/installation/debian/&lt;br /&gt;
&lt;br /&gt;
Installation was tested on a fresh VM of Mint 20 so if i screwed something up, it wasn't going to be my Automation server&lt;br /&gt;
&lt;br /&gt;
There are 2 versions that could be installed -OSS and Enterprise. It is suggested by Grafana to install the Enterprise version for stability. We will be installing the latest version in this setup. Run the following in a teminal window that is local or SSH'd into your system that will host it...&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y apt-transport-https&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install -y software-properties-common wget&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;wget -q -O - &amp;lt;nowiki&amp;gt;https://packages.grafana.com/gpg.key&amp;lt;/nowiki&amp;gt; | sudo apt-key add -&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Add the repository to the list and install===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;echo &amp;quot;deb &amp;lt;nowiki&amp;gt;https://packages.grafana.com/enterprise/deb&amp;lt;/nowiki&amp;gt; stable main&amp;quot; | sudo tee -a /etc/apt/sources.list.d/grafana.list&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt-get install grafana-enterprise&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Start the Server===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl daemon-reload&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl start grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verify that its running properly===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl status grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Now configure it to start at boot===&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo systemctl enable grafana-server.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Package details===&lt;br /&gt;
&lt;br /&gt;
*Installs binary to &amp;lt;code&amp;gt;/usr/sbin/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs Init.d script to &amp;lt;code&amp;gt;/etc/init.d/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Creates default file (environment vars) to &amp;lt;code&amp;gt;/etc/default/grafana-server&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs configuration file to &amp;lt;code&amp;gt;/etc/grafana/grafana.ini&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs systemd service (if systemd is available) name &amp;lt;code&amp;gt;grafana-server.service&amp;lt;/code&amp;gt;&lt;br /&gt;
*The default configuration sets the log file at &amp;lt;code&amp;gt;/var/log/grafana/grafana.log&amp;lt;/code&amp;gt;&lt;br /&gt;
*The default configuration specifies a SQLite3 db at &amp;lt;code&amp;gt;/var/lib/grafana/grafana.db&amp;lt;/code&amp;gt;&lt;br /&gt;
*Installs HTML/JS/CSS and other Grafana files at &amp;lt;code&amp;gt;/usr/share/grafana&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Getting Started with Grafana==&lt;br /&gt;
The home for this information is here:&lt;br /&gt;
&lt;br /&gt;
https://grafana.com/docs/grafana/latest/getting-started/getting-started/&lt;br /&gt;
&lt;br /&gt;
Open a browser to your new Grafana install, in my case its '''''192.168.1.139:3000'''''&lt;br /&gt;
&lt;br /&gt;
Default user is admin/admin and it will make you change the password&lt;br /&gt;
&lt;br /&gt;
The test install login is admin/Fiddlehead&lt;br /&gt;
&lt;br /&gt;
==Using this with Node Red==&lt;br /&gt;
[[Node-RED - with Grafana|Watch this space...]]&lt;br /&gt;
&lt;br /&gt;
==Connecting with InfluxDB==&lt;br /&gt;
https://grafana.com/docs/grafana/latest/datasources/influxdb/&lt;br /&gt;
&lt;br /&gt;
Open up the Web-GUI for Grafana ('''ServerName:3000'''). Log in and click on  the '''Configuration'' icon (looks like a gear) on the left tab. One of the options will be '''Data Sources'''. Click that and select '''Add Data Source'''.&lt;br /&gt;
&lt;br /&gt;
Give the data source a meaningful name. I gave mine 'InfluxDB'. Select '''InfluxDB''' under '''Time series databases'''. &lt;br /&gt;
&lt;br /&gt;
My databases are not set up for authorization or credentials since this setup will not be allowed to go play in the streets so all auth is turned off.&lt;br /&gt;
&lt;br /&gt;
This will open a screen titled '''Data Sources / InfluxDB'''&lt;br /&gt;
&lt;br /&gt;
Give this new data source a '''Name''' (or leave it as the default of '''InfluxDB''').&lt;br /&gt;
&lt;br /&gt;
Leave '''Query Language''' as the default '''InfluxQL'''.&lt;br /&gt;
&lt;br /&gt;
Fill in the '''URL''' box with the address of your database server.  (On a typical installation, with the database &amp;amp; Grafana on a single machine, this will be '''&amp;lt;nowiki&amp;gt;http://localhost:8086&amp;lt;/nowiki&amp;gt;''')&lt;br /&gt;
&lt;br /&gt;
Scroll down to '''InfluxDB Details'''.&lt;br /&gt;
&lt;br /&gt;
Put in the name of your new database.&lt;br /&gt;
&lt;br /&gt;
Put in the username and password.&lt;br /&gt;
&lt;br /&gt;
'''Optional:''' Select the type of http access you want. The simple version is '''GET'''. If you are going to be doing long requests then select ''''POST'''.&lt;br /&gt;
&lt;br /&gt;
Hit '''Save and Test'''.&lt;br /&gt;
&lt;br /&gt;
You should get a green bar that says '''Data source is working'''.&lt;br /&gt;
&lt;br /&gt;
You are connected to the proper database and all is well.&lt;br /&gt;
&lt;br /&gt;
==Oddities &amp;amp; Issues==&lt;br /&gt;
If you keep the UI web page open for a while, sometimes it'll log you out without giving ANY indication that it's done so.  If you happen to have a dashboard open that you're working on &amp;amp; try to save it, Grafana will say &amp;quot;NO!&amp;quot;.  At this point, attempting to log in will throw away your edits. &lt;br /&gt;
&lt;br /&gt;
There IS a solution! &lt;br /&gt;
&lt;br /&gt;
*Duplicate the tab&lt;br /&gt;
*Login on the duplicate tab&lt;br /&gt;
*Return to the one you were working in&lt;br /&gt;
*&amp;amp; pretend it never happened.&lt;br /&gt;
&lt;br /&gt;
And a way to decrease the annoyance:&lt;br /&gt;
&lt;br /&gt;
* Edit the configuration&lt;br /&gt;
* sudo vi /etc/grafana/grafana.ini &lt;br /&gt;
* Change:&lt;br /&gt;
* token_rotation_interval_minutes&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=SBN_-_Database_Server_Notes&amp;diff=1860</id>
		<title>SBN - Database Server Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=SBN_-_Database_Server_Notes&amp;diff=1860"/>
		<updated>2023-02-05T05:29:24Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Reference Materials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A dedicated server Just to run MySQL...&lt;br /&gt;
&lt;br /&gt;
(Now with [[InfluxDB]] and [[Grafana]] too...  Because... Reasons...)&lt;br /&gt;
&lt;br /&gt;
Then you can simply point all the other things that use it to a central location.&lt;br /&gt;
&lt;br /&gt;
i.e.: Wikipedia, WordPress, WeeWX, etc...&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Linux Mint===&lt;br /&gt;
&lt;br /&gt;
*Mint 19.3 Seems to get MySQL 5.7.30&lt;br /&gt;
*Mint 20 Gets MySQL 8.0.20&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt install mysql-server mysql-client php-mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
**Say Yes to Continue&lt;br /&gt;
*See [[MySQL - Initial Configuration]] for configuration&lt;br /&gt;
&lt;br /&gt;
===SparkyLinux===&lt;br /&gt;
&lt;br /&gt;
*Doesn't even have MySQL in the repositories...&lt;br /&gt;
*[[Getting MySQL onto SparkyLinux]]&lt;br /&gt;
**Which then gets MySQL 8.0.21&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt install mysql-server mysql-client php-mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
**Say Yes to Continue&lt;br /&gt;
**&amp;lt;u&amp;gt;Configuring mysql-community-server&amp;lt;/u&amp;gt;&lt;br /&gt;
***Pick a good '''root''' password...&lt;br /&gt;
***I tend to select '''Use Legacy Authentication Method''' because '''Use Strong Password Encryption''' is annoying as hell.  (Your choice here...)&lt;br /&gt;
*See [[MySQL - Initial Configuration B]] for configuration&lt;br /&gt;
**(pretty much same as [[MySQL - Initial Configuration]] except the root password is already done...)&lt;br /&gt;
&lt;br /&gt;
==NON LOCALHOST ACCESS!==&lt;br /&gt;
By default, MySQL binds to 127.0.0.1...&lt;br /&gt;
&lt;br /&gt;
This is ugly, but works for now:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; change &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bind-address              = 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bind-address              = '''Machine.Domain.TLD'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set up at least one user in mysql==&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo mysql -u root -p&amp;lt;/code&amp;gt;&lt;br /&gt;
**You will be asked for '''2''' passwords, your own &amp;amp; that of the root database user.&lt;br /&gt;
&lt;br /&gt;
 CREATE USER 'someone'@'localhost' IDENTIFIED BY 'password';&lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 EXIT;&lt;br /&gt;
('''Hint:'''  This'd be a good time to create yourself as that user with your non-admin password of choice...)&lt;br /&gt;
&lt;br /&gt;
If this is to be a remotely accessed Database Server, '&amp;lt;nowiki/&amp;gt;'''localhost'&amp;lt;nowiki/&amp;gt;''' will actually be the name/address of the remote machine you'll access '''from'''. (Possibly even '&amp;lt;nowiki/&amp;gt;'''*'''')&lt;br /&gt;
&lt;br /&gt;
==Reference Materials==&lt;br /&gt;
&lt;br /&gt;
*[https://www.w3schools.com/sql/default.asp SQL Tutorial]&lt;br /&gt;
*[http://g2pc1.bu.edu/~qzpeng/manual/MySQL%20Commands.htm Commands]&lt;br /&gt;
*[https://www.freecodecamp.org/news/basic-sql-commands/ Basic SQL Commands - The List of Database Queries and Statements You Should Know]&lt;br /&gt;
*[https://linuxize.com/post/how-to-manage-mysql-databases-and-users-from-the-command-line/ How to Manage MySQL Databases and Users from the Command Line]&lt;br /&gt;
*[https://www.hostinger.com/tutorials/?s=mysql Some handy tutorials]&lt;br /&gt;
**[https://www.hostinger.com/tutorials/mysql-show-users/ How to Show Users in MySQL on Linux]&lt;br /&gt;
&lt;br /&gt;
==Useful Things==&lt;br /&gt;
&lt;br /&gt;
*Sign into MySQL&lt;br /&gt;
**&amp;lt;code&amp;gt;sudo mysql -u root -p&amp;lt;/code&amp;gt;&lt;br /&gt;
*Restart MySQL&lt;br /&gt;
**&amp;lt;code&amp;gt;sudo systemctl restart mysql.service&amp;lt;/code&amp;gt;&lt;br /&gt;
*Change a user password&lt;br /&gt;
**&amp;lt;code&amp;gt;ALTER USER 'userName'@'localhost' IDENTIFIED BY 'New-Password-Here';&amp;lt;/code&amp;gt;&lt;br /&gt;
*Create a new database&lt;br /&gt;
**&amp;lt;code&amp;gt;CREATE DATABASE db_name;&amp;lt;/code&amp;gt;&lt;br /&gt;
*Trash a complete database '''(WARNING! DANGER! DAMAGE LIKELY!)'''&lt;br /&gt;
**&amp;lt;code&amp;gt;DROP DATABASE wp_Someblog;&amp;lt;/code&amp;gt;&lt;br /&gt;
*List existing databases&lt;br /&gt;
**&amp;lt;code&amp;gt;SHOW databases;&amp;lt;/code&amp;gt;&lt;br /&gt;
*List existing users&lt;br /&gt;
**&amp;lt;code&amp;gt;SELECT user,host FROM mysql.user;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Move a database from one server to another===&lt;br /&gt;
&lt;br /&gt;
====On the originating server:====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo mysql -u root -p&amp;lt;/code&amp;gt;&lt;br /&gt;
**&amp;lt;code&amp;gt;GRANT ALL ON *.* TO 'user'@'localhost';&amp;lt;/code&amp;gt;&lt;br /&gt;
**&amp;lt;code&amp;gt;FLUSH PRIVILEGES;&amp;lt;/code&amp;gt;&lt;br /&gt;
**&amp;lt;code&amp;gt;EXIT;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;mysqldump -u user -p DBname &amp;gt; DBname.sql&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;scp DBname.sql user@Machine.Domain.TLD:~&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====On the destination server:====&lt;br /&gt;
Create the user &amp;amp; database (following the instructions for the application requiring the database)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;mysql -u user -p DBname &amp;lt; DBname.sql&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====If using a separate DB Server...====&lt;br /&gt;
Create the user &amp;amp; database on the DB Server, then log onto the application server &amp;amp;do the following&lt;br /&gt;
&lt;br /&gt;
(You may have to backtrack &amp;amp; SCP the file to the application server...  :P )&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;mysql -u user -p -h Machine.Domain.TLD DBname &amp;lt; DBname.sql&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=SBN_-_Database_Server_Notes&amp;diff=1859</id>
		<title>SBN - Database Server Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=SBN_-_Database_Server_Notes&amp;diff=1859"/>
		<updated>2023-02-05T05:22:23Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Reference Materials */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A dedicated server Just to run MySQL...&lt;br /&gt;
&lt;br /&gt;
(Now with [[InfluxDB]] and [[Grafana]] too...  Because... Reasons...)&lt;br /&gt;
&lt;br /&gt;
Then you can simply point all the other things that use it to a central location.&lt;br /&gt;
&lt;br /&gt;
i.e.: Wikipedia, WordPress, WeeWX, etc...&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
===Linux Mint===&lt;br /&gt;
&lt;br /&gt;
*Mint 19.3 Seems to get MySQL 5.7.30&lt;br /&gt;
*Mint 20 Gets MySQL 8.0.20&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt install mysql-server mysql-client php-mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
**Say Yes to Continue&lt;br /&gt;
*See [[MySQL - Initial Configuration]] for configuration&lt;br /&gt;
&lt;br /&gt;
===SparkyLinux===&lt;br /&gt;
&lt;br /&gt;
*Doesn't even have MySQL in the repositories...&lt;br /&gt;
*[[Getting MySQL onto SparkyLinux]]&lt;br /&gt;
**Which then gets MySQL 8.0.21&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo apt install mysql-server mysql-client php-mysql&amp;lt;/code&amp;gt;&lt;br /&gt;
**Say Yes to Continue&lt;br /&gt;
**&amp;lt;u&amp;gt;Configuring mysql-community-server&amp;lt;/u&amp;gt;&lt;br /&gt;
***Pick a good '''root''' password...&lt;br /&gt;
***I tend to select '''Use Legacy Authentication Method''' because '''Use Strong Password Encryption''' is annoying as hell.  (Your choice here...)&lt;br /&gt;
*See [[MySQL - Initial Configuration B]] for configuration&lt;br /&gt;
**(pretty much same as [[MySQL - Initial Configuration]] except the root password is already done...)&lt;br /&gt;
&lt;br /&gt;
==NON LOCALHOST ACCESS!==&lt;br /&gt;
By default, MySQL binds to 127.0.0.1...&lt;br /&gt;
&lt;br /&gt;
This is ugly, but works for now:&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; change &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bind-address              = 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;bind-address              = '''Machine.Domain.TLD'''&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Set up at least one user in mysql==&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo mysql -u root -p&amp;lt;/code&amp;gt;&lt;br /&gt;
**You will be asked for '''2''' passwords, your own &amp;amp; that of the root database user.&lt;br /&gt;
&lt;br /&gt;
 CREATE USER 'someone'@'localhost' IDENTIFIED BY 'password';&lt;br /&gt;
 FLUSH PRIVILEGES;&lt;br /&gt;
 EXIT;&lt;br /&gt;
('''Hint:'''  This'd be a good time to create yourself as that user with your non-admin password of choice...)&lt;br /&gt;
&lt;br /&gt;
If this is to be a remotely accessed Database Server, '&amp;lt;nowiki/&amp;gt;'''localhost'&amp;lt;nowiki/&amp;gt;''' will actually be the name/address of the remote machine you'll access '''from'''. (Possibly even '&amp;lt;nowiki/&amp;gt;'''*'''')&lt;br /&gt;
&lt;br /&gt;
==Reference Materials==&lt;br /&gt;
&lt;br /&gt;
*[http://g2pc1.bu.edu/~qzpeng/manual/MySQL%20Commands.htm Commands]&lt;br /&gt;
*[https://www.freecodecamp.org/news/basic-sql-commands/ Basic SQL Commands - The List of Database Queries and Statements You Should Know]&lt;br /&gt;
*[https://linuxize.com/post/how-to-manage-mysql-databases-and-users-from-the-command-line/ How to Manage MySQL Databases and Users from the Command Line]&lt;br /&gt;
*[https://www.hostinger.com/tutorials/?s=mysql Some handy tutorials]&lt;br /&gt;
**[https://www.hostinger.com/tutorials/mysql-show-users/ How to Show Users in MySQL on Linux]&lt;br /&gt;
&lt;br /&gt;
==Useful Things==&lt;br /&gt;
&lt;br /&gt;
*Sign into MySQL&lt;br /&gt;
**&amp;lt;code&amp;gt;sudo mysql -u root -p&amp;lt;/code&amp;gt;&lt;br /&gt;
*Restart MySQL&lt;br /&gt;
**&amp;lt;code&amp;gt;sudo systemctl restart mysql.service&amp;lt;/code&amp;gt;&lt;br /&gt;
*Change a user password&lt;br /&gt;
**&amp;lt;code&amp;gt;ALTER USER 'userName'@'localhost' IDENTIFIED BY 'New-Password-Here';&amp;lt;/code&amp;gt;&lt;br /&gt;
*Create a new database&lt;br /&gt;
**&amp;lt;code&amp;gt;CREATE DATABASE db_name;&amp;lt;/code&amp;gt;&lt;br /&gt;
*Trash a complete database '''(WARNING! DANGER! DAMAGE LIKELY!)'''&lt;br /&gt;
**&amp;lt;code&amp;gt;DROP DATABASE wp_Someblog;&amp;lt;/code&amp;gt;&lt;br /&gt;
*List existing databases&lt;br /&gt;
**&amp;lt;code&amp;gt;SHOW databases;&amp;lt;/code&amp;gt;&lt;br /&gt;
*List existing users&lt;br /&gt;
**&amp;lt;code&amp;gt;SELECT user,host FROM mysql.user;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Move a database from one server to another===&lt;br /&gt;
&lt;br /&gt;
====On the originating server:====&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo mysql -u root -p&amp;lt;/code&amp;gt;&lt;br /&gt;
**&amp;lt;code&amp;gt;GRANT ALL ON *.* TO 'user'@'localhost';&amp;lt;/code&amp;gt;&lt;br /&gt;
**&amp;lt;code&amp;gt;FLUSH PRIVILEGES;&amp;lt;/code&amp;gt;&lt;br /&gt;
**&amp;lt;code&amp;gt;EXIT;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;mysqldump -u user -p DBname &amp;gt; DBname.sql&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;scp DBname.sql user@Machine.Domain.TLD:~&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====On the destination server:====&lt;br /&gt;
Create the user &amp;amp; database (following the instructions for the application requiring the database)&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;mysql -u user -p DBname &amp;lt; DBname.sql&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====If using a separate DB Server...====&lt;br /&gt;
Create the user &amp;amp; database on the DB Server, then log onto the application server &amp;amp;do the following&lt;br /&gt;
&lt;br /&gt;
(You may have to backtrack &amp;amp; SCP the file to the application server...  :P )&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;code&amp;gt;mysql -u user -p -h Machine.Domain.TLD DBname &amp;lt; DBname.sql&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Sonoff_D1&amp;diff=1857</id>
		<title>Sonoff D1</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Sonoff_D1&amp;diff=1857"/>
		<updated>2022-12-12T04:21:26Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* J4 connexts to RX &amp;amp; TX on the ESP chip. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==First Impressions==&lt;br /&gt;
Seems pretty easy to open up.  One philips screw from the front. (Needs a skinny screwdriver tho...)&lt;br /&gt;
[[File:Sonoff D1.jpg|none|thumb|link=Special:FilePath/Sonoff_D1.jpg]]&lt;br /&gt;
First thing you see is the important part (From a hacking viewpoint).&lt;br /&gt;
[[File:Sonoff D1-Inside.jpg|none|thumb|link=Special:FilePath/Sonoff_D1-Inside.jpg]]&lt;br /&gt;
There're actually 2 boards with a 4x2 interconnect.&lt;br /&gt;
[[File:Sonoff D1-2 boards.jpg|none|thumb|link=Special:FilePath/Sonoff_D1-2_boards.jpg]]&lt;br /&gt;
[[File:Sonoff D1-between the boards.jpg|none|thumb|link=Special:FilePath/Sonoff_D1-between_the_boards.jpg]]&lt;br /&gt;
All the power stuff is on the one on the right.&lt;br /&gt;
[[File:Sonoff D1-Power top.jpg|none|thumb|link=Special:FilePath/Sonoff_D1-Power_top.jpg]]&lt;br /&gt;
The one on the left is the WiFi &amp;amp; RF board.&lt;br /&gt;
[[File:Sonoff D1-wifi + rf top.jpg|none|thumb|link=Special:FilePath/Sonoff_D1-wifi_+_rf_top.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
===There are 4 chips on the WiFi &amp;amp; RF board:===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Label&lt;br /&gt;
!Part&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|U1&lt;br /&gt;
|Eastsoft ES7P001FGSA GS34BFN404&lt;br /&gt;
|[https://translate.google.com/translate?hl=en&amp;amp;sl=zh-CN&amp;amp;u=http://www.essemi.com/product/64.html&amp;amp;prev=search 8-bit MCU?]&lt;br /&gt;
|-&lt;br /&gt;
|U2&lt;br /&gt;
|590R 1933&lt;br /&gt;
|Probably the RF chip&lt;br /&gt;
|-&lt;br /&gt;
|U3&lt;br /&gt;
|BB10 F8G A01J1J 1939 A&lt;br /&gt;
|[https://www.silabs.com/documents/public/data-sheets/efm8bb1-datasheet.pdf 8-bit MCU]&lt;br /&gt;
|-&lt;br /&gt;
|U5&lt;br /&gt;
|ESP8285&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===There are 7 test points immediately accessible on the board:===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Label&lt;br /&gt;
!Signal&lt;br /&gt;
!ESP&lt;br /&gt;
Pin&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|TP3&lt;br /&gt;
|EXT_RSTB&lt;br /&gt;
|32&lt;br /&gt;
|Possibly useful for reset when flashing?&lt;br /&gt;
|-&lt;br /&gt;
|5&lt;br /&gt;
|GPIO5&lt;br /&gt;
|24&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|GPIO4&lt;br /&gt;
|16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|0&lt;br /&gt;
|GPIO0&lt;br /&gt;
|16&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|6&lt;br /&gt;
|GPIO2&lt;br /&gt;
|14&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RX&lt;br /&gt;
|UORXD&lt;br /&gt;
|25&lt;br /&gt;
|Also connected to U3 pin 17 via 0Ω resistor R16&lt;br /&gt;
|-&lt;br /&gt;
|TX&lt;br /&gt;
|UORXD&lt;br /&gt;
|26&lt;br /&gt;
|Also connected to U3 pin 18 via 0Ω resistor R15&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===This board has 2 4-pin header locations.===&lt;br /&gt;
&lt;br /&gt;
====J1 seems to connect to U3.====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Pin&lt;br /&gt;
!Label&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|3v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|toward edge&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|C2CK&lt;br /&gt;
|U3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|C2D&lt;br /&gt;
|U3&lt;br /&gt;
|6&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|GND&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|toward centre&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====J4 connexts to RX &amp;amp; TX on the ESP chip.====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Pin&lt;br /&gt;
!Label&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|3v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|toward edge&lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|E-RX&lt;br /&gt;
|U5&lt;br /&gt;
|25&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3&lt;br /&gt;
|E-TX&lt;br /&gt;
|U5&lt;br /&gt;
|26&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|4&lt;br /&gt;
|GND&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|toward centre&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===The interconnect to the power board:===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Label&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Pin #&lt;br /&gt;
!Label&lt;br /&gt;
!Connects to&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|GND&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|BUZZER&lt;br /&gt;
|U3 pin 1&lt;br /&gt;
|toward centre&lt;br /&gt;
|-&lt;br /&gt;
|GND&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|ZERO_CROSS&lt;br /&gt;
|U3 pin 20&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|GND&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|CONTROL&lt;br /&gt;
|U3 pin 13&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|3v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|3v3&lt;br /&gt;
|&lt;br /&gt;
|toward edge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===There are 2 switch locations on the board.===&lt;br /&gt;
S1 is un-populated but seems to be for a push-button on the ESP chips GPIO0 pin.&lt;br /&gt;
&lt;br /&gt;
S2 is a slide switch labelled &amp;quot;OTA&amp;quot; (Not the default position...).  This switch appears to be accessible through a small slot in the front cover of the unit.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/arendst/Tasmota/issues/7598 Tasmota - Issues - #7598 - Support for Sonoff D1 Dimmer]&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=MediaWiki:Vector.css&amp;diff=1856</id>
		<title>MediaWiki:Vector.css</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=MediaWiki:Vector.css&amp;diff=1856"/>
		<updated>2022-12-07T00:47:17Z</updated>

		<summary type="html">&lt;p&gt;Tinker: Created page with &amp;quot;/* CSS placed here will affect users of the Vector skin */   /* Make clickable text on links invisible. */ #n-hi { color:#f6f6f6; visibility: visible; font-size:0; }  #n-hi:ho...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will affect users of the Vector skin */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* Make clickable text on links invisible. */&lt;br /&gt;
#n-hi {&lt;br /&gt;
color:#f6f6f6;&lt;br /&gt;
visibility: visible;&lt;br /&gt;
font-size:0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#n-hi:hover ::after, #n-hi ::after {&lt;br /&gt;
content: '';&lt;br /&gt;
display:inline-block;&lt;br /&gt;
width: 96px;&lt;br /&gt;
height: 96px;&lt;br /&gt;
&lt;br /&gt;
background: url('/images/0/05/Tip-jar.png');&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Every image need to have its own rule defined. */&lt;br /&gt;
&lt;br /&gt;
#n-hi::after{&lt;br /&gt;
background: url('/images/0/05/Tip-jar.png');&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#n-hi:hover ::after {&lt;br /&gt;
background: url('/images/0/05/Tip-jar.png');&lt;br /&gt;
}&lt;br /&gt;
#n-hi:hover ::after, #n-hi ::after{&lt;br /&gt;
background-repeat: no-repeat;&lt;br /&gt;
background-size: contain;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#mw-panel .portal .body #n-hi {&lt;br /&gt;
font-size:0;&lt;br /&gt;
padding:10px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=MediaWiki:Sidebar&amp;diff=1855</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=MediaWiki:Sidebar&amp;diff=1855"/>
		<updated>2022-12-07T00:12:41Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** https://www.tinkernet.ca|TinkerNet&lt;br /&gt;
** https://blarg.tinkernet.ca/|My Blog (May be NSFW at points...)&lt;br /&gt;
** IT|IT&lt;br /&gt;
** Teaching Notes|Teaching Notes&lt;br /&gt;
** IoT|IoT&lt;br /&gt;
** Electronics|Electronics&lt;br /&gt;
** Programming|Programming&lt;br /&gt;
&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
*&lt;br /&gt;
** MediaWiki:Sidebar|Sidebar Modding&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** https://www.tinkernet.ca/wiki/index.php/Main_Page|The Old Wiki&lt;br /&gt;
** TinkerLab:Main Page|LabNotes&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=MediaWiki:Sidebar&amp;diff=1854</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=MediaWiki:Sidebar&amp;diff=1854"/>
		<updated>2022-12-07T00:11:26Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** https://www.tinkernet.ca|TinkerNet&lt;br /&gt;
** https://blarg.tinkernet.ca/|My Blog (May be NSFW at points...)&lt;br /&gt;
** IT|IT&lt;br /&gt;
** Teaching Notes|Teaching Notes&lt;br /&gt;
** IoT|IoT&lt;br /&gt;
** Electronics|Electronics&lt;br /&gt;
** Programming|Programming&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
** https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=scott%40tinkernet.ca&amp;amp;item_name=Spreading+Knowledge&amp;amp;currency_code=CAD&amp;amp;source=url|hi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
*&lt;br /&gt;
** MediaWiki:Sidebar|Sidebar Modding&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** https://www.tinkernet.ca/wiki/index.php/Main_Page|The Old Wiki&lt;br /&gt;
** TinkerLab:Main Page|LabNotes&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=MediaWiki:Sidebar&amp;diff=1853</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=MediaWiki:Sidebar&amp;diff=1853"/>
		<updated>2022-12-07T00:08:53Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** https://www.tinkernet.ca|TinkerNet&lt;br /&gt;
** https://blarg.tinkernet.ca/|My Blog (May be NSFW at points...)&lt;br /&gt;
** IT|IT&lt;br /&gt;
** Teaching Notes|Teaching Notes&lt;br /&gt;
** IoT|IoT&lt;br /&gt;
** Electronics|Electronics&lt;br /&gt;
** Programming|Programming&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
*&lt;br /&gt;
** MediaWiki:Sidebar|Sidebar Modding&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** https://www.tinkernet.ca/wiki/index.php/Main_Page|The Old Wiki&lt;br /&gt;
** TinkerLab:Main Page|LabNotes&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=MediaWiki:Sidebar&amp;diff=1852</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=MediaWiki:Sidebar&amp;diff=1852"/>
		<updated>2022-12-07T00:07:01Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* navigation&lt;br /&gt;
** https://www.tinkernet.ca|TinkerNet&lt;br /&gt;
** https://blarg.tinkernet.ca/|My Blog (May be NSFW at points...)&lt;br /&gt;
** IT|IT&lt;br /&gt;
** Teaching Notes|Teaching Notes&lt;br /&gt;
** IoT|IoT&lt;br /&gt;
** Electronics|Electronics&lt;br /&gt;
** Programming|Programming&lt;br /&gt;
** https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=scott%40tinkernet.ca&amp;amp;item_name=Spreading+Knowledge&amp;amp;currency_code=CAD&amp;amp;source=url|hi&lt;br /&gt;
&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
*&lt;br /&gt;
** MediaWiki:Sidebar|Sidebar Modding&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** https://www.tinkernet.ca/wiki/index.php/Main_Page|The Old Wiki&lt;br /&gt;
** TinkerLab:Main Page|LabNotes&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=OpenVPN_Autoconnect_-_Using_PIA&amp;diff=1850</id>
		<title>OpenVPN Autoconnect - Using PIA</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=OpenVPN_Autoconnect_-_Using_PIA&amp;diff=1850"/>
		<updated>2022-06-16T05:28:42Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Autoconnect PIA VPN on Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Autoconnect PIA VPN on Boot===&lt;br /&gt;
&lt;br /&gt;
Create the OpenVPN autoconnect init.d startup script file&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo vim /etc/init.d/openvpnauto&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paste this OpenVPN autoconnect startup script, if you do not want to use Sweden.ovpn then replace it in the &amp;lt;code&amp;gt;DAEMON_OPTS&amp;lt;/code&amp;gt; line&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
### BEGIN INIT INFO&lt;br /&gt;
# Provides:          OpenVPN Autoconnect&lt;br /&gt;
# Required-Start:    $local_fs $remote_fs $network&lt;br /&gt;
# Required-Stop:     $local_fs $remote_fs $network&lt;br /&gt;
# Default-Start:     2 3 4 5&lt;br /&gt;
# Default-Stop:      0 1 6&lt;br /&gt;
# Short-Description: OpenVPN Autoconnect&lt;br /&gt;
# Description:       OpenVPN Autoconnect&lt;br /&gt;
### END INIT INFO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Documentation available at&lt;br /&gt;
# http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptfunc.html&lt;br /&gt;
# Debian provides some extra functions though&lt;br /&gt;
. /lib/lsb/init-functions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
DAEMON_NAME=&amp;quot;openvpnauto&amp;quot;&lt;br /&gt;
DAEMON_USER=root&lt;br /&gt;
DAEMON_PATH=&amp;quot;/usr/sbin/openvpn&amp;quot;&lt;br /&gt;
DAEMON_OPTS=&amp;quot;--config /etc/openvpn/Sweden.ovpn --auth-user-pass /etc/openvpn/login.txt&amp;quot;&lt;br /&gt;
DAEMON_PWD=&amp;quot;/etc/openvpn&amp;quot;&lt;br /&gt;
DAEMON_DESC=$(get_lsb_header_val $0 &amp;quot;Short-Description&amp;quot;)&lt;br /&gt;
DAEMON_PID=&amp;quot;/var/run/${DAEMON_NAME}.pid&amp;quot;&lt;br /&gt;
DAEMON_NICE=0&lt;br /&gt;
DAEMON_LOG='/var/log/openvpnauto.log'&lt;br /&gt;
&lt;br /&gt;
[ -r &amp;quot;/etc/default/${DAEMON_NAME}&amp;quot; ] &amp;amp;&amp;amp; . &amp;quot;/etc/default/${DAEMON_NAME}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
do_start() {&lt;br /&gt;
  local result&lt;br /&gt;
&lt;br /&gt;
    pidofproc -p &amp;quot;${DAEMON_PID}&amp;quot; &amp;quot;${DAEMON_PATH}&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
    if [ $? -eq 0 ]; then&lt;br /&gt;
        log_warning_msg &amp;quot;${DAEMON_NAME} is already started&amp;quot;&lt;br /&gt;
        result=0&lt;br /&gt;
    else&lt;br /&gt;
        log_daemon_msg &amp;quot;Starting ${DAEMON_DESC}&amp;quot; &amp;quot;${DAEMON_NAME}&amp;quot;&lt;br /&gt;
        touch &amp;quot;${DAEMON_LOG}&amp;quot;&lt;br /&gt;
        chown $DAEMON_USER &amp;quot;${DAEMON_LOG}&amp;quot;&lt;br /&gt;
        chmod u+rw &amp;quot;${DAEMON_LOG}&amp;quot;&lt;br /&gt;
        if [ -z &amp;quot;${DAEMON_USER}&amp;quot; ]; then&lt;br /&gt;
            start-stop-daemon --start --quiet --oknodo --background \&lt;br /&gt;
                --nicelevel $DAEMON_NICE \&lt;br /&gt;
                --chdir &amp;quot;${DAEMON_PWD}&amp;quot; \&lt;br /&gt;
                --pidfile &amp;quot;${DAEMON_PID}&amp;quot; --make-pidfile \&lt;br /&gt;
                --exec &amp;quot;${DAEMON_PATH}&amp;quot; -- $DAEMON_OPTS&lt;br /&gt;
            result=$?&lt;br /&gt;
        else&lt;br /&gt;
            start-stop-daemon --start --quiet --oknodo --background \&lt;br /&gt;
                --nicelevel $DAEMON_NICE \&lt;br /&gt;
                --chdir &amp;quot;${DAEMON_PWD}&amp;quot; \&lt;br /&gt;
                --pidfile &amp;quot;${DAEMON_PID}&amp;quot; --make-pidfile \&lt;br /&gt;
                --chuid &amp;quot;${DAEMON_USER}&amp;quot; \&lt;br /&gt;
                --exec &amp;quot;${DAEMON_PATH}&amp;quot; -- $DAEMON_OPTS&lt;br /&gt;
            result=$?&lt;br /&gt;
        fi&lt;br /&gt;
        log_end_msg $result&lt;br /&gt;
    fi&lt;br /&gt;
    return $result&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
do_stop() {&lt;br /&gt;
    local result&lt;br /&gt;
&lt;br /&gt;
    pidofproc -p &amp;quot;${DAEMON_PID}&amp;quot; &amp;quot;${DAEMON_PATH}&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
    if [ $? -ne 0 ]; then&lt;br /&gt;
        log_warning_msg &amp;quot;${DAEMON_NAME} is not started&amp;quot;&lt;br /&gt;
        result=0&lt;br /&gt;
    else&lt;br /&gt;
        log_daemon_msg &amp;quot;Stopping ${DAEMON_DESC}&amp;quot; &amp;quot;${DAEMON_NAME}&amp;quot;&lt;br /&gt;
        killproc -p &amp;quot;${DAEMON_PID}&amp;quot; &amp;quot;${DAEMON_PATH}&amp;quot;&lt;br /&gt;
        result=$?&lt;br /&gt;
        log_end_msg $result&lt;br /&gt;
        rm &amp;quot;${DAEMON_PID}&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
    return $result&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
do_restart() {&lt;br /&gt;
    local result&lt;br /&gt;
    do_stop&lt;br /&gt;
    result=$?&lt;br /&gt;
    if [ $result = 0 ]; then&lt;br /&gt;
        do_start&lt;br /&gt;
        result=$?&lt;br /&gt;
    fi&lt;br /&gt;
    return $result&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
do_status() {&lt;br /&gt;
    local result&lt;br /&gt;
    status_of_proc -p &amp;quot;${DAEMON_PID}&amp;quot; &amp;quot;${DAEMON_PATH}&amp;quot; &amp;quot;${DAEMON_NAME}&amp;quot;&lt;br /&gt;
    result=$?&lt;br /&gt;
    return $result&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
do_usage() {&lt;br /&gt;
    echo $&amp;quot;Usage: $0 {start | stop | restart | status}&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
start)   do_start;   exit $?&amp;amp;nbsp;;;&lt;br /&gt;
stop)    do_stop;    exit $?&amp;amp;nbsp;;;&lt;br /&gt;
restart) do_restart; exit $?&amp;amp;nbsp;;;&lt;br /&gt;
status)  do_status;  exit $?&amp;amp;nbsp;;;&lt;br /&gt;
*)       do_usage;   exit  1&amp;amp;nbsp;;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable the '''OpenVPN PIA Autoconnect''' script&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo chmod +x /etc/init.d/openvpnauto&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;systemctl enable openvpnauto&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;amp; for some reason I've forgotten:&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo update-rc.d openvpnauto defaults 98&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you can connect to PIA’s VPN automatically by running&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo service openvpnauto start&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can retest your IP to verify it’s not your ISP’s IP address&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;wget http://ipinfo.io/ip -qO -&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If it is not your regular IP shown on [http://whatsmyip.org whatsmyip.org] then you can reboot and test your IP address again&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo reboot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Test your IP again and compare it to [http://whatsmyip.org whatsmyip.org]’s result&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;wget &amp;lt;nowiki&amp;gt;http://ipinfo.io/ip&amp;lt;/nowiki&amp;gt; -qO -&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you’ve set up installing and autoconnecting to Private Internet Access VPN on Linux on boot&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=SBN_-_Media_Server_Notes&amp;diff=1847</id>
		<title>SBN - Media Server Notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=SBN_-_Media_Server_Notes&amp;diff=1847"/>
		<updated>2022-05-25T19:10:17Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Installing Plex */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Installing Plex==&lt;br /&gt;
[https://www.plex.tv/ Plex]&lt;br /&gt;
&lt;br /&gt;
[https://www.howtoforge.com/tutorial/how-to-install-and-setup-plex-media-server-ubuntu-1604/ Installation &amp;amp; setup according to HowToForge]&lt;br /&gt;
&lt;br /&gt;
Or...&lt;br /&gt;
&lt;br /&gt;
Just download the .deb file of the latest version&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;open [http://MediaServer:32400/web MediaServer:32400/web] &amp;amp; follow the instructions...&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''BROKEN News:'''  As of 2022/05/24, it appears you have to access the media server by '''IP''' not '''FQDN''' or it won't let you do the configuration...&lt;br /&gt;
&lt;br /&gt;
==Managing the Plex Server==&lt;br /&gt;
&lt;br /&gt;
===Commands to Manually Start and Stop Plex via SSH on Linux===&lt;br /&gt;
&lt;br /&gt;
*sudo service plexmediaserver start&lt;br /&gt;
&lt;br /&gt;
*sudo service plexmediaserver stop&lt;br /&gt;
&lt;br /&gt;
*sudo service plexmediaserver restart&lt;br /&gt;
&lt;br /&gt;
==Work In Progress==&lt;br /&gt;
===Phlex (integrating Plex with Google Home)===&lt;br /&gt;
&lt;br /&gt;
[https://forums.plex.tv/discussion/252910/wip-google-home-plex-integration-and-couchpotato-and-sonarr#latest Flex TV]&lt;br /&gt;
&lt;br /&gt;
Using [https://www.apachefriends.org/index.html XAMPP]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size:smaller&amp;quot;&amp;gt;[https://www.apachefriends.org/faq_linux.html XAMPP Linux FAQ]&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Download the latest XAMPP&lt;br /&gt;
*&amp;lt;code&amp;gt;chmod 755 xampp-linux-*-installer.run&amp;lt;/code&amp;gt;&lt;br /&gt;
*&amp;lt;code&amp;gt;sudo ./xampp-linux-*-installer.run&amp;lt;/code&amp;gt;&lt;br /&gt;
*XAMPP is now up &amp;amp; running&lt;br /&gt;
*(installs in '''/opt/lampp)'''&lt;br /&gt;
*point a browser at [http://Draal Draal]&lt;br /&gt;
*You should see the default XAMPP page&lt;br /&gt;
&lt;br /&gt;
Installing [https://github.com/d8ahazard/Phlex Phlex]&lt;br /&gt;
&lt;br /&gt;
*grab the [https://github.com/d8ahazard/Phlex/archive/master.zip Phlex stuff from github]&lt;br /&gt;
*&amp;amp;nbsp;&lt;br /&gt;
*extract the whole silly thing to the '''/opt/lampp/htdocs/Phlex''' folder&lt;br /&gt;
*Seems to need permissions fixed... '''chmod -R ugo+rwx /opt/lampp''' seems to do it... &amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;'''ugly!'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration&lt;br /&gt;
&lt;br /&gt;
*point a browser at [http://Draal/Phlex Draal/Phlex]&lt;br /&gt;
*log in using your Plex user credentials&lt;br /&gt;
*click the little gear icon&lt;br /&gt;
*Public Address is automatically set to http://draal/Phlex&lt;br /&gt;
*'''It Fails'''&lt;br /&gt;
&lt;br /&gt;
===[http://kodi.wiki/view/Main_Page Kodi Media Center]===&lt;br /&gt;
&lt;br /&gt;
*[https://www.tvaddons.ag/kodi-addons/show/plugin.video.exodus/ Exodus]&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting Plex oddities==&lt;br /&gt;
===Rule #1===&lt;br /&gt;
People on the Internet are stupid.  Don't trust them to have valid answers to simple questions.&lt;br /&gt;
===Plex Error Code s1001===&lt;br /&gt;
&lt;br /&gt;
*'''Check the file FIRST'''&lt;br /&gt;
**If it's unreasonably small...  This might be a hint you should go find a repack to download.&lt;br /&gt;
*There is '''NEVER''' a need to remove plex &amp;amp; reinstall with an outdated version.&lt;br /&gt;
*The Plex database rarely gets corrupted unless something seriously bad has happened to your server.&lt;br /&gt;
&lt;br /&gt;
===Plex can easily Run Out of Space &amp;amp; Die.===&lt;br /&gt;
&lt;br /&gt;
*Plex puts its datastore in /var/lib... &amp;amp; it's BLOODY HUGE! &lt;br /&gt;
**(This is easy to solve... but do it BEFORE populating the libraries)&lt;br /&gt;
&lt;br /&gt;
===Plex fails to see Some of the Media===&lt;br /&gt;
&lt;br /&gt;
*Plex needs specific permissions on datastores (particularly mounted volumes). &lt;br /&gt;
**sudo chmod -R ugo+rwX /mnt/foobar&lt;br /&gt;
&lt;br /&gt;
===Plex displays incorrect information about media...=== &lt;br /&gt;
&lt;br /&gt;
*[https://support.plex.tv/articles/201018497-fix-match-match/ Fix Match / Match]&lt;br /&gt;
&lt;br /&gt;
===Plex refuses to beleive it's connected to the internet===&lt;br /&gt;
&lt;br /&gt;
Sometimes, when I try to tell it to &amp;quot;Scan Library Files&amp;quot;, it pops up a dialog saying:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;An internet connection is required to scan library files. Please check this server's connection and try again.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is kinda sill when you figure it needs to be online for me to connect to it.&lt;br /&gt;
&lt;br /&gt;
====Solution:====&lt;br /&gt;
&lt;br /&gt;
SSH into the server &amp;amp; enter:&lt;br /&gt;
&lt;br /&gt;
*sudo service plexmediaserver restart&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Main_Page&amp;diff=1846</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Main_Page&amp;diff=1846"/>
		<updated>2022-05-16T19:48:03Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Tbrun2.png|512px|Tbrun2.png|alt=&amp;quot;Aaarrrggg!&amp;quot;|right]]&lt;br /&gt;
&amp;lt;strong&amp;gt;&amp;lt;big&amp;gt;Welcome to the TinkerNet Wiki!&amp;lt;/big&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''[[SBN - Building Notes|Web &amp;amp; Wiki Installs &amp;amp; Stuff]]'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;'''[[IoT - ESP-Everything!|The ESP-Everything! project]]'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mostly it ain't filled in yet...&lt;br /&gt;
&lt;br /&gt;
(getting there tho...)&lt;br /&gt;
&lt;br /&gt;
[[File:Uokpl.rs-tip-jar-png-4283629.png|left|frameless|81x81px|alt=&amp;quot;Go ahead, buy me a beer :)&amp;quot;|link=https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=scott%40tinkernet.ca&amp;amp;item_name=Spreading+Knowledge&amp;amp;currency_code=CAD&amp;amp;source=url]] If you're desperately searching for something that hasn't made it into this version yet, you can still go hunting on [https://www.tinkernet.ca/wiki/index.php/Main_Page the old wiki]. If that fails you &amp;amp; what you remember seeing has vanished...  It's most likely sitting in Lab Notes waiting for cleanup, corrections &amp;amp; expansion.  Feel free to [[contact me]] &amp;amp; I'll see about moving it here quicker.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;There is some [[weird testing]] going on&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1845</id>
		<title>Hypervisors - Proxmox</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1845"/>
		<updated>2022-05-10T16:19:23Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Get non-paid Proxmox to actually do updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.proxmox.com/en/ Proxmox Web Site]&lt;br /&gt;
&lt;br /&gt;
[https://t310.tinkernet.ca:8006/ '''&amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;User Interface&amp;lt;/span&amp;gt;'''] (on the test server...)&lt;br /&gt;
&lt;br /&gt;
=Learning Proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;WIP&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring==&lt;br /&gt;
It's based on Debian, so... See [[NerdWiki:Mini Debian|Minimal Debian]] for hints about Debian&lt;br /&gt;
&lt;br /&gt;
===Fixing oddities===&lt;br /&gt;
====Get rid of the bloody subscription notice====&lt;br /&gt;
[https://johnscs.com/remove-proxmox51-subscription-notice/ Remove Proxmox Subscription Notice]&lt;br /&gt;
&lt;br /&gt;
Basically:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sed -Ezi.bak &amp;quot;s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g&amp;quot; /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js &amp;amp;&amp;amp; systemctl restart pveproxy.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Get non-paid Proxmox to actually do updates====&lt;br /&gt;
By default, Proxmox enables '''http://enterprise.proxmox.com/debian/pve''' as its update repository.&lt;br /&gt;
&lt;br /&gt;
You have to have a '''PAID''' subscription to use this repository...&lt;br /&gt;
&lt;br /&gt;
Updates '''FAIL''' if this repository is enabled.&lt;br /&gt;
&lt;br /&gt;
To fix this, you must MANUALLY edit '''/etc/apt/sources.list''' (Don't know WHY it can't be added in the GUI...)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/apt/sources.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; add in:&lt;br /&gt;
&lt;br /&gt;
 # PVE pve-no-subscription repository provided by proxmox.com,&lt;br /&gt;
 # NOT recommended for production use&lt;br /&gt;
 deb &amp;lt;nowiki&amp;gt;http://download.proxmox.com/debian/pve&amp;lt;/nowiki&amp;gt; bullseye pve-no-subscription&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
* Sign into the GUI&lt;br /&gt;
* Select your 'Node'&lt;br /&gt;
* Select 'Repositories'&lt;br /&gt;
* Select 'https://enterprise.proxmox.com/debian/pve'&lt;br /&gt;
* Hit the 'Disable' button&lt;br /&gt;
&lt;br /&gt;
(Sure would be nice if this could either be completely done on the command line or done automatically during install...)&lt;br /&gt;
&lt;br /&gt;
====Server addressing via DHCP instead of static====&lt;br /&gt;
Edit the interfaces file:&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; change &lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet static&lt;br /&gt;
         address 192.168.8.12/23&lt;br /&gt;
         gateway 192.168.8.1&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet dhcp&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
Then ignore the address it shows on the console. (Until I figure out where in hell it's storing that...)&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1844</id>
		<title>Hypervisors - Proxmox</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1844"/>
		<updated>2022-04-29T00:35:19Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Get rid of the bloody subscription notice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.proxmox.com/en/ Proxmox Web Site]&lt;br /&gt;
&lt;br /&gt;
[https://t310.tinkernet.ca:8006/ '''&amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;User Interface&amp;lt;/span&amp;gt;'''] (on the test server...)&lt;br /&gt;
&lt;br /&gt;
=Learning Proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;WIP&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring==&lt;br /&gt;
It's based on Debian, so... See [[NerdWiki:Mini Debian|Minimal Debian]] for hints about Debian&lt;br /&gt;
&lt;br /&gt;
===Fixing oddities===&lt;br /&gt;
====Get rid of the bloody subscription notice====&lt;br /&gt;
[https://johnscs.com/remove-proxmox51-subscription-notice/ Remove Proxmox Subscription Notice]&lt;br /&gt;
&lt;br /&gt;
Basically:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;sed -Ezi.bak &amp;quot;s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g&amp;quot; /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js &amp;amp;&amp;amp; systemctl restart pveproxy.service&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Get non-paid Proxmox to actually do updates====&lt;br /&gt;
By default, Proxmox enables '''http://enterprise.proxmox.com/debian/pve''' as its update repository.&lt;br /&gt;
&lt;br /&gt;
You have to have a '''PAID''' subscription to use this repository...&lt;br /&gt;
&lt;br /&gt;
Updates '''FAIL''' if this repository is enabled.&lt;br /&gt;
&lt;br /&gt;
To fix this, you must MANUALLY edit '''/etc/apt/sources.list''' (Don't know WHY it can't be added in the GUI...)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/apt/sources.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; add in:&lt;br /&gt;
&lt;br /&gt;
 # PVE pve-no-subscription repository provided by proxmox.com,&lt;br /&gt;
 # NOT recommended for production use&lt;br /&gt;
 deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
* Sign into the GUI&lt;br /&gt;
* Select your 'Node'&lt;br /&gt;
* Select 'Repositories'&lt;br /&gt;
* Select 'https://enterprise.proxmox.com/debian/pve'&lt;br /&gt;
* Hit the 'Disable' button&lt;br /&gt;
&lt;br /&gt;
(Sure would be nice if this could either be completely done on the command line or done automatically during install...)&lt;br /&gt;
&lt;br /&gt;
====Server addressing via DHCP instead of static====&lt;br /&gt;
Edit the interfaces file:&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; change &lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet static&lt;br /&gt;
         address 192.168.8.12/23&lt;br /&gt;
         gateway 192.168.8.1&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet dhcp&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
Then ignore the address it shows on the console. (Until I figure out where in hell it's storing that...)&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1843</id>
		<title>Hypervisors - Proxmox</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1843"/>
		<updated>2022-04-29T00:30:45Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Configuring */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.proxmox.com/en/ Proxmox Web Site]&lt;br /&gt;
&lt;br /&gt;
[https://t310.tinkernet.ca:8006/ '''&amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;User Interface&amp;lt;/span&amp;gt;'''] (on the test server...)&lt;br /&gt;
&lt;br /&gt;
=Learning Proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;WIP&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring==&lt;br /&gt;
It's based on Debian, so... See [[NerdWiki:Mini Debian|Minimal Debian]] for hints about Debian&lt;br /&gt;
&lt;br /&gt;
===Fixing oddities===&lt;br /&gt;
====Get rid of the bloody subscription notice====&lt;br /&gt;
[https://johnscs.com/remove-proxmox51-subscription-notice/ Remove Proxmox Subscription Notice]&lt;br /&gt;
====Get non-paid Proxmox to actually do updates====&lt;br /&gt;
By default, Proxmox enables '''http://enterprise.proxmox.com/debian/pve''' as its update repository.&lt;br /&gt;
&lt;br /&gt;
You have to have a '''PAID''' subscription to use this repository...&lt;br /&gt;
&lt;br /&gt;
Updates '''FAIL''' if this repository is enabled.&lt;br /&gt;
&lt;br /&gt;
To fix this, you must MANUALLY edit '''/etc/apt/sources.list''' (Don't know WHY it can't be added in the GUI...)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/apt/sources.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; add in:&lt;br /&gt;
&lt;br /&gt;
 # PVE pve-no-subscription repository provided by proxmox.com,&lt;br /&gt;
 # NOT recommended for production use&lt;br /&gt;
 deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
* Sign into the GUI&lt;br /&gt;
* Select your 'Node'&lt;br /&gt;
* Select 'Repositories'&lt;br /&gt;
* Select 'https://enterprise.proxmox.com/debian/pve'&lt;br /&gt;
* Hit the 'Disable' button&lt;br /&gt;
&lt;br /&gt;
(Sure would be nice if this could either be completely done on the command line or done automatically during install...)&lt;br /&gt;
&lt;br /&gt;
====Server addressing via DHCP instead of static====&lt;br /&gt;
Edit the interfaces file:&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; change &lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet static&lt;br /&gt;
         address 192.168.8.12/23&lt;br /&gt;
         gateway 192.168.8.1&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet dhcp&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
Then ignore the address it shows on the console. (Until I figure out where in hell it's storing that...)&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1842</id>
		<title>Hypervisors - Proxmox</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1842"/>
		<updated>2022-04-28T22:52:10Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.proxmox.com/en/ Proxmox Web Site]&lt;br /&gt;
&lt;br /&gt;
[https://t310.tinkernet.ca:8006/ '''&amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;User Interface&amp;lt;/span&amp;gt;'''] (on the test server...)&lt;br /&gt;
&lt;br /&gt;
=Learning Proxmox=&lt;br /&gt;
&lt;br /&gt;
==Installing==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;WIP&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring==&lt;br /&gt;
===Fixing oddities===&lt;br /&gt;
====Get rid of the bloody subscription notice====&lt;br /&gt;
[https://johnscs.com/remove-proxmox51-subscription-notice/ Remove Proxmox Subscription Notice]&lt;br /&gt;
====Get non-paid Proxmox to actually do updates====&lt;br /&gt;
By default, Proxmox enables '''http://enterprise.proxmox.com/debian/pve''' as its update repository.&lt;br /&gt;
&lt;br /&gt;
You have to have a '''PAID''' subscription to use this repository...&lt;br /&gt;
&lt;br /&gt;
Updates '''FAIL''' if this repository is enabled.&lt;br /&gt;
&lt;br /&gt;
To fix this, you must MANUALLY edit '''/etc/apt/sources.list''' (Don't know WHY it can't be added in the GUI...)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/apt/sources.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; add in:&lt;br /&gt;
&lt;br /&gt;
 # PVE pve-no-subscription repository provided by proxmox.com,&lt;br /&gt;
 # NOT recommended for production use&lt;br /&gt;
 deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
* Sign into the GUI&lt;br /&gt;
* Select your 'Node'&lt;br /&gt;
* Select 'Repositories'&lt;br /&gt;
* Select 'https://enterprise.proxmox.com/debian/pve'&lt;br /&gt;
* Hit the 'Disable' button&lt;br /&gt;
&lt;br /&gt;
(Sure would be nice if this could either be completely done on the command line or done automatically during install...)&lt;br /&gt;
&lt;br /&gt;
====Server addressing via DHCP instead of static====&lt;br /&gt;
Edit the interfaces file:&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; change &lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet static&lt;br /&gt;
         address 192.168.8.12/23&lt;br /&gt;
         gateway 192.168.8.1&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet dhcp&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
Then ignore the address it shows on the console. (Until I figure out where in hell it's storing that...)&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1841</id>
		<title>Hypervisors - Proxmox</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1841"/>
		<updated>2022-04-28T22:51:22Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.proxmox.com/en/ Proxmox Web Site]&lt;br /&gt;
&lt;br /&gt;
[https://forum.proxmox.com/threads/ve_host-web-interface-setup-for-dhcp.27481/ VE_Host (web interface) setup for DHCP]&lt;br /&gt;
&lt;br /&gt;
[https://t310.tinkernet.ca:8006/ '''&amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;User Interface&amp;lt;/span&amp;gt;'''] (on the test server...)&lt;br /&gt;
=Learning Proxmox=&lt;br /&gt;
==Installing==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;WIP&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring==&lt;br /&gt;
===Fixing oddities===&lt;br /&gt;
====Get rid of the bloody subscription notice====&lt;br /&gt;
[https://johnscs.com/remove-proxmox51-subscription-notice/ Remove Proxmox Subscription Notice]&lt;br /&gt;
====Get non-paid Proxmox to actually do updates====&lt;br /&gt;
By default, Proxmox enables '''http://enterprise.proxmox.com/debian/pve''' as its update repository.&lt;br /&gt;
&lt;br /&gt;
You have to have a '''PAID''' subscription to use this repository...&lt;br /&gt;
&lt;br /&gt;
Updates '''FAIL''' if this repository is enabled.&lt;br /&gt;
&lt;br /&gt;
To fix this, you must MANUALLY edit '''/etc/apt/sources.list''' (Don't know WHY it can't be added in the GUI...)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/apt/sources.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; add in:&lt;br /&gt;
&lt;br /&gt;
 # PVE pve-no-subscription repository provided by proxmox.com,&lt;br /&gt;
 # NOT recommended for production use&lt;br /&gt;
 deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
* Sign into the GUI&lt;br /&gt;
* Select your 'Node'&lt;br /&gt;
* Select 'Repositories'&lt;br /&gt;
* Select 'https://enterprise.proxmox.com/debian/pve'&lt;br /&gt;
* Hit the 'Disable' button&lt;br /&gt;
&lt;br /&gt;
(Sure would be nice if this could either be completely done on the command line or done automatically during install...)&lt;br /&gt;
&lt;br /&gt;
====Server addressing via DHCP instead of static====&lt;br /&gt;
Edit the interfaces file:&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; change &lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet static&lt;br /&gt;
         address 192.168.8.12/23&lt;br /&gt;
         gateway 192.168.8.1&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet dhcp&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
Then ignore the address it shows on the console. (Until I figure out where in hell it's storing that...)&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1840</id>
		<title>Hypervisors - Proxmox</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1840"/>
		<updated>2022-04-28T22:50:15Z</updated>

		<summary type="html">&lt;p&gt;Tinker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.proxmox.com/en/ Proxmox Web Site]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-bX0zMCWEIs Proxmox VE 5.3 Install on Lenovo x3650 M5 Rack Server (Morton Hjorth)]&lt;br /&gt;
&lt;br /&gt;
[https://www.jamescoyle.net/how-to/614-remove-the-proxmox-no-subscription-message Remove the Proxmox “No Valid Subscription” message]&lt;br /&gt;
&lt;br /&gt;
[https://forum.proxmox.com/threads/ve_host-web-interface-setup-for-dhcp.27481/ VE_Host (web interface) setup for DHCP]&lt;br /&gt;
&lt;br /&gt;
[https://t310.tinkernet.ca:8006/ '''&amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;User Interface&amp;lt;/span&amp;gt;'''] (on the test server...)&lt;br /&gt;
=Learning Proxmox=&lt;br /&gt;
==Installing==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;WIP&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring==&lt;br /&gt;
===Fixing oddities===&lt;br /&gt;
====Get rid of the bloody subscription notice====&lt;br /&gt;
[https://johnscs.com/remove-proxmox51-subscription-notice/ Remove Proxmox Subscription Notice]&lt;br /&gt;
====Get non-paid Proxmox to actually do updates====&lt;br /&gt;
By default, Proxmox enables '''http://enterprise.proxmox.com/debian/pve''' as its update repository.&lt;br /&gt;
&lt;br /&gt;
You have to have a '''PAID''' subscription to use this repository...&lt;br /&gt;
&lt;br /&gt;
Updates '''FAIL''' if this repository is enabled.&lt;br /&gt;
&lt;br /&gt;
To fix this, you must MANUALLY edit '''/etc/apt/sources.list''' (Don't know WHY it can't be added in the GUI...)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/apt/sources.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; add in:&lt;br /&gt;
&lt;br /&gt;
 # PVE pve-no-subscription repository provided by proxmox.com,&lt;br /&gt;
 # NOT recommended for production use&lt;br /&gt;
 deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
* Sign into the GUI&lt;br /&gt;
* Select your 'Node'&lt;br /&gt;
* Select 'Repositories'&lt;br /&gt;
* Select 'https://enterprise.proxmox.com/debian/pve'&lt;br /&gt;
* Hit the 'Disable' button&lt;br /&gt;
&lt;br /&gt;
(Sure would be nice if this could either be completely done on the command line or done automatically during install...)&lt;br /&gt;
&lt;br /&gt;
====Server addressing via DHCP instead of static====&lt;br /&gt;
Edit the interfaces file:&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; change &lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet static&lt;br /&gt;
         address 192.168.8.12/23&lt;br /&gt;
         gateway 192.168.8.1&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet dhcp&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
Then ignore the address it shows on the console. (Until I figure out where in hell it's storing that...)&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1839</id>
		<title>Hypervisors - Proxmox</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1839"/>
		<updated>2022-04-28T22:37:33Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Installing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.proxmox.com/en/ Proxmox Web Site]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-bX0zMCWEIs Proxmox VE 5.3 Install on Lenovo x3650 M5 Rack Server (Morton Hjorth)]&lt;br /&gt;
&lt;br /&gt;
[https://www.jamescoyle.net/how-to/614-remove-the-proxmox-no-subscription-message Remove the Proxmox “No Valid Subscription” message]&lt;br /&gt;
&lt;br /&gt;
[https://forum.proxmox.com/threads/ve_host-web-interface-setup-for-dhcp.27481/ VE_Host (web interface) setup for DHCP]&lt;br /&gt;
&lt;br /&gt;
[https://t110.tinkernow.net:8006/ '''&amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;User Interface&amp;lt;/span&amp;gt;'''] (on the test server...)&lt;br /&gt;
=Learning Proxmox=&lt;br /&gt;
==Installing==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;WIP&amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring==&lt;br /&gt;
===Fixing oddities===&lt;br /&gt;
====Get rid of the bloody subscription notice====&lt;br /&gt;
[https://johnscs.com/remove-proxmox51-subscription-notice/ Remove Proxmox Subscription Notice]&lt;br /&gt;
====Get non-paid Proxmox to actually do updates====&lt;br /&gt;
By default, Proxmox enables '''http://enterprise.proxmox.com/debian/pve''' as its update repository.&lt;br /&gt;
&lt;br /&gt;
You have to have a '''PAID''' subscription to use this repository...&lt;br /&gt;
&lt;br /&gt;
Updates '''FAIL''' if this repository is enabled.&lt;br /&gt;
&lt;br /&gt;
To fix this, you must MANUALLY edit '''/etc/apt/sources.list''' (Don't know WHY it can't be added in the GUI...)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/apt/sources.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; add in:&lt;br /&gt;
&lt;br /&gt;
 # PVE pve-no-subscription repository provided by proxmox.com,&lt;br /&gt;
 # NOT recommended for production use&lt;br /&gt;
 deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
* Sign into the GUI&lt;br /&gt;
* Select your 'Node'&lt;br /&gt;
* Select 'Repositories'&lt;br /&gt;
* Select 'https://enterprise.proxmox.com/debian/pve'&lt;br /&gt;
* Hit the 'Disable' button&lt;br /&gt;
&lt;br /&gt;
(Sure would be nice if this could either be completely done on the command line or done automatically during install...)&lt;br /&gt;
&lt;br /&gt;
====Server addressing via DHCP instead of static====&lt;br /&gt;
Edit the interfaces file:&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; change &lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet static&lt;br /&gt;
         address 192.168.8.12/23&lt;br /&gt;
         gateway 192.168.8.1&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet dhcp&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
Then ignore the address it shows on the console. (Until I figure out where in hell it's storing that...)&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1838</id>
		<title>Hypervisors - Proxmox</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_Proxmox&amp;diff=1838"/>
		<updated>2022-04-28T22:35:27Z</updated>

		<summary type="html">&lt;p&gt;Tinker: Created page with &amp;quot;[https://www.proxmox.com/en/ Proxmox Web Site]  [https://www.youtube.com/watch?v=-bX0zMCWEIs Proxmox VE 5.3 Install on Lenovo x3650 M5 Rack Server (Morton Hjorth)]  [https://w...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://www.proxmox.com/en/ Proxmox Web Site]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-bX0zMCWEIs Proxmox VE 5.3 Install on Lenovo x3650 M5 Rack Server (Morton Hjorth)]&lt;br /&gt;
&lt;br /&gt;
[https://www.jamescoyle.net/how-to/614-remove-the-proxmox-no-subscription-message Remove the Proxmox “No Valid Subscription” message]&lt;br /&gt;
&lt;br /&gt;
[https://forum.proxmox.com/threads/ve_host-web-interface-setup-for-dhcp.27481/ VE_Host (web interface) setup for DHCP]&lt;br /&gt;
&lt;br /&gt;
[https://t110.tinkernow.net:8006/ '''&amp;lt;span style=&amp;quot;font-size:larger&amp;quot;&amp;gt;User Interface&amp;lt;/span&amp;gt;'''] (on the test server...)&lt;br /&gt;
=Learning Proxmox=&lt;br /&gt;
==Installing==&lt;br /&gt;
==Configuring==&lt;br /&gt;
===Fixing oddities===&lt;br /&gt;
====Get rid of the bloody subscription notice====&lt;br /&gt;
[https://johnscs.com/remove-proxmox51-subscription-notice/ Remove Proxmox Subscription Notice]&lt;br /&gt;
====Get non-paid Proxmox to actually do updates====&lt;br /&gt;
By default, Proxmox enables '''http://enterprise.proxmox.com/debian/pve''' as its update repository.&lt;br /&gt;
&lt;br /&gt;
You have to have a '''PAID''' subscription to use this repository...&lt;br /&gt;
&lt;br /&gt;
Updates '''FAIL''' if this repository is enabled.&lt;br /&gt;
&lt;br /&gt;
To fix this, you must MANUALLY edit '''/etc/apt/sources.list''' (Don't know WHY it can't be added in the GUI...)&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/apt/sources.list&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; add in:&lt;br /&gt;
&lt;br /&gt;
 # PVE pve-no-subscription repository provided by proxmox.com,&lt;br /&gt;
 # NOT recommended for production use&lt;br /&gt;
 deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
* Sign into the GUI&lt;br /&gt;
* Select your 'Node'&lt;br /&gt;
* Select 'Repositories'&lt;br /&gt;
* Select 'https://enterprise.proxmox.com/debian/pve'&lt;br /&gt;
* Hit the 'Disable' button&lt;br /&gt;
&lt;br /&gt;
(Sure would be nice if this could either be completely done on the command line or done automatically during install...)&lt;br /&gt;
&lt;br /&gt;
====Server addressing via DHCP instead of static====&lt;br /&gt;
Edit the interfaces file:&lt;br /&gt;
* &amp;lt;code&amp;gt;vi /etc/network/interfaces&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp; change &lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet static&lt;br /&gt;
         address 192.168.8.12/23&lt;br /&gt;
         gateway 192.168.8.1&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 auto vmbr0&lt;br /&gt;
 iface vmbr0 inet dhcp&lt;br /&gt;
         bridge-ports eno1&lt;br /&gt;
         bridge-stp off&lt;br /&gt;
         bridge-fd 0&lt;br /&gt;
&lt;br /&gt;
Then ignore the address it shows on the console. (Until I figure out where in hell it's storing that...)&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=IT&amp;diff=1837</id>
		<title>IT</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=IT&amp;diff=1837"/>
		<updated>2022-04-28T22:31:43Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* ESXi Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*'''&amp;lt;big&amp;gt;Have you tried turning the user off and back on again?&amp;lt;/big&amp;gt;'''&amp;lt;big&amp;gt;(Support techs everywhere)&amp;lt;/big&amp;gt;&lt;br /&gt;
*'''&amp;lt;big&amp;gt;This is computing and the rules of voodo apply...&amp;lt;/big&amp;gt;'''&amp;lt;big&amp;gt;&amp;amp;nbsp; (Patrick Norton - 2018)&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Operating Systems==&lt;br /&gt;
&lt;br /&gt;
*[[OS - Linux|Linux]]&lt;br /&gt;
*[[OS - Windows|Windows]]&lt;br /&gt;
*[[OS - MacOS|MacOS]]&lt;br /&gt;
&lt;br /&gt;
==Hypervisors==&lt;br /&gt;
&lt;br /&gt;
*[[Hypervisors - ESXi|ESXi]]&lt;br /&gt;
*[[Hypervisors - Proxmox|Proxmox]]&lt;br /&gt;
*[[Hypervisors - unRAID|unRAID]]&lt;br /&gt;
&lt;br /&gt;
==Network Management==&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color: rgb(153, 204, 0); color: rgb(0, 0, 255);&amp;quot; data-mce-style=&amp;quot;background-color: #99cc00; color: #0000ff;&amp;quot;&amp;gt;'''&amp;lt;big&amp;gt;Now on Wiki.NerdMage.Ca&amp;lt;/big&amp;gt;'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[[NetMan - pfSense|pfSense]]&lt;br /&gt;
*[[NetMan - Dynamic DNS|Dynamic DNS]]&lt;br /&gt;
*[[NetMan - SSL Certs|SSL Certs]]&lt;br /&gt;
*[[NetMan - VPN|VPN]]&lt;br /&gt;
*[[NetMan - nmap|nmap]]&lt;br /&gt;
&lt;br /&gt;
==Machine-Machine Communication==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color: rgb(153, 204, 0); color: rgb(0, 0, 255);&amp;quot; data-mce-style=&amp;quot;background-color: #99cc00; color: #0000ff;&amp;quot;&amp;gt;'''&amp;lt;big&amp;gt;Now on Wiki.NerdMage.Ca&amp;lt;/big&amp;gt;'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[[SSH]]&lt;br /&gt;
&lt;br /&gt;
==Useful Utilities &amp;amp; Such==&lt;br /&gt;
&lt;br /&gt;
*[[USB drive handling]]&lt;br /&gt;
&lt;br /&gt;
==Server Building==&lt;br /&gt;
Start off with the usual update of the repositories...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SBN - Building Notes|Server Building Notes]]&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_ESXi&amp;diff=1836</id>
		<title>Hypervisors - ESXi</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=Hypervisors_-_ESXi&amp;diff=1836"/>
		<updated>2022-04-28T22:31:23Z</updated>

		<summary type="html">&lt;p&gt;Tinker: Created page with &amp;quot;==ESXi Notes== [https://www.youtube.com/watch?v=KW1fRVgOoUU&amp;amp;list=PLS2odYzlaogI1B8ejt7itMOovAqpiLkvU Why virtualize your server infrastructure (Morton Hjorth)]  *[https://docs....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==ESXi Notes==&lt;br /&gt;
[https://www.youtube.com/watch?v=KW1fRVgOoUU&amp;amp;list=PLS2odYzlaogI1B8ejt7itMOovAqpiLkvU Why virtualize your server infrastructure (Morton Hjorth)]&lt;br /&gt;
&lt;br /&gt;
*[https://docs.vmware.com/en/VMware-Tools/11.1.0/com.vmware.vsphere.vmwaretools.doc/GUID-8B6EA5B7-453B-48AA-92E5-DB7F061341D1.html Open VM Tools]&lt;br /&gt;
*[[ESXi - Licensing|Licensing]]&lt;br /&gt;
*[[ESXi - UPS Handling|UPS Handling]]&lt;br /&gt;
*[[ESXi from the Command Line]]&lt;br /&gt;
*[[ESXi - Passwordless SSH|Passwordless SSH]]&lt;br /&gt;
*[[ESXI - WebUI Through a Proxy|WebUI Through a Proxy]]&lt;br /&gt;
*[[ESXi - ghettoVCB|ghettoVCB]]&lt;br /&gt;
*[[ESXi - Add cron Job|Add cron Job]]&lt;br /&gt;
*Allowing SSH &amp;amp; SCP between ESXi Hosts&lt;br /&gt;
**SSH Client must be enabled in the ESXi firewall (for the outbound connection)&lt;br /&gt;
**[https://4sysops.com/archives/how-to-open-and-close-firewall-ports-on-vmware-esxi-hosts/ How to Open and Close Firewall Ports on vmWare ESXi Hosts]&lt;br /&gt;
*[[ESXi - MQTT client tools|Making ESXi talk MQTT]]&lt;br /&gt;
*[[ESXi - Troubleshooting|Troubleshooting]]&lt;br /&gt;
*[[ESXi - Various Observations|Various Observations]]&lt;br /&gt;
*[[SSL - ESXi|SSL Certificates]]&lt;br /&gt;
*[http://www.vmwarearena.com/how-to-copy-files-between-esxi-hosts-using-scp-command/ How to Copy files between ESXi hosts using SCP Command]&lt;br /&gt;
*[https://www.firewall.cx/general-topics-reviews/virtualization-vm-backup/1259-vmware-esxi-invalid-status-virtual-machine.html HOW TO FIX VMWARE ESXI VIRTUAL MACHINE 'INVALID STATUS']&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.tinkernet.ca/index.php?title=IT&amp;diff=1835</id>
		<title>IT</title>
		<link rel="alternate" type="text/html" href="https://wiki.tinkernet.ca/index.php?title=IT&amp;diff=1835"/>
		<updated>2022-04-28T22:30:19Z</updated>

		<summary type="html">&lt;p&gt;Tinker: /* Operating Systems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*'''&amp;lt;big&amp;gt;Have you tried turning the user off and back on again?&amp;lt;/big&amp;gt;'''&amp;lt;big&amp;gt;(Support techs everywhere)&amp;lt;/big&amp;gt;&lt;br /&gt;
*'''&amp;lt;big&amp;gt;This is computing and the rules of voodo apply...&amp;lt;/big&amp;gt;'''&amp;lt;big&amp;gt;&amp;amp;nbsp; (Patrick Norton - 2018)&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Operating Systems==&lt;br /&gt;
&lt;br /&gt;
*[[OS - Linux|Linux]]&lt;br /&gt;
*[[OS - Windows|Windows]]&lt;br /&gt;
*[[OS - MacOS|MacOS]]&lt;br /&gt;
&lt;br /&gt;
==Hypervisors==&lt;br /&gt;
&lt;br /&gt;
*[[Hypervisors - ESXi|ESXi]]&lt;br /&gt;
*[[Hypervisors - Proxmox|Proxmox]]&lt;br /&gt;
*[[Hypervisors - unRAID|unRAID]]&lt;br /&gt;
&lt;br /&gt;
==Network Management==&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color: rgb(153, 204, 0); color: rgb(0, 0, 255);&amp;quot; data-mce-style=&amp;quot;background-color: #99cc00; color: #0000ff;&amp;quot;&amp;gt;'''&amp;lt;big&amp;gt;Now on Wiki.NerdMage.Ca&amp;lt;/big&amp;gt;'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[[NetMan - pfSense|pfSense]]&lt;br /&gt;
*[[NetMan - Dynamic DNS|Dynamic DNS]]&lt;br /&gt;
*[[NetMan - SSL Certs|SSL Certs]]&lt;br /&gt;
*[[NetMan - VPN|VPN]]&lt;br /&gt;
*[[NetMan - nmap|nmap]]&lt;br /&gt;
&lt;br /&gt;
==Machine-Machine Communication==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;background-color: rgb(153, 204, 0); color: rgb(0, 0, 255);&amp;quot; data-mce-style=&amp;quot;background-color: #99cc00; color: #0000ff;&amp;quot;&amp;gt;'''&amp;lt;big&amp;gt;Now on Wiki.NerdMage.Ca&amp;lt;/big&amp;gt;'''&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[[SSH]]&lt;br /&gt;
&lt;br /&gt;
==Useful Utilities &amp;amp; Such==&lt;br /&gt;
&lt;br /&gt;
*[[USB drive handling]]&lt;br /&gt;
&lt;br /&gt;
==Server Building==&lt;br /&gt;
Start off with the usual update of the repositories...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;apt update&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SBN - Building Notes|Server Building Notes]]&lt;br /&gt;
&lt;br /&gt;
==ESXi Notes==&lt;br /&gt;
[https://www.youtube.com/watch?v=KW1fRVgOoUU&amp;amp;list=PLS2odYzlaogI1B8ejt7itMOovAqpiLkvU Why virtualize your server infrastructure (Morton Hjorth)]&lt;br /&gt;
&lt;br /&gt;
*[https://docs.vmware.com/en/VMware-Tools/11.1.0/com.vmware.vsphere.vmwaretools.doc/GUID-8B6EA5B7-453B-48AA-92E5-DB7F061341D1.html Open VM Tools]&lt;br /&gt;
*[[ESXi - Licensing|Licensing]]&lt;br /&gt;
*[[ESXi - UPS Handling|UPS Handling]]&lt;br /&gt;
*[[ESXi from the Command Line]]&lt;br /&gt;
*[[ESXi - Passwordless SSH|Passwordless SSH]]&lt;br /&gt;
*[[ESXI - WebUI Through a Proxy|WebUI Through a Proxy]]&lt;br /&gt;
*[[ESXi - ghettoVCB|ghettoVCB]]&lt;br /&gt;
*[[ESXi - Add cron Job|Add cron Job]]&lt;br /&gt;
*Allowing SSH &amp;amp; SCP between ESXi Hosts&lt;br /&gt;
**SSH Client must be enabled in the ESXi firewall (for the outbound connection)&lt;br /&gt;
**[https://4sysops.com/archives/how-to-open-and-close-firewall-ports-on-vmware-esxi-hosts/ How to Open and Close Firewall Ports on vmWare ESXi Hosts]&lt;br /&gt;
*[[ESXi - MQTT client tools|Making ESXi talk MQTT]]&lt;br /&gt;
*[[ESXi - Troubleshooting|Troubleshooting]]&lt;br /&gt;
*[[ESXi - Various Observations|Various Observations]]&lt;br /&gt;
*[[SSL - ESXi|SSL Certificates]]&lt;br /&gt;
*[http://www.vmwarearena.com/how-to-copy-files-between-esxi-hosts-using-scp-command/ How to Copy files between ESXi hosts using SCP Command]&lt;br /&gt;
*[https://www.firewall.cx/general-topics-reviews/virtualization-vm-backup/1259-vmware-esxi-invalid-status-virtual-machine.html HOW TO FIX VMWARE ESXI VIRTUAL MACHINE 'INVALID STATUS']&lt;/div&gt;</summary>
		<author><name>Tinker</name></author>
		
	</entry>
</feed>