2026-10-30 22:32:49 +01:00
|
|
|
# me-web?
|
2026-10-15 01:14:44 +02:00
|
|
|
|
2026-10-15 22:49:40 +02:00
|
|
|
**Can you run your own server from here?** “me-web?” checks your connection and your device and tells you, in plain
|
2026-10-15 01:14:44 +02:00
|
|
|
words, what you could host at home, what stands in the way, and what would fix it.
|
|
|
|
|
|
2026-10-15 05:41:44 +02:00
|
|
|
> Status: early development.
|
2026-10-15 01:14:44 +02:00
|
|
|
|
|
|
|
|
## What it checks
|
|
|
|
|
|
2026-10-15 22:49:40 +02:00
|
|
|
“me-web?” draws the path from this device to the internet one step at a time (this device, your router, any shared
|
2026-10-15 08:08:37 +02:00
|
|
|
exit of your provider, your provider, the internet), with the details it found for each, and groups what it checks
|
|
|
|
|
under the step it concerns:
|
2026-10-15 01:14:44 +02:00
|
|
|
|
2026-10-15 04:39:03 +02:00
|
|
|
- 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;
|
2026-10-15 11:11:24 +02:00
|
|
|
- how your router translates addresses for calls and games (easy or hard NAT), with two STUN servers, and how it
|
|
|
|
|
hands out ports, whether two devices behind it can reach each other, and how long it keeps an unused connection
|
|
|
|
|
open; behind a provider's shared address, how many customers may share it;
|
|
|
|
|
- on mobile data, the operator and the type of network (5G, 4G), read from the phone itself;
|
2026-10-15 05:41:44 +02:00
|
|
|
- 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;
|
2026-10-15 11:11:24 +02:00
|
|
|
- the speed and the round-trip time to the publisher's server, and whether this device makes a sensible server;
|
|
|
|
|
- which networks your provider reaches the internet through, and, with the test from outside, the route from the
|
|
|
|
|
publisher's server back to your address;
|
2026-10-15 04:39:03 +02:00
|
|
|
- how your public address has changed across your earlier checks.
|
|
|
|
|
|
2026-10-15 05:41:44 +02:00
|
|
|
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
|
2026-10-31 02:02:31 +01:00
|
|
|
providers. If you then give the code it returns to the publisher when you ask for help, the publisher reads them to
|
|
|
|
|
answer you. You can delete them from the app at any time, and they are deleted after twelve months
|
2026-10-15 05:41:44 +02:00
|
|
|
(<https://meweb.arasaka.software/privacy>).
|
|
|
|
|
|
|
|
|
|
Planned: the builds for Mac announced once they have been tried on a real Mac.
|
2026-10-15 01:14:44 +02:00
|
|
|
|
|
|
|
|
## Platforms
|
|
|
|
|
|
|
|
|
|
Linux (deb, rpm), Windows, macOS and Android. Builds are published as releases of this repository.
|
|
|
|
|
|
2026-10-16 22:05:08 +02:00
|
|
|
On Linux the deb and the rpm add the Arasaka package repository, packages.arasaka.software, when they are installed,
|
|
|
|
|
so later versions arrive through the package manager. The rpm is signed with the repository's key; on openSUSE,
|
|
|
|
|
import it first with `sudo rpm --import https://packages.arasaka.software/arasaka.asc`. The script the packages run
|
2026-10-23 10:38:55 +02:00
|
|
|
is `packaging/arasaka-repository.sh`; it never calls the package manager,
|
2026-10-16 22:05:08 +02:00
|
|
|
leaves files you edited alone, and removes the repository only when no Arasaka package is left (purge or erase).
|
|
|
|
|
|
2026-10-31 03:22:36 +01:00
|
|
|
On Android, the same signed APK is also in an F-Droid repository, so F-Droid, a store like it, or Obtainium can bring
|
2026-10-31 09:24:50 +01:00
|
|
|
the updates: add `https://packages.arasaka.software/fdroid/repo`, which is signed with the same key as the APK. The
|
|
|
|
|
download page links to both. The app is not in F-Droid's own catalogue, which builds every app from source on F-Droid's servers.
|
2026-10-31 03:22:36 +01:00
|
|
|
|
2026-10-15 01:14:44 +02:00
|
|
|
## Privacy
|
|
|
|
|
|
2026-10-15 22:49:40 +02:00
|
|
|
“me-web?” sends nothing anywhere unless a check needs it, and lists every host it contacts ("What this app contacts"
|
2026-10-15 05:41:44 +02:00
|
|
|
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.
|
2026-10-15 01:14:44 +02:00
|
|
|
|
2026-10-15 01:24:11 +02:00
|
|
|
## 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`.
|
|
|
|
|
|
2026-10-15 04:39:03 +02:00
|
|
|
## Credits
|
|
|
|
|
|
2026-10-15 11:11:24 +02:00
|
|
|
- Network data, refreshed on the publisher's server and embedded in every release (the release notes carry each
|
|
|
|
|
source's date and SHA-256):
|
|
|
|
|
- provider map: [iptoasn.com](https://iptoasn.com), Public Domain Dedication and License (PDDL 1.0);
|
|
|
|
|
- network names: IP to ASN Lite by [DB-IP](https://db-ip.com), Creative Commons Attribution 4.0 (CC BY 4.0);
|
2026-10-15 19:44:18 +02:00
|
|
|
- which networks each provider reaches the internet through: [RouteViews](https://www.routeviews.org), University
|
|
|
|
|
of Oregon, CC BY 4.0, from eight of its route collectors (Oregon, Ashburn, London, São Paulo, Johannesburg, Dubai,
|
|
|
|
|
Singapore, Sydney), so that each region of the world has its own view; only each network's most frequent
|
|
|
|
|
neighbours are kept. "With contributions from network operators and volunteers all over the world, RouteViews
|
|
|
|
|
collects BGP data by direct peering at Internet Exchange Points (IXPs) or multi-hop peering. Data are archived and
|
|
|
|
|
made publicly available for download at archive.routeviews.org, lg.routeviews.org, and api.routeviews.org.";
|
2026-10-16 18:10:19 +02:00
|
|
|
- mobile operators by network code: the Android Open Source Project's carrier list, Apache License 2.0;
|
2026-10-30 22:32:49 +01:00
|
|
|
- the name of the block of addresses a connection belongs to, from four of the five regional address registries,
|
|
|
|
|
each used with its permission for this free app, never behind a paywall and never to make money; nothing about
|
|
|
|
|
people is kept:
|
|
|
|
|
- the [RIPE Database](https://www.ripe.net/manage-ips-and-asns/db/) of the RIPE NCC (Europe, the Middle East,
|
|
|
|
|
Central Asia; permission of 16 October 2026): each block's range, name and country;
|
|
|
|
|
- the [APNIC Whois Database](https://ftp.apnic.net/apnic/whois/) (Asia and the Pacific): each block's range and
|
|
|
|
|
name, without the country;
|
|
|
|
|
- the [AFRINIC Whois Database](https://ftp.afrinic.net/dbase/) (Africa): each block's range, name and country;
|
|
|
|
|
- LACNIC's [`lacnic.db`](https://ftp.lacnic.net/lacnic/dbase/) (Latin America and the Caribbean, published under
|
|
|
|
|
policy LAC-2018-3): each block's prefix, how it was handed out (to a provider, to one organisation, passed on
|
|
|
|
|
to another provider or to a customer) and country, since the file names no blocks.
|
|
|
|
|
|
|
|
|
|
Every block travels with the apps, so the name is there without a connection; the server also tells each app
|
|
|
|
|
the block of the address it sees, from its own weekly copy. The data may lag behind the live databases; the
|
|
|
|
|
release notes give each one's date. ARIN's region (North America) has no block names yet.
|
2026-10-15 04:39:03 +02:00
|
|
|
- Provider notes: each operator's own technical sheet (AGCOM 156/23 in Italy) and users' reports on
|
2026-10-15 19:44:18 +02:00
|
|
|
[FibraClick](https://forum.fibra.click), each cited in `data/isps/`; and, for any country, totals from findings
|
|
|
|
|
people chose to share (`data/observed.json`), published only after a person has reviewed them and only where at
|
|
|
|
|
least five different networks of a provider agree four times in five.
|
2026-10-15 04:39:03 +02:00
|
|
|
- Icons: [Lucide](https://lucide.dev), ISC licence.
|
|
|
|
|
- Typeface: Inter, SIL Open Font License.
|
|
|
|
|
|
2026-10-15 01:14:44 +02:00
|
|
|
## 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
|
2026-10-15 05:41:44 +02:00
|
|
|
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.
|