6.9 KiB
description
| description |
|---|
| Example Docker Compose configurations for Neko. |
Examples
Here are some examples to get you started with Neko. You can use these examples as a reference to create your own configurations.
Every example below is also available as a self-contained, runnable folder in the examples/ directory of the repository, so you can browse, clone or download it directly. Each file is heavily commented, showing the available options and linking to the relevant documentation inline.
Simple Browser
A basic Firefox setup. Includes commented volume mounts for persisting the browser profile or mounting your own pre-configured one, and a list of other browser images you can swap in.
Browse: examples/simple-browser
See also: Persistent Browser Profile and Browser Policy Files.
Kiosk Browser
Runs Firefox in kiosk mode (no address bar, tabs or browser chrome) and opens a fixed URL automatically on startup. This is useful for app-like setups such as streaming services or dashboards, and works by mounting a persistent copy of the Firefox supervisor config and overriding the command directly.
This setup is intentionally stateless - no browser profile is persisted, so logins are lost on every restart. See the comments in the example for how to add a persistent profile if you need to stay logged in.
Browse: examples/kiosk-browser
For some workflows, passing the target URL directly to Firefox is more reliable than using homepage policies, because session restore can otherwise override the start page. See also: Supervisord Configuration.
Nvidia GPU Browser
Neko supports hardware acceleration using Nvidia GPUs. To use this feature, you need to have the Nvidia Container Toolkit installed on your system. You can find the installation instructions here. Check if your GPU supports hardware encoding with this list.
This example accelerates both video encoding and browser rendering using the GPU. You can test if the GPU is used by running nvtop or nvidia-smi, which should show the GPU usage of both the browser and neko. In the browser, you can run the WebGL Aquarium Demo to test the GPU usage.
If you only want to accelerate the encoding, not the browser rendering, see the commented "ENCODE-ONLY OPTION" blocks in the example - they switch to the plain firefox image and a videoconvert-based pipeline instead of nvidia-firefox with cudaupload/cudaconvert.
Browse: examples/gpu-nvidia-browser
See available Nvidia Docker Images.
Intel GPU Browser
Neko supports hardware acceleration using Intel GPUs via VAAPI. This requires the host to expose /dev/dri and have the Intel graphics driver installed.
This example accelerates both video encoding and browser rendering using the intel-firefox image. If you only want to accelerate the encoding, not the browser rendering, see the commented "ENCODE-ONLY OPTION" in the example, which switches to the plain firefox image.
Browse: examples/gpu-intel-browser
See available Intel Docker Images.
Raspberry Pi Browser
Firefox tuned for a Raspberry Pi (or similar ARM SBC). Works out of the box with software rendering/encoding. See the commented "GPU ACCELERATION OPTION" in the example for enabling hardware-accelerated encoding via the Broadcom VideoCore V4L2 M2M encoder, available on Raspberry Pi 3/4 (not Pi 5).
Browse: examples/raspberry-pi-browser
ARM64 Browser
Firefox on a generic ARM64 host (e.g. Apple M1/M2 under virtualization, AWS Graviton, Oracle Cloud ARM free tier). The same multi-arch image used on amd64 works here - no special image tag is required.
DRM (Widevine) support is limited on ARM64 and needs extra setup for protected streaming content, see DRM for ARM64. If your device exposes a V4L2 M2M hardware encoder, you can reuse the pipeline from the Raspberry Pi Browser example.
Browse: examples/arm64-browser
See supported architectures and per-app availability in the Availability Matrix.
OAuth
Authenticates members through an external OAuth 2.0 / OpenID Connect provider instead of the built-in multiuser passwords. OAuth has many settings, so this example sets them via a mounted config.yaml instead of environment variables.
Browse: examples/oauth
See OAuth 2.0 Provider for all available options.
TURN Server
WebRTC needs a direct connection between the client and the server. When that is not possible (e.g. both sides are behind restrictive NATs or firewalls), a TURN server relays the traffic instead. This example runs a Coturn TURN server alongside Neko.
Browse: examples/turn-server
Replace <MY-COTURN-SERVER> with your LAN or Public IP address, and allow ports 49160-49200/udp and 3478/tcp.