docs: update Unraid guide for registry image, inert MAX_FILE_SIZE, stateless volumes

This commit is contained in:
2026-07-31 21:19:15 -05:00
parent 8288827c69
commit f9ba22ffba
+13 -7
View File
@@ -1,6 +1,8 @@
# Unraid Installation Guide for PNGer # Unraid Installation Guide for PNGer
This guide walks you through installing PNGer on Unraid using the Docker tab and "Add Container" feature. This guide walks you through installing PNGer on Unraid using the Docker tab and "Add Container" feature. For the compose/CLI paths, local development and the full environment-variable table, see [INSTALL.md](INSTALL.md).
> PNGer has **no authentication**. Anyone who can reach the port can upload images and burn CPU on your box. Keep it on the LAN, or put it behind a reverse proxy with auth before exposing it.
## Requirements ## Requirements
- Unraid OS with Docker enabled. - Unraid OS with Docker enabled.
@@ -12,7 +14,7 @@ This guide walks you through installing PNGer on Unraid using the Docker tab and
2. Scroll to the bottom and click on **Add Container**. 2. Scroll to the bottom and click on **Add Container**.
3. Fill in the following details: 3. Fill in the following details:
- **Name**: `PNGer` - **Name**: `PNGer`
- **Repository**: `jason/pnger:latest` (or the repository you pushed the image to, e.g., `ghcr.io/yourusername/pnger:latest` if hosted, or `pnger:latest` if built locally). - **Repository**: `registry.alwisp.com/jason/pnger:latest` — this is what the Gitea Actions workflow publishes on every push to `main`. Run `docker login registry.alwisp.com` once on the Unraid host so it can pull. If you built the image locally on the box instead (`docker build -t pnger:latest .`), use `pnger:latest`.
- **Network Type**: `Bridge` - **Network Type**: `Bridge`
4. Click on **+ Add another Path, Port, Variable, Label or Device** to add the required parameters. 4. Click on **+ Add another Path, Port, Variable, Label or Device** to add the required parameters.
@@ -42,13 +44,14 @@ Add the following variables by clicking **+ Add another Path, Port, Variable...*
- **Key**: `TZ` - **Key**: `TZ`
- **Value**: `America/New_York` (Enter your specific Timezone here). - **Value**: `America/New_York` (Enter your specific Timezone here).
4. **MAX_FILE_SIZE** (Optional) 4. **MAX_FILE_SIZE** (Optional — and currently inert)
- **Name**: `Max Upload Size (Bytes)` - **Name**: `Max Upload Size (Bytes)`
- **Key**: `MAX_FILE_SIZE` - **Key**: `MAX_FILE_SIZE`
- **Value**: `10485760` (Default is 10MB; 10485760 bytes). - **Value**: `10485760` (10 MB in bytes).
- ⚠️ The application does **not** read this today: the live upload middleware sets no size limit, so uploads are effectively unbounded and are held in memory. Setting the variable does nothing. Until it is wired up, cap request bodies at your reverse proxy and give the container a sensible memory limit.
### Volume Mapping (Optional) ### Volume Mapping (not needed)
If you require persistence for the temporary directory processing uploads (usually not required): PNGer is stateless — uploads are processed in memory and streamed straight back, and nothing is ever written to `/app/temp` despite the directory existing. There is nothing to persist and nothing to back up. If you want the mapping anyway, it is harmless:
- **Config Type**: `Path` - **Config Type**: `Path`
- **Name**: `Temp Processing Dir` - **Name**: `Temp Processing Dir`
- **Container Path**: `/app/temp` - **Container Path**: `/app/temp`
@@ -62,5 +65,8 @@ Once the container states "started", you can access the Web GUI by navigating to
--- ---
**Updates:**
Every push to `main` rebuilds `registry.alwisp.com/jason/pnger:latest` on the Gitea runner. To take a new build: **Docker** tab → container row → **Force update** (or let the *CA Auto Update Applications* plugin do it on a schedule). There is no state, so an update is just a container recreation. Only `:latest` is published — there is no per-SHA tag to pin or roll back to.
**Troubleshooting:** **Troubleshooting:**
If the container stops instantly, check the **Logs** in Unraid. Ensure that the port you selected on the host is not already in use by another container (like a web server or another app). If the container stops instantly, check the **Logs** in Unraid. Ensure that the port you selected on the host is not already in use by another container (like a web server or another app). If the container starts but the WebGUI is blank, confirm the host port maps to container port **3000**.