VEILED CONTACTBeta

Download Veiled Contact

Linux and Windows server files are published. The Linux desktop app is built but not published. The Windows desktop app is not built yet. Open the web app in a browser. Nothing to install.

Windows

Linux

Files, sizes and checksums
Release v0.1.0-beta.1 files, hosted on this site
What it isFileSizeSHA-256
Linux server
The server binary for Linux x86_64, plus the licence. Unpack it, run setup, then start it.
veiled-server-0.1.0-beta.1-x86_64-unknown-linux-gnu.tar.gz 4.5 MB 0e522da1d6120f7dd38c600efdb816366e6ddd1a49eae789ae2296724c017505
Windows server
The same server for Windows x86_64, as a single .exe. Run it in a terminal to set it up, exactly like the Linux one.
veiled-server-0.1.0-beta.1-x86_64-pc-windows-gnu.exe 16.1 MB ee721865ff2126068c5870744c3740e1547a73bf754aa04a650efa76e16666c6
Windows server installer
The same server, installed as a Windows service so it keeps running after you close the window. The plain .exe above is for running it by hand.
veiled-server-setup-0.1.0-beta.1.exe 4.7 MB d9845f48cf7a07ddf707072fd8d8f39932f431deb4be646796eb240a83aef3e0
Container files
The Dockerfile, a compose file, a Caddyfile, an nginx sample and a systemd unit. The image is built locally with docker build -f server/Dockerfile .
veiled-server-0.1.0-beta.1-container-files.tar.gz 6.4 KB 238a5740cab96832734cc7210f02f1ef466b73a5a8759e6c021fef971fe4e2c5
Web client
The compiled client, for a host who wants to serve the client files from somewhere else. Unpack it and point the server at it with --client-dir.
veiled-client-0.1.0-beta.1.tar.gz 0.5 MB 26dd6616d680e33daf8a58302ffb147ba192888537dc11303275167f9362241d

Every file listed above is served from this site, and each checksum is of exactly these bytes. Every release also publishes one SHA256SUMS file beside the files. ARM64 is not built yet and will be linked here when it is. A minimal Debian or Ubuntu image has no curl, so the checks below work with wget too, and the hosting guide uses it for that reason.

SHA-256 checksums for v0.1.0-beta.1, of the files hosted here
veiled-client-0.1.0-beta.1.tar.gz 26dd6616d680e33daf8a58302ffb147ba192888537dc11303275167f9362241d
veiled-install.sh dedadf3f73e8f162a8461663bde84c87440f6680c79c8d34b252a326edd3754d
veiled-server-0.1.0-beta.1-container-files.tar.gz 238a5740cab96832734cc7210f02f1ef466b73a5a8759e6c021fef971fe4e2c5
veiled-server-0.1.0-beta.1-x86_64-pc-windows-gnu.exe ee721865ff2126068c5870744c3740e1547a73bf754aa04a650efa76e16666c6
veiled-server-0.1.0-beta.1-x86_64-unknown-linux-gnu.tar.gz 0e522da1d6120f7dd38c600efdb816366e6ddd1a49eae789ae2296724c017505
veiled-server-setup-0.1.0-beta.1.exe d9845f48cf7a07ddf707072fd8d8f39932f431deb4be646796eb240a83aef3e0
Check a file before running it (SHA-256)

Each file has a published SHA-256, which is a short fingerprint of the exact bytes. The one-line commands below download a file and print its fingerprint, so it can be held against the value in the table above. They fetch nothing else, and they need no other tool than curl, which every Linux machine already has.

curl -s https://veiled.contact/downloads/veiled-server-0.1.0-beta.1-x86_64-unknown-linux-gnu.tar.gz?v=7 | sha256sum
curl -s https://veiled.contact/downloads/veiled-server-0.1.0-beta.1-container-files.tar.gz?v=7 | sha256sum
curl -s https://veiled.contact/downloads/veiled-client-0.1.0-beta.1.tar.gz?v=7 | sha256sum

The longer route does the same job and leaves the files on disk. Download both of these into one folder:

Linux

curl -O https://veiled.contact/downloads/SHA256SUMS
curl -O https://veiled.contact/downloads/veiled-server-0.1.0-beta.1-x86_64-unknown-linux-gnu.tar.gz?v=7
sha256sum --check SHA256SUMS
tar xzf veiled-server-0.1.0-beta.1-x86_64-unknown-linux-gnu.tar.gz
./veiled-server setup

Container files

curl -O https://veiled.contact/downloads/veiled-server-0.1.0-beta.1-container-files.tar.gz?v=7
tar xzf veiled-server-0.1.0-beta.1-container-files.tar.gz
docker build -f server/Dockerfile -t veiled-server:0.1.0-beta.1 .
docker run -d --name veiled -p 8443:8443/tcp -p 8444:8444/udp -v veiled-data:/data veiled-server:0.1.0-beta.1
Windows desktop app

There is no Windows desktop app published yet. A Windows server is published, and it is in the files list above.

What is coming
A Windows desktop app, an installer named with the version, expected as a .msi or .exe. It would use the direct voice path that a browser cannot use, and it would keep the identity key in the Windows key store. It is not built yet, and when it is built the installer will be listed here with its checksum. Unsigned builds trigger a Windows warning, which is expected. It is the same account in a nicer client.
What works right now
A browser. Open the server address a host has handed out, type the join password, and text, voice and screen share all work with nothing installed. Allow the microphone when the browser asks. The App button in the top bar opens the same client on this site.
Building it locally
Anyone with the Rust toolchain can build the desktop app from source in the meantime, with cargo build --release. The hosting guide covers the packages it needs.
Linux desktop app

The Linux desktop app is not published yet either. No .deb, no .rpm and no .AppImage has been released, so there is nothing here to click for one.

What is coming
The same desktop app for Linux, which needs no root to run and keeps the identity key in the desktop key store.
What works right now
Two things. The server itself runs on Linux, and its files are in the files disclosure above. Joining a server works from a browser, which needs no install and covers text, voice and screen share.
Building it locally
The desktop app can be built from source with the Rust toolchain for anyone who would rather not run a binary they did not compile.
Joining from a browser

The web app is the client that ships inside the server. Whoever runs a server already has it at their own address, so an invited person opens that address in a browser and is using Veiled Contact straight away. No account is created, no email address is given, and nothing is downloaded.

  1. Get the address and the join password

    The host sends both. The address looks like a website address, for example chat.example.org.

  2. Open the address in a browser

    The page that loads is the web app, served by that server. It also opens from the box on the front page.

  3. Type the join password

    The browser asks for the password the host set, and it is checked without being sent anywhere.

  4. Choose a display name, then allow the microphone

    The name is the label the other members see. Allowing the microphone is what makes voice work; typing and reading need no permission at all.

For whoever runs the server

Optional

A host who would rather serve the client files from somewhere else can do that with the published client bundle. It is the same web app, packaged as a file: veiled-client-0.1.0-beta.1.tar.gz, 0.5 MB, SHA-256 26dd6616d680e33daf8a58302ffb147ba192888537dc11303275167f9362241d. It is for server operators, not for visitors. Anyone joining from a browser downloads nothing, because the server they joined hands the client files over itself.

Getting a server running

The server is one file with its own database built in, so there is no database to install and no runtime to keep updated. The published build is for Linux, and it was built and checksummed on the day this page went live.

  1. Download the server file

    That is the Linux server file in the files disclosure above, at 4.5 MB. Unpack it, and the binary and the licence come out.

  2. Run it and answer the wizard

    Running ./veiled-server setup once asks the questions and writes the answers to a small settings file beside the binary.

  3. Choose a name and a join password

    The name is what invited people will see. The join password is what they type to get in, and it is never sent anywhere.

  4. Open one port

    Voice and video use port 8444, one port and not a range of them. The wizard prints the exact line to add to a firewall or a router.

  5. Share the address and the password

    Those two things are the whole invitation. The client files are already on the server, so there is nothing else to hand over.

  6. Open the address and join

    The address opens in a browser, the password goes in, a display name is chosen, and the server is being used.

With Docker

If the machine already runs Docker, this is the whole install. The data volume holds the database, the server identity and the settings, so it is worth keeping.

docker run -d --name veiled \
  --restart unless-stopped \
  -p 8443:8443/tcp -p 8444:8444/udp \
  -v veiled-data:/srv/veiled/data -w /srv/veiled/data \
  veiled-server:0.1.0-beta.1

# first run: walk the wizard once, in the same volume, so the config is kept too
docker run --rm -it -v veiled-data:/srv/veiled/data -w /srv/veiled/data \
  veiled-server:0.1.0-beta.1 setup

The container serves the web client on the same web port, so invited people join in a browser with no extra container. When the wizard asks for the data directory, the answer is ., so the database and the settings sit together in the volume.

Licence

Proprietary

Veiled Contact is proprietary software. The files here are free to download, run and host, including on a server that makes money, and unmodified copies may be passed on with the licence and the checksums. The source is not published and is not offered, and no licence is granted to modify, rebrand or redistribute a changed build. This release carries no warranty, breaking changes between versions are expected, and the cryptography has not had an independent audit. It links against open source libraries, libsodium and libopus among them, and their licences are unaffected.

The security page states what the cryptography does and does not claim, in the same plain words.