Requirements
What you need before installing Tether. If you're using Docker, the list is very short. Bare-metal installs require a bit more.
If you use Docker, you only need Docker itself — MariaDB, Python, and all dependencies are bundled in the image. Skip to the Docker installation guide.
Docker requirements
| Requirement | Minimum version | Notes |
|---|---|---|
| Docker Engine | 24.0+ | Install Docker |
| Docker Compose | v2 (Compose V2) | Included with Docker Desktop. On Linux, install with apt install docker-compose-v2 |
| RAM | 512 MB | 1 GB+ recommended for production |
| Disk | 2 GB | 10 GB+ recommended to leave room for database growth |
Tether's documentation uses docker compose (V2, with a space). If you have the older docker-compose (V1, with a hyphen) installed, commands may differ slightly. We strongly recommend upgrading to V2.
Bare-metal requirements
| Requirement | Version | Notes |
|---|---|---|
| Operating system | Ubuntu 22.04+ or Debian 12+ | Other Linuxes work but commands may differ |
| Python | 3.10 or newer | Check with python3 --version |
| pip | 22.0+ | Installed with Python. Update with pip install --upgrade pip |
| git | Any recent | Required to clone the repo and receive updates |
| Database | MariaDB 10.6+ / MySQL 8+ / PostgreSQL 14+ | Or leave unset to use SQLite (not recommended for production) |
| RAM | 512 MB | 1 GB+ recommended |
| Disk | 5 GB | To accommodate database, logs, and Python packages |
Python packages
Tether's Python dependencies are listed in requirements.txt and installed
automatically by install.sh or pip install -r requirements.txt.
You do not need to install them manually. For reference, the key packages are:
| Package | Purpose |
|---|---|
fastapi | Web framework |
uvicorn | ASGI server |
sqlalchemy | ORM and database abstraction |
pymysql | MariaDB / MySQL driver |
psycopg2-binary | PostgreSQL driver |
bcrypt | Password hashing |
python-jose | JWT tokens |
qrcode | QR code generation |
pillow | Image handling (QR PNG output) |
python-slugify | Tenant slug generation |
Database support
| Database | Recommended version | Driver | Notes |
|---|---|---|---|
| MariaDB | 10.6–11.x | pymysql | Default and recommended. Same as Snipe-IT. |
| MySQL | 8.0+ | pymysql | Works, but MariaDB is preferred |
| AWS Aurora (MySQL-compat) | Any | pymysql | Fully compatible with the pymysql driver |
| PostgreSQL | 14+ | psycopg2-binary | Good for AWS RDS or enterprise Postgres environments |
| SQLite | 3.35+ | Built into Python | Zero-config fallback. Not recommended for production with multiple concurrent users. |
Browser support
Tether's frontend is a modern ES2020+ single-page application. Supported browsers:
- Chrome / Edge 90+
- Firefox 88+
- Safari 14+
Internet Explorer is not supported and will never be.
Network requirements
For subdomain routing to work (e.g. acme.atechsolutions.org), your DNS provider
must support wildcard A records (*.yourdomain.com). The vast majority of
registrars and DNS providers support this. See DNS & subdomains
for setup instructions.
For HTTPS on subdomains, you need a wildcard SSL certificate. This requires a DNS-01 challenge, which most DNS providers support via Certbot plugins. See Reverse proxy & HTTPS.