4-article-tgtimes-most-minimal-gopher-server.md - tgtimes - The Gopher Times HTML git clone git://bitreich.org/tgtimes git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/tgtimes DIR Log DIR Files DIR Refs DIR Tags DIR README --- 4-article-tgtimes-most-minimal-gopher-server.md (2360B) --- 1 # Most minimal Gopher server by tgtimes 2 3 Gopher is a protocol providing a gateway to a document system, allowing 4 to serve an organized hierarchy of files over the network. Dynamically 5 generating the content as per user requests is also possible. The client 6 side is in charge of rendering the content as it sees fit. 7 8 Generating Gopher indexes and transmitting file contents or generated 9 contents is low in software compmlexity, and in turn allows less expensive 10 hardware to be run than complex web stacks. 11 12 Which cost would we end-up for building a minimal piece of hardware able 13 to host the Gopher protocol acheiving all of the above? 14 The Gopher Times investigates. 15 16 ## Communication 17 While WiFi is inexpensive and fits moving device gracefully, the 18 reliability of Ethernet is indicated for a server. Ethernet adds 19 1 USD of cost for the transceiver handling the electricial characteristics 20 of Ethernet. These typically expose an RGMII interface. 21 22 ## Processing 23 A microcontroller featuring an Ethernet peripheral (with an RGMII 24 interface) could be the popular STM32F103, or an alternative 25 compatible part. Enough processing power would be present for an 26 embedded TCP/IP and a TLS stack. 27 28 ## Automation 29 In addition, most microcontrollers feature a large range of 30 built-in peripheral such as timers and communication or analog 31 interfaces, enabling automation of devices such as lighting, 32 heating, laundry, motors, or an entire car, through external 33 modules. This would come for no extra cost. 34 35 ## Storage 36 A slot for a MicroSD card would allow storing and updating 37 the static content to serve, and storing network configuration. 38 39 ## Scripting 40 There exist project to fit programming languages onto microcontrollers. 41 Separate projects for supporting a subset of each of Python, Ruby, 42 Javscript, Go, Rust, Lua, Forth and more. 43 44 ## Power 45 By letting power supply happen through the USB port, a large range 46 of power source can be used, such as battery, solar panels, wind 47 turbine, hydropower, or power outlet. 48 49 The bill of materials for such a design would approximate 5 USD. 50 A marketed device with a small margin for the seller could reach 51 as low as 10 USD. 52 53 Interestingly, such a device would also be able to provide an 54 equivalent Web service able to work with all Web client, but 55 not running the existing popular Web server software stacks 56 known as "Web Frameworks".