thepraandClaude Opus 5.5 7cfc8b6de5
Build / Desktop, server and tools (push) Successful in 59s
Release / Every platform, the server, the release (push) Successful in 7m27s
me-web? 0.2: the test from outside, calls and games, mail, and what you can host
Phases two and three ship together, because their code grew in the same
files. With consent the app asks the router to open 80, 443 and a high
port for ten minutes (UPnP, NAT-PMP or PCP), and the server, holding a
single-use ticket bound to the caller's own address, connects back and
must get an HMAC only the app can give; the mappings are removed after the
run and remembered until then, so a crash cannot leave one open. Hairpin
is tried from inside. Two STUN servers, the outside one first, tell easy
from hard NAT.

Mail gets port 25 to Gmail and Outlook, the reverse name and five
blocklists through the user's own resolver, network-wide UCEPROTECT
listings counted as a caution. DNS, speed against the server (four at a
time, twelve an hour per address) and the device follow, and six uses
(website, home from outside, files, game server, fediverse, mail) close
the run as possible, possible with a named workaround, or can't tell.

Findings can be shared after reading the exact JSON: a file per submission
under the unit's state directory, ten a day per address, deletable by the
token the app keeps, swept after twelve months; /privacy says all of it in
English and Italian. QR codes lead to the downloads. Every language carries
every string.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
2026-10-15 05:41:44 +02:00

me-web?

Can you run your own server from here? me-web? checks your connection and your device and tells you, in plain words, what you could host at home, what stands in the way, and what would fix it.

Status: early development.

What it checks

me-web? checks, and draws as a path from this device to the internet:

  • whether you are online, or behind a login page;
  • how this device is connected, and the address your router gave it;
  • your public IPv4 and IPv6 addresses, and which device holds them;
  • your provider, found offline in a built-in map, with what is usual for it (shared IPv4, an address of your own, IPv6, the mail port) and the source and date of each note;
  • whether your router answers apps that ask it to open ports (UPnP, NAT-PMP, PCP), and which internet address it has;
  • whether your provider shares your public IPv4 address with other customers (CGNAT) or there is a second router in the way;
  • how your router translates addresses for calls and games (easy or hard NAT), with two STUN servers;
  • only if you agree: whether the outside world can actually reach this device, over IPv4 and IPv6, with the ports opened by your router for ten minutes and closed afterwards, and whether your own public address works from home (hairpin);
  • whether this connection can send mail directly: port 25, the reverse name (PTR) and the blocklists, asked through your own name server;
  • whether your name server checks signatures (DNSSEC) and answers honestly for names that don't exist;
  • the speed against the publisher's server, and whether this device makes a sensible server;
  • how your public address has changed across your earlier checks.

It ends with what that means: a website, reaching home from outside, family photos and files, a game or voice server, a fediverse or blog server, a mail server — possible, possible with a workaround (and which), or can't tell.

At the end you can choose to share your findings, after reading exactly what is sent, to improve the notes on providers; you can delete them from the app at any time, and they are deleted after twelve months (https://meweb.arasaka.software/privacy).

Planned: the builds for Mac announced once they have been tried on a real Mac.

Platforms

Linux (deb, rpm), Windows, macOS and Android. Builds are published as releases of this repository.

Privacy

me-web? sends nothing anywhere unless a check needs it, and lists every host it contacts ("What this app contacts" in the app). It has no telemetry, no analytics and no crash reporting. Your checks are kept on your device only, unless you choose to share them.

Verifying the Android app

The APK is signed with the key whose certificate SHA-256 is 5f:52:cf:f4:f5:2f:4e:0b:6d:a6:cd:04:4b:fc:ea:f7:8d:1d:42:db:24:f2:47:06:02:db:7f:19:cb:fd:f8:46 (apksigner verify --print-certs MeWeb-<version>-android.apk). Every release also carries SHA256SUMS.txt.

Credits

  • Provider map: iptoasn.com, Public Domain Dedication and License (PDDL 1.0), fetched for every release; the release notes carry its date and SHA-256.
  • Provider notes: each operator's own technical sheet (AGCOM 156/23 in Italy) and users' reports on FibraClick, each cited in data/isps/.
  • Icons: Lucide, ISC licence.
  • Typeface: Inter, SIL Open Font License.

Building

See CLAUDE.md. .NET 10, Avalonia 12.

Licence

GNU Affero General Public License v3.0 (LICENSE). © 2026 Arasaka di Hvozdikov Yevheniy.

Translations other than English and Italian are machine drafts until someone reviews them. Corrections are welcome as issues on this repository. Nauruan and Palauan are missing: no draft good enough to ship could be written, and a speaker's help would put them in.

S
Description
“me-web?”: can you run your own server from here? Checks your connection and device and explains what stands in the way.
Readme AGPL-3.0
16 MiB
0 Stars 1 Watchers 0 Forks
Languages
C# 95.7%
Shell 4.3%