-
Notifications
You must be signed in to change notification settings - Fork 7
Installation
Step-by-step guides for Docker Compose, Unraid, TrueNAS SCALE and CasaOS are also on the Thingport website.
Runs entirely from the pre-built images on GHCR -- no local build, no git clone needed. Works on any Docker host, including a NAS (Synology, QNAP, Unraid, etc).
Unraid users: see docs/install/unraid/README.md for an Unraid-flavored compose file (appdata paths, Docker tab icons/WebUI) and Compose plugin setup steps.
TrueNAS SCALE users: see docs/install/truenas/README.md for a TrueNAS-flavored compose file (dataset-backed appdata paths) and both the Custom App (YAML) and SSH setup steps.
CasaOS users: see docs/install/casaos/README.md for a CasaOS-flavored compose file (
/DATA/AppDataappdata paths) and both the customized-app and SSH setup steps.
Create a folder for Thingport and add these two files to it:
docker-compose.yml
services:
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
- POSTGRES_USER=${POSTGRES_USER:-thingport}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-thingport}
- POSTGRES_DB=${POSTGRES_DB:-thingport}
volumes:
- thingport_db:/var/lib/postgresql/data
networks:
- app-net
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-thingport}"]
interval: 5s
timeout: 5s
retries: 10
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
restart: unless-stopped
environment:
- LOG_LEVEL=${FLARESOLVERR_LOG_LEVEL:-info}
- TZ=${TZ:-UTC}
networks:
- app-net
backend:
image: ghcr.io/tautvydasderzinskas/thingport-backend:latest
restart: unless-stopped
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
- AUTH_SECRET=${AUTH_SECRET:-changeme-secret}
- AUTH_TOKEN_TTL=${AUTH_TOKEN_TTL:-43200}
- PUBLIC_URL=${PUBLIC_URL:-}
- SMTP_HOST=${SMTP_HOST:-}
- SMTP_PORT=${SMTP_PORT:-587}
- SMTP_SECURE=${SMTP_SECURE:-false}
- SMTP_USER=${SMTP_USER:-}
- SMTP_PASS=${SMTP_PASS:-}
- SMTP_FROM=${SMTP_FROM:-Thingport <no-reply@localhost>}
- FILE_STORAGE=/app/storage
- DATABASE_URL=postgresql://${POSTGRES_USER:-thingport}:${POSTGRES_PASSWORD:-thingport}@db:5432/${POSTGRES_DB:-thingport}?schema=public
- CORS_ORIGINS=${CORS_ORIGINS:-}
- FLARESOLVERR_URL=${FLARESOLVERR_URL:-http://flaresolverr:8191/v1}
depends_on:
db:
condition: service_healthy
flaresolverr:
condition: service_started
volumes:
- thingport_storage:/app/storage
networks:
- app-net
frontend:
image: ghcr.io/tautvydasderzinskas/thingport-frontend:latest
restart: unless-stopped
ports:
- "${WEB_PORT:-80}:80"
depends_on:
- backend
networks:
- app-net
volumes:
thingport_storage:
thingport_db:
networks:
app-net:
driver: bridge.env
# Required
# AUTH_SECRET signs login tokens -- use your own random value
AUTH_SECRET=b1193c7014e833a063f750d6e4644d615e90e6ee81dbde619e1818e9675a3374
POSTGRES_PASSWORD=change-this-password
# Optional (defaults shown)
PUID=1000
PGID=1000
WEB_PORT=80
POSTGRES_USER=thingport
POSTGRES_DB=thingport
# e.g. https://thingport.example.com -- needed for links in verification emails
PUBLIC_URL=
# login token lifetime, in seconds
AUTH_TOKEN_TTL=43200
SMTP_HOST=
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=
SMTP_PASS=
SMTP_FROM=Thingport <no-reply@localhost>
FLARESOLVERR_URL=http://flaresolverr:8191/v1
TZ=UTCThen start it:
docker compose up -dThingport will be available at http://<host>:<WEB_PORT> (default port 80). The first
account you register becomes the admin account.
Building from source instead
git clone https://github.com/TautvydasDerzinskas/Thingport.git
cd Thingport
cp .env.example .env
docker compose up -dThis builds the images locally rather than pulling from GHCR.
This wiki is generated from the repository docs. To change a page, edit its source file there.
Getting started
Platform guides
Companion apps
Contributing
Links