Self-host the server

The Nightjar server ingests recordings, transcribes them, writes summaries, and serves the open API. It runs happily on a home NAS, a mini-PC, or a small cloud box.

What you need

Step 1: Get the server

Clone the repository and enter the server directory.

git clone <nightjar-repo>
cd nightjar/server

The public code is being prepared for release. Register interest to be notified when the repository opens.

Step 2: Install

python -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt

Step 3: Configure

Copy the example config and edit it. Set your storage, and your AI providers (see Connect your AI).

cp .env.example .env
# then edit .env:
NIGHTJAR_STORAGE_BACKEND=local        # or s3 / webdav
NIGHTJAR_LOCAL_MEDIA_DIR=./media
NIGHTJAR_LLM_PROVIDER=ollama
NIGHTJAR_TRANSCRIPTION_PROVIDER=local_whisper

Step 4: Run it

uvicorn app.main:app --host 0.0.0.0 --port 8000

Open http://your-server:8000/docs to browse the live API, and http://your-server:8000/health to confirm which providers are wired up.

Step 5: Point the device at it

In the phone app, set the server URL to your machine, and set the device’s upload target to your storage. From then on, recordings flow in automatically: the device uploads, the server transcribes and summarises, and the results appear in the app and through the API.

Keeping it running

For anything beyond testing, run the server under a process manager (a systemd service or a Docker container) so it restarts on reboot, and put it behind a reverse proxy with HTTPS. A small always-on box is ideal; a laptop that sleeps is not.

Next: build the device
Skip it, let us host