summaryrefslogtreecommitdiff
path: root/this-server/index.html
blob: 019b7db756197010052e088d00c89eeb30bc3a07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<!DOCTYPE html>
<!-- generated by build.sh. DO NOT EDIT. -->
<html lang="en">
<title>A web server on a solar phone</title>
<meta name="description" content="Hosting a web server on a solar powered phone">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
  body {
	  max-width: 45rem;
	  margin: auto;
	  padding: 0.5em;
	  text-align: justify;
  }
  h1 { text-align: center }
  pre {
	padding: 1ch;
	background-color: #f5f5f5;
	overflow: auto;
  }
  img {
  	display: block;
	margin: auto;
  }
  .footer {
    text-align: center;
    font-size: 0.8em;
  }
</style>

<a href="..">Marc's Notes</a><hr>
<h1> A web server on a solar phone</h1>
<p>I have this old low-cost phone which was the first one offered to my kid when he was 15 (he is now 21), before he moved to a more fashionable model. I noticed that without a SIM card, only on WIFI, the phone needed to be recharged not after 1 or 2 days, but only after 2 weeks! So this small device, plugged to a small solar panel, could be the perfect always-on personal web server. The site that you are browsing right now is hosted on it.</p>
<p><img src="server.jpeg" alt="The server with its solar panel, and a cat"></p>
<h2> Hardware</h2>
<p>The phone is an entry-level Motorola G7 Play, purchased in 2019 for 120€ or so, worth nothing today. It was used by my son for less than 2 years, then dormant since. The display is slighly shattered, but it doesn't matter, as I use it headless.</p>
<p>I bought a small solar panel on Amazon, 10W produced by 2 plates of 17x17 cm. Cost: 28€. I could probably get something less expensive.</p>
<p>And that's it. The solar panel is just suspended vertically at a south window. The phone sits below, connected to the panel by a USB cable, in the shadow (do not put the phone directly under the sun, or closed without fresh air).</p>
<h2> Software</h2>
<p>The single purpose of this device is now to run a small standalone static web server. By using termux on top of Android, I can run a ssh server for remote access and Nginx, an efficient web server. I do not need to root the phone, as port redirection from my internet router compensate for the restriction of not using a port number below 1024.</p>
<p>Nevertheless, I installed LineageOS on the phone, as it supports my model and keeps the system updated. I could have kept the stock android image, at the expanse of a less secure system. I could have gone further and install PostmarketOS on it, to have a full unrestricted Linux machine, but I was both lazy and curious to see what I could get from just Android.</p>
<p>I then installed F-Droid, only to install Termux from it. Do not install Termux from the Google Play Store, it is too limited. The version from F-Droid is fine.</p>
<p>The phone connects to my internet box via WIFI and my internet service provider allows me to have a static IP4 address at no additional cost.</p>
<p>The last part is to configure the SSL certificate. I used Acme.sh, downloaded directly from Github.</p>
<h2> Operation</h2>
<p>It's too early to say. Lets see how it goes over time (a few months), and if a relatively old phone can find a second life and be used as an autonomous web server, running solely on free photons and electrons.</p>
<p>But for now, we are in june and the battery level is almost always at 100%.</p>
<hr>From: Marc Vertes, 20 june 2025