App Store & Templates¶
Eight.ly ships with a curated catalog of 3,200+ apps, maintained by Imogen Labs. The catalog covers both Docker apps and native LXC apps — see LXC Apps below — and it's self-contained: no external feeds, no upstream dependencies, no third-party registry.
How templates work¶
Each Docker app is a folder containing a standard docker-compose.yml and a metadata.json:
templates/
{group}/ # ai, media, tools, network, etc.
{subcategory}/ # streaming, databases, dns, etc.
{app-name}/
docker-compose.yml # Standard Docker Compose file
metadata.json # Name, description, icon, URLs, author
Template conventions¶
| Convention | Example |
|---|---|
| Appdata paths | ${POOL_ROOT:-/mnt}/<app> — NAS-aware, falls back to /mnt if no pool is set |
| Standard env vars | PUID, PGID, TZ |
| Network modes | proxy network or network_mode: host |
| Traefik labels | Auto-generated from WebUI port |
Templates are plain compose files — valid even if you run them outside Eight.ly via docker compose up.
metadata.json¶
{
"name": "plex-rewind",
"displayName": "Plex Rewind",
"description": "Present Plex user statistics and habits in a beautiful and organized manner.",
"projectUrl": "https://github.com/RaunoT/plex-rewind",
"supportUrl": "https://github.com/RaunoT/plex-rewind/issues",
"iconUrl": "https://raw.githubusercontent.com/...",
"author": "grtgbln"
}
How the catalog stays current¶
Eight.ly fetches the catalog from Imogen Labs' license server:
- On startup, the backend checks in with the license server using your activation token
- The server returns a catalog manifest listing all available templates
- When you deploy an app, its template is fetched and cached locally
- Cached templates are used to install even before the next refresh
Your licence gates catalogue refreshes, never an installed app. An unactivated or lapsed box keeps every app it's already installed, running exactly as before — it just stops receiving new and updated templates until you activate.
Catalog stats¶
| Stat | Value |
|---|---|
| Docker app templates | 3,200+ |
| Native LXC app templates | 500+ |
| Groups | 14 |
Groups¶
AI & Machine Learning, Media, Video & TV, Downloaders, Network & Web, Cloud & Storage, Backup & Recovery, Security & Identity, Home Automation, Productivity, Tools & System, Game Servers, Crypto & Blockchain, and Other — each with its own set of subcategories.
Examples across the catalog: Ollama, ComfyUI, Immich, PhotoPrism, Plex, Jellyfin, Sonarr, Radarr, qBittorrent, Prowlarr, Traefik, Pi-hole, WireGuard, Nextcloud, Syncthing, Vaultwarden, Authelia, Home Assistant, Paperless-ngx, n8n, Portainer, Uptime Kuma, Gitea, and hundreds more.
Browsing the catalog¶
In the dashboard, click App Store in the sidebar to browse:
- Search by app name, description, or author
- Filter by category
- Sort by name, newest, downloads, trending, or stars
- Star apps for quick access
Each app card shows: icon, name, author, description, category badges, and an Install button.
Installing an app¶
- Click Install on any app card
- Review and override the pre-filled configuration in the install wizard
- Click Deploy — watch the live progress log
The install wizard¶
The template ships with sensible defaults, but the install wizard lets you override anything before the container is created:
- Port overrides — every published port is editable. A live port-conflict checker flags a taken port and suggests the next free one.
- Environment variables — edit the pre-filled env vars (
PUID,PGID,TZ, and any app-specific keys) or add your own before deploy. - Network mode — choose Bridge, Host, macvlan (its own IP on the LAN), Traefik (keep proxy routing), or a custom network. If you've set up Traefik with Authelia protection for the box, apps routed through Traefik pick that up automatically — it isn't a separate choice per app.
- Restart policy — pick the container's restart behavior (e.g.
unless-stopped,always,on-failure,no). - Volume paths — review where the app's data lands.
- GPU passthrough — if a GPU is detected, toggle GPU Acceleration and Eight.ly injects the right runtime config into the compose file. Detection covers NVIDIA and Intel/AMD integrated graphics (used for AI workloads like Ollama/ComfyUI and hardware transcoding in Plex/Jellyfin/Tdarr).
Once you're happy with the overrides, click Deploy and follow the live progress log.
LXC Apps¶
Alongside the Docker catalog, Eight.ly maintains a separate catalog of native LXC apps — the same idea as the Docker catalog, but each app installs as a full LXC container instead of a Docker container. Many apps exist in both catalogs on purpose: some workloads are a better fit for an LXC container's real init system than a single Docker process. Browse and install them from the LXC section of the App Store the same way you would a Docker app.
See LXC Containers for how LXC containers work once installed.
Template validation¶
Every template is validated with docker compose config at merge time. Templates that fail validation (bad ports, volume names with spaces, undefined named volumes, missing image) don't land in the catalog.
Recommended companion tools¶
- TRaSH Guides — best-practice quality profiles and settings for the *arr stack. Follow these after deploying Sonarr, Radarr, and Prowlarr.
- Recyclarr — automatically syncs TRaSH Guides profiles into your *arr apps. Available in the Eight.ly catalog.
- LinuxServer.io — the gold standard for self-hosted container images. Most of the catalog uses their images.
Credits¶
Container images are pulled from wherever the publisher ships them — Docker Hub, GHCR, Quay, LinuxServer.io, and others. The majority of the catalog uses LinuxServer.io images.