{ "schema_version": "0.3.0", "kind": "proxmenux.oci-template", "id": "linuxserver-librewolf", "status": "generated-unvalidated", "catalog_ui": { "title": { "en_US": "Librewolf" }, "tagline": { "en_US": "LibreWolf is a custom and independent version of Firefox, with the primary goals of privacy, security and user freedom. LibreWolf also aims to remove all the telemetry, data collection and annoyances, as well as disabling anti-freedom features like DRM." }, "description": { "en_US": "LibreWolf is a custom and independent version of Firefox, with the primary goals of privacy, security and user freedom. LibreWolf also aims to remove all the telemetry, data collection and annoyances, as well as disabling anti-freedom features like DRM." }, "category": "desktop", "category_label": "Browsers & Web Desktops", "author": "LinuxServer.io", "developer": null, "icon": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/librewolf.webp", "thumbnail": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/librewolf-banner.png", "screenshots": [], "architectures": [ "amd64", "arm64" ], "launch": { "scheme": "https", "port": 3001, "path": "/" }, "website": "https://librewolf.net/", "documentation": "https://docs.linuxserver.io/images/docker-librewolf/", "repository": "https://github.com/linuxserver/docker-librewolf", "tips": [], "mini_changelog": [ { "date": "2026-03-31", "note": "Make Wayland default disable with PIXELFLUX_WAYLAND=false." }, { "date": "2025-12-28", "note": "Add Wayland init logic." }, { "date": "2025-09-22", "note": "Rebase to Debian Trixie." }, { "date": "2025-07-12", "note": "Rebase to Selkies, HTTPS IS NOW REQUIRED." }, { "date": "2024-10-12", "note": "Publish aarch64 image. Switch to new upstream repo." } ], "display_version": null, "updated_at": "2026-03-31" }, "source": { "provider": "linuxserver.io", "repository": "https://github.com/linuxserver/docker-librewolf", "default_branch": "master", "revision": "36e268ea357a19e43e6e629d18abe445716d47ac", "readme_raw_url": "https://raw.githubusercontent.com/linuxserver/docker-librewolf/36e268ea357a19e43e6e629d18abe445716d47ac/README.md", "readme_pushed_at": "2026-09-07T07:42:13Z", "compose_sha256": "b3d366f827b82e7a56d8166f34e8cf7f67cbea61e9d08364128aec3ec0744bf0", "generated_at": "2026-09-12T14:37:30+00:00" }, "container_contract": { "service_name": "librewolf", "container_name": "librewolf", "image": { "reference": "lscr.io/linuxserver/librewolf:latest", "registry": "lscr.io", "repository": "lscr.io/linuxserver/librewolf", "tag": "latest", "digest": null, "pull_policy": "resolve-selected-tag-to-architecture-digest-at-install" }, "environment": [ { "name": "PUID", "example": "1000", "required": true, "sensitive": false, "source": "linuxserver-compose" }, { "name": "PGID", "example": "1000", "required": true, "sensitive": false, "source": "linuxserver-compose" }, { "name": "TZ", "example": "Etc/UTC", "required": true, "sensitive": false, "source": "linuxserver-compose" }, { "name": "LIBREWOLF_CLI", "example": "https://www.linuxserver.io/", "required": false, "sensitive": false, "source": "linuxserver-compose" }, { "name": "LC_ALL", "example": "", "required": false, "sensitive": false, "source": "upstream-documentation", "prompt": "Language/locale (e.g. es_ES.UTF-8; translation of every application is not guaranteed)" } ], "volumes": [ { "id": "volume-0", "container_path": "/config", "compose_source_example": "/path/to/librewolf/config", "read_only": false, "required": true, "installation_choice": [ "managed-volume", "host-bind" ], "default": "managed-volume", "managed_volume": { "backup": true, "default_size_gb": 4 } } ], "ports": [ { "container_port": 3000, "published_example": 3000, "protocol": "tcp", "required": true, "proxmox_behavior": "listener-on-dedicated-lxc-address-no-nat" }, { "container_port": 3001, "published_example": 3001, "protocol": "tcp", "required": true, "proxmox_behavior": "listener-on-dedicated-lxc-address-no-nat" } ], "related_services": [], "restart": "unless-stopped", "stop_grace_period": null, "original_compose": "---\nservices:\n librewolf:\n image: lscr.io/linuxserver/librewolf:latest\n container_name: librewolf\n environment:\n - PUID=1000\n - PGID=1000\n - TZ=Etc/UTC\n - LIBREWOLF_CLI=https://www.linuxserver.io/ #optional\n volumes:\n - /path/to/librewolf/config:/config\n ports:\n - 3000:3000\n - 3001:3001\n shm_size: \"1gb\"\n restart: unless-stopped\n" }, "first_run": { "endpoints": [ { "label": "Web UI", "scheme": "https", "port": 3001, "path": "/", "source": "linuxserver-readme-application-setup" } ], "credentials": [] }, "proxmox": { "runtime": "native-oci-lxc", "technology_status": "proxmox-technology-preview", "defaults": { "unprivileged": true, "ostype": "auto-from-image", "cores": 2, "memory_mb": 1024, "swap_mb": 512, "rootfs_size_gb": 8, "rootfs_storage": "local-lvm", "volume_storage": "local-lvm", "template_storage": "local", "bridge": "vmbr0", "ipv4": "dhcp", "firewall": true, "host_managed_network": true, "onboot": false, "features": [ "nesting=1" ], "shutdown_timeout_seconds": 30 }, "image_metadata_policy": { "entrypoint": "import-from-oci-image", "cmd": "import-from-oci-image", "environment": "import-image-env-then-apply-compose-overrides", "user": "import-from-oci-image", "working_dir": "import-from-oci-image", "stop_signal": "import-from-oci-image" }, "adaptations": [ { "id": "dedicated-lxc-network", "upstream_behavior": "Docker publishes selected container ports on the Docker host.", "native_lxc_behavior": "The application listens on the same container ports at its dedicated LXC address.", "reason": "A native LXC has its own address and does not require Docker port NAT.", "behavioral_impact": "Users open the LXC address instead of the Proxmox host address.", "validation": "pending-per-application" }, { "id": "compose-environment-overlay", "upstream_behavior": "Compose environment values override OCI image environment values.", "native_lxc_behavior": "ProxMenux merges the same values into lxc.environment.runtime while the CT is stopped.", "reason": "PVE imports image Env automatically; Compose values still need to override it.", "behavioral_impact": "None expected.", "validation": "pending-per-application" }, { "id": "stop-grace-period", "upstream_behavior": "Docker waits for Compose stop_grace_period before forcing termination.", "native_lxc_behavior": "ProxMenux records the same timeout for its pct shutdown lifecycle operations.", "reason": "Proxmox has no equivalent per-CT persistent restart-policy field; startup.down is not a shutdown timeout.", "behavioral_impact": "Normal Proxmox node shutdown remains governed by the node-wide shutdown policy.", "validation": "not-requested-by-compose" }, { "id": "compose-shm-size", "upstream_behavior": "Compose sets the size of the container /dev/shm tmpfs.", "native_lxc_behavior": "ProxMenux mounts a native LXC tmpfs at /dev/shm with the same requested capacity.", "reason": "The OCI image runs directly as an LXC and therefore needs the equivalent Proxmox mount entry.", "behavioral_impact": "None expected.", "validation": "pending-per-application" } ], "installer_profile": { "tmpfs_mounts": [ { "id": "compose-shm", "container_path": "/dev/shm", "default_size_mb": 1024, "minimum_size_mb": 1, "size_prompt": "Size of the /dev/shm shared memory in MB", "mount_options": [ "rw", "nosuid", "nodev" ] }, { "id": "nginx-runtime", "container_path": "/run/nginx", "default_size_mb": 1, "minimum_size_mb": 1, "prompt_size": false, "mount_options": [ "rw", "nosuid", "nodev", "mode=0755" ] } ], "selkies": { "base": "FROM ghcr.io/linuxserver/baseimage-selkies:debiantrixie", "dockerfile_url": "https://raw.githubusercontent.com/linuxserver/docker-librewolf/master/Dockerfile", "dockerfile_sha256": "85e8f7956eb72f49b520008050bafb77fcd6c3983cdd5cae62aee0c9a6120e33", "reviewed_on": "2026-09-16", "documentation": "https://docs.linuxserver.io/images/docker-baseimage-selkies/", "nvidia": "not-offered-until-specific-host-and-image-validation", "validation": "profile-generated; real streaming workload pending" }, "optional_devices": [], "hardware_acceleration": { "prompt": "Selkies desktop and streaming acceleration", "default": "none", "profiles": [ { "id": "none", "label": "No GPU (CPU)", "device_requests": [], "environment": [ { "name": "AUTO_GPU", "value": "false" } ] }, { "id": "vaapi", "label": "Intel/AMD (streaming rendering and encoding)", "device_requests": [ { "id": "selkies-render", "kind": "character-device", "path_prompt": "Intel/AMD render node", "host_path_default": "/dev/dri/renderD128", "container_path_strategy": "same-as-host", "mode": "0660", "deny_write": false, "gid_strategy": "host-device-gid", "drm_vendor_ids": [ "0x8086", "0x1002" ] } ], "environment": [ { "name": "PIXELFLUX_WAYLAND", "value": "true" }, { "name": "AUTO_GPU", "value": "false" } ], "environment_from_devices": { "DRINODE": [ "selkies-render" ], "DRI_NODE": [ "selkies-render" ], "ATTACHED_DEVICES_PERMS": [ "selkies-render" ] } } ] }, "gpu_validation": { "device_inventory": "host-sysfs-and-stat", "application_acceleration": "requires-workload-test", "tone_mapping": "not-implied-by-device-access" }, "device_permissions": { "strategy": "linuxserver-native-init", "service_user": "abc", "environment": "ATTACHED_DEVICES_PERMS", "paths": "all-resolved-selected-character-devices" } } }, "compatibility": { "automatic_install_candidate": true, "validated": false, "supported_compose_keys": [ "container_name", "environment", "image", "ports", "restart", "shm_size", "stop_grace_period", "volumes" ], "untranslated_blockers": [], "policy": "A generated template is never promoted to validated without install, health, restart and persistence tests." }, "validation": { "schema": "passed-at-generation", "clean_install": "pending", "service_health": "pending", "restart_persistence": "pending", "backup_restore": "pending", "update_preserves_data": "pending" }, "lifecycle": { "update_strategy": "replace-rootfs-from-new-oci-image-preserve-managed-volumes", "registry_state": { "resolved_architecture": null, "resolved_digest": null, "image_version_label": null, "image_created": null }, "change_detection": "compare-resolved-architecture-digest", "automatic_unattended_updates": false } }