Achtergrond: Techniek voor nerds

Achtergrond: Techniek voor nerds
Dit is hoe Poekie (2001 - 2022) de website gebouwd zou hebben.

De website die je nu bezoekt staat niet geparkeerd in één of andere vage cloud van een twijfelachtige amerikaanse webdienst. Nee: je bezoekt nu letterlijk het huis van het bruidspaar. Erik-Jan was er maar druk mee. Voor wie dat leuk vind lees je hieronder een uitleg hoe de site werkt. Dit is allemaal niet relevant voor de bruiloft verder, maar wel lekker nerdy.

Dit is waar je nu eigenlijk bent: dit kastje is waar de website op draait (en ja, dat ding daaronder is een Nintendo GameCube en daarnaast een PS2)

Stap 1: Hardware

Om je eigen website te draaien heb je een computer nodig die continu aan staat. Een logische keuze zou zijn om hier een NAS voor te gebruiken want die zijn daar op gebouwd. Maar nee, het moest een zelfbouw mini-PC worden die ook gebruikt wordt om allerlei andere diensten op te draaien zoals Home Assistant om slimme apparaten lokaal te besturen, Nextcloud voor foto's en documenten en Kodi voor streaming en TV. Op de foto zie je de zelf in elkaar gezette behuizing die in een hoekje naast de router staat. Wat er in het kastje zit? Een Hardkernel Odroid H3 single board computer uitgerust met 256 GB NVME + 2 TB SSD en 64 Gb RAM. Een pluspunt is dat deze single board computer niet zo veel stroom verbruikt in standby. De netwerk-kant zit ook wel snor: zowel de Odroid als de router hebben een 2.5 GB/s poort.

ODROID-H3 – ODROID
ODROID-H3 has same form factor and similar power efficiency as their predecessor, the ODROID-H2+. But, H3 is more powerful, offers higher performance. With great compatibility, a brand new x86 64-bit single board computer with large memory capacity and advanced IO ports. Intel® Quad-Core Processor Jasper Lake N5105 has a base clock of 2GHz and a boost clock of 2.9GHz with 1.5 MB L2 and 4 MB L3 cache by a 10 nm process. Up to 64GB Dual-channel Memory DDR4 PC4-23400 (2933MT/s) Two SO-DIMM slots, up to 32GB per slot PCIe 3.0 x 4 lanes for one M.2 NVMe storage 2 x 2.5Gbit Ethernet ports 2 x SATA 3.0 ports SSE4.2 accelerator (SMM, FPU, NX, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AES) Intel UHD Graphics 24 EUs Turbo 800MHz(H3+:900MHz) HDMI 2.0 and DP 1.2 multiple video outputs A configurable Unlimited Performance mode allowing the CPU to run in sustained turbo boost mode. RTC / BIOS backup battery is included   Board Detail A. CPU (Intel Celeron N5105) B. 2 x DDR4 SO-DIMM slots (Dual channel memory support) C. 1 x M.2 PCI Express Module Socket (NGFF-2280) D. 1 x eMMC (Embedded Multimedia-Card) Socket E. 2 x SATA Power Connectors (2.5mm pitch, JST-XH compatible connector) F. 2 x SATA3 6.0 Gb/s Data Connectors G. 1 x DC Power Jack H. 2 x USB 3.0 I. 2 x USB 2.0 J. 1 x HDMI 2.0 K. 1 x DisplayPort 1.2 L. 2 x RJ45 Ethernet Ports (10/100/1000/2500) M. 5 x System LED Indicators N. 1 x Peripheral Expansion Header (24-pin) O. 1 x Power Switch P. 1 x Reset Switch Q. 1 x Backup Battery Connector (2-pin) R. 1 x Active Cooling Fan Connector (4-pin) S. 1 x Audio out, 1 x Audio in, 1 x SPDIF out     How to distinguish the board H3 : Green round sticker is attached on the product serial label. H3+ : Yellow round sticker is attached on the product serial label. Or, QC PASS sticker is attached. H3 H3+     Specifications Processor Intel Celeron N5105(H3+: N6005) Processor (10nm, Quad-Core, TDP 10W) H3(N5105) : up to 2.9GhzH3+(N6005) : up to 3.3Ghz 4MB L2 Cache Intel UHD Graphics (24/32 EU up to 900MHz) Memory 2 x DDR4 1.2V SO-DIMM slots Dual Channel, up to 2933 MT/s (DDR4-PC23400) Max memory capacity 64GB DDR3/DDR5 are not supported Storage 1 x eMMC connector (bootable and selectable on BIOS) Various eMMC modules can be purchased at Hardkernel store 2 x SATA3 6Gbps ( SATA Port-Multiplier is NOT compatible ) 1 x M.2 slot (PCIe 3.0 x 4, supports NGFF-2280 cards) M.2 SATA SSD is not supported Networking 2 x GbE LAN ports (RJ45, supports 10/100/1000/2500 Mbps) Realtek RTL8125B Supports Wake-On-Lan LED indicators (Green: Link, Amber: Traffic) Video 1 x DisplayPort 1.2 (up to 4K@60Hz) 1 x HDMI 2.0 (up to 4K@60Hz) Dual simultaneous display support Audio 1 x Audio out (3.5mm jack) 1 x Audio in (3.5mm jack) 1 x SPDIF out (ALC1200, HDA codec) * HDMI & DP have audio output too. External I/O 2 x USB 3.0 Host ports 2 x USB 2.0 Host ports 1 x Peripheral Expansion Header (24-pin, 2.54mm pitch) – 1 x DC 5V, 1 x DC 3.3V, 5 x GND – 1 x UART (TXD/RXD/RTS/CTS) – 2 x I2C (SCL/SDA) – 1 x External Power Button – HDMI CEC via add-on board, 5VA+ – Three USB 2.0 ports – All 3.3V I/O signal level Other features Passive Heatsink BIOS Backup Battery – Maintains system time and BIOS settings Power Button Reset Button System LEDS Indicators: – Red (PWR) - Solid light when DC power is supplied – Blue (left, SLEEP) - turns off only when the system enters into suspend mode – Blue (right, PMIC) - turns on only when the major power rails are working – Amber (SATA) - Flashes when SATA data transfers – Green (NVMe) - Flashes when NVMe data transfers Active Cooling Fan Connector (12V 4-pin, PWM input + TACHO output) – Active Cooling Fan is optional – Connector (4-pin, 2.54mm pitch) Power DC jack : outer (ground) diameter 5.5mm, inner(positive) diameter 2.1mm DC 14V ~ 20V (up to 60W) – DC 15V/4A power adapter is recommended if you don’t use two 3.5“ HDDs – DC 19V/7A power adapter is recommended if you two 3.5” HDDs together Power consumption: – IDLE : ≃1..9W – CPU Stress : ≃15W – CPU+GPU Stress : ≃18W – Power-off : ≃0.25W – Suspend : ≃0.6W Form Factor 110mm x 110mm x 47mm Approx. Caution!! ODROID boards do not support the hotplug function of storage devices, and replacing SATA, eMMC, or NVMe while the system power is on will cause serious damage to the board and devices.   Installation https://wiki.odroid.com/odroid-h3/start#installation   WIKI https://wiki.odroid.com/odroid-h3/start   Introduction https://dn.odroid.com/ODROID-H2/H3_pics/H3_H3+_Introduction.pdf     GTIN : 8809543642461     The terms HDMI, HDMI High-Definition Multimedia Interface, HDMI Trade dress and the HDMI Logos are trademarks or registered trademarks of HDMI Licensing Administrator, Inc. HDMI, HDMI High-Definition Multimedia Interface(고화질 멀티미디어 인터페이스), HDMI 트레이드 드레스 및 HDMI 로고라는 용어는 HDMI Licensing Administrator, Inc.의 상표 또는 등록 상표입니다.   Compatible Products Wishlist Quick View Connectivity NetCard 3 for H-series $68.00 Add to cart Wishlist Quick View Display ODROID-VU12 $120.00 Add to cart Wishlist Quick View Connectivity M.2 2×2 Card $10.00 Add to cart Wishlist Quick View Connectivity Net Card 2 for H-series $47.00 Add to cart Wishlist Quick View Memories 256GB eMMC Module for H-series $49.00 Add to cart Wishlist Quick View x86 ODROID-H3 $129.00 Add to cart Wishlist Quick View Cooler 92x92x25mm DC Cooling Fan w/ PWM, Speed Sensor (Tacho) $5.00 Add to cart Sale! Wishlist Quick View Memories Samsung 4GB DDR4 PC4-25600 SO-DIMM $19.00 Original price was: $19.00.$14.00Current price is: $14.00. Add to cart Sale! Wishlist Quick View Memories Samsung 8GB DDR4 PC4-25600 SO-DIMM $28.50 Original price was: $28.50.$26.00Current price is: $26.00. Add to cart Sale! Wishlist Quick View Memories Samsung 16GB DDR4 PC4-25600 SO-DIMM $53.00 Original price was: $53.00.$49.00Current price is: $49.00. Add to cart Sale! Wishlist Quick View Memories Samsung 32GB DDR4 PC4-25600 SO-DIMM $107.00 Original price was: $107.00.$99.00Current price is: $99.00. Add to cart Wishlist Quick View Cases ODROID-H3 Case Type 1 $20.00 Add to cart Wishlist Quick View Cases ODROID-H3 Case Type 2 $10.00 Add to cart Wishlist Quick View Cases ODROID-H3 Case Type 3 $16.00 Add to cart Wishlist Quick View Cases ODROID-H3 Case Type 4 $20.00 Add to cart Wishlist Quick View Cases ODROID-H3 Case Type 5 $20.00 Add to cart Wishlist Quick View Cases ODROID-H3 Case Type 6 $16.00 Add to cart Wishlist Quick View Cases ODROID-H3 Case Type 7 $20.00 Add to cart Wishlist Quick View Power Supply & Battery 19V/7A Power Supply $25.00 Add to cart Wishlist Quick View Memories 128GB eMMC Module for H-series $35.00 Add to cart Wishlist Quick View Power Supply & Battery 15V/4A power supply Australia plug $9.40 Add to cart Wishlist Quick View Power Supply & Battery 15V/4A power supply Asia/Korea plug $9.40 Add to cart Wishlist Quick View Power Supply & Battery 15V/4A power supply UK plug $9.40 Add to cart Wishlist Quick View Power Supply & Battery 15V/4A power supply EU plug $9.40 Add to cart Wishlist Quick View Power Supply & Battery 15V/4A power supply US plug $9.40 Add to cart Wishlist Quick View Cases VESA Mount Kit $4.50 Add to cart Wishlist Quick View Memories 64GB eMMC Module for H-series $29.00 Add to cart Wishlist Quick View Memories 16GB eMMC Module for H-series $13.00 Add to cart Wishlist Quick View Memories 8GB eMMC Module for H-series $9.90 Add to cart Wishlist Quick View Memories 32GB eMMC Module for H-series $19.00 Add to cart Wishlist Quick View Display I2C 20×4 LCD Module $6.50 Add to cart Wishlist Quick View Cables SATA Data and Power Cable 200mm $3.00 Add to cart Wishlist Quick View Out of stock Power Supply & Battery LED Power Button $4.90 Read more Wishlist Quick View Cables High Speed 4K HDMI 2.0 Cable (Type A-A) $2.70 Add to cart Wishlist Quick View Connectivity USB GPS Module $20.00 Add to cart Wishlist Quick View Power Supply & Battery RTC Backup Battery $2.50 Add to cart Wishlist Quick View Display ODROID-VU5A : 5inch HDMI display with Multi-touch and Audio capability $55.00 Add to cart

Voor alle specs van deze SBC kun je hier terecht.

Software

Er zijn verschillende manieren om dingen te hosten. Ik heb - op aanraden van de kenners in de Nurdspace - gekozen voor Docker. Hier leerde ik dat een thuisserver is niet iets wat je instelt en dat het dan werkt, maar een soort tamagochi die telkens weer dingen moet. Updates, reboots, conflicten die opgelost moeten worden, iets met DNS, etc. Een hobby erbij, Jeej!! Dus dan kan je maar beter een omgeving kiezen waarin dat een beetje handig te regelen is. In mijn docker config draaien ondertussen 26 diensten.

Voor deze website had ik daar 3 verschillende containers/programma's voor nodig:

  • Het CMS (Content Management Systeem) waarin je pagina's, posts en layouts kunt maken en beheren. Er zijn verschillende open-source programma's beschikbaar waarvan de bekendste WordPress is. Zelf heb ik gekozen voor een wat kleinere, en meer modern programma van een aantal mensen uit het Wordpress team: Ghost CMS.
Ghost: The best open source blog & newsletter platform
Beautiful, modern publishing with email newsletters and paid subscriptions built-in. Used by Platformer, 404Media, Lever News, Tangle, The Browser, and thousands more.
  • De reverse proxy zorgt ervoor dat alle content die met Ghost gemaakt is op een snelle en betrouwbare manier uitgeserveerd wordt, Nginx en Apache zijn daar de de go-to programma's voor. Normaal gesproken is de nginx proxy wat tussen de content en de domeinnaam op het internet in staat, maar in dit geval wijst het naar localhost:280.
  • Op de Nurdspace draait een Pangolin server. Het team achter pangolin heeft een volle bingokaart aan IT-termen nodig om dit stukje software te beschrijven. De makers: "Pangolin is a self-hosted tunneled reverse proxy server with identity and access control, designed to securely expose private resources on distributed networks¨ . Simpeler gezegd: Dit is waar de website de s in https meekrijgt, en waarom ik niet zo bang ben dat de trouwwebsite gehacked wordt. De verbinding met de Pangolin server in de Nurdspace draait via een "tunnel" die Newt heet.
GitHub - fosrl/newt: A tunneling client for Pangolin
A tunneling client for Pangolin. Contribute to fosrl/newt development by creating an account on GitHub.

Hosting

Dit is het minst spannende gedeelte eigenlijk, op allerlei websites kun je een domeinnaam kopen en - verrassend genoeg - was banaanweb.nl nog beschikbaar. Het leuke van een eigen domeinnaam hebben is dat je met voorvoegsels eigenlijk veel meer dan 1 website kunt hebben. Je bent nu op bruiloft.banaanweb.nl maar er is ook bijvoorbeeld een nextcloud.banaanweb.nl waar Irene en ik een soort van google-drive / teams achtige omgeving hebben. Binnenkort hoop ik een eigen AI chatbot te hosten. Je raad het al: die krijgt ook z'n eigen banaanweb URL.

Hoe weet je dit allemaal?

De helft is aanprutsen en YouTube tutorials volgen, maar de andere helft zijn de vriendelijke computer-heads van de Nurdspace. Wanneer ik het kapot maak dan hoor ik op de woensdagavond in de Nurdspace hoe het weer te repareren. En die Pangolin server had ik zelf echt nooit kunnen bedenken of opzetten.

Over prutsen gesproken: Ik wil je vooral meegeven om zelf lekker te gaan prutsen met techniek. En vooral door te blijven prutsen als het kapot gaat of niet in 1x lukt. Voordat ik dit kon maken heb ik een paar jaar geleden eerst met een 32-bit Asus eee-box en Ubuntu 18.04 geprobeerd een LAMP servertje te bouwen. Dat was toen te hoog gegrepen maar ik heb daar wel van geleerd hoe het dan wél kan (en hoe SSH, bash en permissions in unix-omgevingen werken).

Ik zou zelfs willen zeggen dat je meer leert van prutsen (en nog meer van samen prutsen!) dan van het lezen van de handleiding, maar ik heb geen handleidingen of documentatie echt gelezen voor het maken van dit alles ;) . Wat het getrouwde leven ons ook gaat brengen: E-J prutst, tweakt, harkt, klust en knutselt trots door.