Skip to content
Taleward

Self-hosting

For the person who looks after the tech, in a club or in a private group. You do not need to program. Following instructions in a terminal is enough.

Plan for one evening, most of it waiting for downloads.

In five steps

  1. Rent a server or use your own

    For “Cloud only”, a small rented Linux server is enough, for example from a provider in the EU. If everything should stay with you, use your own server with an NVIDIA graphics card, at your club or at home. The transcription worker runs on it too.

    You need a domain or subdomain pointing to the server, such as taleward.your-club.org or rpg.your-domain.net.

  2. Install

    Log in to the server via SSH and run this one command. The script installs Docker if it is missing and asks three questions: domain, email for the certificate and the name of your club.

    curl -fsSL https://raw.githubusercontent.com/Tinkerworkss/taleward-server/main/install.sh | sudo bash

    After that everything runs in Docker, and HTTPS is set up automatically with Caddy and Let’s Encrypt. The script creates all secrets itself.

  3. Open the setup code from the log

    At the end, the script shows a one-time link. Only someone with this link can set up the server. It looks like this:

      First-time setup: open in your browser
        https://taleward.your-club.org/verwaltung/einrichtung?code=K7Q2-M9XA

    Lost the link? This command shows it again:

    cd /opt/taleward && sudo docker compose exec server chronik einrichtungscode
  4. Go through the assistant

    You create your administrator login. Then an assistant takes you through everything that is needed. Every step can be skipped; open items stay on the overview.

    1. Club or group
    2. Mode: Cloud only, Local server or both
    3. Summaries
    4. Privacy notice, with a template
    5. Backup
    6. First game master
  5. Invite the GM

    The first game master gets their account from the assistant. They create a campaign in the app and invite their group by link or QR code at the table. From here on, you are only needed for updates.

What you need for each mode

  • Cloud only

    • A Linux server with Docker
    • A domain pointing to the server
    • A Mistral (EU) key for transcription and summaries
    • A monthly cost limit, set in the assistant
  • Local server

    • A server with an NVIDIA graphics card and a current driver. Server and worker can share it
    • Linux with Docker, or Windows with WSL2 and Docker
    • A Hugging Face account for the speaker model
    • For access from outside, a domain with HTTPS
  • Local server, cloud as fallback

    • Everything from “Local server”
    • Plus a Mistral key
    • The GM’s permission per campaign for the cloud to step in

The worker

The worker uses the graphics card to turn recordings into text. If the server has enough power, it simply runs on the same server. Otherwise it goes on a second server with a graphics card, for example at home or at your club. In the administration, under “Transcription → Connect another worker”, you get a pairing code. Then, on the server that should run the worker:

sudo docker run -d --gpus all --restart unless-stopped --name taleward-worker ghcr.io/Tinkerworkss/taleward-worker:latest --koppeln ABCD-EFGH --server https://taleward.euer-verein.de

The worker fetches its key and address itself. You can pause it in the administration, for example while you play.

Day to day

Every night the server backs up the database, images and documents. The last 14 days are kept. You can restore from the administration.

When a new version is out, this command is all it takes:

cd /opt/taleward && sudo docker compose pull && sudo docker compose up -d

And the data?

With your own server, you are the controller under the GDPR. The server helps: it comes with a template for your privacy notice and a list of providers you need a data processing agreement with. This is not legal advice.

The full guide

Every step with checkpoints, and a table for when something does not work, is in the installation guide in the repository.