A complete hardware and software specification for constructing a physical E-UBI community terminal — from bare components to a fully networked, solar-powered node running TheEtherNet.
Every E-UBI terminal is built around a Raspberry Pi single-board computer paired with a touchscreen display, solid-state storage, and a solar-aware power supply. The design is intentionally modular — swap components as the project scales.
| Component | Model / Part | Est. Cost (USD) | Required? |
|---|---|---|---|
| Single-board Computer | Raspberry Pi 5 — 8 GB RAM | $80 | Required |
| MicroSD Card | Samsung Pro Endurance 128 GB | $18 | Required |
| Touchscreen Display | Official RPi 7″ Touch Display | $80 | Required |
| Display Case / Stand | SmartiPi Touch Pro 2 | $30 | Required |
| Power Supply | Raspberry Pi 27W USB-C PSU | $12 | Required |
| Active Cooler | Official RPi 5 Active Cooler | $5 | Required |
| NVMe SSD (Pi 5) | WD_BLACK SN770M 256 GB | $45 | Optional |
| PCIe NVMe Hat | Pimoroni NVMe Base for RPi 5 | $15 | Optional |
| Solar Power Manager | Waveshare Solar Power Manager D | $22 | Optional |
| Solar Panel | 50 W 18 V Monocrystalline | $40 | Optional |
| LiFePO₄ Battery | 12 V 10 Ah LiFePO₄ | $35 | Optional |
| NFC Module | PN532 I²C Breakout | $8 | Optional |
| 4G LTE Dongle | Huawei E3372h-325 | $30 | Optional |
| Core kit total | — | ~$225 | — |
| Full solar kit total | — | ~$430 | — |
The E-UBI terminal runs a single Express.js process that serves the static SPA build, proxies TheEtherNet API/WebSocket traffic, and exposes the community JSON API — all managed by PM2 and tunnelled to the internet via Cloudflare.
ethereal role requires CREATEDB permission for Prisma shadow database operations during migrations.TheEtherNet/server/prisma/schema.prisma. Run migrate deploy (not dev) in production./ethernet-socket.io.eubi-server, ethernet-server, and cf-tunnel. Auto-restarts on crash. Saves process list across reboots.Follow these steps in order — from flashing the OS to bringing up both PM2 processes and verifying the live tunnel. Each step includes the exact shell commands needed on a fresh Raspberry Pi OS Lite (64-bit) image.
ethereal role needs CREATEDB for Prisma shadow-database support during migrations..env file in TheEtherNet/server/. Never commit this file — it is already in .gitignore.migrate deploy (not migrate dev) in production — it applies existing migrations without creating new ones or touching the shadow database.ecosystem.config.js in eubi-site/ defines all three processes. After starting, save the list so PM2 resurrects them on reboot.Cloudflare Tunnel (cloudflared) exposes the local Express server on port 3000 to the public internet under your domain — no port-forwarding or static IP required. The tunnel itself is managed as a PM2 process.
cloudflared on the Pi~/.cloudflared/config.yml. The tunnel forwards all traffic to localhost:3000 where Express is listening.ecosystem.config.jscloudflared as a PM2 process means it auto-restarts on crash and is included in pm2 save.The enclosure should be weather-resistant (for outdoor deployments), tamper-evident, and aesthetically aligned with the E-UBI brand — dark finish with gold accent lettering. Below are the recommended configurations for indoor kiosk vs. outdoor node.