No description
Find a file
2026-04-18 16:55:44 +02:00
static replace Basic Auth with session-based authentication and a login overlay 2026-04-18 16:55:44 +02:00
.env.example add configurable firewall host IP for firewall command generation 2026-04-18 16:48:41 +02:00
docker-compose.yml add configurable firewall host IP for firewall command generation 2026-04-18 16:48:41 +02:00
Dockerfile initialize XIVLauncher Remote OTP project with web interface and Docker support 2026-04-18 16:21:51 +02:00
main.py replace Basic Auth with session-based authentication and a login overlay 2026-04-18 16:55:44 +02:00
README.md implement .env configuration support and restrict web interface to localhost 2026-04-18 16:36:25 +02:00
requirements.txt replace Basic Auth with session-based authentication and a login overlay 2026-04-18 16:55:44 +02:00

XIVLauncher Remote OTP

A lightweight web application running in a minimal Docker container to automatically inject OTP codes into remote XIVLauncher instances.

How it works

XIVLauncher can expose an internal OTP server that listens for incoming HTTP requests containing your TOTP code. This application acts as a central manager. You can add the IP address, Port (default 4646), and your OTP secret. The application will securely store the secret and continuously poll your remote XIVLauncher instances. When the instance starts and the port becomes available, the application automatically generates your current OTP and injects it.

Features

  • Password Protected: The entire web interface is protected by basic authentication.
  • Secure Storage: OTP Secrets are stored in a local SQLite database encrypted with a Fernet key (ENCRYPTION_KEY).
  • Minimal Footprint: Built using Python FastAPI, using only the necessary dependencies, and runs in a lightweight container.
  • Background Polling: Checks instances continuously without blocking.

Setup & Running

  1. Clone or copy this directory.
  2. Copy .env.example to .env and edit it:
    • Change WEB_PASSWORD to your desired password for the web interface (the username can be anything, e.g., admin).
    • Change ENCRYPTION_KEY to a securely generated Fernet key. You can generate one by running: python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
  3. Start the container:
    docker-compose up -d
    
  4. Access the web interface at http://localhost:8080.
  5. Login using any username and your WEB_PASSWORD.

Adding Instances

  • Name: A friendly name (e.g., "Steam Deck").
  • IP Address: The local IP address of your XIVLauncher instance.
  • Port: Default is 4646.
  • OTP Secret: Your base32 OTP secret or an otpauth:// URL.

Important Note

If you change your ENCRYPTION_KEY, the application will no longer be able to decrypt your previously saved OTP secrets. Ensure you backup your key if you intend to keep your configuration across deployments.