mirror of
https://github.com/TautvydasDerzinskas/Thingport.git
synced 2026-10-23 07:02:30 -05:00
Import, collection import and synced collections from MyMiniFactory, alongside MakerWorld, Printables and Thingiverse. - Backend: API v2 client with an instance-wide API key for metadata, collections and authors; files from MyMiniFactory's own download links (free models need no login). Paid models, and free ones whose files are archives, download as the user from their MyMiniFactory library through their session (PHPSESSID), fetching the model files MyMiniFactory unpacked from each archive. Paid models are left out of collection listings and syncs. - One migration: MyMiniFactory category ids, username and session columns, plus a data migration giving existing users' starter categories the new category ids. Category matching now prefers the most specific site category. - Frontend: provider everywhere the others appear (badges, Configuration and Administration providers, sync Browse tab, user menu, link detection, System Health, category ids), shared instance-key form for Thingiverse and MyMiniFactory, en and lt. - Thingport Grab: new provider sites are allowed once from the popup (optional all-sites access, content script registered at runtime), so adding one never makes the browser disable the extension; captures the signed-in MyMiniFactory username and session; paid-model notice. - Docs, website, store assets and screenshots updated.
57 lines
2.9 KiB
Markdown
57 lines
2.9 KiB
Markdown
<div align="center">
|
|
<img src="icon.png" alt="Thingport" width="96">
|
|
</div>
|
|
|
|
# Running Thingport on Unraid
|
|
|
|
Thingport is a 4-container stack (Postgres, FlareSolverr, backend, frontend) that talk to
|
|
each other by container name -- the frontend's nginx config, for example, proxies `/api/*`
|
|
straight to `http://backend:8000`. Unraid's Community Applications store only installs one
|
|
container per template with no built-in way to wire multiple templates together on a shared
|
|
network, so Thingport is **not searchable in the CA app store**. Instead, install it as a
|
|
Docker Compose stack. Unraid has no Compose support of its own, so this needs a plugin.
|
|
|
|
## 1. Install the Compose Manager plugin
|
|
|
|
Apps tab -> search **Compose Manager** -> install **Compose Manager** (or **Compose Manager
|
|
Plus**). It adds a **Compose** section to the Docker tab.
|
|
|
|
## 2. Create the stack
|
|
|
|
1. Docker tab -> **Compose** -> **Add New Stack**, name it `thingport`.
|
|
2. Open the stack's compose file and paste in [`docker-compose.yml`](docker-compose.yml)
|
|
from this folder (or point the plugin's "Import from URL" at the raw GitHub URL for
|
|
that file, if it supports it).
|
|
3. Copy [`.env.example`](.env.example) into the stack's environment variables (Compose
|
|
Manager exposes an `.env` editor per stack) and fill in:
|
|
- `AUTH_SECRET` -- any random string, e.g. `openssl rand -hex 32` from a terminal
|
|
- `POSTGRES_PASSWORD` -- any password
|
|
4. **Compose Up**.
|
|
|
|
Thingport creates two appdata folders on first start:
|
|
`/mnt/user/appdata/thingport/postgres` (database) and
|
|
`/mnt/user/appdata/thingport/storage` (your imported models). Back these up like any other
|
|
appdata share.
|
|
|
|
## 3. Open it
|
|
|
|
Once all 4 containers show healthy/running, open `http://<your-unraid-ip>:<WEB_PORT>`
|
|
(default port 80). The frontend and backend containers also get a WebUI button and the
|
|
Thingport icon in the Docker tab, via the `net.unraid.docker.*` labels already set in the
|
|
compose file. The first account you register becomes the admin account.
|
|
|
|
Then open **Administration → Overview → System Health** and click **Run full test**. Everything marked Required or
|
|
Recommended should be green; anything that isn't means part of Thingport won't work until it's fixed. See
|
|
[System Health](../../guides/system-health.md).
|
|
|
|
## Notes
|
|
|
|
- **Do not rename the `backend` service/container.** The frontend's nginx config resolves
|
|
it by that exact name over the compose network; renaming it breaks `/api/*` requests.
|
|
- Provider setup (MakerWorld / Thingiverse / MyMiniFactory credentials) works the same as any other install
|
|
-- see [`docs/PROVIDER_SETUP.md`](../../PROVIDER_SETUP.md) in the main repo.
|
|
- To pin a specific build instead of `:latest`, see the tagging note in
|
|
[`docker-compose.deploy.yml`](../../../docker-compose.deploy.yml) and set `BACKEND_IMAGE`/
|
|
`FRONTEND_IMAGE` accordingly (add those two env vars to the stack and swap the `image:`
|
|
lines to `${BACKEND_IMAGE:-...}` / `${FRONTEND_IMAGE:-...}` if you want that flexibility).
|