Pinokio, the 1-click launcher for open-source AI apps, in a browser-accessible Docker container
8.3K
Source and issues: github.com/Joly0/pinokio-docker
Pinokio in a container, accessible from any web browser.
Pinokio is a 1-click launcher for open-source AI apps: browse, install, run and manage tools like Stable Diffusion WebUIs, ComfyUI, LLM front ends or voice cloning without touching a terminal. This image runs the Pinokio desktop app on a Linux desktop that is streamed to your browser, so you can host it on a server (Unraid, a NAS, a home lab box) and use it from anywhere on your network.
/configPINOKIO_* variable is written into Pinokio's own settings on first startdocker run -d \
--name=pinokio \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-p 3000:3000 \
-p 3001:3001 \
-p 50000:50000 \
-v /path/to/config:/config \
--shm-size=1gb \
--security-opt seccomp=unconfined \
--restart unless-stopped \
joly0/pinokio-docker:latest
services:
pinokio:
image: joly0/pinokio-docker:latest
container_name: pinokio
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- /path/to/config:/config
ports:
- 3000:3000
- 3001:3001
- 50000:50000
shm_size: "1gb"
security_opt:
- seccomp:unconfined
restart: unless-stopped
Then open https://yourhost:3001/ (or http://yourhost:3000/) in your browser. Pinokio starts maximised in the streamed desktop.
Note: Pinokio installs apps, Python environments and models into
/config, so plan for plenty of disk space there (often tens to hundreds of GB).
| Parameter | Description |
|---|---|
-p 3000 | Web desktop over HTTP |
-p 3001 | Web desktop over HTTPS (self-signed certificate) |
-p 50000 | Pinokio local network sharing port, see PINOKIO_SHARE_LOCAL_PORT |
-e PUID=1000 | User ID the app runs as, see user and group IDs |
-e PGID=1000 | Group ID the app runs as |
-e TZ=Europe/London | Timezone, e.g. Europe/Berlin |
-v /config | Home directory of the container user: Pinokio's data, installed apps and settings |
--shm-size=1gb | Shared memory for the Electron based Pinokio app; required for it to work reliably |
--security-opt seccomp=unconfined | Allows newer system calls that many GUI apps need on older Docker hosts |
Pinokio keeps its settings in /config/pinokio/ENVIRONMENT. Any environment variable starting with PINOKIO_ that matches a key in that file is written into it once Pinokio has created the file on first start. Each key is only applied once: changes you make later in the Pinokio settings are kept across restarts, and a key is never overwritten again. To reapply a variable, remove its line from /config/pinokio/.pinokio_env_applied.
| Variable | Default in this image | Description |
|---|---|---|
PINOKIO_SHARE_LOCAL | true | Share apps started in Pinokio on the local network |
PINOKIO_SHARE_LOCAL_PORT | 50000 | Fixed port for local network sharing (publish the same port on the container) |
PINOKIO_CLI | Extra command line arguments passed to the Pinokio binary |
All other keys in the ENVIRONMENT file work the same way, see the comments in that file for what each one does.
The Selkies base image offers further options, for example:
| Variable | Description |
|---|---|
CUSTOM_USER | HTTP basic auth user name, abc by default |
PASSWORD | HTTP basic auth password; no authentication when unset |
CUSTOM_PORT / CUSTOM_HTTPS_PORT | Change the internal ports from 3000 / 3001 |
SUBFOLDER | Serve under a subfolder when behind a reverse proxy, e.g. /pinokio/ |
TITLE | Browser tab title, Pinokio by default |
See the Selkies configuration docs for the full list, including GPU acceleration.
Warning: Without
PASSWORDthere is no authentication, and the desktop includes a terminal with passwordlesssudo: anyone who can reach the ports gets root inside the container. Basic auth is only suitable for a trusted local network; for internet access, put the container behind a reverse proxy with proper authentication.
Images are published to Docker Hub and the GitHub Container Registry as joly0/pinokio-docker and ghcr.io/joly0/pinokio-docker.
| Tag | Meaning |
|---|---|
latest | Newest build |
8, 8.2 | Newest build of that Pinokio major or minor version |
8.2.0 | Newest build of that exact Pinokio version |
8.2.0-J49 | One specific build; pin this to never change unexpectedly |
Only linux/amd64 is built.
git clone https://github.com/Joly0/pinokio-docker.git
cd pinokio-docker
docker build -t pinokio-docker .
The build installs the newest Pinokio release. Pass --build-arg PINOKIO_VERSION=<release tag> to build a specific one.
Bugs and feature requests go to the issue tracker. Problems with Pinokio itself (rather than with the container) belong in the Pinokio repository.
AGPL-3.0. Pinokio itself is developed by pinokiocomputer under its own license.
Content type
Image
Digest
sha256:7ff8bb9e9…
Size
1.2 GB
Last updated
4 days ago
docker pull joly0/pinokio-docker