DarkWire for the web
DarkWire in a web browser, on a server of your own. It's the same DarkWire as the apps, with the same encryption, and messages go straight between devices. The server only hands out the page: profiles, messages and contacts live in each visitor's own browser, or on their USB drive, never on the server. How it differs from the apps is on the Info page.
- HTTPS. Browsers only allow what DarkWire needs (push, a service worker, a drive) on an https:// address. The Docker image arranges that by itself.
-
PHP 8.1 or newer, for the push relay (
relay.php). Chrome, Edge and Safari don't accept a push that a web page sends, so the page passes those to its own server, which forwards them. The push is sealed and encrypted before it leaves the browser. Without PHP the page still works, but contacts on Chrome, Edge or Safari can't be reached from it. The Docker image has PHP built in.
-
Docker image, for Docker, Podman, Kubernetes or a NAS: load it with
docker load -i darkwire-web-v0.19.74-docker.tar.gzand start it with one of two addresses:-
With a domain name that points at your server, you get a real certificate automatically:
docker run -d --name darkwire --restart unless-stopped -p 80:80 -p 443:443 -p 443:443/udp -e DARKWIRE_DOMAIN=chat.example.org -v darkwire-data:/data -v darkwire-config:/config darkwire-web:0.19.74 -
Only in your home network: the same, with
-e DARKWIRE_LAN_IP=192.168.1.10(your server's address) instead. The server then makes its own certificate, which every device trusts once. The README in the zip explains how, for each system.
-
With a domain name that points at your server, you get a real certificate automatically:
-
Zip, for your own web server (Apache, nginx, Caddy or another): put its contents
on an HTTPS site. For Apache, the
.htaccessthat comes with it sets everything up. Example configurations for nginx and Caddy, and acompose.yamlfor Docker Compose, are in itsexamplesfolder, with a README for every way. Uploading by FTP? Set your FTP program to binary transfer (in FileZilla: Transfer → Transfer type → Binary). In its usual "Auto" or ASCII mode it may change text files on the way, and a changed file no longer matches the release, which a community server needs.
darkwire.sig with
echo '<signature>' | base64 -d > darkwire.sig, and run
openssl pkeyutl -verify -pubin -inkey darkwire-update-key.pem -rawin -in <file> -sigfile darkwire.sig.
It answers Signature Verified Successfully for a genuine file.
sha256sum <file>(Linux)shasum -a 256 <file>(Mac)certutil -hashfile <file> SHA256(Windows)
| Version | Date | What's in it |
|---|---|---|
| v0.19.74 Latest | Oct 07, 2026 |
Fixed: adding a contact or connecting could fail without a message on some computers.
|
| v0.19.69 | Oct 04, 2026 |
Report a problem in Settings → About, and a fix for servers uploaded by FTP.
|
| v0.19.67 | Oct 04, 2026 |
Open-source licenses in Settings → About.
|
| v0.19.62 | Oct 04, 2026 |
After typing your drive's password, the app lock no longer asks for its PIN straight away.
|
| v0.18.59 | Oct 03, 2026 |
Fewer notifications while the tab is closed, and contacts that can no longer be reached are marked.
|
| v0.18.56 | Oct 03, 2026 |
The first release: DarkWire in a web browser, on a server of your own.
|