Hexile
Sign in

About this place

Hexile is a small, self-hosted corner of the internet.

A handful of free tools anyone can use, Fyr (a lighthouse puzzle with a new night every day), a few private services behind a sign-in, and a startpage. It runs on its own hardware, serves everything itself, and answers to no ad network.

How it's built

The model host is live: it shows which model is loaded right now, or whether it's asleep.

Every request reaches nginx first. The hub, public tools, the VPN and shared Prospekt reports are open to anyone. For Files, Status, Chat and Prospekt uploads, nginx first asks the gate whether you are signed in. Chat and Prospekt send their work to the language models on a separate model host, reached privately over the VPN.The serverThe model hostsigned in?YounginxTLS, headers,rate limitsOpen to anyonegatehub, tools, sign-inVPNdevices with a keyProspektshared reportsSigned in onlyFilesstorageStatusuptimeChatwith web searchuploads: signed inOllamagpt-oss-120b

Everything arrives at nginx, the front door. It handles encryption, sets strict security headers on every response, and slows down anyone hammering the sign-in.

The gate is the hub you started on: the public tools, the startpage, and the one sign-in for every service. Before opening Files, Status or Chat, nginx quietly asks the gate whether you're signed in. Prospekt asks too, but lets anyone read a report that has been shared.

Chat and Prospekt don't run the models themselves. They hand the work to a separate machine with a GPU, reached privately over the VPN, which runs the language models you choose between in each service (most recently gpt-oss-120b). Conversations and documents stay on these machines. When Chat searches the web, only the search itself goes out. The VPN lets devices in with keys of their own rather than the sign-in.

Pages load nothing from anywhere else: fonts, scripts and icons are all served from here, and the browser is told to refuse anything that isn't. The error pages are served by nginx itself, so they still work when something behind it doesn't.

Privacy, plainly

Written from what the code actually does.

Contact

Use the contact form. It has a small puzzle on purpose. If that doesn't work for you, send an email:

Colophon

Headings in Fraunces, text in Schibsted Grotesk, numbers in IBM Plex Mono. Warm stone and cool water, with ember saved for things that are live. Weather data from MET Norway (CC BY 4.0), headlines from NRK.