From 67adec17f7ef4a2a72e30caac441550a3c68a58d Mon Sep 17 00:00:00 2001 From: <> Date: Fri, 16 Dec 2022 15:19:01 +0000 Subject: [PATCH] Deployed c131abb6 with MkDocs version: 1.4.2 --- images/docker-audacity/index.html | 2 +- search/search_index.json | 2 +- sitemap.xml.gz | Bin 1547 -> 1547 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/images/docker-audacity/index.html b/images/docker-audacity/index.html index b43941037a..315cd5b94b 100644 --- a/images/docker-audacity/index.html +++ b/images/docker-audacity/index.html @@ -25,4 +25,4 @@ services:

Parameters

Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal> respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.

Ports (-p)

Parameter Function
3000 Audacity desktop gui.

Environment Variables (-e)

Env Function
PUID=1000 for UserID - see below for explanation
PGID=1000 for GroupID - see below for explanation
TZ=Europe/London Specify a timezone to use EG Europe/London.

Volume Mappings (-v)

Volume Function
/config Users home directory in the container, stores program settings and images

Miscellaneous Options

Parameter Function

Environment variables from files (Docker secrets)

You can set any environment variable from a file by using a special prepend FILE__.

As an example:

-e FILE__PASSWORD=/run/secrets/mysecretpassword
 

Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.

Umask for running applications

For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.

User / Group Identifiers

When using volumes (-v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID.

Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.

In this instance PUID=1000 and PGID=1000, to find yours use id user as below:

  $ id username
     uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
-

Docker Mods

Docker Mods Docker Universal Mods

We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.

Support Info

Versions

\ No newline at end of file +

Docker Mods

Docker Mods Docker Universal Mods

We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.

Support Info

Versions

\ No newline at end of file diff --git a/search/search_index.json b/search/search_index.json index 5db3f419be..d6cf34b5ee 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Introduction Welcome to the home of the LinuxServer.io documentation! It is our goal to ensure that all of our images are properly documented with all of the relevant information in order to help our users get started. As well as individual set up guides for each of our images, there is also general information pertaining to the running of Docker containers, and best practices. Want to get hold of the team? The team resides primarily in our Discord server. We also have a forum if chat isn't your thing. Where Link Discord https://discord.gg/YWrKVTn Forum https://discourse.linuxserver.io For those interested in our CI environment via Jenkins: https://ci.linuxserver.io/","title":"Introduction"},{"location":"#introduction","text":"Welcome to the home of the LinuxServer.io documentation! It is our goal to ensure that all of our images are properly documented with all of the relevant information in order to help our users get started. As well as individual set up guides for each of our images, there is also general information pertaining to the running of Docker containers, and best practices.","title":"Introduction"},{"location":"#want-to-get-hold-of-the-team","text":"The team resides primarily in our Discord server. We also have a forum if chat isn't your thing. Where Link Discord https://discord.gg/YWrKVTn Forum https://discourse.linuxserver.io For those interested in our CI environment via Jenkins: https://ci.linuxserver.io/","title":"Want to get hold of the team?"},{"location":"FAQ/","text":"FAQ Here will some Frequently Asked Questions reside My host is incompatible with images based on Ubuntu Jammy {#jammy} Some x86_64 hosts running older versions of the Docker engine are not compatible with some images based on Ubuntu Jammy. Symptoms If your host is affected you may see errors in your containers such as: ERROR - Unable to determine java version; make sure Java is installed and callable Or Failed to create CoreCLR, HRESULT: 0x80070008 Or WARNING :: MAIN : webStart.py:initialize:249 : can't start new thread Resolution Option 1 (Long-Term Fix) Upgrade your Docker engine install to at least version 20.10.10 . Refer to the official Docker docs for installation/update details. Option 2 (Short-Term Fix) For Docker CLI, run your container with: --security-opt seccomp=unconfined For Docker Compose, run your container with: security_opt: - seccomp=unconfined My host is incompatible with images based on rdesktop {#rdesktop} Some x86_64 hosts have issues running rdesktop based images even with the latest docker version due to syscalls that are unknown to docker. Symptoms If your host is affected you may see errors in your containers such as: Failed to close file descriptor for child process (Operation not permitted) Resolution For Docker CLI, run your container with: --security-opt seccomp=unconfined For Docker Compose, run your container with: security_opt: - seccomp=unconfined My host is incompatible with images based on Ubuntu Focal and Alpine 3.13 and later {#libseccomp} This only affects 32 bit installs of distros based on Debian Buster. This is due to a bug in the libseccomp2 library (dependency of Docker itself), which is fixed. However it's not pushed to all the repositories. A GitHub issue tracking this You have a few options as noted below. Options 1 is short-term, while option 2 is considered the best option if you don't plan to reinstall the device (option 3). Resolution If you decide to do option 1 or 2, you should just need to restart the container after confirming you have libseccomp2.4.4 installed. If 1 or 2 did not work, ensure your Docker install is at least version 20.10.0, refer to the official Docker docs for installation. Option 1 Manually install an updated version of the library with dpkg. wget http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.4.4-1~bpo10+1_armhf.deb sudo dpkg -i libseccomp2_2.4.4-1~bpo10+1_armhf.deb {% hint style=\"info\" %} This url may have been updated. Find the latest by browsing here . {% endhint %} Option 2 Add the backports repo for DebianBuster. As seen here . sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138 echo \"deb http://deb.debian.org/debian buster-backports main\" | sudo tee -a /etc/apt/sources.list.d/buster-backports.list sudo apt update sudo apt install -t buster-backports libseccomp2 Option 3 Reinstall/update your OS to a version that still gets updates. Any distro based on DebianStretch does not seem to have this package available DebianBuster based distros can get the package trough backports, as outlined in point 2. {% hint style=\"info\" %} RaspberryPI OS (formerly Raspbian) Can be upgraded to run with a 64bit kernel {% endhint %} Symptoms 502 errors in Jellyfin as seen in linuxserver/docker-jellyfin#71 Error starting framework core messages in the docker log for Plex . linuxserver/docker-plex#247 No WebUI for Radarr , even though the container is running. linuxserver/docker-radarr#118 Images based on our Nginx base-image(Nextcloud, SWAG, Nginx, etc.) fails to generate a certificate, with a message similar to error getting time:crypto/asn1/a_time.c:330 docker exec date returns 1970 I want to reverse proxy a application which defaults to https with a selfsigned certificate {#strict-proxy} Traefik {#strict-proxy-traefik} In this example we will configure a serverTransport rule we can apply to a service, as well as telling Traefik to use https on the backend for the service. Create a ServerTransport in your dynamic Traefik configuration, we are calling ours ignorecert . http: serversTransports: ignorecert: insecureSkipVerify: true Then on our foo service we tell it to use this rule, as well as telling Traefik the backend is running on https. - traefik.http.services.foo.loadbalancer.serverstransport=ignorecert - traefik.http.services.foo.loadbalancer.server.scheme=https","title":"FAQ"},{"location":"FAQ/#faq","text":"Here will some Frequently Asked Questions reside","title":"FAQ"},{"location":"FAQ/#my-host-is-incompatible-with-images-based-on-ubuntu-jammy-jammy","text":"Some x86_64 hosts running older versions of the Docker engine are not compatible with some images based on Ubuntu Jammy.","title":"My host is incompatible with images based on Ubuntu Jammy {#jammy}"},{"location":"FAQ/#symptoms","text":"If your host is affected you may see errors in your containers such as: ERROR - Unable to determine java version; make sure Java is installed and callable Or Failed to create CoreCLR, HRESULT: 0x80070008 Or WARNING :: MAIN : webStart.py:initialize:249 : can't start new thread","title":"Symptoms"},{"location":"FAQ/#resolution","text":"","title":"Resolution"},{"location":"FAQ/#option-1-long-term-fix","text":"Upgrade your Docker engine install to at least version 20.10.10 . Refer to the official Docker docs for installation/update details.","title":"Option 1 (Long-Term Fix)"},{"location":"FAQ/#option-2-short-term-fix","text":"For Docker CLI, run your container with: --security-opt seccomp=unconfined For Docker Compose, run your container with: security_opt: - seccomp=unconfined","title":"Option 2 (Short-Term Fix)"},{"location":"FAQ/#my-host-is-incompatible-with-images-based-on-rdesktop-rdesktop","text":"Some x86_64 hosts have issues running rdesktop based images even with the latest docker version due to syscalls that are unknown to docker.","title":"My host is incompatible with images based on rdesktop {#rdesktop}"},{"location":"FAQ/#symptoms_1","text":"If your host is affected you may see errors in your containers such as: Failed to close file descriptor for child process (Operation not permitted)","title":"Symptoms"},{"location":"FAQ/#resolution_1","text":"For Docker CLI, run your container with: --security-opt seccomp=unconfined For Docker Compose, run your container with: security_opt: - seccomp=unconfined","title":"Resolution"},{"location":"FAQ/#my-host-is-incompatible-with-images-based-on-ubuntu-focal-and-alpine-313-and-later-libseccomp","text":"This only affects 32 bit installs of distros based on Debian Buster. This is due to a bug in the libseccomp2 library (dependency of Docker itself), which is fixed. However it's not pushed to all the repositories. A GitHub issue tracking this You have a few options as noted below. Options 1 is short-term, while option 2 is considered the best option if you don't plan to reinstall the device (option 3).","title":"My host is incompatible with images based on Ubuntu Focal and Alpine 3.13 and later {#libseccomp}"},{"location":"FAQ/#resolution_2","text":"If you decide to do option 1 or 2, you should just need to restart the container after confirming you have libseccomp2.4.4 installed. If 1 or 2 did not work, ensure your Docker install is at least version 20.10.0, refer to the official Docker docs for installation.","title":"Resolution"},{"location":"FAQ/#option-1","text":"Manually install an updated version of the library with dpkg. wget http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.4.4-1~bpo10+1_armhf.deb sudo dpkg -i libseccomp2_2.4.4-1~bpo10+1_armhf.deb {% hint style=\"info\" %} This url may have been updated. Find the latest by browsing here . {% endhint %}","title":"Option 1"},{"location":"FAQ/#option-2","text":"Add the backports repo for DebianBuster. As seen here . sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138 echo \"deb http://deb.debian.org/debian buster-backports main\" | sudo tee -a /etc/apt/sources.list.d/buster-backports.list sudo apt update sudo apt install -t buster-backports libseccomp2","title":"Option 2"},{"location":"FAQ/#option-3","text":"Reinstall/update your OS to a version that still gets updates. Any distro based on DebianStretch does not seem to have this package available DebianBuster based distros can get the package trough backports, as outlined in point 2. {% hint style=\"info\" %} RaspberryPI OS (formerly Raspbian) Can be upgraded to run with a 64bit kernel {% endhint %}","title":"Option 3"},{"location":"FAQ/#symptoms_2","text":"502 errors in Jellyfin as seen in linuxserver/docker-jellyfin#71 Error starting framework core messages in the docker log for Plex . linuxserver/docker-plex#247 No WebUI for Radarr , even though the container is running. linuxserver/docker-radarr#118 Images based on our Nginx base-image(Nextcloud, SWAG, Nginx, etc.) fails to generate a certificate, with a message similar to error getting time:crypto/asn1/a_time.c:330 docker exec date returns 1970","title":"Symptoms"},{"location":"FAQ/#i-want-to-reverse-proxy-a-application-which-defaults-to-https-with-a-selfsigned-certificate-strict-proxy","text":"","title":"I want to reverse proxy a application which defaults to https with a selfsigned certificate {#strict-proxy}"},{"location":"FAQ/#traefik-strict-proxy-traefik","text":"In this example we will configure a serverTransport rule we can apply to a service, as well as telling Traefik to use https on the backend for the service. Create a ServerTransport in your dynamic Traefik configuration, we are calling ours ignorecert . http: serversTransports: ignorecert: insecureSkipVerify: true Then on our foo service we tell it to use this rule, as well as telling Traefik the backend is running on https. - traefik.http.services.foo.loadbalancer.serverstransport=ignorecert - traefik.http.services.foo.loadbalancer.server.scheme=https","title":"Traefik {#strict-proxy-traefik}"},{"location":"general/awesome-lsio/","text":"Awesome LSIO Administration Container Description doublecommander Double Commander is a free cross platform open source file manager with two panels side by side. It is inspired by Total Commander and features some new ideas. endlessh endlessh is an SSH tarpit that very slowly sends an endless, random SSH banner. It keeps SSH clients locked up for hours or even days at a time. The purpose is to put your real SSH server on another port and then let the script kiddies get stuck in this tarpit instead of bothering a real server. ldap-auth ldap-auth software is for authenticating users who request protected resources from servers proxied by nginx. It includes a daemon (ldap-auth) that communicates with an authentication server, and a webserver daemon that generates an authentication cookie based on the user\u2019s credentials. The daemons are written in Python for use with a Lightweight Directory Access Protocol (LDAP) authentication server (OpenLDAP or Microsoft Windows Active Directory 2003 and 2012). netbootxyz netbootxyz is a way to PXE boot various operating system installers or utilities from one place within the BIOS without the need of having to go retrieve the media to run the tool. iPXE is used to provide a user friendly menu from within the BIOS that lets you easily choose the operating system you want along with any specific types of versions or bootable flags. netbox netbox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers. It is intended to function as a domain-specific source of truth for network operations. openssh-server openssh-server is a sandboxed environment that allows ssh access without giving keys to the entire server. snipe-it snipe-it makes asset management easy. It was built by people solving real-world IT and asset management problems, and a solid UX has always been a top priority. Straightforward design and bulk actions mean getting things done faster. Audiobooks Container Description booksonic-air booksonic-air is a platform for accessing the audiobooks you own wherever you are. At the moment the platform consists of Automation Container Description domoticz domoticz is a Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. Notifications/Alerts can be sent to any mobile device. habridge habridge emulates Philips Hue API to other home automation gateways such as an Amazon Echo/Dot Gen 1 (gen 2 has issues discovering ha-bridge) or other systems that support Philips Hue. The Bridge handles basic commands such as \"On\", \"Off\" and \"brightness\" commands of the hue protocol. This bridge can control most devices that have a distinct API. homeassistant Home Assistant Core - Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server. kanzi kanzi , formerly titled Kodi-Alexa, this custom skill is the ultimate voice remote control for navigating Kodi. It can do anything you can think of (100+ intents). This container also contains lexigram-cli to setup Kanzi with an Amazon Developer Account and automatically deploy it to Amazon. Backup Container Description duplicati duplicati works with standard protocols like FTP, SSH, WebDAV as well as popular services like Microsoft OneDrive, Amazon Cloud Drive & S3, Google Drive, box.com, Mega, hubiC and many others. resilio-sync resilio-sync (formerly BitTorrent Sync) uses the BitTorrent protocol to sync files and folders between all of your devices. There are both free and paid versions, this container supports both. There is an official sync image but we created this one as it supports user mapping to simplify permissions for volumes. rsnapshot rsnapshot is a filesystem snapshot utility based on rsync. rsnapshot makes it easy to make periodic snapshots of local machines, and remote machines over ssh. The code makes extensive use of hard links whenever possible, to greatly reduce the disk space required.\" syncthing syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet. Books Container Description calibre calibre is a powerful and easy to use e-book manager. Users say it\u2019s outstanding and a must-have. It\u2019ll allow you to do nearly everything and it takes things a step beyond normal e-book software. It\u2019s also completely free and open source and great for both casual users and computer experts. calibre-web calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. It is also possible to integrate google drive and edit metadata and your calibre library through the app itself. cops cops by S\u00e9bastien Lucas, stands for Calibre OPDS (and HTML) Php Server. lazylibrarian lazylibrarian is a program to follow authors and grab metadata for all your digital reading needs. It uses a combination of Goodreads Librarything and optionally GoogleBooks as sources for author info and book info. This container is based on the DobyTang fork. mylar3 mylar3 is an automated Comic Book downloader (cbr/cbz) for use with NZB and torrents written in python. It supports SABnzbd, NZBGET, and many torrent clients in addition to DDL. readarr readarr - Book Manager and Automation (Sonarr for Ebooks) ubooquity ubooquity is a free, lightweight and easy-to-use home server for your comics and ebooks. Use it to access your files from anywhere, with a tablet, an e-reader, a phone or a computer. Cloud Container Description nextcloud nextcloud gives you access to all your files wherever you are. Crypto Container Description gmail-order-bot gmail-order-bot - A bot used to leverage a Gmail account as an order messaging service to consume email orders from Nano Checkout and process them using any custom logic you choose. nano nano is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions. nano-discord-bot nano-discord-bot - A bot used to hook into a self hosted Nano RPC endpoint and discord server to Distribute funds from a faucet account. nano-wallet nano-wallet is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions. DNS Container Description adguardhome-sync adguardhome-sync is a tool to synchronize AdGuardHome config to replica instances. ddclient ddclient is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider. It was originally written by Paul Burry and is now mostly by wimpunk. It has the capability to update more than just dyndns and it can fetch your WAN-ipaddress in a few different ways. duckdns duckdns is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. The service is completely free, and doesn't require reactivation or forum posts to maintain its existence. Dashboard Container Description heimdall heimdall is a way to organise all those links to your most used web sites and web applications in a simple way. muximux muximux is a lightweight portal to view & manage your HTPC apps without having to run anything more than a PHP enabled webserver. With Muximux you don't need to keep multiple tabs open, or bookmark the URL to all of your apps. Databases Container Description mariadb mariadb is one of the most popular database servers. Made by the original developers of MySQL. mysql-workbench MySQL Workbench is a unified visual tool for database architects, developers, and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more. phpmyadmin phpmyadmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL and MariaDB. sqlitebrowser DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite. Docker Container Description docker-compose No description fleet fleet provides an online web interface which displays a set of maintained images from one or more owned repositories. Documents Container Description libreoffice LibreOffice is a free and powerful office suite, and a successor to OpenOffice.org (commonly known as OpenOffice). Its clean interface and feature-rich tools help you unleash your creativity and enhance your productivity. paperless-ng paperless-ng is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\" paperless-ngx paperless-ngx is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\" papermerge papermerge is an open source document management system (DMS) primarily designed for archiving and retrieving your digital documents. Instead of having piles of paper documents all over your desk, office or drawers - you can quickly scan them and configure your scanner to directly upload to Papermerge DMS.\" Downloaders Container Description deluge deluge is a lightweight, Free Software, cross-platform BitTorrent client. nntp2nntp nntp2nntp proxy allow you to use your NNTP Account from multiple systems, each with own user name and password. It fully supports SSL and you can also limit the access to proxy with SSL certificates. nntp2nntp proxy is very simple and pretty fast. nzbget nzbget is a usenet downloader, written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources. pyload-ng pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web. qbittorrent The qbittorrent project aims to provide an open-source software alternative to \u00b5Torrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library. sabnzbd sabnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction. transmission transmission is designed for easy, powerful use. Transmission has the features you want from a BitTorrent client: encryption, a web interface, peer exchange, magnet links, DHT, \u00b5TP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more. FTP Container Description davos davos is an FTP automation tool that periodically scans given host locations for new files. It can be configured for various purposes, including listening for specific files to appear in the host location, ready for it to download and then move, if required. It also supports completion notifications as well as downstream API calls, to further the workflow. filezilla FIleZilla Client is a fast and reliable cross-platform FTP, FTPS and SFTP client with lots of useful features and an intuitive graphical user interface. Family Container Description babybuddy babybuddy is a buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work. File Sharing Container Description projectsend projectsend is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. Secure, private and easy. No more depending on external services or e-mail to send those files. pwndrop pwndrop is a self-deployable file hosting service for sending out red teaming payloads or securely sharing your private files over HTTP and WebDAV. pydio-cells pydio-cells is the nextgen file sharing platform for organizations. It is a full rewrite of the Pydio project using the Go language following a micro-service architecture. snapdrop snapdrop A local file sharing in your browser. Inspired by Apple's Airdrop. xbackbone xbackbone is a simple, self-hosted, lightweight PHP file manager that support the instant sharing tool ShareX and *NIX systems. It supports uploading and displaying images, GIF, video, code, formatted text, and file downloading and uploading. Also have a web UI with multi user management, past uploads history and search support. Finance Container Description budge budge is an open source 'budgeting with envelopes' personal finance app. Games Container Description emulatorjs emulatorjs - In browser web based emulation portable to nearly any device for many retro consoles. A mix of emulators is used between Libretro and EmulatorJS. minetest minetest (server) is a near-infinite-world block sandbox game and a game engine, inspired by InfiniMiner, Minecraft, and the like. Graphics Container Description blender Blender is a free and open-source 3D computer graphics software toolset used for creating animated films, visual effects, art, 3D printed models, motion graphics, interactive 3D applications, virtual reality, and computer games. This image does not support GPU rendering out of the box only accelerated workspace experience kdenlive Kdenlive is a powerful free and open source cross-platform video editing program made by the KDE community. Feature rich and production ready. IRC Container Description limnoria limnoria A robust, full-featured, and user/programmer-friendly Python IRC bot, with many existing plugins. Successor of the well-known Supybot. ngircd ngircd is a free, portable and lightweight Internet Relay Chat server for small or private networks, developed under the GNU General Public License (GPL). It is easy to configure, can cope with dynamic IP addresses, and supports IPv6, SSL-protected connections as well as PAM for authentication. It is written from scratch and not based on the original IRCd. pidgin Pidgin is a chat program which lets you log into accounts on multiple chat networks simultaneously. This means that you can be chatting with friends on XMPP and sitting in an IRC channel at the same time. quassel-core quassel-core is a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core. quassel-web quassel-web is a web client for Quassel. Note that a Quassel-Core instance is required, we have a container available here. thelounge thelounge (a fork of shoutIRC) is a web IRC client that you host on your own server. znc znc is an IRC network bouncer or BNC. It can detach the client from the actual IRC server, and also from selected channels. Multiple clients from different locations can connect to a single ZNC account simultaneously and therefore appear under the same nickname on IRC. Indexers Container Description jackett jackett works as a proxy server: it translates queries from apps (Sonarr, SickRage, CouchPotato, Mylar, etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps. nzbhydra2 nzbhydra2 is a meta search application for NZB indexers, the \"spiritual successor\" to NZBmegasearcH, and an evolution of the original application NZBHydra . prowlarr prowlarr is a indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Sonarr, Radarr, Lidarr, and Readarr offering complete management of your indexers with no per app Indexer setup required (we do it all). Media Management Container Description bazarr bazarr is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you. medusa medusa is an automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. plex-meta-manager plex-meta-manager is a Python 3 script that can be continuously run using YAML configuration files to update on a schedule the metadata of the movies, shows, and collections in your libraries as well as automatically build collections based on various methods all detailed in the wiki. radarr radarr - A fork of Sonarr to work with movies \u00e0 la Couchpotato. sickchill sickchill is an Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. sickgear SickGear provides management of TV shows and/or Anime, it detects new episodes, links downloader apps, and more.. sonarr sonarr (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. Media Players Container Description emby emby organizes video, music, live TV, and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone emby Media Server. jellyfin jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. plex plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. has always been a top priority. Straightforward design and bulk actions mean getting things done faster. Media Requesters Container Description doplarr doplarr is an *arr request bot for Discord.\" ombi ombi allows you to host your own Plex Request and user management system. overseerr overseerr is a request management and media discovery tool built to work with your existing Plex ecosystem. Media Tools Container Description embystat embystat is a personal web server that can calculate all kinds of statistics from your (local) Emby server. Just install this on your server and let him calculate all kinds of fun stuff. ffmpeg No description htpcmanager htpcmanager is a front end for many htpc related applications. minisatip minisatip is a multi-threaded satip server version 1.2 that runs under Linux and it was tested with DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C, DVB-C2, ATSC and ISDB-T cards. oscam oscam is an Open Source Conditional Access Module software used for descrambling DVB transmissions using smart cards. It's both a server and a client. synclounge synclounge is a third party tool that allows you to watch Plex in sync with your friends/family, wherever you are. tautulli tautulli is a python based web application for monitoring, analytics and notifications for Plex Media Server. tvheadend tvheadend works as a proxy server: is a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun as input sources. webgrabplus webgrabplus is a multi-site incremental xmltv epg grabber. It collects tv-program guide data from selected tvguide sites for your favourite channels. Monitor Container Description apprise-api apprise-api Takes advantage of Apprise through your network with a user-friendly API. healthchecks healthchecks is a watchdog for your cron jobs. It's a web server that listens for pings from your cron jobs, plus a web interface. librespeed librespeed is a very lightweight Speedtest implemented in Javascript, using XMLHttpRequest and Web Workers. smokeping smokeping keeps track of your network latency. For a full example of what this application is capable of visit UCDavis . syslog-ng syslog-ng allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure and store or route them to log analysis tools. Music Container Description airsonic-advanced airsonic-advanced is a free, web-based media streamer, providing ubiquitious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room. audacity Audacity is an easy-to-use, multi-track audio editor and recorder. Developed by a group of volunteers as open source. beets beets is a music library manager and not, for the most part, a music player. It does include a simple player plugin and an experimental Web-based player, but it generally leaves actual sound-reproduction to specialized tools. daapd daapd (iTunes) media server with support for AirPlay devices, Apple Remote (and compatibles), Chromecast, MPD and internet radio. headphones headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, \u00b5Torrent and Blackhole. lidarr lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new tracks from your favorite artists and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. mstream mstream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere. There are mobile apps available for both Android and iPhone. Network Container Description unifi-controller The unifi-controller software is a powerful, enterprise wireless software engine ideal for high-density client deployments requiring low latency and high uptime performance. wireshark Wireshark is the world\u2019s foremost and widely-used network protocol analyzer. It lets you see what\u2019s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. Wireshark development thrives thanks to the volunteer contributions of networking experts around the globe and is the continuation of a project started by Gerald Combs in 1998. Photos Container Description chevereto chevereto is an image hosting software that allows you to create a beautiful and full-featured image hosting website on your own server. It's your hosting and your rules, so say goodbye to closures and restrictions. darktable darktable is an open source photography workflow application and raw developer. A virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images and enhance them. digikam digiKam : Professional Photo Management with the Power of Open Source lychee lychee is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.\" photoshow photoshow is gallery software at its easiest, it doesn't even require a database. piwigo piwigo is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures. pixapop pixapop is an open-source single page application to view your photos in the easiest way possible. Programming Container Description cloud9 cloud9 Cloud9 is a complete web based IDE with terminal access. This container is for running their core SDK locally and developing plugins. code-server code-server is VS Code running on a remote server, accessible through the browser. openvscode-server openvscode-server provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. pylon pylon is a web based integrated development environment built with Node.js as a backend and with a supercharged JavaScript/HTML5 frontend, licensed under GPL version 3. This project originates from Cloud9 v2 project. RSS Container Description freshrss freshrss is a free, self-hostable aggregator for rss feeds. Recipes Container Description grocy grocy is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utility. Remote Container Description guacd guacd - Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. This container is only the backend server component needed to use The official or 3rd party HTML5 frontends. rdesktop rdesktop - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP. remmina Remmina is a remote desktop client written in GTK, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large or tiny screens. Remmina supports multiple network protocols, in an integrated and consistent user interface. Currently RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC are supported. webtop webtop - Alpine, Ubuntu, Fedora, and Arch based containers containing full desktop environments in officially supported flavors accessible via any modern web browser. Science Container Description boinc BOINC is a platform for high-throughput computing on a large scale (thousands or millions of computers). It can be used for volunteer computing (using consumer devices) or grid computing (using organizational resources). It supports virtualized, parallel, and GPU-based applications. foldingathome Folding@home is a distributed computing project for simulating protein dynamics, including the process of protein folding and the movements of proteins implicated in a variety of diseases. It brings together citizen scientists who volunteer to run simulations of protein dynamics on their personal computers. Insights from this data are helping scientists to better understand biology, and providing new opportunities for developing therapeutics. Storage Container Description diskover diskover is an open source file system indexer that uses Elasticsearch to index and manage data across heterogeneous storage systems. qdirstat QDirStat Qt-based directory statistics: KDirStat without any KDE -- from the author of the original KDirStat. scrutiny scrutiny WebUI for smartd S.M.A.R.T monitoring. Scrutiny is a Hard Drive Health Dashboard & Monitoring solution, merging manufacturer provided S.M.A.R.T metrics with real-world failure rates from Backblaze. Tools Container Description yq No description VPN Container Description wireguard WireGuard\u00ae is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry. Web Container Description firefox Firefox Browser, also known as Mozilla Firefox or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. Firefox uses the Gecko layout engine to render web pages, which implements current and anticipated web standards. grav grav is a Fast, Simple, and Flexible, file-based Web-platform. nginx nginx is a simple webserver with php support. The config files reside in /config for easy user customization. swag SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt\u2122) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention. Wiki Container Description bookstack bookstack is a free and open source Wiki designed for creating beautiful documentation. Featuring a simple, but powerful WYSIWYG editor it allows for teams to create detailed and useful documentation with ease. dillinger dillinger is a cloud-enabled, mobile-ready, offline-storage, AngularJS powered HTML5 Markdown editor. dokuwiki dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in access controls and authentication connectors make DokuWiki especially useful in the enterprise context and the large number of plugins contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki. hedgedoc HedgeDoc gives you access to all your files wherever you are. raneto raneto - is an open source Knowledgebase platform that uses static Markdown files to power your Knowledgebase. wikijs wikijs A modern, lightweight and powerful wiki app built on NodeJS.","title":"Awesome LSIO"},{"location":"general/awesome-lsio/#awesome-lsio","text":"","title":"Awesome LSIO"},{"location":"general/awesome-lsio/#administration","text":"Container Description doublecommander Double Commander is a free cross platform open source file manager with two panels side by side. It is inspired by Total Commander and features some new ideas. endlessh endlessh is an SSH tarpit that very slowly sends an endless, random SSH banner. It keeps SSH clients locked up for hours or even days at a time. The purpose is to put your real SSH server on another port and then let the script kiddies get stuck in this tarpit instead of bothering a real server. ldap-auth ldap-auth software is for authenticating users who request protected resources from servers proxied by nginx. It includes a daemon (ldap-auth) that communicates with an authentication server, and a webserver daemon that generates an authentication cookie based on the user\u2019s credentials. The daemons are written in Python for use with a Lightweight Directory Access Protocol (LDAP) authentication server (OpenLDAP or Microsoft Windows Active Directory 2003 and 2012). netbootxyz netbootxyz is a way to PXE boot various operating system installers or utilities from one place within the BIOS without the need of having to go retrieve the media to run the tool. iPXE is used to provide a user friendly menu from within the BIOS that lets you easily choose the operating system you want along with any specific types of versions or bootable flags. netbox netbox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers. It is intended to function as a domain-specific source of truth for network operations. openssh-server openssh-server is a sandboxed environment that allows ssh access without giving keys to the entire server. snipe-it snipe-it makes asset management easy. It was built by people solving real-world IT and asset management problems, and a solid UX has always been a top priority. Straightforward design and bulk actions mean getting things done faster.","title":"Administration"},{"location":"general/awesome-lsio/#audiobooks","text":"Container Description booksonic-air booksonic-air is a platform for accessing the audiobooks you own wherever you are. At the moment the platform consists of","title":"Audiobooks"},{"location":"general/awesome-lsio/#automation","text":"Container Description domoticz domoticz is a Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. Notifications/Alerts can be sent to any mobile device. habridge habridge emulates Philips Hue API to other home automation gateways such as an Amazon Echo/Dot Gen 1 (gen 2 has issues discovering ha-bridge) or other systems that support Philips Hue. The Bridge handles basic commands such as \"On\", \"Off\" and \"brightness\" commands of the hue protocol. This bridge can control most devices that have a distinct API. homeassistant Home Assistant Core - Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server. kanzi kanzi , formerly titled Kodi-Alexa, this custom skill is the ultimate voice remote control for navigating Kodi. It can do anything you can think of (100+ intents). This container also contains lexigram-cli to setup Kanzi with an Amazon Developer Account and automatically deploy it to Amazon.","title":"Automation"},{"location":"general/awesome-lsio/#backup","text":"Container Description duplicati duplicati works with standard protocols like FTP, SSH, WebDAV as well as popular services like Microsoft OneDrive, Amazon Cloud Drive & S3, Google Drive, box.com, Mega, hubiC and many others. resilio-sync resilio-sync (formerly BitTorrent Sync) uses the BitTorrent protocol to sync files and folders between all of your devices. There are both free and paid versions, this container supports both. There is an official sync image but we created this one as it supports user mapping to simplify permissions for volumes. rsnapshot rsnapshot is a filesystem snapshot utility based on rsync. rsnapshot makes it easy to make periodic snapshots of local machines, and remote machines over ssh. The code makes extensive use of hard links whenever possible, to greatly reduce the disk space required.\" syncthing syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.","title":"Backup"},{"location":"general/awesome-lsio/#books","text":"Container Description calibre calibre is a powerful and easy to use e-book manager. Users say it\u2019s outstanding and a must-have. It\u2019ll allow you to do nearly everything and it takes things a step beyond normal e-book software. It\u2019s also completely free and open source and great for both casual users and computer experts. calibre-web calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. It is also possible to integrate google drive and edit metadata and your calibre library through the app itself. cops cops by S\u00e9bastien Lucas, stands for Calibre OPDS (and HTML) Php Server. lazylibrarian lazylibrarian is a program to follow authors and grab metadata for all your digital reading needs. It uses a combination of Goodreads Librarything and optionally GoogleBooks as sources for author info and book info. This container is based on the DobyTang fork. mylar3 mylar3 is an automated Comic Book downloader (cbr/cbz) for use with NZB and torrents written in python. It supports SABnzbd, NZBGET, and many torrent clients in addition to DDL. readarr readarr - Book Manager and Automation (Sonarr for Ebooks) ubooquity ubooquity is a free, lightweight and easy-to-use home server for your comics and ebooks. Use it to access your files from anywhere, with a tablet, an e-reader, a phone or a computer.","title":"Books"},{"location":"general/awesome-lsio/#cloud","text":"Container Description nextcloud nextcloud gives you access to all your files wherever you are.","title":"Cloud"},{"location":"general/awesome-lsio/#crypto","text":"Container Description gmail-order-bot gmail-order-bot - A bot used to leverage a Gmail account as an order messaging service to consume email orders from Nano Checkout and process them using any custom logic you choose. nano nano is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions. nano-discord-bot nano-discord-bot - A bot used to hook into a self hosted Nano RPC endpoint and discord server to Distribute funds from a faucet account. nano-wallet nano-wallet is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions.","title":"Crypto"},{"location":"general/awesome-lsio/#dns","text":"Container Description adguardhome-sync adguardhome-sync is a tool to synchronize AdGuardHome config to replica instances. ddclient ddclient is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider. It was originally written by Paul Burry and is now mostly by wimpunk. It has the capability to update more than just dyndns and it can fetch your WAN-ipaddress in a few different ways. duckdns duckdns is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. The service is completely free, and doesn't require reactivation or forum posts to maintain its existence.","title":"DNS"},{"location":"general/awesome-lsio/#dashboard","text":"Container Description heimdall heimdall is a way to organise all those links to your most used web sites and web applications in a simple way. muximux muximux is a lightweight portal to view & manage your HTPC apps without having to run anything more than a PHP enabled webserver. With Muximux you don't need to keep multiple tabs open, or bookmark the URL to all of your apps.","title":"Dashboard"},{"location":"general/awesome-lsio/#databases","text":"Container Description mariadb mariadb is one of the most popular database servers. Made by the original developers of MySQL. mysql-workbench MySQL Workbench is a unified visual tool for database architects, developers, and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more. phpmyadmin phpmyadmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL and MariaDB. sqlitebrowser DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite.","title":"Databases"},{"location":"general/awesome-lsio/#docker","text":"Container Description docker-compose No description fleet fleet provides an online web interface which displays a set of maintained images from one or more owned repositories.","title":"Docker"},{"location":"general/awesome-lsio/#documents","text":"Container Description libreoffice LibreOffice is a free and powerful office suite, and a successor to OpenOffice.org (commonly known as OpenOffice). Its clean interface and feature-rich tools help you unleash your creativity and enhance your productivity. paperless-ng paperless-ng is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\" paperless-ngx paperless-ngx is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\" papermerge papermerge is an open source document management system (DMS) primarily designed for archiving and retrieving your digital documents. Instead of having piles of paper documents all over your desk, office or drawers - you can quickly scan them and configure your scanner to directly upload to Papermerge DMS.\"","title":"Documents"},{"location":"general/awesome-lsio/#downloaders","text":"Container Description deluge deluge is a lightweight, Free Software, cross-platform BitTorrent client. nntp2nntp nntp2nntp proxy allow you to use your NNTP Account from multiple systems, each with own user name and password. It fully supports SSL and you can also limit the access to proxy with SSL certificates. nntp2nntp proxy is very simple and pretty fast. nzbget nzbget is a usenet downloader, written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources. pyload-ng pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web. qbittorrent The qbittorrent project aims to provide an open-source software alternative to \u00b5Torrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library. sabnzbd sabnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction. transmission transmission is designed for easy, powerful use. Transmission has the features you want from a BitTorrent client: encryption, a web interface, peer exchange, magnet links, DHT, \u00b5TP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more.","title":"Downloaders"},{"location":"general/awesome-lsio/#ftp","text":"Container Description davos davos is an FTP automation tool that periodically scans given host locations for new files. It can be configured for various purposes, including listening for specific files to appear in the host location, ready for it to download and then move, if required. It also supports completion notifications as well as downstream API calls, to further the workflow. filezilla FIleZilla Client is a fast and reliable cross-platform FTP, FTPS and SFTP client with lots of useful features and an intuitive graphical user interface.","title":"FTP"},{"location":"general/awesome-lsio/#family","text":"Container Description babybuddy babybuddy is a buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work.","title":"Family"},{"location":"general/awesome-lsio/#file-sharing","text":"Container Description projectsend projectsend is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. Secure, private and easy. No more depending on external services or e-mail to send those files. pwndrop pwndrop is a self-deployable file hosting service for sending out red teaming payloads or securely sharing your private files over HTTP and WebDAV. pydio-cells pydio-cells is the nextgen file sharing platform for organizations. It is a full rewrite of the Pydio project using the Go language following a micro-service architecture. snapdrop snapdrop A local file sharing in your browser. Inspired by Apple's Airdrop. xbackbone xbackbone is a simple, self-hosted, lightweight PHP file manager that support the instant sharing tool ShareX and *NIX systems. It supports uploading and displaying images, GIF, video, code, formatted text, and file downloading and uploading. Also have a web UI with multi user management, past uploads history and search support.","title":"File Sharing"},{"location":"general/awesome-lsio/#finance","text":"Container Description budge budge is an open source 'budgeting with envelopes' personal finance app.","title":"Finance"},{"location":"general/awesome-lsio/#games","text":"Container Description emulatorjs emulatorjs - In browser web based emulation portable to nearly any device for many retro consoles. A mix of emulators is used between Libretro and EmulatorJS. minetest minetest (server) is a near-infinite-world block sandbox game and a game engine, inspired by InfiniMiner, Minecraft, and the like.","title":"Games"},{"location":"general/awesome-lsio/#graphics","text":"Container Description blender Blender is a free and open-source 3D computer graphics software toolset used for creating animated films, visual effects, art, 3D printed models, motion graphics, interactive 3D applications, virtual reality, and computer games. This image does not support GPU rendering out of the box only accelerated workspace experience kdenlive Kdenlive is a powerful free and open source cross-platform video editing program made by the KDE community. Feature rich and production ready.","title":"Graphics"},{"location":"general/awesome-lsio/#irc","text":"Container Description limnoria limnoria A robust, full-featured, and user/programmer-friendly Python IRC bot, with many existing plugins. Successor of the well-known Supybot. ngircd ngircd is a free, portable and lightweight Internet Relay Chat server for small or private networks, developed under the GNU General Public License (GPL). It is easy to configure, can cope with dynamic IP addresses, and supports IPv6, SSL-protected connections as well as PAM for authentication. It is written from scratch and not based on the original IRCd. pidgin Pidgin is a chat program which lets you log into accounts on multiple chat networks simultaneously. This means that you can be chatting with friends on XMPP and sitting in an IRC channel at the same time. quassel-core quassel-core is a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core. quassel-web quassel-web is a web client for Quassel. Note that a Quassel-Core instance is required, we have a container available here. thelounge thelounge (a fork of shoutIRC) is a web IRC client that you host on your own server. znc znc is an IRC network bouncer or BNC. It can detach the client from the actual IRC server, and also from selected channels. Multiple clients from different locations can connect to a single ZNC account simultaneously and therefore appear under the same nickname on IRC.","title":"IRC"},{"location":"general/awesome-lsio/#indexers","text":"Container Description jackett jackett works as a proxy server: it translates queries from apps (Sonarr, SickRage, CouchPotato, Mylar, etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps. nzbhydra2 nzbhydra2 is a meta search application for NZB indexers, the \"spiritual successor\" to NZBmegasearcH, and an evolution of the original application NZBHydra . prowlarr prowlarr is a indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Sonarr, Radarr, Lidarr, and Readarr offering complete management of your indexers with no per app Indexer setup required (we do it all).","title":"Indexers"},{"location":"general/awesome-lsio/#media-management","text":"Container Description bazarr bazarr is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you. medusa medusa is an automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. plex-meta-manager plex-meta-manager is a Python 3 script that can be continuously run using YAML configuration files to update on a schedule the metadata of the movies, shows, and collections in your libraries as well as automatically build collections based on various methods all detailed in the wiki. radarr radarr - A fork of Sonarr to work with movies \u00e0 la Couchpotato. sickchill sickchill is an Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. sickgear SickGear provides management of TV shows and/or Anime, it detects new episodes, links downloader apps, and more.. sonarr sonarr (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.","title":"Media Management"},{"location":"general/awesome-lsio/#media-players","text":"Container Description emby emby organizes video, music, live TV, and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone emby Media Server. jellyfin jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. plex plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. has always been a top priority. Straightforward design and bulk actions mean getting things done faster.","title":"Media Players"},{"location":"general/awesome-lsio/#media-requesters","text":"Container Description doplarr doplarr is an *arr request bot for Discord.\" ombi ombi allows you to host your own Plex Request and user management system. overseerr overseerr is a request management and media discovery tool built to work with your existing Plex ecosystem.","title":"Media Requesters"},{"location":"general/awesome-lsio/#media-tools","text":"Container Description embystat embystat is a personal web server that can calculate all kinds of statistics from your (local) Emby server. Just install this on your server and let him calculate all kinds of fun stuff. ffmpeg No description htpcmanager htpcmanager is a front end for many htpc related applications. minisatip minisatip is a multi-threaded satip server version 1.2 that runs under Linux and it was tested with DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C, DVB-C2, ATSC and ISDB-T cards. oscam oscam is an Open Source Conditional Access Module software used for descrambling DVB transmissions using smart cards. It's both a server and a client. synclounge synclounge is a third party tool that allows you to watch Plex in sync with your friends/family, wherever you are. tautulli tautulli is a python based web application for monitoring, analytics and notifications for Plex Media Server. tvheadend tvheadend works as a proxy server: is a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun as input sources. webgrabplus webgrabplus is a multi-site incremental xmltv epg grabber. It collects tv-program guide data from selected tvguide sites for your favourite channels.","title":"Media Tools"},{"location":"general/awesome-lsio/#monitor","text":"Container Description apprise-api apprise-api Takes advantage of Apprise through your network with a user-friendly API. healthchecks healthchecks is a watchdog for your cron jobs. It's a web server that listens for pings from your cron jobs, plus a web interface. librespeed librespeed is a very lightweight Speedtest implemented in Javascript, using XMLHttpRequest and Web Workers. smokeping smokeping keeps track of your network latency. For a full example of what this application is capable of visit UCDavis . syslog-ng syslog-ng allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure and store or route them to log analysis tools.","title":"Monitor"},{"location":"general/awesome-lsio/#music","text":"Container Description airsonic-advanced airsonic-advanced is a free, web-based media streamer, providing ubiquitious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room. audacity Audacity is an easy-to-use, multi-track audio editor and recorder. Developed by a group of volunteers as open source. beets beets is a music library manager and not, for the most part, a music player. It does include a simple player plugin and an experimental Web-based player, but it generally leaves actual sound-reproduction to specialized tools. daapd daapd (iTunes) media server with support for AirPlay devices, Apple Remote (and compatibles), Chromecast, MPD and internet radio. headphones headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, \u00b5Torrent and Blackhole. lidarr lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new tracks from your favorite artists and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. mstream mstream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere. There are mobile apps available for both Android and iPhone.","title":"Music"},{"location":"general/awesome-lsio/#network","text":"Container Description unifi-controller The unifi-controller software is a powerful, enterprise wireless software engine ideal for high-density client deployments requiring low latency and high uptime performance. wireshark Wireshark is the world\u2019s foremost and widely-used network protocol analyzer. It lets you see what\u2019s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. Wireshark development thrives thanks to the volunteer contributions of networking experts around the globe and is the continuation of a project started by Gerald Combs in 1998.","title":"Network"},{"location":"general/awesome-lsio/#photos","text":"Container Description chevereto chevereto is an image hosting software that allows you to create a beautiful and full-featured image hosting website on your own server. It's your hosting and your rules, so say goodbye to closures and restrictions. darktable darktable is an open source photography workflow application and raw developer. A virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images and enhance them. digikam digiKam : Professional Photo Management with the Power of Open Source lychee lychee is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.\" photoshow photoshow is gallery software at its easiest, it doesn't even require a database. piwigo piwigo is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures. pixapop pixapop is an open-source single page application to view your photos in the easiest way possible.","title":"Photos"},{"location":"general/awesome-lsio/#programming","text":"Container Description cloud9 cloud9 Cloud9 is a complete web based IDE with terminal access. This container is for running their core SDK locally and developing plugins. code-server code-server is VS Code running on a remote server, accessible through the browser. openvscode-server openvscode-server provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. pylon pylon is a web based integrated development environment built with Node.js as a backend and with a supercharged JavaScript/HTML5 frontend, licensed under GPL version 3. This project originates from Cloud9 v2 project.","title":"Programming"},{"location":"general/awesome-lsio/#rss","text":"Container Description freshrss freshrss is a free, self-hostable aggregator for rss feeds.","title":"RSS"},{"location":"general/awesome-lsio/#recipes","text":"Container Description grocy grocy is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utility.","title":"Recipes"},{"location":"general/awesome-lsio/#remote","text":"Container Description guacd guacd - Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. This container is only the backend server component needed to use The official or 3rd party HTML5 frontends. rdesktop rdesktop - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP. remmina Remmina is a remote desktop client written in GTK, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large or tiny screens. Remmina supports multiple network protocols, in an integrated and consistent user interface. Currently RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC are supported. webtop webtop - Alpine, Ubuntu, Fedora, and Arch based containers containing full desktop environments in officially supported flavors accessible via any modern web browser.","title":"Remote"},{"location":"general/awesome-lsio/#science","text":"Container Description boinc BOINC is a platform for high-throughput computing on a large scale (thousands or millions of computers). It can be used for volunteer computing (using consumer devices) or grid computing (using organizational resources). It supports virtualized, parallel, and GPU-based applications. foldingathome Folding@home is a distributed computing project for simulating protein dynamics, including the process of protein folding and the movements of proteins implicated in a variety of diseases. It brings together citizen scientists who volunteer to run simulations of protein dynamics on their personal computers. Insights from this data are helping scientists to better understand biology, and providing new opportunities for developing therapeutics.","title":"Science"},{"location":"general/awesome-lsio/#storage","text":"Container Description diskover diskover is an open source file system indexer that uses Elasticsearch to index and manage data across heterogeneous storage systems. qdirstat QDirStat Qt-based directory statistics: KDirStat without any KDE -- from the author of the original KDirStat. scrutiny scrutiny WebUI for smartd S.M.A.R.T monitoring. Scrutiny is a Hard Drive Health Dashboard & Monitoring solution, merging manufacturer provided S.M.A.R.T metrics with real-world failure rates from Backblaze.","title":"Storage"},{"location":"general/awesome-lsio/#tools","text":"Container Description yq No description","title":"Tools"},{"location":"general/awesome-lsio/#vpn","text":"Container Description wireguard WireGuard\u00ae is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry.","title":"VPN"},{"location":"general/awesome-lsio/#web","text":"Container Description firefox Firefox Browser, also known as Mozilla Firefox or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. Firefox uses the Gecko layout engine to render web pages, which implements current and anticipated web standards. grav grav is a Fast, Simple, and Flexible, file-based Web-platform. nginx nginx is a simple webserver with php support. The config files reside in /config for easy user customization. swag SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt\u2122) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention.","title":"Web"},{"location":"general/awesome-lsio/#wiki","text":"Container Description bookstack bookstack is a free and open source Wiki designed for creating beautiful documentation. Featuring a simple, but powerful WYSIWYG editor it allows for teams to create detailed and useful documentation with ease. dillinger dillinger is a cloud-enabled, mobile-ready, offline-storage, AngularJS powered HTML5 Markdown editor. dokuwiki dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in access controls and authentication connectors make DokuWiki especially useful in the enterprise context and the large number of plugins contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki. hedgedoc HedgeDoc gives you access to all your files wherever you are. raneto raneto - is an open source Knowledgebase platform that uses static Markdown files to power your Knowledgebase. wikijs wikijs A modern, lightweight and powerful wiki app built on NodeJS.","title":"Wiki"},{"location":"general/container-customization/","text":"Customizing LinuxServer Containers One of the challenges we face as an organization is making everyone happy with the functionality we provide for the software we package in Docker containers. As the projects that we package and distribute grow, conventionally so do the use cases along with large communities of power users. As it has become very difficult for us to support Swiss Army Knife style images we are looking to the community of users to start customizing our base image layer themselves. Something we provide and pride ourselves on is keeping our containers up to date with not only the latest external software releases, but also with the latest distribution level packages. Conventionally when people needed some form of custom functionality they would fork our source and build something once that suited their needs leaving this dangling fork without updates or basic maintenance. Behind the scenes we have been working to provide the community with the ability to customize our images not only for themselves but also for other users. This comes in the form of 3 different tools: Private Custom Scripts Private Custom Services Public Facing Docker Mods All of the functionality described in this post is live on every one of the containers we currently maintain: https://fleet.linuxserver.io NOTE: While the following support has been added to our containers, we will not give support to any custom scripts, services, or mods. If you are having an issue with one of our containers, be sure to disable all custom scripts/services/mods before seeking support. Custom Scripts The first part of this update is the support for a user's custom scripts to run at startup. In every container, simply create a new folder located at /custom-cont-init.d and add any scripts you want. These scripts can contain logic for installing packages, copying over custom files to other locations, or installing plugins. Because this location is outside of /config you will need to mount it like any other volume if you wish to make use of it. e.g. -v /home/foo/appdata/my-custom-files:/custom-cont-init.d if using the Docker CLI or services: bar: volumes: - /home/foo/appdata/bar:/config - /home/foo/appdata/my-custom-files:/custom-cont-init.d:ro if using compose. Where possible, to improve security, we recommend mounting them read-only ( :ro ) so that container processes cannot write to the location. One example use case is our Piwigo container has a plugin that supports video, but requires ffmpeg to be installed. No problem. Add this bad boy into a script file (can be named anything) and you're good to go. #!/bin/bash echo \"**** installing ffmpeg ****\" apk add --no-cache ffmpeg NOTE: The folder /custom-cont-init.d needs to be owned by root! If this is not the case, this folder will be renamed and a new (empty) folder will be created. This is to prevent remote code execution by putting scripts in the aforementioned folder. Custom Services There might also be a need to run an additional service in a container alongside what we already package. Similarly to the custom scripts, just create a new directory at /custom-services.d . The files in this directory should be named after the service they will be running. Similar to with custom scripts you will need to mount this folder like any other volume if you wish to make use of it. e.g. -v /home/foo/appdata/my-custom-services:/custom-services.d if using the Docker CLI or services: bar: volumes: - /home/foo/appdata/bar:/config - /home/foo/appdata/my-custom-services:/custom-services.d:ro if using compose. Where possible, to improve security, we recommend mounting them read-only ( :ro ) so that container processes cannot write to the location. Running cron in our containers is now as simple as a single file. Drop this script in /custom-services.d/cron and it will run automatically in the container: #!/usr/bin/with-contenv bash /usr/sbin/crond -f -S -l 0 -c /etc/crontabs NOTE: With this example, you will most likely need to have cron installed via a custom script using the technique in the previous section, and will need to populate the crontab. NOTE: The folder /custom-services.d needs to be owned by root! If this is not the case, this folder will be renamed and a new (empty) folder will be created. This is to prevent remote code execution by putting scripts in the aforementioned folder. Docker Mods In most cases if you needed to write some kind of custom logic to get a plugin to work or to use some kind of popular external service you will not be the only one that finds this logic useful. If you would like to publish and support your hard work we provide a system for a user to pass a single environment variable to the container to ingest your custom modifications. We consume Mods from Dockerhub and in order to publish one following our guide, you only need a Github Account and a Dockerhub account. (Our guide and example code can be found here) Essentially it is a system that stashes a tarball of scripts and any other files you need in an image layer on Dockerhub. When we spin up the container we will download this tarball and extract it to /. This allows community members to publish a relatively static pile of logic that will always be applied to an end user's up to date Linuxserver.io container. An example of how this logic can be used to greatly expand the functionality of our base containers would be to add VPN support to a Transmission container: docker create \\ --name=transmission \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e DOCKER_MODS=taisun/config-mods:pia \\ -e PIAUSER=pmyuser \\ -e PIAPASS=mypassword \\ -e PIAENDPOINT=\"US New York City\" \\ -e TZ=US/Eastern \\ -p 9091:9091 \\ -p 51413:51413 \\ -p 51413:51413/udp \\ -v path to data:/config \\ -v path to downloads:/downloads \\ -v path to watch folder:/watch \\ --restart unless-stopped \\ linuxserver/transmission The source code for this mod can be found here . NOTE: When pulling in logic from external sources practice caution and trust the sources/community you get them from, as there are extreme security implications to consuming files from sources outside of our control. We are here to help If you are interested in writing custom logic and possibly sharing it with the community in the form of a Docker Mod we are always available to help you out. Our Discord server is best for quick direct contact and our Forum for a longer running project. There is zero barrier to entry for these levels of container customization and you are in complete control. We are looking forward to your next creation.","title":"Customizing LinuxServer Containers"},{"location":"general/container-customization/#customizing-linuxserver-containers","text":"One of the challenges we face as an organization is making everyone happy with the functionality we provide for the software we package in Docker containers. As the projects that we package and distribute grow, conventionally so do the use cases along with large communities of power users. As it has become very difficult for us to support Swiss Army Knife style images we are looking to the community of users to start customizing our base image layer themselves. Something we provide and pride ourselves on is keeping our containers up to date with not only the latest external software releases, but also with the latest distribution level packages. Conventionally when people needed some form of custom functionality they would fork our source and build something once that suited their needs leaving this dangling fork without updates or basic maintenance. Behind the scenes we have been working to provide the community with the ability to customize our images not only for themselves but also for other users. This comes in the form of 3 different tools: Private Custom Scripts Private Custom Services Public Facing Docker Mods All of the functionality described in this post is live on every one of the containers we currently maintain: https://fleet.linuxserver.io NOTE: While the following support has been added to our containers, we will not give support to any custom scripts, services, or mods. If you are having an issue with one of our containers, be sure to disable all custom scripts/services/mods before seeking support.","title":"Customizing LinuxServer Containers"},{"location":"general/container-customization/#custom-scripts","text":"The first part of this update is the support for a user's custom scripts to run at startup. In every container, simply create a new folder located at /custom-cont-init.d and add any scripts you want. These scripts can contain logic for installing packages, copying over custom files to other locations, or installing plugins. Because this location is outside of /config you will need to mount it like any other volume if you wish to make use of it. e.g. -v /home/foo/appdata/my-custom-files:/custom-cont-init.d if using the Docker CLI or services: bar: volumes: - /home/foo/appdata/bar:/config - /home/foo/appdata/my-custom-files:/custom-cont-init.d:ro if using compose. Where possible, to improve security, we recommend mounting them read-only ( :ro ) so that container processes cannot write to the location. One example use case is our Piwigo container has a plugin that supports video, but requires ffmpeg to be installed. No problem. Add this bad boy into a script file (can be named anything) and you're good to go. #!/bin/bash echo \"**** installing ffmpeg ****\" apk add --no-cache ffmpeg NOTE: The folder /custom-cont-init.d needs to be owned by root! If this is not the case, this folder will be renamed and a new (empty) folder will be created. This is to prevent remote code execution by putting scripts in the aforementioned folder.","title":"Custom Scripts"},{"location":"general/container-customization/#custom-services","text":"There might also be a need to run an additional service in a container alongside what we already package. Similarly to the custom scripts, just create a new directory at /custom-services.d . The files in this directory should be named after the service they will be running. Similar to with custom scripts you will need to mount this folder like any other volume if you wish to make use of it. e.g. -v /home/foo/appdata/my-custom-services:/custom-services.d if using the Docker CLI or services: bar: volumes: - /home/foo/appdata/bar:/config - /home/foo/appdata/my-custom-services:/custom-services.d:ro if using compose. Where possible, to improve security, we recommend mounting them read-only ( :ro ) so that container processes cannot write to the location. Running cron in our containers is now as simple as a single file. Drop this script in /custom-services.d/cron and it will run automatically in the container: #!/usr/bin/with-contenv bash /usr/sbin/crond -f -S -l 0 -c /etc/crontabs NOTE: With this example, you will most likely need to have cron installed via a custom script using the technique in the previous section, and will need to populate the crontab. NOTE: The folder /custom-services.d needs to be owned by root! If this is not the case, this folder will be renamed and a new (empty) folder will be created. This is to prevent remote code execution by putting scripts in the aforementioned folder.","title":"Custom Services"},{"location":"general/container-customization/#docker-mods","text":"In most cases if you needed to write some kind of custom logic to get a plugin to work or to use some kind of popular external service you will not be the only one that finds this logic useful. If you would like to publish and support your hard work we provide a system for a user to pass a single environment variable to the container to ingest your custom modifications. We consume Mods from Dockerhub and in order to publish one following our guide, you only need a Github Account and a Dockerhub account. (Our guide and example code can be found here) Essentially it is a system that stashes a tarball of scripts and any other files you need in an image layer on Dockerhub. When we spin up the container we will download this tarball and extract it to /. This allows community members to publish a relatively static pile of logic that will always be applied to an end user's up to date Linuxserver.io container. An example of how this logic can be used to greatly expand the functionality of our base containers would be to add VPN support to a Transmission container: docker create \\ --name=transmission \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e DOCKER_MODS=taisun/config-mods:pia \\ -e PIAUSER=pmyuser \\ -e PIAPASS=mypassword \\ -e PIAENDPOINT=\"US New York City\" \\ -e TZ=US/Eastern \\ -p 9091:9091 \\ -p 51413:51413 \\ -p 51413:51413/udp \\ -v path to data:/config \\ -v path to downloads:/downloads \\ -v path to watch folder:/watch \\ --restart unless-stopped \\ linuxserver/transmission The source code for this mod can be found here . NOTE: When pulling in logic from external sources practice caution and trust the sources/community you get them from, as there are extreme security implications to consuming files from sources outside of our control.","title":"Docker Mods"},{"location":"general/container-customization/#we-are-here-to-help","text":"If you are interested in writing custom logic and possibly sharing it with the community in the form of a Docker Mod we are always available to help you out. Our Discord server is best for quick direct contact and our Forum for a longer running project. There is zero barrier to entry for these levels of container customization and you are in complete control. We are looking forward to your next creation.","title":"We are here to help"},{"location":"general/container-execution/","text":"Container Execution You may find at some point you need to view the internal data of a container. Shell Access Particularly useful when debugging the application - to shell in to one of our containers, run the following: docker exec -it /bin/bash Tailing the logs The vast majority of our images are configured to output the application logs to the console, which in Docker's terms means you can access them using the docker logs command: docker logs -f --tail= The --tail argument is optional, but useful if the application has been running for a long time - the logs command by default will output all logs. To make life simpler for yourself here's a handy bash alias to do some of the leg work for you: # ~/.bash_aliases alias dtail='docker logs -tf --tail=\"50\" \"$@\"' Execute it with dtail . Checking the build version If you are experiencing issues with one of our containers, it helps us to know which version of the image your container is running from. The primary reason we ask for this is because you may be reporting an issue we are aware of and have subsequently fixed. However, if you are running on the latest version of our image, it could indeed be a newly found bug, which we'd want to know more about. To obtain the build version for the container: docker inspect -f '{{ index .Config.Labels \"build_version\" }}' Or the image: docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/","title":"Container Execution"},{"location":"general/container-execution/#container-execution","text":"You may find at some point you need to view the internal data of a container.","title":"Container Execution"},{"location":"general/container-execution/#shell-access","text":"Particularly useful when debugging the application - to shell in to one of our containers, run the following: docker exec -it /bin/bash","title":"Shell Access"},{"location":"general/container-execution/#tailing-the-logs","text":"The vast majority of our images are configured to output the application logs to the console, which in Docker's terms means you can access them using the docker logs command: docker logs -f --tail= The --tail argument is optional, but useful if the application has been running for a long time - the logs command by default will output all logs. To make life simpler for yourself here's a handy bash alias to do some of the leg work for you: # ~/.bash_aliases alias dtail='docker logs -tf --tail=\"50\" \"$@\"' Execute it with dtail .","title":"Tailing the logs"},{"location":"general/container-execution/#checking-the-build-version","text":"If you are experiencing issues with one of our containers, it helps us to know which version of the image your container is running from. The primary reason we ask for this is because you may be reporting an issue we are aware of and have subsequently fixed. However, if you are running on the latest version of our image, it could indeed be a newly found bug, which we'd want to know more about. To obtain the build version for the container: docker inspect -f '{{ index .Config.Labels \"build_version\" }}' Or the image: docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/","title":"Checking the build version"},{"location":"general/containers-101/","text":"Docker Containers: 101 A container bundles all the libraries required by an application to run, you no longer need to know which version of Java, Apache or whatever \u2013 the person who built the container for you took care of that. Containers don\u2019t usually ship with configuration files baked in though. This is because the contents of a container are \u2018stateless\u2019 or \u2018immutable\u2019. In English, this means the state or filesystem of the container itself cannot be modified after it is created. What do I need to know? To get started, not much. You will need to know about some of the terminology or concepts when performing more advanced tasks or troubleshooting but getting started couldn't be much simpler. docker run hello-world That's it, your first docker container. It pre-supposes you have docker installed but that's all it takes to run a container. You didn't need to know anything about installed what that app needed to run - this is the key benefit. hello-world is a simple example but imagine you have a complex application with a large number of dependencies and it is tied to a specific version of Python or Java. Then imagine you have a second app again tied to a specific, but different, version of Java or Python. Now you have to try and ensure these two (often conflicting) versions sit on the same host and play nice. In the world of containers these two versions can operate in complete isolation from one another. Bliss. Key Terminology There are a few terms you might find useful to understand when working with containers: docker - the first, and most popular, container runtime - it sits as an abstraction layer between the kernels features such as cgroups or namespaces and running applications container - a sandboxed process isolated in memory and running instance of an image image - a pre-built filesystem in a format ready to be understood by a container runtime (usually docker) volume - use volumes to persist data outside of the containers sandboxed filesystem environment - a way of configuring the sandboxed environment your container runs in Key Concepts Containers are completely sandboxed environments by the Linux kernel. It may help you to think of them somewhat like a small VM however in practice this is largely false. The Linux kernel controls access to various system resources utilising control groups (cgroups). We rely on docker to translate these complex concepts into simple ones that users can understand and consume. By default a running container has absolutely no context of the world around it. Out the box you cannot connect from the outside world to the running webservers on ports 80 and 443 below. To allow entry to the sandbox from the outside world we must explicitly allow entry using the -p flag. docker run -d --name=letsencrypt -p 80:80 -p 443:443 linuxserver/letsencrypt Take this concept and multiply it across all aspects of a running application. Ports, volumes (i.e. the files you want to be available inside the container from outside the container), environment variables and so on. For us as developers this allows us to isolate your system from troubleshooting as the box the container is running in (the container) is identical to the next. Containers are an amazing way to run applications in a secure, sandboxed way.","title":"Docker Containers: 101"},{"location":"general/containers-101/#docker-containers-101","text":"A container bundles all the libraries required by an application to run, you no longer need to know which version of Java, Apache or whatever \u2013 the person who built the container for you took care of that. Containers don\u2019t usually ship with configuration files baked in though. This is because the contents of a container are \u2018stateless\u2019 or \u2018immutable\u2019. In English, this means the state or filesystem of the container itself cannot be modified after it is created.","title":"Docker Containers: 101"},{"location":"general/containers-101/#what-do-i-need-to-know","text":"To get started, not much. You will need to know about some of the terminology or concepts when performing more advanced tasks or troubleshooting but getting started couldn't be much simpler. docker run hello-world That's it, your first docker container. It pre-supposes you have docker installed but that's all it takes to run a container. You didn't need to know anything about installed what that app needed to run - this is the key benefit. hello-world is a simple example but imagine you have a complex application with a large number of dependencies and it is tied to a specific version of Python or Java. Then imagine you have a second app again tied to a specific, but different, version of Java or Python. Now you have to try and ensure these two (often conflicting) versions sit on the same host and play nice. In the world of containers these two versions can operate in complete isolation from one another. Bliss.","title":"What do I need to know?"},{"location":"general/containers-101/#key-terminology","text":"There are a few terms you might find useful to understand when working with containers: docker - the first, and most popular, container runtime - it sits as an abstraction layer between the kernels features such as cgroups or namespaces and running applications container - a sandboxed process isolated in memory and running instance of an image image - a pre-built filesystem in a format ready to be understood by a container runtime (usually docker) volume - use volumes to persist data outside of the containers sandboxed filesystem environment - a way of configuring the sandboxed environment your container runs in","title":"Key Terminology"},{"location":"general/containers-101/#key-concepts","text":"Containers are completely sandboxed environments by the Linux kernel. It may help you to think of them somewhat like a small VM however in practice this is largely false. The Linux kernel controls access to various system resources utilising control groups (cgroups). We rely on docker to translate these complex concepts into simple ones that users can understand and consume. By default a running container has absolutely no context of the world around it. Out the box you cannot connect from the outside world to the running webservers on ports 80 and 443 below. To allow entry to the sandbox from the outside world we must explicitly allow entry using the -p flag. docker run -d --name=letsencrypt -p 80:80 -p 443:443 linuxserver/letsencrypt Take this concept and multiply it across all aspects of a running application. Ports, volumes (i.e. the files you want to be available inside the container from outside the container), environment variables and so on. For us as developers this allows us to isolate your system from troubleshooting as the box the container is running in (the container) is identical to the next. Containers are an amazing way to run applications in a secure, sandboxed way.","title":"Key Concepts"},{"location":"general/docker-compose/","text":"Docker Compose Intro Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application\u2019s services. Then, with a single command, you create and start all the services from your configuration. Note that when inputting data for variables, you must follow standard YAML rules. In the case of passwords with special characters this can mean escaping them properly ($ is the escape character) or properly quoting the variable. The best course of action if you do not know how to do this or are unwilling to research, is to stick to alphanumeric characters only. Installation Install Option 1 (recommended): Starting with version 2, Docker started publishing docker compose as a go based plugin for docker (rather than a python based standalone binary). And they also publish this plugin for various arches, including x86_64, armhf and aarch64 (as opposed to the x86_64 only binaries for v1.X). Therefore we updated our recommended install option to utilize the plugin. You can install docker compose via the following commands: ARCH=$(uname -m) && [[ \"${ARCH}\" == \"armv7l\" ]] && ARCH=\"armv7\" sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo curl -SL \"https://github.com/docker/compose/releases/latest/download/docker-compose-linux-${ARCH}\" -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose Assuming you already have docker (or at the very least docker-cli) installed, preferably from the official docker repos, running docker compose version should display the compose version. If you don't have docker installed yet, we recommend installing it via the following commands: curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh v1.X compatibility: As v2 runs as a plugin instead of a standalone binary, it is invoked by docker compose args instead of docker-compose args . There are also some slight differences in how the yaml is operated as well. To make migration easier, Docker released a replacement binary for docker-compose on x86_64 and aarch64 platforms. More info on that can be found at the upstream repo . Install Option 2: You can install docker-compose using our docker-compose image via a run script. You can simply run the following commands on your system and you should have a functional install that you can call from anywhere as docker-compose : sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/v2/run.sh -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose In order to update the local image, you can run the following commands: docker pull linuxserver/docker-compose:\"${DOCKER_COMPOSE_IMAGE_TAG:-v2}\" docker image prune -f The above commands will use the v2 images (although invoked by docker-compose instead of docker compose ). If you'd like to use v1 images, you can set an env var DOCKER_COMPOSE_IMAGE_TAG=alpine , DOCKER_COMPOSE_IMAGE_TAG=ubuntu in your respective .profile . Alternatively you can set that var to a versioned image tag like v2-2.4.1-r1 or version-alpine-1.27.4 to pin it to a specific docker-compose version. Single service Usage Here's a basic example for deploying a Linuxserver container with docker compose: version: \"2.1\" services: heimdall: image: linuxserver/heimdall container_name: heimdall volumes: - /home/user/appdata/heimdall:/config environment: - PUID=1000 - PGID=1000 - TZ=Europe/London ports: - 80:80 - 443:443 restart: unless-stopped If you save the above snippet in a file named docker-compose.yml , you can simply run docker compose up -d from within the same folder and the heimdall image will be automatically pulled, and a container will be created and started. up means bring the services up, and -d means do it in the background. If you want to do it from a different folder or if you named the yaml file differently, ie. heimdall.yml , then you can define it in the command with -f : docker compose -f /path/to/heimdall.yml up -d To bring down the services, simply do docker compose down or docker compose -f /path/to/heimdall.yml down and all containers defined by the yml will be stopped and destroyed. Multiple Service Usage You can have multiple services managed by a single compose yaml. Copy the contents below the services: line in any of our readme yaml samples into the same yaml file and the docker compose up/down commands will apply to all services at once. Let's say you have the following in a yaml file named docker-compose.yml : version: \"2.1\" services: heimdall: image: linuxserver/heimdall container_name: heimdall volumes: - /home/user/appdata/heimdall:/config environment: - PUID=1000 - PGID=1000 - TZ=Europe/London ports: - 80:80 - 443:443 restart: unless-stopped nginx: image: linuxserver/nginx container_name: nginx environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/user/appdata/nginx:/config ports: - 81:80 - 444:443 restart: unless-stopped mariadb: image: linuxserver/mariadb container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD - TZ=Europe/London volumes: - /home/user/appdata/mariadb:/config ports: - 3306:3306 restart: unless-stopped You now have 3 services defined in there: heimdall , nginx and mariadb . When you do a docker compose up -d , it will first download the images for all three if they don't exist (if they exist, they are not updated) and it will create all three containers and start them. docker compose down will bring all three services down and destroy the containers (persistent data will remain). Updates If you want to update the images and recreate the containers with the same vars, it's extremely easy with docker-compose. First we tell it to update all images via docker compose pull . Then we issue docker compose up -d and it will automatically recreate the containers (as necessary) based on the updated images. If a container's image is already the latest and there was no update, it remains untouched. Similarly, if you edit the contents of the yaml file and re-issue docker compose up -d , only the containers affected by the changes to the yaml file will be recreated, others will be untouched. Defining the containers running on your server as code is a core tenet of a \"Devops\" approach to the world. Constructing elaborate docker run commands and then forgetting which variables you passed is a thing of the past when using docker compose . Support Requests If you would like to request support, you can do so on our forum or on our discord server . When you do so, please provide all the necessary information like the server and platform info, docker container log and the compose yaml. If your compose yaml makes use of .env , please post an output of docker compose convert or docker compose convert -f /path/to/compose.yml for the entire yaml, or docker compose convert for a single service, as it will automatically replace the environment variables with their actual values. Tips & Tricks docker compose expects a docker-compose.yml file in the current directory and if one isn't present it will complain. In order to improve your quality of life we suggest the use of bash aliases. The file path for the aliases below assumes that the docker-compose.yml file is being kept in the folder /opt . If your compose file is kept somewhere else, like in a home directory, then the path will need to be changed. Create or open the file ~/.bash_aliases and populate with the following content: alias dcup='docker compose -f /opt/docker-compose.yml up -d' #brings up all containers if one is not defined after dcup alias dcdown='docker compose -f /opt/docker-compose.yml stop' #brings down all containers if one is not defined after dcdown alias dcpull='docker compose -f /opt/docker-compose.yml pull' #pulls all new images is specified after dcpull alias dclogs='docker compose -f /opt/docker-compose.yml logs -tf --tail=\"50\" ' alias dtail='docker logs -tf --tail=\"50\" \"$@\"' If the docker-compose.yml file is in a home directory, the following can be put in the ~/.bash_aliases file. alias dcup='docker-compose -f ~/docker-compose.yml up -d' #brings up all containers if one is not defined after dcup alias dcdown='docker-compose -f ~/docker-compose.yml stop' #brings down all containers if one is not defined after dcdown alias dcpull='docker-compose -f ~/docker-compose.yml pull' #pulls all new images unless one is specified alias dclogs='docker-compose -f ~/docker-compose.yml logs -tf --tail=\"50\" ' alias dtail='docker logs -tf --tail=\"50\" \"$@\"' There are multiple ways to see the logs of your containers. In some instances, using docker logs is preferable to docker compose logs . By default docker logs will not run unless you define which service the logs are coming from. The docker compose logs will pull all of the logs for the services defined in the docker-compose.yml file. When asking for help, you should post your logs or be ready to provide logs if someone requests it. If you are running multiple containers in your docker-compose.yml file, it is not helpful to submit all of the logs. If you are experiencing issues with a single service, say Heimdall, then you would want to get your logs using docker logs heimdall or docker compose logs heimdall . The bash_alias for dclogs can be used if you define your service after you've typed the alias. Likewise, the bash_alias detail will not run without defining the service after it. Some distributions, like Ubuntu, already have the code snippet below in the ~/.bashrc file. If it is not included, you'll need to add the following to your ~/.bashrc file in order for the aliases file to be picked up: if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi Once configured, you can run source ~/.bashrc or log out and the log in again. Now you can type dcpull or dcup to manage your entire fleet of containers at once. It's like magic.","title":"Docker Compose"},{"location":"general/docker-compose/#docker-compose","text":"","title":"Docker Compose"},{"location":"general/docker-compose/#intro","text":"Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application\u2019s services. Then, with a single command, you create and start all the services from your configuration. Note that when inputting data for variables, you must follow standard YAML rules. In the case of passwords with special characters this can mean escaping them properly ($ is the escape character) or properly quoting the variable. The best course of action if you do not know how to do this or are unwilling to research, is to stick to alphanumeric characters only.","title":"Intro"},{"location":"general/docker-compose/#installation","text":"","title":"Installation"},{"location":"general/docker-compose/#install-option-1-recommended","text":"Starting with version 2, Docker started publishing docker compose as a go based plugin for docker (rather than a python based standalone binary). And they also publish this plugin for various arches, including x86_64, armhf and aarch64 (as opposed to the x86_64 only binaries for v1.X). Therefore we updated our recommended install option to utilize the plugin. You can install docker compose via the following commands: ARCH=$(uname -m) && [[ \"${ARCH}\" == \"armv7l\" ]] && ARCH=\"armv7\" sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo curl -SL \"https://github.com/docker/compose/releases/latest/download/docker-compose-linux-${ARCH}\" -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose Assuming you already have docker (or at the very least docker-cli) installed, preferably from the official docker repos, running docker compose version should display the compose version. If you don't have docker installed yet, we recommend installing it via the following commands: curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh","title":"Install Option 1 (recommended):"},{"location":"general/docker-compose/#v1x-compatibility","text":"As v2 runs as a plugin instead of a standalone binary, it is invoked by docker compose args instead of docker-compose args . There are also some slight differences in how the yaml is operated as well. To make migration easier, Docker released a replacement binary for docker-compose on x86_64 and aarch64 platforms. More info on that can be found at the upstream repo .","title":"v1.X compatibility:"},{"location":"general/docker-compose/#install-option-2","text":"You can install docker-compose using our docker-compose image via a run script. You can simply run the following commands on your system and you should have a functional install that you can call from anywhere as docker-compose : sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/v2/run.sh -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose In order to update the local image, you can run the following commands: docker pull linuxserver/docker-compose:\"${DOCKER_COMPOSE_IMAGE_TAG:-v2}\" docker image prune -f The above commands will use the v2 images (although invoked by docker-compose instead of docker compose ). If you'd like to use v1 images, you can set an env var DOCKER_COMPOSE_IMAGE_TAG=alpine , DOCKER_COMPOSE_IMAGE_TAG=ubuntu in your respective .profile . Alternatively you can set that var to a versioned image tag like v2-2.4.1-r1 or version-alpine-1.27.4 to pin it to a specific docker-compose version.","title":"Install Option 2:"},{"location":"general/docker-compose/#single-service-usage","text":"Here's a basic example for deploying a Linuxserver container with docker compose: version: \"2.1\" services: heimdall: image: linuxserver/heimdall container_name: heimdall volumes: - /home/user/appdata/heimdall:/config environment: - PUID=1000 - PGID=1000 - TZ=Europe/London ports: - 80:80 - 443:443 restart: unless-stopped If you save the above snippet in a file named docker-compose.yml , you can simply run docker compose up -d from within the same folder and the heimdall image will be automatically pulled, and a container will be created and started. up means bring the services up, and -d means do it in the background. If you want to do it from a different folder or if you named the yaml file differently, ie. heimdall.yml , then you can define it in the command with -f : docker compose -f /path/to/heimdall.yml up -d To bring down the services, simply do docker compose down or docker compose -f /path/to/heimdall.yml down and all containers defined by the yml will be stopped and destroyed.","title":"Single service Usage"},{"location":"general/docker-compose/#multiple-service-usage","text":"You can have multiple services managed by a single compose yaml. Copy the contents below the services: line in any of our readme yaml samples into the same yaml file and the docker compose up/down commands will apply to all services at once. Let's say you have the following in a yaml file named docker-compose.yml : version: \"2.1\" services: heimdall: image: linuxserver/heimdall container_name: heimdall volumes: - /home/user/appdata/heimdall:/config environment: - PUID=1000 - PGID=1000 - TZ=Europe/London ports: - 80:80 - 443:443 restart: unless-stopped nginx: image: linuxserver/nginx container_name: nginx environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/user/appdata/nginx:/config ports: - 81:80 - 444:443 restart: unless-stopped mariadb: image: linuxserver/mariadb container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD - TZ=Europe/London volumes: - /home/user/appdata/mariadb:/config ports: - 3306:3306 restart: unless-stopped You now have 3 services defined in there: heimdall , nginx and mariadb . When you do a docker compose up -d , it will first download the images for all three if they don't exist (if they exist, they are not updated) and it will create all three containers and start them. docker compose down will bring all three services down and destroy the containers (persistent data will remain).","title":"Multiple Service Usage"},{"location":"general/docker-compose/#updates","text":"If you want to update the images and recreate the containers with the same vars, it's extremely easy with docker-compose. First we tell it to update all images via docker compose pull . Then we issue docker compose up -d and it will automatically recreate the containers (as necessary) based on the updated images. If a container's image is already the latest and there was no update, it remains untouched. Similarly, if you edit the contents of the yaml file and re-issue docker compose up -d , only the containers affected by the changes to the yaml file will be recreated, others will be untouched. Defining the containers running on your server as code is a core tenet of a \"Devops\" approach to the world. Constructing elaborate docker run commands and then forgetting which variables you passed is a thing of the past when using docker compose .","title":"Updates"},{"location":"general/docker-compose/#support-requests","text":"If you would like to request support, you can do so on our forum or on our discord server . When you do so, please provide all the necessary information like the server and platform info, docker container log and the compose yaml. If your compose yaml makes use of .env , please post an output of docker compose convert or docker compose convert -f /path/to/compose.yml for the entire yaml, or docker compose convert for a single service, as it will automatically replace the environment variables with their actual values.","title":"Support Requests"},{"location":"general/docker-compose/#tips-tricks","text":"docker compose expects a docker-compose.yml file in the current directory and if one isn't present it will complain. In order to improve your quality of life we suggest the use of bash aliases. The file path for the aliases below assumes that the docker-compose.yml file is being kept in the folder /opt . If your compose file is kept somewhere else, like in a home directory, then the path will need to be changed. Create or open the file ~/.bash_aliases and populate with the following content: alias dcup='docker compose -f /opt/docker-compose.yml up -d' #brings up all containers if one is not defined after dcup alias dcdown='docker compose -f /opt/docker-compose.yml stop' #brings down all containers if one is not defined after dcdown alias dcpull='docker compose -f /opt/docker-compose.yml pull' #pulls all new images is specified after dcpull alias dclogs='docker compose -f /opt/docker-compose.yml logs -tf --tail=\"50\" ' alias dtail='docker logs -tf --tail=\"50\" \"$@\"' If the docker-compose.yml file is in a home directory, the following can be put in the ~/.bash_aliases file. alias dcup='docker-compose -f ~/docker-compose.yml up -d' #brings up all containers if one is not defined after dcup alias dcdown='docker-compose -f ~/docker-compose.yml stop' #brings down all containers if one is not defined after dcdown alias dcpull='docker-compose -f ~/docker-compose.yml pull' #pulls all new images unless one is specified alias dclogs='docker-compose -f ~/docker-compose.yml logs -tf --tail=\"50\" ' alias dtail='docker logs -tf --tail=\"50\" \"$@\"' There are multiple ways to see the logs of your containers. In some instances, using docker logs is preferable to docker compose logs . By default docker logs will not run unless you define which service the logs are coming from. The docker compose logs will pull all of the logs for the services defined in the docker-compose.yml file. When asking for help, you should post your logs or be ready to provide logs if someone requests it. If you are running multiple containers in your docker-compose.yml file, it is not helpful to submit all of the logs. If you are experiencing issues with a single service, say Heimdall, then you would want to get your logs using docker logs heimdall or docker compose logs heimdall . The bash_alias for dclogs can be used if you define your service after you've typed the alias. Likewise, the bash_alias detail will not run without defining the service after it. Some distributions, like Ubuntu, already have the code snippet below in the ~/.bashrc file. If it is not included, you'll need to add the following to your ~/.bashrc file in order for the aliases file to be picked up: if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi Once configured, you can run source ~/.bashrc or log out and the log in again. Now you can type dcpull or dcup to manage your entire fleet of containers at once. It's like magic.","title":"Tips & Tricks"},{"location":"general/fleet/","text":"Fleet How Fleet works Fleet stores a snapshot of Docker Images in its own database, consisting of metadata deemed most pertinent to both the users of the images, and the repository owner. It will synchronize with Docker Hub over a set interval in order to update its stored data. It then displays this snapshot data on its own status page as a useful list, containing links to each repository and image owned by the repository owner. Each image also contains a status which is managed by the repository owner, who can define images as either Stable or Unstable . This is designed to quickly help users know when an image is undergoing a state of instability which is known by the owner. Why a snapshot? In short, Docker Hub's API is very slow. It would not be a good long-term solution to just proxy the responses from Docker Hub and translate the data into something considered useful by downstream clients. By caching the image information in its own database, Fleet is able to more efficiently return the status data for each image and repository. In doing so, it is also able to provide more concise data, such as image versions, as part of the primary response, rather than requiring users to make a separate call. As an example comparison between obtaining all image name, pull and version information for all LinuxServer images from Docker Hub, and then obtaining that same data via Fleet's API: API Time (ms) Docker Hub (multiple calls) 52000ms Fleet 50ms Capabilities Fleet has the ability to display images with a particular state, which provides contextual information to visitors of the application's main page. Hidden If an image is hidden, it will not be displayed as part of the main list, nor will it be returned as part of any API calls. This also means that the pull count of a hidden image is not included. Unstable Marks an image as having issues known by the maintainer. A useful state to assign to an image if the latest build (or builds) are causing downstream breakages. This may also be useful if an upstream dependency or application is causing breakages in the image directly. Deprecated If the maintainer of the image, or upstream application no longer wishes to provide support, or if the image has reached its end-of-life (or has been superseded by another), marking an image as deprecated will ensure users are made aware that no further updates will be supplied, and should stop using it. Deprecation notices are also provided to give context. API Fleet exposes a single API endpoint which can be used to obtain image list and pull count information for all relevant images maintained by the repository {% api-method method=\"get\" host=\"https://fleet.linuxserver.io\" path=\"/api/v1/images\" %} {% api-method-summary %} Get All Repositories and Images {% endapi-method-summary %} {% api-method-description %} Returns all synchronized images. {% endapi-method-description %} {% api-method-spec %} {% api-method-request %} {% api-method-response %} {% api-method-response-example httpCode=200 %} {% api-method-response-example-description %} All synchronized repositories and images returned. {% endapi-method-response-example-description %} { \"status\": \"OK\", \"data\" { \"totalPullCount\": 1862494227, \"repositories\": { \"lsiobase\": [ { \"name\": \"alpine\", \"pullCount\": 4275970, \"version\": \"3.6\", \"stable\": true }, { \"name\": \"alpine.arm64\", \"pullCount\": 66234, \"version\": \"edge\", \"stable\": true }, ... ], \"linuxserver\": [ { \"name\": \"airsonic\", \"pullCount\": 4608329, \"version\": \"v10.2.1\", \"stable\": true }, { \"name\": \"apache\", \"pullCount\": 3011699, \"version\": \"latest\", \"stable\": true }, ... ] ... } } } {% endapi-method-response-example %} {% endapi-method-response %} {% endapi-method-spec %} {% endapi-method %} {% hint style=\"info\" %} Any repositories not synchronized with Docker Hub (e.g. staging or metadata repositories) will not be returned as part of the API. This also applies to images which the repository owner does not wish to be part of the primary image list. {% endhint %} Running Fleet {% hint style=\"warning\" %} Fleet is a Java application and requires at least JRE 11. {% endhint %} Grab the latest Fleet release from GitHub . SQL Fleet stores its data in a MariaDB database which you need to provide. In order for the application to manage its tables and procedures, the user you provide it needs to have the relevant GRANT permissions to the fleet database. The following script should be sufficient to get the initial database set up. CREATE SCHEMA `fleet`; CREATE USER 'fleet_user' IDENTIFIED BY 'supersecretpassword'; GRANT ALL ON `fleet`.* TO 'fleet_user'; The username and password that you define must then be provided as part of Fleet's configuration. Configuration File All primary configuration for Fleet at runtime is loaded in via a fleet.properties file. This can be located anywhere on the file system, and is loaded in via a Runtime argument: # Runtime fleet.app.port=8080 # Database Connectivity fleet.database.driver=org.mariadb.jdbc.Driver fleet.database.url=jdbc:mariadb://:3306/fleet fleet.database.username= fleet.database.password= # Password security fleet.admin.secret= All configuration can be loaded either via the config file, via JVM arguments, or via the system environment. Fleet will first look in the configuration file, then JVM runtime, and finally in the system environment. It will load the first value it finds, which can be useful when needing to override specific properties. {% hint style=\"info\" %} If you place a property in the system environment, ensure that the property uses underscores rather than periods. This is due to a limitation in BASH environments where exported variables must not contain this character. E.g. fleet.app.port=8080 becomes export fleet_app_port=8080 {% endhint %} Property Name Purpose fleet.app.port The port which the application will be running under. fleet.admin.secret A string used as part of the password key derivation process. This secret is prepended to the raw password before its key is derived, providing further pseudo-randomness to hashed passwords. Once set, this must not be changed! It is vital to remain the same, as it will be used during the password verification step. If Fleet is restarted with this removed or set differently, the password verification process will fail because previously hashed passwords will have been derived with the old secret. fleet.database.driver The driver to use for connections to Fleet's database. This should be org.mariadb.jdbc.Driver fleet.database.url The full JDBC connection string to the database. fleet.database.username The username of the SQL user which will be managing the data in the Fleet database. This should have full GRANT access to the fleet database as it also manages any database migrations. fleet.database.password The password for the SQL user Runtime Arguments As well as the base configuration file, Fleet also supports some runtime arguments by means of the -D flag. These can be used to direct Fleet to behave in a specific way at runtime. {% hint style=\"info\" %} Unlike the properties defined above, these properties are only accessed via the JVM arguments ( -D ). {% endhint %} Runtime Argument Purpose fleet.config.base The absolute path of the configuration file. fleet.show.passwords Tells fleet to show passwords in plain text in its logs. Not recommended . fleet.nuke.database Be very careful. This will tell Fleet to completely wipe and rebuild its database. This can be useful if the owner deems the database to be too far out of synchronisation with Docker Hub, or if images have since been removed but are still showing in Fleet. fleet.skip.sync.on.startup By default, Fleet will run a synchronisation process when it first starts up. Setting this flag will tell it to skip the first run. The next synchronisation will be at the set interval. Default User When starting Fleet for the first time it will create a default user in order for you to log in and manage the repositories/images synchronised by the application. The default username and password are: Username : admin Password : admin {% hint style=\"warning\" %} You should change the default password for this user as soon as possible! This can be done via the Admin -> Users menu options. {% endhint %}","title":"Fleet"},{"location":"general/fleet/#fleet","text":"","title":"Fleet"},{"location":"general/fleet/#how-fleet-works","text":"Fleet stores a snapshot of Docker Images in its own database, consisting of metadata deemed most pertinent to both the users of the images, and the repository owner. It will synchronize with Docker Hub over a set interval in order to update its stored data. It then displays this snapshot data on its own status page as a useful list, containing links to each repository and image owned by the repository owner. Each image also contains a status which is managed by the repository owner, who can define images as either Stable or Unstable . This is designed to quickly help users know when an image is undergoing a state of instability which is known by the owner.","title":"How Fleet works"},{"location":"general/fleet/#why-a-snapshot","text":"In short, Docker Hub's API is very slow. It would not be a good long-term solution to just proxy the responses from Docker Hub and translate the data into something considered useful by downstream clients. By caching the image information in its own database, Fleet is able to more efficiently return the status data for each image and repository. In doing so, it is also able to provide more concise data, such as image versions, as part of the primary response, rather than requiring users to make a separate call. As an example comparison between obtaining all image name, pull and version information for all LinuxServer images from Docker Hub, and then obtaining that same data via Fleet's API: API Time (ms) Docker Hub (multiple calls) 52000ms Fleet 50ms","title":"Why a snapshot?"},{"location":"general/fleet/#capabilities","text":"Fleet has the ability to display images with a particular state, which provides contextual information to visitors of the application's main page.","title":"Capabilities"},{"location":"general/fleet/#hidden","text":"If an image is hidden, it will not be displayed as part of the main list, nor will it be returned as part of any API calls. This also means that the pull count of a hidden image is not included.","title":"Hidden"},{"location":"general/fleet/#unstable","text":"Marks an image as having issues known by the maintainer. A useful state to assign to an image if the latest build (or builds) are causing downstream breakages. This may also be useful if an upstream dependency or application is causing breakages in the image directly.","title":"Unstable"},{"location":"general/fleet/#deprecated","text":"If the maintainer of the image, or upstream application no longer wishes to provide support, or if the image has reached its end-of-life (or has been superseded by another), marking an image as deprecated will ensure users are made aware that no further updates will be supplied, and should stop using it. Deprecation notices are also provided to give context.","title":"Deprecated"},{"location":"general/fleet/#api","text":"Fleet exposes a single API endpoint which can be used to obtain image list and pull count information for all relevant images maintained by the repository {% api-method method=\"get\" host=\"https://fleet.linuxserver.io\" path=\"/api/v1/images\" %} {% api-method-summary %} Get All Repositories and Images {% endapi-method-summary %} {% api-method-description %} Returns all synchronized images. {% endapi-method-description %} {% api-method-spec %} {% api-method-request %} {% api-method-response %} {% api-method-response-example httpCode=200 %} {% api-method-response-example-description %} All synchronized repositories and images returned. {% endapi-method-response-example-description %} { \"status\": \"OK\", \"data\" { \"totalPullCount\": 1862494227, \"repositories\": { \"lsiobase\": [ { \"name\": \"alpine\", \"pullCount\": 4275970, \"version\": \"3.6\", \"stable\": true }, { \"name\": \"alpine.arm64\", \"pullCount\": 66234, \"version\": \"edge\", \"stable\": true }, ... ], \"linuxserver\": [ { \"name\": \"airsonic\", \"pullCount\": 4608329, \"version\": \"v10.2.1\", \"stable\": true }, { \"name\": \"apache\", \"pullCount\": 3011699, \"version\": \"latest\", \"stable\": true }, ... ] ... } } } {% endapi-method-response-example %} {% endapi-method-response %} {% endapi-method-spec %} {% endapi-method %} {% hint style=\"info\" %} Any repositories not synchronized with Docker Hub (e.g. staging or metadata repositories) will not be returned as part of the API. This also applies to images which the repository owner does not wish to be part of the primary image list. {% endhint %}","title":"API"},{"location":"general/fleet/#running-fleet","text":"{% hint style=\"warning\" %} Fleet is a Java application and requires at least JRE 11. {% endhint %} Grab the latest Fleet release from GitHub .","title":"Running Fleet"},{"location":"general/fleet/#sql","text":"Fleet stores its data in a MariaDB database which you need to provide. In order for the application to manage its tables and procedures, the user you provide it needs to have the relevant GRANT permissions to the fleet database. The following script should be sufficient to get the initial database set up. CREATE SCHEMA `fleet`; CREATE USER 'fleet_user' IDENTIFIED BY 'supersecretpassword'; GRANT ALL ON `fleet`.* TO 'fleet_user'; The username and password that you define must then be provided as part of Fleet's configuration.","title":"SQL"},{"location":"general/fleet/#configuration-file","text":"All primary configuration for Fleet at runtime is loaded in via a fleet.properties file. This can be located anywhere on the file system, and is loaded in via a Runtime argument: # Runtime fleet.app.port=8080 # Database Connectivity fleet.database.driver=org.mariadb.jdbc.Driver fleet.database.url=jdbc:mariadb://:3306/fleet fleet.database.username= fleet.database.password= # Password security fleet.admin.secret= All configuration can be loaded either via the config file, via JVM arguments, or via the system environment. Fleet will first look in the configuration file, then JVM runtime, and finally in the system environment. It will load the first value it finds, which can be useful when needing to override specific properties. {% hint style=\"info\" %} If you place a property in the system environment, ensure that the property uses underscores rather than periods. This is due to a limitation in BASH environments where exported variables must not contain this character. E.g. fleet.app.port=8080 becomes export fleet_app_port=8080 {% endhint %} Property Name Purpose fleet.app.port The port which the application will be running under. fleet.admin.secret A string used as part of the password key derivation process. This secret is prepended to the raw password before its key is derived, providing further pseudo-randomness to hashed passwords. Once set, this must not be changed! It is vital to remain the same, as it will be used during the password verification step. If Fleet is restarted with this removed or set differently, the password verification process will fail because previously hashed passwords will have been derived with the old secret. fleet.database.driver The driver to use for connections to Fleet's database. This should be org.mariadb.jdbc.Driver fleet.database.url The full JDBC connection string to the database. fleet.database.username The username of the SQL user which will be managing the data in the Fleet database. This should have full GRANT access to the fleet database as it also manages any database migrations. fleet.database.password The password for the SQL user","title":"Configuration File"},{"location":"general/fleet/#runtime-arguments","text":"As well as the base configuration file, Fleet also supports some runtime arguments by means of the -D flag. These can be used to direct Fleet to behave in a specific way at runtime. {% hint style=\"info\" %} Unlike the properties defined above, these properties are only accessed via the JVM arguments ( -D ). {% endhint %} Runtime Argument Purpose fleet.config.base The absolute path of the configuration file. fleet.show.passwords Tells fleet to show passwords in plain text in its logs. Not recommended . fleet.nuke.database Be very careful. This will tell Fleet to completely wipe and rebuild its database. This can be useful if the owner deems the database to be too far out of synchronisation with Docker Hub, or if images have since been removed but are still showing in Fleet. fleet.skip.sync.on.startup By default, Fleet will run a synchronisation process when it first starts up. Setting this flag will tell it to skip the first run. The next synchronisation will be at the set interval.","title":"Runtime Arguments"},{"location":"general/fleet/#default-user","text":"When starting Fleet for the first time it will create a default user in order for you to log in and manage the repositories/images synchronised by the application. The default username and password are: Username : admin Password : admin {% hint style=\"warning\" %} You should change the default password for this user as soon as possible! This can be done via the Admin -> Users menu options. {% endhint %}","title":"Default User"},{"location":"general/running-our-containers/","text":"Running LinuxServer Containers Image Structure Base Images We have curated various base images which our main application images derive from. This is beneficial for two main reasons: A common dependency base between multiple images, reducing the likelihood of variation between two or more applications that share the same dependencies. Reduction in image footprint on your host machine by fully utilising Docker's image layering system. Multiple containers running locally that share the same base image will reuse that image and any of its ancestors. The /config volume To help reduce variation between our images, we have adopted a common structure pattern for application config and dependent directories. This means that each image has its own internal /config directory which holds all application-specific configuration. With the exception of a small number of images, all of our images expose this volume. We do this because we believe that it makes it easier to answer the common question of \"where does the application data get persisted?\" - the answer being \"always in /config \". If you don't map this directory when creating your containers, the config will only last as long as the lifespan of the container itself! Creating a Container To create a container from one of our images, you must use either docker create or docker run . Each image follows the same pattern in the command when creating a container: docker create \\ --name= \\ -v :/config \\ -e PUID= \\ -e PGID= \\ -p : \\ linuxserver/","title":"Running LinuxServer Containers"},{"location":"general/running-our-containers/#running-linuxserver-containers","text":"","title":"Running LinuxServer Containers"},{"location":"general/running-our-containers/#image-structure","text":"","title":"Image Structure"},{"location":"general/running-our-containers/#base-images","text":"We have curated various base images which our main application images derive from. This is beneficial for two main reasons: A common dependency base between multiple images, reducing the likelihood of variation between two or more applications that share the same dependencies. Reduction in image footprint on your host machine by fully utilising Docker's image layering system. Multiple containers running locally that share the same base image will reuse that image and any of its ancestors.","title":"Base Images"},{"location":"general/running-our-containers/#the-config-volume","text":"To help reduce variation between our images, we have adopted a common structure pattern for application config and dependent directories. This means that each image has its own internal /config directory which holds all application-specific configuration. With the exception of a small number of images, all of our images expose this volume. We do this because we believe that it makes it easier to answer the common question of \"where does the application data get persisted?\" - the answer being \"always in /config \". If you don't map this directory when creating your containers, the config will only last as long as the lifespan of the container itself!","title":"The /config volume"},{"location":"general/running-our-containers/#creating-a-container","text":"To create a container from one of our images, you must use either docker create or docker run . Each image follows the same pattern in the command when creating a container: docker create \\ --name= \\ -v :/config \\ -e PUID= \\ -e PGID= \\ -p : \\ linuxserver/","title":"Creating a Container"},{"location":"general/swag/","text":"The goal of this guide is to give you ideas on what can be accomplished with the LinuxServer SWAG docker image and to get you started. We will explain some of the basic concepts and limitations, and then we'll provide you with common examples. If you have further questions, you can ask on our forum or join our Discord for conversations: https://discord.gg/YWrKVTn Table of Contents Introduction What are SSL certs? What is Let's Encrypt (and/or ZeroSSL)? Creating a SWAG container Docker cli Docker compose Authorization method Cert provider (Let's Encrypt vs ZeroSSL) Port forwards Docker networking Container setup examples Create container via http validation Create container via dns validation with a wildcard cert Create container via duckdns validation with a wildcard cert Web hosting examples Simple html web page hosting Hosting a Wordpress site Reverse Proxy Preset proxy confs Understanding the proxy conf structure Subdomain proxy conf Subfolder proxy conf Ombi subdomain reverse proxy example Nextcloud subdomain reverse proxy example Plex subfolder reverse proxy example Using Heimdall as the home page at domain root Troubleshooting Common errors 404 502 Final Thoughts How to Request Support Introduction What are SSL certs? SSL certs allow users of a service to communicate via encrypted data transmitted up and down. Third party trusted certs also allow users to make sure that the remote service they are connecting to is really who they say they are and not someone else in the middle. When we run a web server for reasons like hosting websites or reverse proxying services on our own domain, we need to set it up with third party trusted ssl certs so client browsers trust it and communicate with it securely. When you connect to a website with a trusted cert, most browsers show a padlock icon next to the address bar to indicate that. Without a trusted cert (ie. with self signed cert) most browsers show warning pages or may block access to the website as the website identity cannot be confirmed via a trusted third party. What is Let's Encrypt (and/or ZeroSSL)? In the past, the common way to get a trusted ssl cert was to contact one of the providers, send them the relevant info to prove ownership of a domain and pay for the service. Nowadays, with Let's Encrypt and ZeroSSL , one can get free certs via automated means. The SWAG docker image , published and maintained by LinuxServer.io , makes setting up a full-fledged web server with auto generated and renewed ssl certs very easy. It is essentially an nginx webserver with php7, fail2ban (intrusion prevention) and Let's Encrypt cert validation built-in. It is just MySQL short of a LEMP stack and therefore is best paired with our MariaDB docker image . Creating a SWAG container Most of the initial settings for getting a webserver with ssl certs up are done through the docker run/create or compose yaml parameters. Here's a list of all the settings available including the optional ones. It is safe to remove unnecessary parameters for different scenarios. docker cli docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=yourdomain.url \\ -e SUBDOMAINS=www, \\ -e VALIDATION=http \\ -e CERTPROVIDER= `#optional` \\ -e DNSPLUGIN=cloudflare `#optional` \\ -e DUCKDNSTOKEN= `#optional` \\ -e EMAIL= `#optional` \\ -e ONLY_SUBDOMAINS=false `#optional` \\ -e EXTRA_DOMAINS= `#optional` \\ -e STAGING=false `#optional` \\ -p 443:443 \\ -p 80:80 `#optional` \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag docker-compose Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=yourdomain.url - SUBDOMAINS=www, - VALIDATION=http - CERTPROVIDER= #optional - DNSPLUGIN=cloudflare #optional - DUCKDNSTOKEN= #optional - EMAIL= #optional - ONLY_SUBDOMAINS=false #optional - EXTRA_DOMAINS= #optional - STAGING=false #optional volumes: - :/config ports: - 443:443 - 80:80 #optional restart: unless-stopped Authorization method Our image currently supports three different methods to validate domain ownership: http: Let's Encrypt (acme) server connects to domain on port 80 Can be owned domain or a dynamic dns address dns: Let's Encrypt (acme) server connects to dns provider Api credentials and settings entered into ini files under /config/dns-conf/ Supports wildcard certs Need to have own domain name (non-free) duckdns: Let's Encrypt (acme) server connects to DuckDNS Supports wildcard certs (only for the sub-subdomains) No need for own domain (free) The validation is performed when the container is started for the first time. Nginx won't be up until ssl certs are successfully generated. The certs are valid for 90 days. The container will check the cert expiration status every night and if they are to expire within 30 days, it will attempt to auto-renew. If your certs are about to expire in less than 30 days, check the logs under /config/log/letsencrypt to see why the auto-renewals failed. Cert Provider (Let's Encrypt vs ZeroSSL) As of January 2021, SWAG supports getting certs validated by either Let's Encrypt or ZeroSSL . Both services use the ACME protocol as the underlying method to validate ownership. Our Certbot client in the SWAG image is ACME compliant and therefore supports both services. Although very similar, ZeroSSL does (at the time of writing) have a couple of advantages over Let's Encrypt: * ZeroSSL provides unlimited certs via ACME and has no rate limits or throttling (it's quite common for new users to get throttled by Let's Encrypt due to multiple unsuccessful attempts to validate) * ZeroSSL provides a web interface that allows users to list and manage the certs they have received SWAG currently defaults to Let's Encrypt as the cert provider so as not to break existing installs, however users can override that behavior by setting the environment variable CERTPROVIDER=zerossl to retrieve a cert from ZeroSSL instead. The only gotcha is that ZeroSSL requires the EMAIL env var to be set so the certs can be tied to a ZeroSSL account for management over their web interface. Port forwards Port 443 mapping is required for access through https://domain.com . However, you don't necessarily need to have it listen on port 443 on the host server. All that is needed is to have port 443 on the router (wan) somehow forward to port 443 inside the container, while it can go through a different port on the host. For instance, it is ok to have port 443 on router (wan) forward to port 444 on the host, and then map port 444 to port 443 in docker run/create or compose yml. Port 80 forwarding is required for http validation only. Same rule as above applies, and it's OK to go from 80 on the router to 81 on the host, mapped to 80 in the container. Docker networking SWAG container happily runs with bridge networking. However, the default bridge network in docker does not allow containers to connect each other via container names used as dns hostnames. Therefore, it is recommended to first create a user defined bridge network and attach the containers to that network. If you are using docker-compose, and your services are on the same yaml, you do not need to do this, because docker-compose automatically creates a user defined bridge network and attaches each container to it as long as no other networking option is defined in their config. For the below examples, we will use a network named lsio . We can create it via docker network create lsio . After that, any container that is created with --net=lsio can ping each other by container name as dns hostname. Keep in mind that dns hostnames are meant to be case-insensitive, however container names are case-sensitive. For container names to be used as dns hostnames in nginx, they should be all lowercase as nginx will convert them to all lowercase before trying to resolve. Container setup examples Create container via http validation Let's assume our domain name is linuxserver-test.com and we would like our cert to also cover www.linuxserver-test.com and ombi.linuxserver-test.com . On the router, forward ports 80 and 443 to your host server. On your dns provider (if using your own domain), create an A record for the main domain and point it to your server IP (wan). Also create CNAMES for www and ombi and point them to the A record for the domain. With docker cli, we'll first create a user defined bridge network if we haven't already docker network create lsio , and then create the container: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=www,ombi \\ -e VALIDATION=http \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once created, we do docker start swag to start it. With docker compose, we can use the following yml: --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=www,ombi - VALIDATION=http volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped We can fire up the container with docker-compose up -d After the container is started, we'll watch the logs with docker logs swag -f . After some initial initialization, we will see the validation steps. After all the steps, it should print Server ready in the logs. Now we can browse to https://www.linuxserver-test.com and we'll see the default landing page displayed. Create container via dns validation with a wildcard cert Let's assume our domain name is linuxserver-test.com and we would like our cert to also cover www.linuxserver-test.com , ombi.linuxserver-test.com and any other subdomain possible. On the router, we'll forward port 443 to our host server (Port 80 forwarding is optional). We'll need to make sure that we are using a dns provider that is supported by this image. Currently the following dns plugins are supported: cloudflare , cloudxns , digitalocean , dnsimple , dnsmadeeasy , google , luadns , nsone , ovh , rfc2136 and route53 . Your dns provider by default is the provider of your domain name and if they are not supported, it is very easy to switch to a different dns provider. Cloudflare is recommended due to being free and reliable. To switch to Cloudflare, you can register for a free account and follow their steps to point the nameservers to Cloudflare. The rest of the instructions assume that we are using the cloudflare dns plugin. On our dns provider, we'll create an A record for the main domain and point it to our server IP (wan). We'll also create a CNAME for * and point it to the A record for the domain. On Cloudflare, we'll click on the orange cloud to turn it grey so that it is dns only and not cached/proxied by Cloudflare, which would add more complexities. Now, let's get the container set up. With docker cli, we'll first create a user defined bridge network if we haven't already docker network create lsio , and then create the container: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag And we start the container via docker start swag With docker compose, we'll use: --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Then we'll fire up the container via docker-compose up -d After the container is started, we'll watch the logs with docker logs swag -f . After some init steps, we'll notice that the container will give an error during validation due to wrong credentials. That's because we didn't enter the correct credentials for the Cloudflare api yet. We can browse to the location /config/dns-conf which is mapped from the host location (according to above settings) /home/aptalca/appdata/swag/dns-conf/ and edit the correct ini file for our dns provider. For Cloudflare, we'll enter our e-mail address and the api key. The api key can be retrieved by going to the Overview page and clicking on Get your API key link. We'll need the Global API Key . Once we enter the credentials into the ini file, we'll restart the docker container via docker restart swag and again watch the logs. After successful validation, we should see the notice Server ready and our webserver should be up and accessible at https://www.linuxserver-test.com . Create container via duckdns validation with a wildcard cert We will first need to get a subdomain from DuckDNS . Let's assume we get linuxserver-test so our url will be linuxserver-test.duckdns.org . Then we'll need to make sure that the subdomain points to our server IP (wan) on the DuckDNS website. We can always use our DuckDNS docker image to keep the IP up to date. Don't forget to get the token for your account from DuckDNS. On the router, we'll forward port 443 to our host server (Port 80 forward is optional). Now, let's get the container set up. With docker cli, we'll first create a user defined bridge network if we haven't already docker network create lsio , and then create the container: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.duckdns.org \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=duckdns \\ -e DUCKDNSTOKEN=97654867496t0877648659765854 \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag And we start the container via docker start swag With docker compose, we'll use: --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.duckdns.org - SUBDOMAINS=wildcard - VALIDATION=duckdns - DUCKDNSTOKEN=97654867496t0877648659765854 volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Then we'll fire up the container via docker-compose up -d After the container is started, we'll watch the logs with docker logs swag -f . We'll see some initialization and then we will see the validation steps. After all the steps, it should print Server ready in the logs. Now we can access the webserver by browsing to https://www.linuxserver-test.duckdns.org . NOTICE: Due to a DuckDNS limitation, our cert only covers the wildcard subdomains, but it doesn't cover the main url. So if we try to access https://linuxserver-test.duckdns.org , we'll see a browser warning about an invalid ssl cert. But accessing it through the www (or ombi or any other) subdomain should work fine. Web hosting examples Simple html web page hosting Once we have a working container, we can drop our web documents in and modify the nginx config files to set up our webserver. All the necessary files are under /config which is mapped from the host location (set by above examples) /home/aptalca/appdata/swag . We can drop all of our web/html files into /config/www . The main site config nginx uses can be found at /config/nginx/site-confs/default . Don't delete this file, as it will be regenerated on container restart, but feel free to modify as needed. By default, it is listening on port 443, and the root folder is set to /config/www , so if you drop a page1.html into that location, it will be accessible at https://linuxserver-test.com/page1.html . To enable listening on port 80 and automatically redirecting to port 443 for enforcing ssl, uncomment the lines at the top of the default site config so it reads: # redirect all traffic to https server { listen 80; listen [::]:80; server_name _; return 301 https://$host$request_uri; } After any changes to the config files, simply restart the container via docker restart swag to reload the nginx config. Hosting a Wordpress site Wordpress requires a mysql database. For that, we'll use the linuxserver MariaDB docker image . Here's a docker compose stack to get both containers set up. For this exercise, we'll utilize the cloudflare dns plugin for Let's Encrypt validation, but you can use any other method to set it up as described in this linked section : --- version: \"2.1\" services: mariadb: image: lscr.io/linuxserver/mariadb container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=mariadbpassword - TZ=Europe/London - MYSQL_DATABASE=WP_database - MYSQL_USER=WP_dbuser - MYSQL_PASSWORD=WP_dbpassword volumes: - /home/aptalca/appdata/mariadb:/config restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 depends_on: - mariadb restart: unless-stopped And here are the docker cli versions (make sure you already created the lsio network as described above : Mariadb: docker create \\ --name=mariadb \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_ROOT_PASSWORD=mariadbpassword \\ -e TZ=Europe/London \\ -e MYSQL_DATABASE=WP_database \\ -e MYSQL_USER=WP_dbuser \\ -e MYSQL_PASSWORD=WP_dbpassword \\ -v /home/aptalca/appdata/mariadb:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mariadb SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once the SWAG container is set up with ssl certs and the webserver is up, we'll download the latest Wordpress and untar it into our www folder: wget https://wordpress.org/latest.tar.gz tar xvf latest.tar.gz -C /home/aptalca/appdata/swag/www/ rm latest.tar.gz Now that we have all the wordpress files under the container's /config/www/wordpress folder, we'll change the root directive in our SWAG default site conf to point there. We'll find the line in /config/nginx/site-confs/default that reads root /config/www; and change it to root /config/www/wordpress; and restart SWAG. Now we should be able to access our wordpress config page at https://linuxserver-test.com/wp-admin/install.php . We'll go ahead and enter mariadb as the Database Host address (we are using the container name as the dns hostname since both containers are in the same user defined bridge network), and also enter the Database Name, user and password we used in the mariadb config above ( WP_database , WP_dbuser and WP_dbpassword ). Once we go through the rest of the install steps, our wordpress instance should be fully set up and available at https://linuxserver-test.com . If you would like to have http requests on port 80 enabled and auto redirected to https on port 443, uncomment the relevant lines at the top of the default site config to read: # redirect all traffic to https server { listen 80; listen [::]:80; server_name _; return 301 https://$host$request_uri; } Reverse Proxy A reverse proxy is a type of proxy server that retrieves resources on behalf of a client from one or more servers. These resources are then returned to the client as if they originated from the Web server itself (Shamelessly borrowed from another post on our blog ). In this case, a user or a client browser can connect to our SWAG container via https on port 443, request a service such as Ombi, then our SWAG container connects to the ombi container, retrieves the data and passes it on to the client via https with our trusted cert. The connection to ombi is local and does not need to be encrypted, but all communication between our SWAG container and the client browser will be encrypted. Preset proxy confs Our SWAG image comes with a list of preset reverse proxy confs for popular apps and services. They are hosted on Github and are pulled into the /config/nginx/proxy-confs folder as inactive sample files. To activate, one must rename a conf file to remove .sample from the filename and restart the SWAG container. Any proxy conf file in that folder with a name that matches *.subdomain.conf or *.subfolder.conf will be loaded in nginx during container start. Most proxy confs work without any modification, but some may require other changes. All the required changes are listed at the top of each proxy conf. The conf files use container names to reach other containers and therefore the proxied containers should be named the same as listed in our documentation for each container. The conf files also require that the SWAG container is in the same user defined bridge network as the other container so they can reach each other via container name as dns hostnames. Make sure you follow the instructions listed above in the Docker networking section . Understanding the proxy conf structure Subdomain proxy conf Here's the preset proxy conf for Heimdall as a subdomain (ie. https://heimdall.linuxserver-test.com ): # make sure that your dns has a cname set for heimdall server { listen 443 ssl; listen [::]:443 ssl; server_name heimdall.*; include /config/nginx/ssl.conf; client_max_body_size 0; # enable for ldap auth, fill in ldap details in ldap.conf #include /config/nginx/ldap.conf; # enable for Authelia #include /config/nginx/authelia-server.conf; location / { # enable the next two lines for http auth #auth_basic \"Restricted\"; #auth_basic_user_file /config/nginx/.htpasswd; # enable the next two lines for ldap auth #auth_request /auth; #error_page 401 =200 /ldaplogin; # enable for Authelia #include /config/nginx/authelia-location.conf; include /config/nginx/proxy.conf; resolver 127.0.0.11 valid=30s; set $upstream_app heimdall; set $upstream_port 443; set $upstream_proto https; proxy_pass $upstream_proto://$upstream_app:$upstream_port; } } Let's dissect this conf to look at what each directive or block does. server { } This is our server block. Whenever nginx gets a request from a client, it determines which server block should be processed based on the destination server name, port and other relevant info, and the matching server block determines how nginx handles and responds to the request. listen 443 ssl; listen [::]:443 ssl; This means that only requests coming to port 443 will match this server block. server_name heimdall.*; Only destination addresses that match heimdall.* will match this server block. include /config/nginx/ssl.conf; This directive injects the contents of our ssl.conf file here, which contains all ssl related settings (cert location, ciphers used, etc.). client_max_body_size 0; Removes the size limitation on uploads (default 1MB). # enable for ldap auth, fill in ldap details in ldap.conf #include /config/nginx/ldap.conf; Commented out (disabled) by default. When enabled, it will inject the contents of ldap.conf, necessary settings for LDAP auth. # enable for Authelia #include /config/nginx/authelia-server.conf; Commented out (disabled) by default. When enabled, it will inject the contents of authelia-server.conf, necessary settings for Authelia integration. location / { } Location blocks are used for subfolders or paths. After a server block is matched, nginx will look at the subfolder or path requested to match one of the location blocks inside the selected server block. This particular block in our example is for / so it will match any subfolder or path at this address. # enable the next two lines for http auth #auth_basic \"Restricted\"; #auth_basic_user_file /config/nginx/.htpasswd; Commented out (disabled) by default. When enabled, it will use .htpasswd to perform user/pass authentication before allowing access. # enable the next two lines for ldap auth #auth_request /auth; #error_page 401 =200 /login; Commented out (disabled) by default. When enabled, it will use LDAP authentication before allowing access. # enable for Authelia #include /config/nginx/authelia-location.conf; Commented out (disabled) by default. When enabled, it will use Authelia authentication before allowing access. include /config/nginx/proxy.conf; Injects the contents of proxy.conf, which contains various directives and headers that are common for proxied connections. resolver 127.0.0.11 valid=30s; Tells nginx to use the docker dns to resolve the IP address when the container name is used as address in the next line. set $upstream_app heimdall; set $upstream_port 443; set $upstream_proto https; proxy_pass $upstream_proto://$upstream_app:$upstream_port; This is a bit of a tricky part. Normally, we could just put in the directive proxy_pass https://heimdall:443; and expect nginx to connect to Heimdall via its container name used as a dns hostname. Although it works for the most part, nginx has an annoying habit. During start, nginx checks all dns hostnames used in proxy_pass statements and if any one of them is not accessible, it refuses to start. We really don't want a stopped proxied container to prevent our webserver from starting up, so we use a trick. If the proxy_pass statement contains a variable instead of a dns hostname , nginx doesn't check whether it's accessible or not during start. So here we are setting 3 variables, one named upstream_app with the value of heimdall , one named $upstream_port , with the value of the internal heimdall port 443 , and one named $upstream_proto with the value set to https . We we use these variables as the address in the proxy_pass directive. That way, if the heimdall container is down for any reason, nginx can still start. When using a variable instead of hostname, we also have to set the resolver to docker dns in the previous line. If the proxied container is not in the same user defined bridge network as SWAG (could be on a remote host, could be using host networking or macvlan), we can change the value of $upstream_app to an IP address instead: set $upstream_app 192.168.1.10; Subfolder proxy conf Here's the preset proxy conf for mytinytodo via a subfolder # works with https://github.com/breakall/mytinytodo-docker # set the mtt_url to 'https://your.domain.com/todo/' in db/config.php location /todo { return 301 $scheme://$host/todo/; } location ^~ /todo/ { # enable the next two lines for http auth #auth_basic \"Restricted\"; #auth_basic_user_file /config/nginx/.htpasswd; # enable the next two lines for ldap auth, also customize and enable ldap.conf in the default conf #auth_request /auth; #error_page 401 =200 /ldaplogin; # enable for Authelia, also enable authelia-server.conf in the default site config #include /config/nginx/authelia-location.conf; include /config/nginx/proxy.conf; resolver 127.0.0.11 valid=30s; set $upstream_app mytinytodo; set $upstream_port 80; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port/; } Unlike the subdomain proxy confs, here we do not have a server block. That is because all of the subfolder proxy confs get injected into the main server block of our root domain defined in the default site conf. So here we are only defining the location block for our specific subfolders. Many of the elements are the same as the subdomain ones, so for those you can refer to the previous section. Let's take a look at some of the differences. # works with https://github.com/breakall/mytinytodo-docker # set the mtt_url to 'https://your.domain.com/todo/' in db/config.php These are the instructions to get the tinytodo container ready to work with our reverse proxy. location ^~ /todo { return 301 $scheme://$host/todo/; } Redirects requests for https://linuxserver-test.com/todo to https://linuxserver-test.com/todo/ (added forward slash at the end). location ^~ /todo/ { } Any requests sent to nginx where the destination starts with https://linuxserver-test.com/todo/ will match this location block. set $upstream_app mytinytodo; set $upstream_port 80; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port/; Same as the previous example, we set a variable $upstream_app with the value mytinytodo and tell nginx to use the variable as the address. Keep in mind that the port listed here is the container port because nginx is connecting to this container directly via the docker network. So if our mytinytodo container has a port mapping of -p 8080:80 , we still set $upstream_port variable to 80 . Nginx has an interesting behavior displayed here. Even though we define http://$upstream_mytinytodo:80/ as the address nginx should proxy, nginx actually connects to http://$upstream_mytinytodo:80/todo . Whenever we use a variable as part of the proxy_pass url, nginx automatically appends the defined location (in this case /todo ) to the end of the proxy_pass url before it connects. If we include the subfolder, nginx will try to connect to http://$upstream_mytinytodo:80/todo/todo and will fail. Ombi subdomain reverse proxy example In this example, we will reverse proxy Ombi at the address https://ombi.linuxserver-test.com . First let's make sure that we have a CNAME for ombi set up on our dns provider (a wildcard CNAME * will also cover this) and it is pointing to our A record that points to our server IP. If we are using the docker cli method, we also need to create the user defined bridge network (here named lsio ) as described above . We also need to make sure that port 443 on our router is forwarded to the correct port on our server. Here's a docker compose stack we can use to set up both containers: --- version: \"2.1\" services: ombi: image: lscr.io/linuxserver/ombi container_name: ombi environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/aptalca/appdata/ombi:/config ports: - 3579:3579 restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped And here are the docker cli versions: Ombi: docker create \\ --name=ombi \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3579:3579 \\ -v /home/aptalca/appdata/ombi:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ombi SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once our containers up and running (and we confirm we can reach the placeholder page at https://linuxserver-test.com ), we simply rename the file ombi.subdomain.conf.sample under /config/nginx/proxy-confs/ to ombi.subdomain.conf and we restart the SWAG container. Now when we browser to https://ombi.linuxserver-test.com we should see the Ombi gui. Nextcloud subdomain reverse proxy example Nextcloud is a bit trickier because the app has various security measures built-in, forcing us to configure certain options manually. As with the other examples, let's make sure that we have a CNAME for nextcloud set up on our dns provider (a wildcard CNAME * will also cover this) and it is pointing to our A record that points to our server IP. If we are using the docker cli method, we also need to create the user defined bridge network (here named lsio ) as described above . For DuckDNS, we do not need to create CNAMES, as all sub-subdomains automatically point to the same IP as our custom subdomain, but we need to make sure that it is the correct IP address for our server. We also need to make sure that port 443 on our router is forwarded to the correct port on our server. In this example we'll use the duckdns wildcard cert, but you can use any Let's Encrypt validation you like as described above Here's a docker compose stack to set up our SWAG, nextcloud and mariadb containers: --- version: \"2.1\" services: nextcloud: image: lscr.io/linuxserver/nextcloud container_name: nextcloud environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/aptalca/appdata/nextcloud/config:/config - /home/aptalca/appdata/nextcloud/data:/data depends_on: - mariadb restart: unless-stopped mariadb: image: lscr.io/linuxserver/mariadb container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=mariadbpassword - TZ=Europe/London - MYSQL_DATABASE=nextcloud - MYSQL_USER=ncuser - MYSQL_PASSWORD=ncpassword volumes: - /home/aptalca/appdata/mariadb:/config restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.duckdns.org - SUBDOMAINS=wildcard - VALIDATION=duckdns - DUCKDNSTOKEN=97654867496t0877648659765854 volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped And here are the docker cli versions: Nextcloud: docker create \\ --name=nextcloud \\ --net=lsio -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v /home/aptalca/appdata/nextcloud/config:/config \\ -v /home/aptalca/appdata/nextcloud/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/nextcloud Mariadb: docker create \\ --name=mariadb \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_ROOT_PASSWORD=mariadbpassword \\ -e TZ=Europe/London \\ -e MYSQL_DATABASE=nextcloud \\ -e MYSQL_USER=ncuser \\ -e MYSQL_PASSWORD=ncpassword \\ -v /home/aptalca/appdata/mariadb:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mariadb SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.duckdns.org \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=duckdns \\ -e DUCKDNSTOKEN=97654867496t0877648659765854 \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Now we find the file named nextcloud.subdomain.conf.sample under SWAG's /config/nginx/proxy-confs folder and rename it to nextcloud.subdomain.conf , then restart the SWAG container. If this is the first time we are accessing Nextcloud (we've never accessed it locally before), we can simply navigate to https://nextcloud.linuxserver-test.duckdns.org and we should see the Nextcloud set up page. We'll fill out the info, use the mariadb user ncuser and the password we selected in the environment variable ( ncpassword in the above example) and we'll use mariadb as the Database Host address (container name as dns hostname). We should then be able to go through the intro slides and then see the Nextcloud dashboard with our shiny padlock icon next to the address bar. If this is an existing Nextcloud instance, or we set it up locally via the host IP address and local port, Nextcloud will reject proxied connections. In that case, we have to follow the instructions at the top of the nextcloud.subdomain.conf file: # assuming this container is called \"swag\", edit your nextcloud container's config # located at /config/www/nextcloud/config/config.php and add the following lines before the \");\": # 'trusted_proxies' => ['swag'], # 'overwrite.cli.url' => 'https://nextcloud.your-domain.com/', # 'overwritehost' => 'nextcloud.your-domain.com', # 'overwriteprotocol' => 'https', # # Also don't forget to add your domain name to the trusted domains array. It should look somewhat like this: # array ( # 0 => '192.168.0.1:444', # This line may look different on your setup, don't modify it. # 1 => 'nextcloud.your-domain.com', # ), These settings will tell Nextcloud to respond to queries where the destination address is our domain name. If you followed the above directions to set it up for the first time, you only need to add the line 'trusted_proxies' => ['swag'], , otherwise nextcloud 16+ shows a warning about incorrect reverse proxy settings. By default, HSTS is disabled in SWAG config, because it is a bit of a sledgehammer that prevents loading of any http assets on the entire domain. You can enable it in SWAG's ssl.conf . Plex subfolder reverse proxy example In this example, we will set up Plex as a subfolder so it will be accessible at https://linuxserver-test.com/plex . We will initially set up Plex with host networking through its local IP and will connect to it from the same subnet. If we are on a different subnet, or if using a bridge network, we can use the PLEX_CLAIM variable to automatically claim the server with our plex account. Once the Plex server is set up, it is safe to switch it to bridge networking from host. Here's a docker compose stack we can use to set up both containers: --- version: \"2.1\" services: plex: image: lscr.io/linuxserver/plex container_name: plex network_mode: host environment: - PUID=1000 - PGID=1000 - VERSION=docker volumes: - /home/aptalca/appdata/plex:/config - /home/aptalca/tvshows:/data/tvshows - /home/aptalca/movies:/data/movies restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Here are the docker cli versions: Plex: docker create \\ --name=plex \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e VERSION=docker \\ -v /home/aptalca/appdata/plex:/config \\ -v /home/aptalca/tvshows:/data/tvshows \\ -v /home/aptalca/movies:/data/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/plex SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once the containers are set up, we browse to http://LOCALSERVERIP:32400/web and set up our Plex server with our Plex account. Then we can find the file named plex.subfolder.conf.sample under our SWAG container's /config/nginx/proxy-confs folder and rename it to plex.subfolder.conf . If we are using bridge networking for our plex container, we can restart the SWAG container and we should be able to access Plex at https://linuxserver-test.com/plex . If we are using host networking for our plex container, we will also have to make one modification to the plex.subfolder.conf . We need to find the line that reads proxy_pass http://$upstream_plex:32400; and replace $upstream_plex with our Plex server's local IP address (ie. proxy_pass http://192.168.1.10:32400; ). Then we can restart SWAG and access Plex at https://linuxserver-test.com/plex . If we want Plex to always use our domain to connect (including in mobile apps), we can add our url https://linuxserver-test.com/plex into the Custom server access URLs in Plex server settings. After that, it is OK to turn off remote access in Plex server settings and remove the port forwarding port 32400. After that, all connections to our Plex server will go through SWAG reverse proxy over port 443. Using Heimdall as the home page at domain root In this example, we will set Heimdall as our homepage at domain root so when we navigate to https://linuxserver-test.com we will reach Heimdall. As before, we need to make sure port 443 is properly forwarded to our server. We also need to make sure that if we are using the docker cli method, we need to create a user defined bridge network as defined above . Here's a docker compose stack we can use to set up both containers: --- version: \"2.1\" services: heimdall: image: lscr.io/linuxserver/heimdall container_name: heimdall environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/aptalca/appdata/heimdall:/config restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Here are the docker cli versions: Heimdall: docker create \\ --name=heimdall \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v /home/aptalca/appdata/heimdall:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/heimdall SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once the containers are set up, we'll find the file named heimdall.subfolder.conf.sample under SWAG's /config/nginx/proxy-confs folder and rename it to heimdall.subfolder.conf . If we look inside that conf file, we'll see that it is set to use location / { , which will cause an issue because there is already a location defined for / inside the default site config for SWAG. So we need to edit the default site config at /config/nginx/site-confs/default and comment out the location block for / inside our main server block so it reads: #location / { # try_files $uri $uri/ /index.html /index.php?$args =404; #} That way, nginx will use the / location block from our heimdall proxy conf instead. After that, when we navigate to https://linuxserver-test.com , we'll see the Heimdall interface. If we want to password protect our new homepage, we can run the following on the host command line to create a new .htpasswd file: docker exec -it swag htpasswd -c /config/nginx/.htpasswd anyusername . After which, we can activate authentication by editing the heimdall.subfolder.conf file to uncomment the relevant lines so it reads: # enable the next two lines for http auth auth_basic \"Restricted\"; auth_basic_user_file /config/nginx/.htpasswd; Troubleshooting We wrote a blogpost for the deprecated letsencrypt image diving into troubleshooting issues regarding dns and port-forwards, which still is a very good resource: blog.linuxserver.io Common errors 404 This error simply means that the resource was not found. Commonly happening when you try to access a subfolder that is not enabled. 502 This error means that nginx can't talk to the application. There is a few common reasons for this: The application and SWAG is not on the same custom docker network Further up we talk about how to set up Docker networking , however there are some other common traps The container name does not match the application name. Covered in the section for Understanding the proxy conf structure You manually changed the port. Also covered in the section for Understanding the proxy conf structure The container originally ran with host networking, or the default bridge. In most cases the contents of /config/nginx/resolver.conf; should be ...resolver 127.0.0.11 valid=30s; , if this is not the case, you can: Delete it, and restart the container to have it regenerate Manually set the content(we wont override it) Final Thoughts This image can be used in many different scenarios as it is a full fledged web server with some bells and whistles added. The above examples should be enough to get you started. For more information, please refer to the official documentation on either Github or Docker Hub . If you have questions or issues, or want to discuss and share ideas, feel free to visit our discord: https://discord.gg/YWrKVTn How to Request Support As you can see in this article, there are many different configurations, therefore we need to understand your exact setup before we can provide support. If you encounter a bug and confirm that it's a bug, please report it on our github thread . If you need help with setting it up, join our discord and upload the following info to a service like pastebin and post the link: Docker run/create or compose yml you used Full docker log ( docker logs swag ) Any relevant conf files (default, nginx.conf or specific proxy conf)","title":"Swag"},{"location":"general/swag/#table-of-contents","text":"Introduction What are SSL certs? What is Let's Encrypt (and/or ZeroSSL)? Creating a SWAG container Docker cli Docker compose Authorization method Cert provider (Let's Encrypt vs ZeroSSL) Port forwards Docker networking Container setup examples Create container via http validation Create container via dns validation with a wildcard cert Create container via duckdns validation with a wildcard cert Web hosting examples Simple html web page hosting Hosting a Wordpress site Reverse Proxy Preset proxy confs Understanding the proxy conf structure Subdomain proxy conf Subfolder proxy conf Ombi subdomain reverse proxy example Nextcloud subdomain reverse proxy example Plex subfolder reverse proxy example Using Heimdall as the home page at domain root Troubleshooting Common errors 404 502 Final Thoughts How to Request Support","title":"Table of Contents"},{"location":"general/swag/#introduction","text":"","title":"Introduction"},{"location":"general/swag/#what-are-ssl-certs","text":"SSL certs allow users of a service to communicate via encrypted data transmitted up and down. Third party trusted certs also allow users to make sure that the remote service they are connecting to is really who they say they are and not someone else in the middle. When we run a web server for reasons like hosting websites or reverse proxying services on our own domain, we need to set it up with third party trusted ssl certs so client browsers trust it and communicate with it securely. When you connect to a website with a trusted cert, most browsers show a padlock icon next to the address bar to indicate that. Without a trusted cert (ie. with self signed cert) most browsers show warning pages or may block access to the website as the website identity cannot be confirmed via a trusted third party.","title":"What are SSL certs?"},{"location":"general/swag/#what-is-lets-encrypt-andor-zerossl","text":"In the past, the common way to get a trusted ssl cert was to contact one of the providers, send them the relevant info to prove ownership of a domain and pay for the service. Nowadays, with Let's Encrypt and ZeroSSL , one can get free certs via automated means. The SWAG docker image , published and maintained by LinuxServer.io , makes setting up a full-fledged web server with auto generated and renewed ssl certs very easy. It is essentially an nginx webserver with php7, fail2ban (intrusion prevention) and Let's Encrypt cert validation built-in. It is just MySQL short of a LEMP stack and therefore is best paired with our MariaDB docker image .","title":"What is Let's Encrypt (and/or ZeroSSL)?"},{"location":"general/swag/#creating-a-swag-container","text":"Most of the initial settings for getting a webserver with ssl certs up are done through the docker run/create or compose yaml parameters. Here's a list of all the settings available including the optional ones. It is safe to remove unnecessary parameters for different scenarios.","title":"Creating a SWAG container"},{"location":"general/swag/#docker-cli","text":"docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=yourdomain.url \\ -e SUBDOMAINS=www, \\ -e VALIDATION=http \\ -e CERTPROVIDER= `#optional` \\ -e DNSPLUGIN=cloudflare `#optional` \\ -e DUCKDNSTOKEN= `#optional` \\ -e EMAIL= `#optional` \\ -e ONLY_SUBDOMAINS=false `#optional` \\ -e EXTRA_DOMAINS= `#optional` \\ -e STAGING=false `#optional` \\ -p 443:443 \\ -p 80:80 `#optional` \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag","title":"docker cli"},{"location":"general/swag/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=yourdomain.url - SUBDOMAINS=www, - VALIDATION=http - CERTPROVIDER= #optional - DNSPLUGIN=cloudflare #optional - DUCKDNSTOKEN= #optional - EMAIL= #optional - ONLY_SUBDOMAINS=false #optional - EXTRA_DOMAINS= #optional - STAGING=false #optional volumes: - :/config ports: - 443:443 - 80:80 #optional restart: unless-stopped","title":"docker-compose"},{"location":"general/swag/#authorization-method","text":"Our image currently supports three different methods to validate domain ownership: http: Let's Encrypt (acme) server connects to domain on port 80 Can be owned domain or a dynamic dns address dns: Let's Encrypt (acme) server connects to dns provider Api credentials and settings entered into ini files under /config/dns-conf/ Supports wildcard certs Need to have own domain name (non-free) duckdns: Let's Encrypt (acme) server connects to DuckDNS Supports wildcard certs (only for the sub-subdomains) No need for own domain (free) The validation is performed when the container is started for the first time. Nginx won't be up until ssl certs are successfully generated. The certs are valid for 90 days. The container will check the cert expiration status every night and if they are to expire within 30 days, it will attempt to auto-renew. If your certs are about to expire in less than 30 days, check the logs under /config/log/letsencrypt to see why the auto-renewals failed.","title":"Authorization method"},{"location":"general/swag/#cert-provider-lets-encrypt-vs-zerossl","text":"As of January 2021, SWAG supports getting certs validated by either Let's Encrypt or ZeroSSL . Both services use the ACME protocol as the underlying method to validate ownership. Our Certbot client in the SWAG image is ACME compliant and therefore supports both services. Although very similar, ZeroSSL does (at the time of writing) have a couple of advantages over Let's Encrypt: * ZeroSSL provides unlimited certs via ACME and has no rate limits or throttling (it's quite common for new users to get throttled by Let's Encrypt due to multiple unsuccessful attempts to validate) * ZeroSSL provides a web interface that allows users to list and manage the certs they have received SWAG currently defaults to Let's Encrypt as the cert provider so as not to break existing installs, however users can override that behavior by setting the environment variable CERTPROVIDER=zerossl to retrieve a cert from ZeroSSL instead. The only gotcha is that ZeroSSL requires the EMAIL env var to be set so the certs can be tied to a ZeroSSL account for management over their web interface.","title":"Cert Provider (Let's Encrypt vs ZeroSSL)"},{"location":"general/swag/#port-forwards","text":"Port 443 mapping is required for access through https://domain.com . However, you don't necessarily need to have it listen on port 443 on the host server. All that is needed is to have port 443 on the router (wan) somehow forward to port 443 inside the container, while it can go through a different port on the host. For instance, it is ok to have port 443 on router (wan) forward to port 444 on the host, and then map port 444 to port 443 in docker run/create or compose yml. Port 80 forwarding is required for http validation only. Same rule as above applies, and it's OK to go from 80 on the router to 81 on the host, mapped to 80 in the container.","title":"Port forwards"},{"location":"general/swag/#docker-networking","text":"SWAG container happily runs with bridge networking. However, the default bridge network in docker does not allow containers to connect each other via container names used as dns hostnames. Therefore, it is recommended to first create a user defined bridge network and attach the containers to that network. If you are using docker-compose, and your services are on the same yaml, you do not need to do this, because docker-compose automatically creates a user defined bridge network and attaches each container to it as long as no other networking option is defined in their config. For the below examples, we will use a network named lsio . We can create it via docker network create lsio . After that, any container that is created with --net=lsio can ping each other by container name as dns hostname. Keep in mind that dns hostnames are meant to be case-insensitive, however container names are case-sensitive. For container names to be used as dns hostnames in nginx, they should be all lowercase as nginx will convert them to all lowercase before trying to resolve.","title":"Docker networking"},{"location":"general/swag/#container-setup-examples","text":"","title":"Container setup examples"},{"location":"general/swag/#create-container-via-http-validation","text":"Let's assume our domain name is linuxserver-test.com and we would like our cert to also cover www.linuxserver-test.com and ombi.linuxserver-test.com . On the router, forward ports 80 and 443 to your host server. On your dns provider (if using your own domain), create an A record for the main domain and point it to your server IP (wan). Also create CNAMES for www and ombi and point them to the A record for the domain. With docker cli, we'll first create a user defined bridge network if we haven't already docker network create lsio , and then create the container: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=www,ombi \\ -e VALIDATION=http \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once created, we do docker start swag to start it. With docker compose, we can use the following yml: --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=www,ombi - VALIDATION=http volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped We can fire up the container with docker-compose up -d After the container is started, we'll watch the logs with docker logs swag -f . After some initial initialization, we will see the validation steps. After all the steps, it should print Server ready in the logs. Now we can browse to https://www.linuxserver-test.com and we'll see the default landing page displayed.","title":"Create container via http validation"},{"location":"general/swag/#create-container-via-dns-validation-with-a-wildcard-cert","text":"Let's assume our domain name is linuxserver-test.com and we would like our cert to also cover www.linuxserver-test.com , ombi.linuxserver-test.com and any other subdomain possible. On the router, we'll forward port 443 to our host server (Port 80 forwarding is optional). We'll need to make sure that we are using a dns provider that is supported by this image. Currently the following dns plugins are supported: cloudflare , cloudxns , digitalocean , dnsimple , dnsmadeeasy , google , luadns , nsone , ovh , rfc2136 and route53 . Your dns provider by default is the provider of your domain name and if they are not supported, it is very easy to switch to a different dns provider. Cloudflare is recommended due to being free and reliable. To switch to Cloudflare, you can register for a free account and follow their steps to point the nameservers to Cloudflare. The rest of the instructions assume that we are using the cloudflare dns plugin. On our dns provider, we'll create an A record for the main domain and point it to our server IP (wan). We'll also create a CNAME for * and point it to the A record for the domain. On Cloudflare, we'll click on the orange cloud to turn it grey so that it is dns only and not cached/proxied by Cloudflare, which would add more complexities. Now, let's get the container set up. With docker cli, we'll first create a user defined bridge network if we haven't already docker network create lsio , and then create the container: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag And we start the container via docker start swag With docker compose, we'll use: --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Then we'll fire up the container via docker-compose up -d After the container is started, we'll watch the logs with docker logs swag -f . After some init steps, we'll notice that the container will give an error during validation due to wrong credentials. That's because we didn't enter the correct credentials for the Cloudflare api yet. We can browse to the location /config/dns-conf which is mapped from the host location (according to above settings) /home/aptalca/appdata/swag/dns-conf/ and edit the correct ini file for our dns provider. For Cloudflare, we'll enter our e-mail address and the api key. The api key can be retrieved by going to the Overview page and clicking on Get your API key link. We'll need the Global API Key . Once we enter the credentials into the ini file, we'll restart the docker container via docker restart swag and again watch the logs. After successful validation, we should see the notice Server ready and our webserver should be up and accessible at https://www.linuxserver-test.com .","title":"Create container via dns validation with a wildcard cert"},{"location":"general/swag/#create-container-via-duckdns-validation-with-a-wildcard-cert","text":"We will first need to get a subdomain from DuckDNS . Let's assume we get linuxserver-test so our url will be linuxserver-test.duckdns.org . Then we'll need to make sure that the subdomain points to our server IP (wan) on the DuckDNS website. We can always use our DuckDNS docker image to keep the IP up to date. Don't forget to get the token for your account from DuckDNS. On the router, we'll forward port 443 to our host server (Port 80 forward is optional). Now, let's get the container set up. With docker cli, we'll first create a user defined bridge network if we haven't already docker network create lsio , and then create the container: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.duckdns.org \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=duckdns \\ -e DUCKDNSTOKEN=97654867496t0877648659765854 \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag And we start the container via docker start swag With docker compose, we'll use: --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.duckdns.org - SUBDOMAINS=wildcard - VALIDATION=duckdns - DUCKDNSTOKEN=97654867496t0877648659765854 volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Then we'll fire up the container via docker-compose up -d After the container is started, we'll watch the logs with docker logs swag -f . We'll see some initialization and then we will see the validation steps. After all the steps, it should print Server ready in the logs. Now we can access the webserver by browsing to https://www.linuxserver-test.duckdns.org . NOTICE: Due to a DuckDNS limitation, our cert only covers the wildcard subdomains, but it doesn't cover the main url. So if we try to access https://linuxserver-test.duckdns.org , we'll see a browser warning about an invalid ssl cert. But accessing it through the www (or ombi or any other) subdomain should work fine.","title":"Create container via duckdns validation with a wildcard cert"},{"location":"general/swag/#web-hosting-examples","text":"","title":"Web hosting examples"},{"location":"general/swag/#simple-html-web-page-hosting","text":"Once we have a working container, we can drop our web documents in and modify the nginx config files to set up our webserver. All the necessary files are under /config which is mapped from the host location (set by above examples) /home/aptalca/appdata/swag . We can drop all of our web/html files into /config/www . The main site config nginx uses can be found at /config/nginx/site-confs/default . Don't delete this file, as it will be regenerated on container restart, but feel free to modify as needed. By default, it is listening on port 443, and the root folder is set to /config/www , so if you drop a page1.html into that location, it will be accessible at https://linuxserver-test.com/page1.html . To enable listening on port 80 and automatically redirecting to port 443 for enforcing ssl, uncomment the lines at the top of the default site config so it reads: # redirect all traffic to https server { listen 80; listen [::]:80; server_name _; return 301 https://$host$request_uri; } After any changes to the config files, simply restart the container via docker restart swag to reload the nginx config.","title":"Simple html web page hosting"},{"location":"general/swag/#hosting-a-wordpress-site","text":"Wordpress requires a mysql database. For that, we'll use the linuxserver MariaDB docker image . Here's a docker compose stack to get both containers set up. For this exercise, we'll utilize the cloudflare dns plugin for Let's Encrypt validation, but you can use any other method to set it up as described in this linked section : --- version: \"2.1\" services: mariadb: image: lscr.io/linuxserver/mariadb container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=mariadbpassword - TZ=Europe/London - MYSQL_DATABASE=WP_database - MYSQL_USER=WP_dbuser - MYSQL_PASSWORD=WP_dbpassword volumes: - /home/aptalca/appdata/mariadb:/config restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 depends_on: - mariadb restart: unless-stopped And here are the docker cli versions (make sure you already created the lsio network as described above : Mariadb: docker create \\ --name=mariadb \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_ROOT_PASSWORD=mariadbpassword \\ -e TZ=Europe/London \\ -e MYSQL_DATABASE=WP_database \\ -e MYSQL_USER=WP_dbuser \\ -e MYSQL_PASSWORD=WP_dbpassword \\ -v /home/aptalca/appdata/mariadb:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mariadb SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once the SWAG container is set up with ssl certs and the webserver is up, we'll download the latest Wordpress and untar it into our www folder: wget https://wordpress.org/latest.tar.gz tar xvf latest.tar.gz -C /home/aptalca/appdata/swag/www/ rm latest.tar.gz Now that we have all the wordpress files under the container's /config/www/wordpress folder, we'll change the root directive in our SWAG default site conf to point there. We'll find the line in /config/nginx/site-confs/default that reads root /config/www; and change it to root /config/www/wordpress; and restart SWAG. Now we should be able to access our wordpress config page at https://linuxserver-test.com/wp-admin/install.php . We'll go ahead and enter mariadb as the Database Host address (we are using the container name as the dns hostname since both containers are in the same user defined bridge network), and also enter the Database Name, user and password we used in the mariadb config above ( WP_database , WP_dbuser and WP_dbpassword ). Once we go through the rest of the install steps, our wordpress instance should be fully set up and available at https://linuxserver-test.com . If you would like to have http requests on port 80 enabled and auto redirected to https on port 443, uncomment the relevant lines at the top of the default site config to read: # redirect all traffic to https server { listen 80; listen [::]:80; server_name _; return 301 https://$host$request_uri; }","title":"Hosting a Wordpress site"},{"location":"general/swag/#reverse-proxy","text":"A reverse proxy is a type of proxy server that retrieves resources on behalf of a client from one or more servers. These resources are then returned to the client as if they originated from the Web server itself (Shamelessly borrowed from another post on our blog ). In this case, a user or a client browser can connect to our SWAG container via https on port 443, request a service such as Ombi, then our SWAG container connects to the ombi container, retrieves the data and passes it on to the client via https with our trusted cert. The connection to ombi is local and does not need to be encrypted, but all communication between our SWAG container and the client browser will be encrypted.","title":"Reverse Proxy"},{"location":"general/swag/#preset-proxy-confs","text":"Our SWAG image comes with a list of preset reverse proxy confs for popular apps and services. They are hosted on Github and are pulled into the /config/nginx/proxy-confs folder as inactive sample files. To activate, one must rename a conf file to remove .sample from the filename and restart the SWAG container. Any proxy conf file in that folder with a name that matches *.subdomain.conf or *.subfolder.conf will be loaded in nginx during container start. Most proxy confs work without any modification, but some may require other changes. All the required changes are listed at the top of each proxy conf. The conf files use container names to reach other containers and therefore the proxied containers should be named the same as listed in our documentation for each container. The conf files also require that the SWAG container is in the same user defined bridge network as the other container so they can reach each other via container name as dns hostnames. Make sure you follow the instructions listed above in the Docker networking section .","title":"Preset proxy confs"},{"location":"general/swag/#understanding-the-proxy-conf-structure","text":"","title":"Understanding the proxy conf structure"},{"location":"general/swag/#subdomain-proxy-conf","text":"Here's the preset proxy conf for Heimdall as a subdomain (ie. https://heimdall.linuxserver-test.com ): # make sure that your dns has a cname set for heimdall server { listen 443 ssl; listen [::]:443 ssl; server_name heimdall.*; include /config/nginx/ssl.conf; client_max_body_size 0; # enable for ldap auth, fill in ldap details in ldap.conf #include /config/nginx/ldap.conf; # enable for Authelia #include /config/nginx/authelia-server.conf; location / { # enable the next two lines for http auth #auth_basic \"Restricted\"; #auth_basic_user_file /config/nginx/.htpasswd; # enable the next two lines for ldap auth #auth_request /auth; #error_page 401 =200 /ldaplogin; # enable for Authelia #include /config/nginx/authelia-location.conf; include /config/nginx/proxy.conf; resolver 127.0.0.11 valid=30s; set $upstream_app heimdall; set $upstream_port 443; set $upstream_proto https; proxy_pass $upstream_proto://$upstream_app:$upstream_port; } } Let's dissect this conf to look at what each directive or block does. server { } This is our server block. Whenever nginx gets a request from a client, it determines which server block should be processed based on the destination server name, port and other relevant info, and the matching server block determines how nginx handles and responds to the request. listen 443 ssl; listen [::]:443 ssl; This means that only requests coming to port 443 will match this server block. server_name heimdall.*; Only destination addresses that match heimdall.* will match this server block. include /config/nginx/ssl.conf; This directive injects the contents of our ssl.conf file here, which contains all ssl related settings (cert location, ciphers used, etc.). client_max_body_size 0; Removes the size limitation on uploads (default 1MB). # enable for ldap auth, fill in ldap details in ldap.conf #include /config/nginx/ldap.conf; Commented out (disabled) by default. When enabled, it will inject the contents of ldap.conf, necessary settings for LDAP auth. # enable for Authelia #include /config/nginx/authelia-server.conf; Commented out (disabled) by default. When enabled, it will inject the contents of authelia-server.conf, necessary settings for Authelia integration. location / { } Location blocks are used for subfolders or paths. After a server block is matched, nginx will look at the subfolder or path requested to match one of the location blocks inside the selected server block. This particular block in our example is for / so it will match any subfolder or path at this address. # enable the next two lines for http auth #auth_basic \"Restricted\"; #auth_basic_user_file /config/nginx/.htpasswd; Commented out (disabled) by default. When enabled, it will use .htpasswd to perform user/pass authentication before allowing access. # enable the next two lines for ldap auth #auth_request /auth; #error_page 401 =200 /login; Commented out (disabled) by default. When enabled, it will use LDAP authentication before allowing access. # enable for Authelia #include /config/nginx/authelia-location.conf; Commented out (disabled) by default. When enabled, it will use Authelia authentication before allowing access. include /config/nginx/proxy.conf; Injects the contents of proxy.conf, which contains various directives and headers that are common for proxied connections. resolver 127.0.0.11 valid=30s; Tells nginx to use the docker dns to resolve the IP address when the container name is used as address in the next line. set $upstream_app heimdall; set $upstream_port 443; set $upstream_proto https; proxy_pass $upstream_proto://$upstream_app:$upstream_port; This is a bit of a tricky part. Normally, we could just put in the directive proxy_pass https://heimdall:443; and expect nginx to connect to Heimdall via its container name used as a dns hostname. Although it works for the most part, nginx has an annoying habit. During start, nginx checks all dns hostnames used in proxy_pass statements and if any one of them is not accessible, it refuses to start. We really don't want a stopped proxied container to prevent our webserver from starting up, so we use a trick. If the proxy_pass statement contains a variable instead of a dns hostname , nginx doesn't check whether it's accessible or not during start. So here we are setting 3 variables, one named upstream_app with the value of heimdall , one named $upstream_port , with the value of the internal heimdall port 443 , and one named $upstream_proto with the value set to https . We we use these variables as the address in the proxy_pass directive. That way, if the heimdall container is down for any reason, nginx can still start. When using a variable instead of hostname, we also have to set the resolver to docker dns in the previous line. If the proxied container is not in the same user defined bridge network as SWAG (could be on a remote host, could be using host networking or macvlan), we can change the value of $upstream_app to an IP address instead: set $upstream_app 192.168.1.10;","title":"Subdomain proxy conf"},{"location":"general/swag/#subfolder-proxy-conf","text":"Here's the preset proxy conf for mytinytodo via a subfolder # works with https://github.com/breakall/mytinytodo-docker # set the mtt_url to 'https://your.domain.com/todo/' in db/config.php location /todo { return 301 $scheme://$host/todo/; } location ^~ /todo/ { # enable the next two lines for http auth #auth_basic \"Restricted\"; #auth_basic_user_file /config/nginx/.htpasswd; # enable the next two lines for ldap auth, also customize and enable ldap.conf in the default conf #auth_request /auth; #error_page 401 =200 /ldaplogin; # enable for Authelia, also enable authelia-server.conf in the default site config #include /config/nginx/authelia-location.conf; include /config/nginx/proxy.conf; resolver 127.0.0.11 valid=30s; set $upstream_app mytinytodo; set $upstream_port 80; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port/; } Unlike the subdomain proxy confs, here we do not have a server block. That is because all of the subfolder proxy confs get injected into the main server block of our root domain defined in the default site conf. So here we are only defining the location block for our specific subfolders. Many of the elements are the same as the subdomain ones, so for those you can refer to the previous section. Let's take a look at some of the differences. # works with https://github.com/breakall/mytinytodo-docker # set the mtt_url to 'https://your.domain.com/todo/' in db/config.php These are the instructions to get the tinytodo container ready to work with our reverse proxy. location ^~ /todo { return 301 $scheme://$host/todo/; } Redirects requests for https://linuxserver-test.com/todo to https://linuxserver-test.com/todo/ (added forward slash at the end). location ^~ /todo/ { } Any requests sent to nginx where the destination starts with https://linuxserver-test.com/todo/ will match this location block. set $upstream_app mytinytodo; set $upstream_port 80; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port/; Same as the previous example, we set a variable $upstream_app with the value mytinytodo and tell nginx to use the variable as the address. Keep in mind that the port listed here is the container port because nginx is connecting to this container directly via the docker network. So if our mytinytodo container has a port mapping of -p 8080:80 , we still set $upstream_port variable to 80 . Nginx has an interesting behavior displayed here. Even though we define http://$upstream_mytinytodo:80/ as the address nginx should proxy, nginx actually connects to http://$upstream_mytinytodo:80/todo . Whenever we use a variable as part of the proxy_pass url, nginx automatically appends the defined location (in this case /todo ) to the end of the proxy_pass url before it connects. If we include the subfolder, nginx will try to connect to http://$upstream_mytinytodo:80/todo/todo and will fail.","title":"Subfolder proxy conf"},{"location":"general/swag/#ombi-subdomain-reverse-proxy-example","text":"In this example, we will reverse proxy Ombi at the address https://ombi.linuxserver-test.com . First let's make sure that we have a CNAME for ombi set up on our dns provider (a wildcard CNAME * will also cover this) and it is pointing to our A record that points to our server IP. If we are using the docker cli method, we also need to create the user defined bridge network (here named lsio ) as described above . We also need to make sure that port 443 on our router is forwarded to the correct port on our server. Here's a docker compose stack we can use to set up both containers: --- version: \"2.1\" services: ombi: image: lscr.io/linuxserver/ombi container_name: ombi environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/aptalca/appdata/ombi:/config ports: - 3579:3579 restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped And here are the docker cli versions: Ombi: docker create \\ --name=ombi \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3579:3579 \\ -v /home/aptalca/appdata/ombi:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ombi SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once our containers up and running (and we confirm we can reach the placeholder page at https://linuxserver-test.com ), we simply rename the file ombi.subdomain.conf.sample under /config/nginx/proxy-confs/ to ombi.subdomain.conf and we restart the SWAG container. Now when we browser to https://ombi.linuxserver-test.com we should see the Ombi gui.","title":"Ombi subdomain reverse proxy example"},{"location":"general/swag/#nextcloud-subdomain-reverse-proxy-example","text":"Nextcloud is a bit trickier because the app has various security measures built-in, forcing us to configure certain options manually. As with the other examples, let's make sure that we have a CNAME for nextcloud set up on our dns provider (a wildcard CNAME * will also cover this) and it is pointing to our A record that points to our server IP. If we are using the docker cli method, we also need to create the user defined bridge network (here named lsio ) as described above . For DuckDNS, we do not need to create CNAMES, as all sub-subdomains automatically point to the same IP as our custom subdomain, but we need to make sure that it is the correct IP address for our server. We also need to make sure that port 443 on our router is forwarded to the correct port on our server. In this example we'll use the duckdns wildcard cert, but you can use any Let's Encrypt validation you like as described above Here's a docker compose stack to set up our SWAG, nextcloud and mariadb containers: --- version: \"2.1\" services: nextcloud: image: lscr.io/linuxserver/nextcloud container_name: nextcloud environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/aptalca/appdata/nextcloud/config:/config - /home/aptalca/appdata/nextcloud/data:/data depends_on: - mariadb restart: unless-stopped mariadb: image: lscr.io/linuxserver/mariadb container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=mariadbpassword - TZ=Europe/London - MYSQL_DATABASE=nextcloud - MYSQL_USER=ncuser - MYSQL_PASSWORD=ncpassword volumes: - /home/aptalca/appdata/mariadb:/config restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.duckdns.org - SUBDOMAINS=wildcard - VALIDATION=duckdns - DUCKDNSTOKEN=97654867496t0877648659765854 volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped And here are the docker cli versions: Nextcloud: docker create \\ --name=nextcloud \\ --net=lsio -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v /home/aptalca/appdata/nextcloud/config:/config \\ -v /home/aptalca/appdata/nextcloud/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/nextcloud Mariadb: docker create \\ --name=mariadb \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_ROOT_PASSWORD=mariadbpassword \\ -e TZ=Europe/London \\ -e MYSQL_DATABASE=nextcloud \\ -e MYSQL_USER=ncuser \\ -e MYSQL_PASSWORD=ncpassword \\ -v /home/aptalca/appdata/mariadb:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mariadb SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.duckdns.org \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=duckdns \\ -e DUCKDNSTOKEN=97654867496t0877648659765854 \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Now we find the file named nextcloud.subdomain.conf.sample under SWAG's /config/nginx/proxy-confs folder and rename it to nextcloud.subdomain.conf , then restart the SWAG container. If this is the first time we are accessing Nextcloud (we've never accessed it locally before), we can simply navigate to https://nextcloud.linuxserver-test.duckdns.org and we should see the Nextcloud set up page. We'll fill out the info, use the mariadb user ncuser and the password we selected in the environment variable ( ncpassword in the above example) and we'll use mariadb as the Database Host address (container name as dns hostname). We should then be able to go through the intro slides and then see the Nextcloud dashboard with our shiny padlock icon next to the address bar. If this is an existing Nextcloud instance, or we set it up locally via the host IP address and local port, Nextcloud will reject proxied connections. In that case, we have to follow the instructions at the top of the nextcloud.subdomain.conf file: # assuming this container is called \"swag\", edit your nextcloud container's config # located at /config/www/nextcloud/config/config.php and add the following lines before the \");\": # 'trusted_proxies' => ['swag'], # 'overwrite.cli.url' => 'https://nextcloud.your-domain.com/', # 'overwritehost' => 'nextcloud.your-domain.com', # 'overwriteprotocol' => 'https', # # Also don't forget to add your domain name to the trusted domains array. It should look somewhat like this: # array ( # 0 => '192.168.0.1:444', # This line may look different on your setup, don't modify it. # 1 => 'nextcloud.your-domain.com', # ), These settings will tell Nextcloud to respond to queries where the destination address is our domain name. If you followed the above directions to set it up for the first time, you only need to add the line 'trusted_proxies' => ['swag'], , otherwise nextcloud 16+ shows a warning about incorrect reverse proxy settings. By default, HSTS is disabled in SWAG config, because it is a bit of a sledgehammer that prevents loading of any http assets on the entire domain. You can enable it in SWAG's ssl.conf .","title":"Nextcloud subdomain reverse proxy example"},{"location":"general/swag/#plex-subfolder-reverse-proxy-example","text":"In this example, we will set up Plex as a subfolder so it will be accessible at https://linuxserver-test.com/plex . We will initially set up Plex with host networking through its local IP and will connect to it from the same subnet. If we are on a different subnet, or if using a bridge network, we can use the PLEX_CLAIM variable to automatically claim the server with our plex account. Once the Plex server is set up, it is safe to switch it to bridge networking from host. Here's a docker compose stack we can use to set up both containers: --- version: \"2.1\" services: plex: image: lscr.io/linuxserver/plex container_name: plex network_mode: host environment: - PUID=1000 - PGID=1000 - VERSION=docker volumes: - /home/aptalca/appdata/plex:/config - /home/aptalca/tvshows:/data/tvshows - /home/aptalca/movies:/data/movies restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Here are the docker cli versions: Plex: docker create \\ --name=plex \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e VERSION=docker \\ -v /home/aptalca/appdata/plex:/config \\ -v /home/aptalca/tvshows:/data/tvshows \\ -v /home/aptalca/movies:/data/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/plex SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once the containers are set up, we browse to http://LOCALSERVERIP:32400/web and set up our Plex server with our Plex account. Then we can find the file named plex.subfolder.conf.sample under our SWAG container's /config/nginx/proxy-confs folder and rename it to plex.subfolder.conf . If we are using bridge networking for our plex container, we can restart the SWAG container and we should be able to access Plex at https://linuxserver-test.com/plex . If we are using host networking for our plex container, we will also have to make one modification to the plex.subfolder.conf . We need to find the line that reads proxy_pass http://$upstream_plex:32400; and replace $upstream_plex with our Plex server's local IP address (ie. proxy_pass http://192.168.1.10:32400; ). Then we can restart SWAG and access Plex at https://linuxserver-test.com/plex . If we want Plex to always use our domain to connect (including in mobile apps), we can add our url https://linuxserver-test.com/plex into the Custom server access URLs in Plex server settings. After that, it is OK to turn off remote access in Plex server settings and remove the port forwarding port 32400. After that, all connections to our Plex server will go through SWAG reverse proxy over port 443.","title":"Plex subfolder reverse proxy example"},{"location":"general/swag/#using-heimdall-as-the-home-page-at-domain-root","text":"In this example, we will set Heimdall as our homepage at domain root so when we navigate to https://linuxserver-test.com we will reach Heimdall. As before, we need to make sure port 443 is properly forwarded to our server. We also need to make sure that if we are using the docker cli method, we need to create a user defined bridge network as defined above . Here's a docker compose stack we can use to set up both containers: --- version: \"2.1\" services: heimdall: image: lscr.io/linuxserver/heimdall container_name: heimdall environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/aptalca/appdata/heimdall:/config restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Here are the docker cli versions: Heimdall: docker create \\ --name=heimdall \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v /home/aptalca/appdata/heimdall:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/heimdall SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once the containers are set up, we'll find the file named heimdall.subfolder.conf.sample under SWAG's /config/nginx/proxy-confs folder and rename it to heimdall.subfolder.conf . If we look inside that conf file, we'll see that it is set to use location / { , which will cause an issue because there is already a location defined for / inside the default site config for SWAG. So we need to edit the default site config at /config/nginx/site-confs/default and comment out the location block for / inside our main server block so it reads: #location / { # try_files $uri $uri/ /index.html /index.php?$args =404; #} That way, nginx will use the / location block from our heimdall proxy conf instead. After that, when we navigate to https://linuxserver-test.com , we'll see the Heimdall interface. If we want to password protect our new homepage, we can run the following on the host command line to create a new .htpasswd file: docker exec -it swag htpasswd -c /config/nginx/.htpasswd anyusername . After which, we can activate authentication by editing the heimdall.subfolder.conf file to uncomment the relevant lines so it reads: # enable the next two lines for http auth auth_basic \"Restricted\"; auth_basic_user_file /config/nginx/.htpasswd;","title":"Using Heimdall as the home page at domain root"},{"location":"general/swag/#troubleshooting","text":"We wrote a blogpost for the deprecated letsencrypt image diving into troubleshooting issues regarding dns and port-forwards, which still is a very good resource: blog.linuxserver.io","title":"Troubleshooting"},{"location":"general/swag/#common-errors","text":"","title":"Common errors"},{"location":"general/swag/#404","text":"This error simply means that the resource was not found. Commonly happening when you try to access a subfolder that is not enabled.","title":"404"},{"location":"general/swag/#502","text":"This error means that nginx can't talk to the application. There is a few common reasons for this: The application and SWAG is not on the same custom docker network Further up we talk about how to set up Docker networking , however there are some other common traps The container name does not match the application name. Covered in the section for Understanding the proxy conf structure You manually changed the port. Also covered in the section for Understanding the proxy conf structure The container originally ran with host networking, or the default bridge. In most cases the contents of /config/nginx/resolver.conf; should be ...resolver 127.0.0.11 valid=30s; , if this is not the case, you can: Delete it, and restart the container to have it regenerate Manually set the content(we wont override it)","title":"502"},{"location":"general/swag/#final-thoughts","text":"This image can be used in many different scenarios as it is a full fledged web server with some bells and whistles added. The above examples should be enough to get you started. For more information, please refer to the official documentation on either Github or Docker Hub . If you have questions or issues, or want to discuss and share ideas, feel free to visit our discord: https://discord.gg/YWrKVTn","title":"Final Thoughts"},{"location":"general/swag/#how-to-request-support","text":"As you can see in this article, there are many different configurations, therefore we need to understand your exact setup before we can provide support. If you encounter a bug and confirm that it's a bug, please report it on our github thread . If you need help with setting it up, join our discord and upload the following info to a service like pastebin and post the link: Docker run/create or compose yml you used Full docker log ( docker logs swag ) Any relevant conf files (default, nginx.conf or specific proxy conf)","title":"How to Request Support"},{"location":"general/understanding-puid-and-pgid/","text":"Understanding PUID and PGID {% hint style=\"info\" %} We are aware that recent versions of the Docker engine have introduced the --user flag. Our images are not yet compatible with this, so we recommend continuing usage of PUID and PGID. {% endhint %} Why use these? Docker runs all of its containers under the root user domain because it requires access to things like network configuration, process management, and your filesystem. This means that the processes running inside your containers also run as root . This kind of elevated access is not ideal for day-to-day use, and potentially gives applications the access to things they shouldn't (although, a strong understanding of volume and port mapping will help with this). Another issue is file management within the container's mapped volumes. If the process is running under root , all files and directories created during the container's lifespan will be owned by root , thus becoming inaccessible by you. Using the PUID and PGID allows our containers to map the container's internal user to a user on the host machine. All of our containers use this method of user mapping and should be applied accordingly. Using the variables When creating a container from one of our images, ensure you use the -e PUID and -e PGID options in your docker command: docker create --name=beets -e PUID=1000 -e PGID=1000 linuxserver/beets Or, if you use docker-compose , add them to the environment: section: environment: - PUID=1000 - PGID=1000 It is most likely that you will use the id of yourself, which can be obtained by running the command below. The two values you will be interested in are the uid and gid . id $user","title":"Understanding PUID and PGID"},{"location":"general/understanding-puid-and-pgid/#understanding-puid-and-pgid","text":"{% hint style=\"info\" %} We are aware that recent versions of the Docker engine have introduced the --user flag. Our images are not yet compatible with this, so we recommend continuing usage of PUID and PGID. {% endhint %}","title":"Understanding PUID and PGID"},{"location":"general/understanding-puid-and-pgid/#why-use-these","text":"Docker runs all of its containers under the root user domain because it requires access to things like network configuration, process management, and your filesystem. This means that the processes running inside your containers also run as root . This kind of elevated access is not ideal for day-to-day use, and potentially gives applications the access to things they shouldn't (although, a strong understanding of volume and port mapping will help with this). Another issue is file management within the container's mapped volumes. If the process is running under root , all files and directories created during the container's lifespan will be owned by root , thus becoming inaccessible by you. Using the PUID and PGID allows our containers to map the container's internal user to a user on the host machine. All of our containers use this method of user mapping and should be applied accordingly.","title":"Why use these?"},{"location":"general/understanding-puid-and-pgid/#using-the-variables","text":"When creating a container from one of our images, ensure you use the -e PUID and -e PGID options in your docker command: docker create --name=beets -e PUID=1000 -e PGID=1000 linuxserver/beets Or, if you use docker-compose , add them to the environment: section: environment: - PUID=1000 - PGID=1000 It is most likely that you will use the id of yourself, which can be obtained by running the command below. The two values you will be interested in are the uid and gid . id $user","title":"Using the variables"},{"location":"general/updating-our-containers/","text":"Updating our containers Our images are updated whenever the upstream application or dependencies get changed, so make sure you're always running the latest version, as they may contain important bug fixes and new features. Steps required to update Docker containers are, for the most part, immutable. This means that important configuration such as volume and port mappings can't be easily changed once the container has been created. The containers created from our images run a very specific version of the application they wrap, so in order to update the application, you must recreate the container. Stop the container Firstly, stop the container. docker stop Remove the container Once the container has been stopped, remove it. Important : Did you remember to persist the /config volume when you originally created the container? Bear in mind, you'll lose any configuration inside the container if this volume was not persisted. Read up on why this is important . docker rm Pull the latest version Now you can pull the latest version of the application image from Docker Hub. docker pull linuxserver/ Recreate the container Finally, you can recreate the container. This is often cited as the most arduous task as it requires you to remember all of the mappings you set beforehand. You can help mitigate this step by using Docker Compose instead - this topic has been outlined in our documentation . docker create \\ --name= \\ -v :/config \\ -e PUID= \\ -e PGID= \\ -p : \\ linuxserver/ Docker Compose It is also possible to update a single container using Docker Compose: docker-compose pull linuxserver/ docker-compose up -d Or, to update all containers at once: docker-compose pull docker-compose up -d Removing old images Whenever a Docker image is updated, a fresh version of that image gets downloaded and stored on your host machine. Doing this, however, does not remove the old version of the image. Eventually you will end up with a lot of disk space used up by stale images. You can prune old images from your system, which will free up space: docker image prune","title":"Updating our containers"},{"location":"general/updating-our-containers/#updating-our-containers","text":"Our images are updated whenever the upstream application or dependencies get changed, so make sure you're always running the latest version, as they may contain important bug fixes and new features.","title":"Updating our containers"},{"location":"general/updating-our-containers/#steps-required-to-update","text":"Docker containers are, for the most part, immutable. This means that important configuration such as volume and port mappings can't be easily changed once the container has been created. The containers created from our images run a very specific version of the application they wrap, so in order to update the application, you must recreate the container.","title":"Steps required to update"},{"location":"general/updating-our-containers/#stop-the-container","text":"Firstly, stop the container. docker stop ","title":"Stop the container"},{"location":"general/updating-our-containers/#remove-the-container","text":"Once the container has been stopped, remove it. Important : Did you remember to persist the /config volume when you originally created the container? Bear in mind, you'll lose any configuration inside the container if this volume was not persisted. Read up on why this is important . docker rm ","title":"Remove the container"},{"location":"general/updating-our-containers/#pull-the-latest-version","text":"Now you can pull the latest version of the application image from Docker Hub. docker pull linuxserver/","title":"Pull the latest version"},{"location":"general/updating-our-containers/#recreate-the-container","text":"Finally, you can recreate the container. This is often cited as the most arduous task as it requires you to remember all of the mappings you set beforehand. You can help mitigate this step by using Docker Compose instead - this topic has been outlined in our documentation . docker create \\ --name= \\ -v :/config \\ -e PUID= \\ -e PGID= \\ -p : \\ linuxserver/","title":"Recreate the container"},{"location":"general/updating-our-containers/#docker-compose","text":"It is also possible to update a single container using Docker Compose: docker-compose pull linuxserver/ docker-compose up -d Or, to update all containers at once: docker-compose pull docker-compose up -d","title":"Docker Compose"},{"location":"general/updating-our-containers/#removing-old-images","text":"Whenever a Docker image is updated, a fresh version of that image gets downloaded and stored on your host machine. Doing this, however, does not remove the old version of the image. Eventually you will end up with a lot of disk space used up by stale images. You can prune old images from your system, which will free up space: docker image prune","title":"Removing old images"},{"location":"general/volumes/","text":"Volumes In Docker terminology, a volume is a storage device that allows you to persist the data used and generated by each of your running containers. While a container remains alive (in either an active or inactive state), the data inside its user-space remains intact. However, if you decide to recreate a container, all data within that container is lost. Volumes are an intrinsic aspect of container management, so it is useful to know how to create them. There are two ways to map persistent storage to your containers; container volumes, and directory overlays. All of our images reference persistent data by means of directory overlays. Mapping a volume to your container Firstly, you must understand which directories from within your container you wish to persist. All of our images come with side-by-side documentation on which internal directories are used by the application. As mentioned in the Running our Containers documentation, the most common directory you will wish to persist is the /config directory. Before you create your container, first create a directory on the host machine that will act as the home for your persisted data. We recommend creating the directory /opt/appdata . Under this tree, you can create a single configuration directory for each of your containers. When creating the container itself, now is the time to make use of the -v flag, which will tell Docker to overlay your host directory over the container's directory: docker create --name my_container \\ -v /opt/appdata/my_config:/config \\ linuxserver/ The above example shows how the usage of -v has mapped the host machine's /opt/appdata/my_config directory over the container's internal /config directory. Remember : When dealing with mapping overlays, it always reads host:container You can do this for as many directories as required by either you or the container itself. Our rule-of-thumb is to always map the /config directory as this contains pertinent runtime configuration for the underlying application. For applications that require further data, such as media, our documentation will clearly indicate which internal directories need mapping.","title":"Volumes"},{"location":"general/volumes/#volumes","text":"In Docker terminology, a volume is a storage device that allows you to persist the data used and generated by each of your running containers. While a container remains alive (in either an active or inactive state), the data inside its user-space remains intact. However, if you decide to recreate a container, all data within that container is lost. Volumes are an intrinsic aspect of container management, so it is useful to know how to create them. There are two ways to map persistent storage to your containers; container volumes, and directory overlays. All of our images reference persistent data by means of directory overlays.","title":"Volumes"},{"location":"general/volumes/#mapping-a-volume-to-your-container","text":"Firstly, you must understand which directories from within your container you wish to persist. All of our images come with side-by-side documentation on which internal directories are used by the application. As mentioned in the Running our Containers documentation, the most common directory you will wish to persist is the /config directory. Before you create your container, first create a directory on the host machine that will act as the home for your persisted data. We recommend creating the directory /opt/appdata . Under this tree, you can create a single configuration directory for each of your containers. When creating the container itself, now is the time to make use of the -v flag, which will tell Docker to overlay your host directory over the container's directory: docker create --name my_container \\ -v /opt/appdata/my_config:/config \\ linuxserver/ The above example shows how the usage of -v has mapped the host machine's /opt/appdata/my_config directory over the container's internal /config directory. Remember : When dealing with mapping overlays, it always reads host:container You can do this for as many directories as required by either you or the container itself. Our rule-of-thumb is to always map the /config directory as this contains pertinent runtime configuration for the underlying application. For applications that require further data, such as media, our documentation will clearly indicate which internal directories need mapping.","title":"Mapping a volume to your container"},{"location":"images/","text":"Images Each of our images requires their own specific configuration before you can begin making use of them. If you're new to our images, please take the time to read through our documentation.","title":"Images"},{"location":"images/#images","text":"Each of our images requires their own specific configuration before you can begin making use of them. If you're new to our images, please take the time to read through our documentation.","title":"Images"},{"location":"images/docker-adguardhome-sync/","text":"linuxserver/adguardhome-sync Adguardhome-sync is a tool to synchronize AdGuardHome config to replica instances. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/adguardhome-sync:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from GitHub Application Setup Edit the adguardhome-sync.yaml with your AdGuardHome instance details, for more information check out AdGuardHome Sync . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: adguardhome-sync: image: lscr.io/linuxserver/adguardhome-sync:latest container_name: adguardhome-sync environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - CONFIGFILE=/config/adguardhome-sync.yaml #optional volumes: - /path/to/appdata/config:/config ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=adguardhome-sync \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e CONFIGFILE=/config/adguardhome-sync.yaml `#optional` \\ -p 8080:8080 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/adguardhome-sync:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Port for AdGuardHome Sync's web API. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York CONFIGFILE=/config/adguardhome-sync.yaml Set a custom config file. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it adguardhome-sync /bin/bash To monitor the logs of the container in realtime: docker logs -f adguardhome-sync Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' adguardhome-sync Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/adguardhome-sync:latest Versions 03.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 18.12.21: - Rebase to Alpine 3.15. 09.08.21: - Rebase to Alpine 3.14. 08.04.21: - Initial Release.","title":"adguardhome-sync"},{"location":"images/docker-adguardhome-sync/#linuxserveradguardhome-sync","text":"Adguardhome-sync is a tool to synchronize AdGuardHome config to replica instances.","title":"linuxserver/adguardhome-sync"},{"location":"images/docker-adguardhome-sync/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/adguardhome-sync:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-adguardhome-sync/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from GitHub","title":"Version Tags"},{"location":"images/docker-adguardhome-sync/#application-setup","text":"Edit the adguardhome-sync.yaml with your AdGuardHome instance details, for more information check out AdGuardHome Sync .","title":"Application Setup"},{"location":"images/docker-adguardhome-sync/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-adguardhome-sync/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: adguardhome-sync: image: lscr.io/linuxserver/adguardhome-sync:latest container_name: adguardhome-sync environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - CONFIGFILE=/config/adguardhome-sync.yaml #optional volumes: - /path/to/appdata/config:/config ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-adguardhome-sync/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=adguardhome-sync \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e CONFIGFILE=/config/adguardhome-sync.yaml `#optional` \\ -p 8080:8080 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/adguardhome-sync:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-adguardhome-sync/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-adguardhome-sync/#ports-p","text":"Parameter Function 8080 Port for AdGuardHome Sync's web API.","title":"Ports (-p)"},{"location":"images/docker-adguardhome-sync/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York CONFIGFILE=/config/adguardhome-sync.yaml Set a custom config file.","title":"Environment Variables (-e)"},{"location":"images/docker-adguardhome-sync/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-adguardhome-sync/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-adguardhome-sync/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-adguardhome-sync/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-adguardhome-sync/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-adguardhome-sync/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-adguardhome-sync/#support-info","text":"Shell access whilst the container is running: docker exec -it adguardhome-sync /bin/bash To monitor the logs of the container in realtime: docker logs -f adguardhome-sync Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' adguardhome-sync Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/adguardhome-sync:latest","title":"Support Info"},{"location":"images/docker-adguardhome-sync/#versions","text":"03.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 18.12.21: - Rebase to Alpine 3.15. 09.08.21: - Rebase to Alpine 3.14. 08.04.21: - Initial Release.","title":"Versions"},{"location":"images/docker-airsonic-advanced/","text":"linuxserver/airsonic-advanced Airsonic-advanced is a free, web-based media streamer, providing ubiquitious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/airsonic-advanced:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Latest releases of Airsonic-Advanced Application Setup We don't formally support upgrading from Airsonic to Airsonic Advanced, it may or may not work for you and we'd recommend making backups before attempting this. Following the upgrade you may experience a forced rescan of your library so take this into account if you have a lot of files. Please see notes about upgrading from v10 to v11 here Access WebUI at :4040 . Default user/pass is admin/admin Extra java options can be passed with the JAVA_OPTS environment variable, eg -e JAVA_OPTS=\"-Xmx256m -Xms256m\" . For some reverse proxies, you may need to pass JAVA_OPTS=-Dserver.use-forward-headers=true for airsonic to generate the proper URL schemes. Note that if you want to use Airsonic's Java jukebox player , then PGID will need to match the group of your sound device (e.g. /dev/snd ). Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: airsonic-advanced: image: lscr.io/linuxserver/airsonic-advanced:latest container_name: airsonic-advanced environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH= #optional - JAVA_OPTS= #optional volumes: - :/config - :/music - :/playlists - :/podcasts - :/media #optional ports: - 4040:4040 devices: - /dev/snd:/dev/snd #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=airsonic-advanced \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH= `#optional` \\ -e JAVA_OPTS= `#optional` \\ -p 4040:4040 \\ -v :/config \\ -v :/music \\ -v :/playlists \\ -v :/podcasts \\ -v :/media `#optional` \\ --device /dev/snd:/dev/snd `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/airsonic-advanced:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4040 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH= For setting url-base in reverse proxy setups. JAVA_OPTS= For passing additional java options. Volume Mappings ( -v ) Volume Function /config Configuration file location. /music Location of music. /playlists Location for playlists to be saved to. /podcasts Location of podcasts. /media Location of other media. Device Mappings ( --device ) Parameter Function /dev/snd Only needed to pass your host sound device to Airsonic's Java jukebox player. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it airsonic-advanced /bin/bash To monitor the logs of the container in realtime: docker logs -f airsonic-advanced Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' airsonic-advanced Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/airsonic-advanced:latest Versions 23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 25.07.22: - Add vorbis-tools. 02.01.22: - Initial Release.","title":"airsonic-advanced"},{"location":"images/docker-airsonic-advanced/#linuxserverairsonic-advanced","text":"Airsonic-advanced is a free, web-based media streamer, providing ubiquitious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room.","title":"linuxserver/airsonic-advanced"},{"location":"images/docker-airsonic-advanced/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/airsonic-advanced:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-airsonic-advanced/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Latest releases of Airsonic-Advanced","title":"Version Tags"},{"location":"images/docker-airsonic-advanced/#application-setup","text":"We don't formally support upgrading from Airsonic to Airsonic Advanced, it may or may not work for you and we'd recommend making backups before attempting this. Following the upgrade you may experience a forced rescan of your library so take this into account if you have a lot of files. Please see notes about upgrading from v10 to v11 here Access WebUI at :4040 . Default user/pass is admin/admin Extra java options can be passed with the JAVA_OPTS environment variable, eg -e JAVA_OPTS=\"-Xmx256m -Xms256m\" . For some reverse proxies, you may need to pass JAVA_OPTS=-Dserver.use-forward-headers=true for airsonic to generate the proper URL schemes. Note that if you want to use Airsonic's Java jukebox player , then PGID will need to match the group of your sound device (e.g. /dev/snd ).","title":"Application Setup"},{"location":"images/docker-airsonic-advanced/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-airsonic-advanced/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: airsonic-advanced: image: lscr.io/linuxserver/airsonic-advanced:latest container_name: airsonic-advanced environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH= #optional - JAVA_OPTS= #optional volumes: - :/config - :/music - :/playlists - :/podcasts - :/media #optional ports: - 4040:4040 devices: - /dev/snd:/dev/snd #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-airsonic-advanced/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=airsonic-advanced \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH= `#optional` \\ -e JAVA_OPTS= `#optional` \\ -p 4040:4040 \\ -v :/config \\ -v :/music \\ -v :/playlists \\ -v :/podcasts \\ -v :/media `#optional` \\ --device /dev/snd:/dev/snd `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/airsonic-advanced:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-airsonic-advanced/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-airsonic-advanced/#ports-p","text":"Parameter Function 4040 WebUI","title":"Ports (-p)"},{"location":"images/docker-airsonic-advanced/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH= For setting url-base in reverse proxy setups. JAVA_OPTS= For passing additional java options.","title":"Environment Variables (-e)"},{"location":"images/docker-airsonic-advanced/#volume-mappings-v","text":"Volume Function /config Configuration file location. /music Location of music. /playlists Location for playlists to be saved to. /podcasts Location of podcasts. /media Location of other media.","title":"Volume Mappings (-v)"},{"location":"images/docker-airsonic-advanced/#device-mappings-device","text":"Parameter Function /dev/snd Only needed to pass your host sound device to Airsonic's Java jukebox player.","title":"Device Mappings (--device)"},{"location":"images/docker-airsonic-advanced/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-airsonic-advanced/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-airsonic-advanced/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-airsonic-advanced/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-airsonic-advanced/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-airsonic-advanced/#support-info","text":"Shell access whilst the container is running: docker exec -it airsonic-advanced /bin/bash To monitor the logs of the container in realtime: docker logs -f airsonic-advanced Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' airsonic-advanced Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/airsonic-advanced:latest","title":"Support Info"},{"location":"images/docker-airsonic-advanced/#versions","text":"23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 25.07.22: - Add vorbis-tools. 02.01.22: - Initial Release.","title":"Versions"},{"location":"images/docker-airsonic/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our airsonic-advanced image instead: https://github.com/linuxserver/docker-airsonic-advanced linuxserver/airsonic Airsonic is a free, web-based media streamer, providing ubiquitious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/airsonic should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Application Setup Access WebUI at :4040 . Default user/pass is admin/admin Extra java options can be passed with the JAVA_OPTS environment variable, eg -e JAVA_OPTS=\"-Xmx256m -Xms256m\" . For some reverse proxies, you may need to pass JAVA_OPTS=-Dserver.use-forward-headers=true for airsonic to generate the proper URL schemes. Note that if you want to use Airsonic's Java jukebox player , then PGID will need to match the group of your sound device (e.g. /dev/snd ). Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: airsonic: image: lscr.io/linuxserver/airsonic container_name: airsonic environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH= #optional - JAVA_OPTS= #optional volumes: - :/config - :/music - :/playlists - :/podcasts - :/media #optional ports: - 4040:4040 devices: - /dev/snd:/dev/snd #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=airsonic \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH= `#optional` \\ -e JAVA_OPTS= `#optional` \\ -p 4040:4040 \\ -v :/config \\ -v :/music \\ -v :/playlists \\ -v :/podcasts \\ -v :/media `#optional` \\ --device /dev/snd:/dev/snd `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/airsonic Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4040 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH= For setting url-base in reverse proxy setups. JAVA_OPTS= For passing additional java options. Volume Mappings ( -v ) Volume Function /config Configuration file location. /music Location of music. /playlists Location for playlists to be saved to. /podcasts Location of podcasts. /media Location of other media. Device Mappings ( --device ) Parameter Function /dev/snd Only needed to pass your host sound device to Airsonic's Java jukebox player. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it airsonic /bin/bash To monitor the logs of the container in realtime: docker logs -f airsonic Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' airsonic Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/airsonic Versions 13.01.22: - Deprecate in favor of airsonic-advanced. 24.03.19: - Switching to new Base images, shift to arm32v7 tag. 26.01.19: - Add pipeline logic and multi arch. 05.01.19: - Linting fixes. 27.08.18: - Use new inhouse java baseimage for quicker builds. 23.08.18: - Rebase to ubuntu bionic for increased performance across all arch's. 22.04.18: - Add the forgotten JAVA_OPTS to the run command. 29.12.17: - Initial Release.","title":"airsonic"},{"location":"images/docker-airsonic/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our airsonic-advanced image instead: https://github.com/linuxserver/docker-airsonic-advanced","title":"DEPRECATION NOTICE"},{"location":"images/docker-airsonic/#linuxserverairsonic","text":"Airsonic is a free, web-based media streamer, providing ubiquitious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room.","title":"linuxserver/airsonic"},{"location":"images/docker-airsonic/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/airsonic should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-airsonic/#application-setup","text":"Access WebUI at :4040 . Default user/pass is admin/admin Extra java options can be passed with the JAVA_OPTS environment variable, eg -e JAVA_OPTS=\"-Xmx256m -Xms256m\" . For some reverse proxies, you may need to pass JAVA_OPTS=-Dserver.use-forward-headers=true for airsonic to generate the proper URL schemes. Note that if you want to use Airsonic's Java jukebox player , then PGID will need to match the group of your sound device (e.g. /dev/snd ).","title":"Application Setup"},{"location":"images/docker-airsonic/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-airsonic/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: airsonic: image: lscr.io/linuxserver/airsonic container_name: airsonic environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH= #optional - JAVA_OPTS= #optional volumes: - :/config - :/music - :/playlists - :/podcasts - :/media #optional ports: - 4040:4040 devices: - /dev/snd:/dev/snd #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-airsonic/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=airsonic \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH= `#optional` \\ -e JAVA_OPTS= `#optional` \\ -p 4040:4040 \\ -v :/config \\ -v :/music \\ -v :/playlists \\ -v :/podcasts \\ -v :/media `#optional` \\ --device /dev/snd:/dev/snd `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/airsonic","title":"docker cli (click here for more info)"},{"location":"images/docker-airsonic/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-airsonic/#ports-p","text":"Parameter Function 4040 WebUI","title":"Ports (-p)"},{"location":"images/docker-airsonic/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH= For setting url-base in reverse proxy setups. JAVA_OPTS= For passing additional java options.","title":"Environment Variables (-e)"},{"location":"images/docker-airsonic/#volume-mappings-v","text":"Volume Function /config Configuration file location. /music Location of music. /playlists Location for playlists to be saved to. /podcasts Location of podcasts. /media Location of other media.","title":"Volume Mappings (-v)"},{"location":"images/docker-airsonic/#device-mappings-device","text":"Parameter Function /dev/snd Only needed to pass your host sound device to Airsonic's Java jukebox player.","title":"Device Mappings (--device)"},{"location":"images/docker-airsonic/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-airsonic/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-airsonic/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-airsonic/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-airsonic/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-airsonic/#support-info","text":"Shell access whilst the container is running: docker exec -it airsonic /bin/bash To monitor the logs of the container in realtime: docker logs -f airsonic Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' airsonic Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/airsonic","title":"Support Info"},{"location":"images/docker-airsonic/#versions","text":"13.01.22: - Deprecate in favor of airsonic-advanced. 24.03.19: - Switching to new Base images, shift to arm32v7 tag. 26.01.19: - Add pipeline logic and multi arch. 05.01.19: - Linting fixes. 27.08.18: - Use new inhouse java baseimage for quicker builds. 23.08.18: - Rebase to ubuntu bionic for increased performance across all arch's. 22.04.18: - Add the forgotten JAVA_OPTS to the run command. 29.12.17: - Initial Release.","title":"Versions"},{"location":"images/docker-apprise-api/","text":"linuxserver/apprise-api Apprise-api Takes advantage of Apprise through your network with a user-friendly API. Send notifications to more then 65+ services. An incredibly lightweight gateway to Apprise. A production ready micro-service at your disposal. Apprise API was designed to easily fit into existing (and new) eco-systems that are looking for a simple notification solution. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/apprise-api:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: apprise-api: image: lscr.io/linuxserver/apprise-api:latest container_name: apprise-api environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=apprise-api \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8000:8000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/apprise-api:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 Port for apprise's interface and API. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where config is stored. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it apprise-api /bin/bash To monitor the logs of the container in realtime: docker logs -f apprise-api Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' apprise-api Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/apprise-api:latest Versions 17.10.22: - Rebase to alpine 3.16, migrate to S6V3 28.02.21: - Rebase to alpine 3.15. 03.11.21: - Increase uWSGI buffer size to 32kb. 16.05.21: - Add linuxserver wheel index. 26.02.21: - Initial Release.","title":"apprise-api"},{"location":"images/docker-apprise-api/#linuxserverapprise-api","text":"Apprise-api Takes advantage of Apprise through your network with a user-friendly API. Send notifications to more then 65+ services. An incredibly lightweight gateway to Apprise. A production ready micro-service at your disposal. Apprise API was designed to easily fit into existing (and new) eco-systems that are looking for a simple notification solution.","title":"linuxserver/apprise-api"},{"location":"images/docker-apprise-api/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/apprise-api:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-apprise-api/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-apprise-api/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: apprise-api: image: lscr.io/linuxserver/apprise-api:latest container_name: apprise-api environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-apprise-api/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=apprise-api \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8000:8000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/apprise-api:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-apprise-api/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-apprise-api/#ports-p","text":"Parameter Function 8000 Port for apprise's interface and API.","title":"Ports (-p)"},{"location":"images/docker-apprise-api/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-apprise-api/#volume-mappings-v","text":"Volume Function /config Where config is stored.","title":"Volume Mappings (-v)"},{"location":"images/docker-apprise-api/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-apprise-api/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-apprise-api/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-apprise-api/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-apprise-api/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-apprise-api/#support-info","text":"Shell access whilst the container is running: docker exec -it apprise-api /bin/bash To monitor the logs of the container in realtime: docker logs -f apprise-api Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' apprise-api Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/apprise-api:latest","title":"Support Info"},{"location":"images/docker-apprise-api/#versions","text":"17.10.22: - Rebase to alpine 3.16, migrate to S6V3 28.02.21: - Rebase to alpine 3.15. 03.11.21: - Increase uWSGI buffer size to 32kb. 16.05.21: - Add linuxserver wheel index. 26.02.21: - Initial Release.","title":"Versions"},{"location":"images/docker-audacity/","text":"linuxserver/audacity Audacity is an easy-to-use, multi-track audio editor and recorder. Developed by a group of volunteers as open source. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/audacity:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u274c armhf \u274c Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: audacity: image: lscr.io/linuxserver/audacity:latest container_name: audacity environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=audacity \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/audacity:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Audacity desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings and images Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it audacity /bin/bash To monitor the logs of the container in realtime: docker logs -f audacity Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' audacity Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/audacity:latest Versions 14.09.21: - Use the official appimage, switch to single arch (x86_64). Armhf and aarch64 users can remain on version 3.0.2 but there won't be further updates. 07.04.21: - Initial release.","title":"audacity"},{"location":"images/docker-audacity/#linuxserveraudacity","text":"Audacity is an easy-to-use, multi-track audio editor and recorder. Developed by a group of volunteers as open source.","title":"linuxserver/audacity"},{"location":"images/docker-audacity/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/audacity:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u274c armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-audacity/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-audacity/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-audacity/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: audacity: image: lscr.io/linuxserver/audacity:latest container_name: audacity environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-audacity/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=audacity \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/audacity:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-audacity/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-audacity/#ports-p","text":"Parameter Function 3000 Audacity desktop gui.","title":"Ports (-p)"},{"location":"images/docker-audacity/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-audacity/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings and images","title":"Volume Mappings (-v)"},{"location":"images/docker-audacity/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-audacity/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-audacity/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-audacity/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-audacity/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-audacity/#support-info","text":"Shell access whilst the container is running: docker exec -it audacity /bin/bash To monitor the logs of the container in realtime: docker logs -f audacity Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' audacity Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/audacity:latest","title":"Support Info"},{"location":"images/docker-audacity/#versions","text":"14.09.21: - Use the official appimage, switch to single arch (x86_64). Armhf and aarch64 users can remain on version 3.0.2 but there won't be further updates. 07.04.21: - Initial release.","title":"Versions"},{"location":"images/docker-babybuddy/","text":"linuxserver/babybuddy Babybuddy is a buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/babybuddy:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at :8000 (or whichever host port is mapped in docker arguments). The default user/pass are admin:admin . By default BabyBuddy uses sqlite3. To use an external database like postgresql or mysql/mariadb instead, you can use the environment variables listed in BabyBuddy docs . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: babybuddy: image: lscr.io/linuxserver/babybuddy:latest container_name: babybuddy environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CSRF_TRUSTED_ORIGINS=http://127.0.0.1:8000,https://babybuddy.domain.com volumes: - /path/to/appdata:/config ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=babybuddy \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CSRF_TRUSTED_ORIGINS=http://127.0.0.1:8000,https://babybuddy.domain.com \\ -p 8000:8000 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/babybuddy:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 the port for the web ui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London CSRF_TRUSTED_ORIGINS=http://127.0.0.1:8000,https://babybuddy.domain.com Add any address you'd like to access babybuddy at (comma separated, no spaces) Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration and data. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it babybuddy /bin/bash To monitor the logs of the container in realtime: docker logs -f babybuddy Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' babybuddy Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/babybuddy:latest Versions 23.11.22: - Rebase to Alpine 3.16, migrate to s6v3. Restructure nginx configs ( see changes announcement ). 28.05.22: - Add missing PUID/PGID vars to readme. 03.04.22: - Rebase to alpine-nginx baseimage. Add CSRF_TRUSTED_ORIGINS env var. 11.12.21: - Add py3-mysqlclient for mysql/mariadb. 14.11.21: - Add lxml dependencies (temp fix for amd64 by force compiling lxml). 25.07.21: - Add libpq for postgresql. 08.07.21: - Fix pip install issue. 05.07.21: - Update Gunicorn parameters to prevent WORKER_TIMEOUT issue. 22.06.21: - Initial release.","title":"babybuddy"},{"location":"images/docker-babybuddy/#linuxserverbabybuddy","text":"Babybuddy is a buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work.","title":"linuxserver/babybuddy"},{"location":"images/docker-babybuddy/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/babybuddy:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-babybuddy/#application-setup","text":"Access the webui at :8000 (or whichever host port is mapped in docker arguments). The default user/pass are admin:admin . By default BabyBuddy uses sqlite3. To use an external database like postgresql or mysql/mariadb instead, you can use the environment variables listed in BabyBuddy docs .","title":"Application Setup"},{"location":"images/docker-babybuddy/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-babybuddy/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: babybuddy: image: lscr.io/linuxserver/babybuddy:latest container_name: babybuddy environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CSRF_TRUSTED_ORIGINS=http://127.0.0.1:8000,https://babybuddy.domain.com volumes: - /path/to/appdata:/config ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-babybuddy/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=babybuddy \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CSRF_TRUSTED_ORIGINS=http://127.0.0.1:8000,https://babybuddy.domain.com \\ -p 8000:8000 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/babybuddy:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-babybuddy/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-babybuddy/#ports-p","text":"Parameter Function 8000 the port for the web ui","title":"Ports (-p)"},{"location":"images/docker-babybuddy/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London CSRF_TRUSTED_ORIGINS=http://127.0.0.1:8000,https://babybuddy.domain.com Add any address you'd like to access babybuddy at (comma separated, no spaces)","title":"Environment Variables (-e)"},{"location":"images/docker-babybuddy/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration and data.","title":"Volume Mappings (-v)"},{"location":"images/docker-babybuddy/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-babybuddy/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-babybuddy/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-babybuddy/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-babybuddy/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-babybuddy/#support-info","text":"Shell access whilst the container is running: docker exec -it babybuddy /bin/bash To monitor the logs of the container in realtime: docker logs -f babybuddy Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' babybuddy Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/babybuddy:latest","title":"Support Info"},{"location":"images/docker-babybuddy/#versions","text":"23.11.22: - Rebase to Alpine 3.16, migrate to s6v3. Restructure nginx configs ( see changes announcement ). 28.05.22: - Add missing PUID/PGID vars to readme. 03.04.22: - Rebase to alpine-nginx baseimage. Add CSRF_TRUSTED_ORIGINS env var. 11.12.21: - Add py3-mysqlclient for mysql/mariadb. 14.11.21: - Add lxml dependencies (temp fix for amd64 by force compiling lxml). 25.07.21: - Add libpq for postgresql. 08.07.21: - Fix pip install issue. 05.07.21: - Update Gunicorn parameters to prevent WORKER_TIMEOUT issue. 22.06.21: - Initial release.","title":"Versions"},{"location":"images/docker-base-alpine-example/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum Linuserver.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Docker base alpine example"},{"location":"images/docker-base-alpine-example/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum Linuserver.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-base-ubuntu-example/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum Linuserver.io forum A custom base image built with Ubuntu cloud image and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Docker base ubuntu example"},{"location":"images/docker-base-ubuntu-example/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum Linuserver.io forum A custom base image built with Ubuntu cloud image and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-alpine-nginx/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux , nginx and S6 overlay .. Featuring :- weekly updates security updates The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-alpine-nginx"},{"location":"images/docker-baseimage-alpine-nginx/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux , nginx and S6 overlay .. Featuring :- weekly updates security updates The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-alpine-python/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our standard alpine baseimage instead: https://github.com/linuxserver/docker-baseimage-alpine Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux , python2 and S6 overlay .. Featuring :- weekly updates security updates The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-alpine-python"},{"location":"images/docker-baseimage-alpine-python/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our standard alpine baseimage instead: https://github.com/linuxserver/docker-baseimage-alpine","title":"DEPRECATION NOTICE"},{"location":"images/docker-baseimage-alpine-python/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux , python2 and S6 overlay .. Featuring :- weekly updates security updates The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-alpine/","text":"Contact information:- Type Address/Details Discord Discord IRC libera at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-alpine"},{"location":"images/docker-baseimage-alpine/#contact-information-","text":"Type Address/Details Discord Discord IRC libera at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-arch/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-arch"},{"location":"images/docker-baseimage-arch/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-cloud9/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu linux and Cloud9 .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-cloud9"},{"location":"images/docker-baseimage-cloud9/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-baseimage-cloud9/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu linux and Cloud9 .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-fedora/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-fedora"},{"location":"images/docker-baseimage-fedora/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-guacgui/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Contact information: Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum linuxserver/docker-baseimage-guacgui A custom graphical base image built with: * Ubuntu cloud image * S6 overlay * xrdp * xorgxrdp * openbox * guacamole Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/docker-baseimage-guacgui should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container. docker docker create \\ --name=docker-baseimage-guacgui \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e APPNAME=xclock \\ -e GUAC_USER=abc `#optional` \\ -e GUAC_PASS=900150983cd24fb0d6963f7d28e17f72 `#optional` \\ -e GUAC_KEYBOARD_LAYOUT=de-de-qwertz `#optional` \\ -p 8080:8080 \\ -p 3389:3389 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/docker-baseimage-guacgui docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: docker-baseimage-guacgui: image: linuxserver/docker-baseimage-guacgui container_name: docker-baseimage-guacgui environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - APPNAME=xclock - GUAC_USER=abc #optional - GUAC_PASS=900150983cd24fb0d6963f7d28e17f72 #optional - GUAC_KEYBOARD_LAYOUT=de-de-qwertz #optional volumes: - :/config ports: - 8080:8080 - 3389:3389 restart: unless-stopped Parameters Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Parameter Function -p 8080 Allows HTTP access to the internal X server. -p 3389 Allows RDP access to the internal X server. -e PUID=1000 for UserID - see below for explanation -e PGID=1000 for GroupID - see below for explanation -e TZ=Europe/London Specify a timezone to use EG Europe/London -e APPNAME=xclock Specify the graphical application name shown on RDP access. -e GUAC_USER=abc Specify the username for guacamole's web interface. -e GUAC_PASS=900150983cd24fb0d6963f7d28e17f72 Specify the password's md5 hash for guacamole's web interface. -e GUAC_KEYBOARD_LAYOUT=de-de-qwertz Specify the used keyboard layout for the RDP session used by the gucamole client. Possible values are \"en-us-qwerty\" (default), de-de-qwertz (German keyboard (qwertz)), fr-fr-azerty (French keyboard (azerty)), fr-ch-qwertz (Swiss French keyboard (qwertz)), it-it-qwerty (Italian keyboard), ja-jp-qwerty (Japanese keyboard) and sv-se-qwerty (Swedish keyboard). -v /config Contains X user's home directory contents. Application Setup This is a baseimage meant to be used as base for graphical applications. Please refer to the example folder for usage. If GUAC_USER and GUAC_PASS are not set, there is no authentication. Passwords can be generated via the following: echo -n password | openssl md5 printf '%s' password | md5sum Please beware this image is not hardened for internet usage. Use a reverse ssl proxy to increase security. The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-guacgui"},{"location":"images/docker-baseimage-guacgui/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-baseimage-guacgui/#contact-information","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum","title":"Contact information:"},{"location":"images/docker-baseimage-guacgui/#linuxserverdocker-baseimage-guacgui","text":"A custom graphical base image built with: * Ubuntu cloud image * S6 overlay * xrdp * xorgxrdp * openbox * guacamole","title":"linuxserver/docker-baseimage-guacgui"},{"location":"images/docker-baseimage-guacgui/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/docker-baseimage-guacgui should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-baseimage-guacgui/#usage","text":"Here are some example snippets to help you get started creating a container.","title":"Usage"},{"location":"images/docker-baseimage-guacgui/#docker","text":"docker create \\ --name=docker-baseimage-guacgui \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e APPNAME=xclock \\ -e GUAC_USER=abc `#optional` \\ -e GUAC_PASS=900150983cd24fb0d6963f7d28e17f72 `#optional` \\ -e GUAC_KEYBOARD_LAYOUT=de-de-qwertz `#optional` \\ -p 8080:8080 \\ -p 3389:3389 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/docker-baseimage-guacgui","title":"docker"},{"location":"images/docker-baseimage-guacgui/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: docker-baseimage-guacgui: image: linuxserver/docker-baseimage-guacgui container_name: docker-baseimage-guacgui environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - APPNAME=xclock - GUAC_USER=abc #optional - GUAC_PASS=900150983cd24fb0d6963f7d28e17f72 #optional - GUAC_KEYBOARD_LAYOUT=de-de-qwertz #optional volumes: - :/config ports: - 8080:8080 - 3389:3389 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-baseimage-guacgui/#parameters","text":"Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Parameter Function -p 8080 Allows HTTP access to the internal X server. -p 3389 Allows RDP access to the internal X server. -e PUID=1000 for UserID - see below for explanation -e PGID=1000 for GroupID - see below for explanation -e TZ=Europe/London Specify a timezone to use EG Europe/London -e APPNAME=xclock Specify the graphical application name shown on RDP access. -e GUAC_USER=abc Specify the username for guacamole's web interface. -e GUAC_PASS=900150983cd24fb0d6963f7d28e17f72 Specify the password's md5 hash for guacamole's web interface. -e GUAC_KEYBOARD_LAYOUT=de-de-qwertz Specify the used keyboard layout for the RDP session used by the gucamole client. Possible values are \"en-us-qwerty\" (default), de-de-qwertz (German keyboard (qwertz)), fr-fr-azerty (French keyboard (azerty)), fr-ch-qwertz (Swiss French keyboard (qwertz)), it-it-qwerty (Italian keyboard), ja-jp-qwerty (Japanese keyboard) and sv-se-qwerty (Swedish keyboard). -v /config Contains X user's home directory contents.","title":"Parameters"},{"location":"images/docker-baseimage-guacgui/#application-setup","text":"This is a baseimage meant to be used as base for graphical applications. Please refer to the example folder for usage. If GUAC_USER and GUAC_PASS are not set, there is no authentication. Passwords can be generated via the following: echo -n password | openssl md5 printf '%s' password | md5sum Please beware this image is not hardened for internet usage. Use a reverse ssl proxy to increase security. The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Application Setup"},{"location":"images/docker-baseimage-gui/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Contact information: Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum linuxserver/docker-baseimage-gui A custom graphical base image built with: * Ubuntu cloud image * S6 overlay * xrdp * xorgxrdp * openbox Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lsiobase/nginx should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here is an example to help you get started creating a graphical container. Dockerfile #Firefox via RDP FROM lsiobase/ubuntu-gui:amd64-latest ######################################### ## ENVIRONMENTAL CONFIG ## ######################################### # Set correct environment variables ENV TERM=\"xterm\" APPNAME=\"firefox\" ARG DEBIAN_FRONTEND=noninteractive ######################################### ## INSTALL DEPENDENCIES ## ######################################### RUN apt-get update \\ && apt-get -y upgrade \\ && apt-get install -qy --no-install-recommends \\ firefox \\ && apt-get clean -y \\ && apt-get autoremove -y \\ && rm -rf /tmp/* /var/tmp/* \\ && rm -rf /var/lib/apt/lists/* COPY root / servicefile #!/bin/execlineb -P # ./root/etc/service.d/firefox/run # Redirect stderr to stdout. fdmove -c 2 1 # Wait until openbox is running if { s6-svwait -t 10000 -U /var/run/s6/services/openbox/ } # Drop privileges and set env s6-setuidgid abc s6-env DISPLAY=:1 HOME=/config # Execute Firefox /usr/bin/firefox Access the Graphical Interface Use an RDP client such as: * Remmina * Microsoft Remote Deskotp Client The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-gui"},{"location":"images/docker-baseimage-gui/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-baseimage-gui/#contact-information","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum","title":"Contact information:"},{"location":"images/docker-baseimage-gui/#linuxserverdocker-baseimage-gui","text":"A custom graphical base image built with: * Ubuntu cloud image * S6 overlay * xrdp * xorgxrdp * openbox","title":"linuxserver/docker-baseimage-gui"},{"location":"images/docker-baseimage-gui/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lsiobase/nginx should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-baseimage-gui/#usage","text":"Here is an example to help you get started creating a graphical container.","title":"Usage"},{"location":"images/docker-baseimage-gui/#dockerfile","text":"#Firefox via RDP FROM lsiobase/ubuntu-gui:amd64-latest ######################################### ## ENVIRONMENTAL CONFIG ## ######################################### # Set correct environment variables ENV TERM=\"xterm\" APPNAME=\"firefox\" ARG DEBIAN_FRONTEND=noninteractive ######################################### ## INSTALL DEPENDENCIES ## ######################################### RUN apt-get update \\ && apt-get -y upgrade \\ && apt-get install -qy --no-install-recommends \\ firefox \\ && apt-get clean -y \\ && apt-get autoremove -y \\ && rm -rf /tmp/* /var/tmp/* \\ && rm -rf /var/lib/apt/lists/* COPY root /","title":"Dockerfile"},{"location":"images/docker-baseimage-gui/#servicefile","text":"#!/bin/execlineb -P # ./root/etc/service.d/firefox/run # Redirect stderr to stdout. fdmove -c 2 1 # Wait until openbox is running if { s6-svwait -t 10000 -U /var/run/s6/services/openbox/ } # Drop privileges and set env s6-setuidgid abc s6-env DISPLAY=:1 HOME=/config # Execute Firefox /usr/bin/firefox","title":"servicefile"},{"location":"images/docker-baseimage-gui/#access-the-graphical-interface","text":"Use an RDP client such as: * Remmina * Microsoft Remote Deskotp Client The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Access the Graphical Interface"},{"location":"images/docker-baseimage-mono/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu cloud image , mono and S6 overlay .. Featuring :- weekly updates security updates The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-mono"},{"location":"images/docker-baseimage-mono/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu cloud image , mono and S6 overlay .. Featuring :- weekly updates security updates The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-rdesktop-web/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu linux and xrdp The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-rdesktop-web"},{"location":"images/docker-baseimage-rdesktop-web/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu linux and xrdp The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-rdesktop/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu linux and xrdp The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-rdesktop"},{"location":"images/docker-baseimage-rdesktop/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu linux and xrdp The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-bazarr/","text":"linuxserver/bazarr Bazarr is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/bazarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from Bazarr development \u2705 Pre-releases from Bazarr Application Setup Once running the URL will be http://:6767 . You must complete all the setup parameters in the webui before you can save the config. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: bazarr: image: lscr.io/linuxserver/bazarr:latest container_name: bazarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/bazarr/config:/config - /path/to/movies:/movies #optional - /path/to/tv:/tv #optional ports: - 6767:6767 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=bazarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6767:6767 \\ -v /path/to/bazarr/config:/config \\ -v /path/to/movies:/movies `#optional` \\ -v /path/to/tv:/tv `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/bazarr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 6767 Allows HTTP access to the internal webserver. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Bazarr data /movies Location of your movies /tv Location of your TV Shows Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it bazarr /bin/bash To monitor the logs of the container in realtime: docker logs -f bazarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' bazarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/bazarr:latest Versions 11.10.22: - Rebase master branch to Alpine 3.16, migrate to s6v3. 15.15.21: - Temp fix for lxml, compile from scratch to avoid broken official wheel. 25.10.21: - Rebase to alpine 3.14. Fix numpy wheel. 22.10.21: - Added openblas package to prevent numpy error. 16.05.21: - Use wheel index. 19.04.21: - Install from release zip. 07.04.21: - Move app to /app/bazarr/bin, add package_info . 23.01.21: - Rebasing to alpine 3.13. 23.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 01.06.20: - Rebasing to alpine 3.12. 13.05.20: - Add donation links for Bazarr to Github sponsors button and container log. 08.04.20: - Removed /movies and /tv volumes from Dockerfiles. 28.12.19: - Upgrade to Python 3. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 13.06.19: - Add env variable for setting umask. 12.06.19: - Swap to install deps using maintainers requirements.txt, add ffmpeg for ffprobe. 17.04.19: - Add default UTC timezone if user does not set it. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.09.18: - Initial release.","title":"bazarr"},{"location":"images/docker-bazarr/#linuxserverbazarr","text":"Bazarr is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you.","title":"linuxserver/bazarr"},{"location":"images/docker-bazarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/bazarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-bazarr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from Bazarr development \u2705 Pre-releases from Bazarr","title":"Version Tags"},{"location":"images/docker-bazarr/#application-setup","text":"Once running the URL will be http://:6767 . You must complete all the setup parameters in the webui before you can save the config.","title":"Application Setup"},{"location":"images/docker-bazarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-bazarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: bazarr: image: lscr.io/linuxserver/bazarr:latest container_name: bazarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/bazarr/config:/config - /path/to/movies:/movies #optional - /path/to/tv:/tv #optional ports: - 6767:6767 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-bazarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=bazarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6767:6767 \\ -v /path/to/bazarr/config:/config \\ -v /path/to/movies:/movies `#optional` \\ -v /path/to/tv:/tv `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/bazarr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-bazarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-bazarr/#ports-p","text":"Parameter Function 6767 Allows HTTP access to the internal webserver.","title":"Ports (-p)"},{"location":"images/docker-bazarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-bazarr/#volume-mappings-v","text":"Volume Function /config Bazarr data /movies Location of your movies /tv Location of your TV Shows","title":"Volume Mappings (-v)"},{"location":"images/docker-bazarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-bazarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-bazarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-bazarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-bazarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-bazarr/#support-info","text":"Shell access whilst the container is running: docker exec -it bazarr /bin/bash To monitor the logs of the container in realtime: docker logs -f bazarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' bazarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/bazarr:latest","title":"Support Info"},{"location":"images/docker-bazarr/#versions","text":"11.10.22: - Rebase master branch to Alpine 3.16, migrate to s6v3. 15.15.21: - Temp fix for lxml, compile from scratch to avoid broken official wheel. 25.10.21: - Rebase to alpine 3.14. Fix numpy wheel. 22.10.21: - Added openblas package to prevent numpy error. 16.05.21: - Use wheel index. 19.04.21: - Install from release zip. 07.04.21: - Move app to /app/bazarr/bin, add package_info . 23.01.21: - Rebasing to alpine 3.13. 23.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 01.06.20: - Rebasing to alpine 3.12. 13.05.20: - Add donation links for Bazarr to Github sponsors button and container log. 08.04.20: - Removed /movies and /tv volumes from Dockerfiles. 28.12.19: - Upgrade to Python 3. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 13.06.19: - Add env variable for setting umask. 12.06.19: - Swap to install deps using maintainers requirements.txt, add ffmpeg for ffprobe. 17.04.19: - Add default UTC timezone if user does not set it. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.09.18: - Initial release.","title":"Versions"},{"location":"images/docker-beets/","text":"linuxserver/beets Beets is a music library manager and not, for the most part, a music player. It does include a simple player plugin and an experimental Web-based player, but it generally leaves actual sound-reproduction to specialized tools. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/beets:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Beets Releases nightly \u2705 Built against head of Beets git, generally considered unstable but a likely choice for power users of the application. Application Setup Edit the config file in /config To edit the config from within the container use beet config -e For a command prompt as user abc docker exec -it -u abc beets bash See Beets for more info. Contains beets-extrafiles plugin, configuration details Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: beets: image: lscr.io/linuxserver/beets:latest container_name: beets environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/music - :/downloads ports: - 8337:8337 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=beets \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8337:8337 \\ -v :/config \\ -v :/music \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/beets:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8337 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. /music Music library /downloads Non processed music Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it beets /bin/bash To monitor the logs of the container in realtime: docker logs -f beets Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' beets Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/beets:latest Versions 15.01.22: - Rebasing to alpine 3.15. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 12.05.19: - Add flac and mp3val binaries required for badfiles plugin. 12.04.19: - Rebase to Alpine 3.9. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.03.19: - Swap copyartifacts for extrafiles, update endpoints with nightly tag. 01.03.19: - Switch to python3. 07.02.19: - Add fftw-dev build dependency for chromaprint. 28.01.19: - Add pipeline logic and multi arch. 15.08.18: - Rebase to alpine 3.8, use alpine repo version of pylast. 12.08.18: - Add requests pip package. 04.03.18: - Upgrade mp3gain to 1.6.1. 02.01.18: - Deprecate cpu_core routine lack of scaling. 27.12.17: - Add beautifulsoup4 pip package. 06.12.17: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 06.02.17: - Rebase to alpine linux 3.5. 16.01.17: - Add packages required for replaygain. 24.12.16: - Add beets-copyartifacts plugin. 07.12.16: - Edit cmake options for chromaprint, should now build and install fpcalc, add gstreamer lib 14.10.16: - Add version layer information. 01.10.16: - Add nano and editor variable to allow editing of the config from the container command line. 30.09.16: - Fix umask. 24.09.16: - Rebase to alpine linux. 10.09.16: - Add layer badges to README. 05.01.16: - Change ffpmeg repository, other version crashes container 06.11.15: - Initial Release 29.11.15: - Take out term setting, causing issues with key entry for some users","title":"beets"},{"location":"images/docker-beets/#linuxserverbeets","text":"Beets is a music library manager and not, for the most part, a music player. It does include a simple player plugin and an experimental Web-based player, but it generally leaves actual sound-reproduction to specialized tools.","title":"linuxserver/beets"},{"location":"images/docker-beets/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/beets:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-beets/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Beets Releases nightly \u2705 Built against head of Beets git, generally considered unstable but a likely choice for power users of the application.","title":"Version Tags"},{"location":"images/docker-beets/#application-setup","text":"Edit the config file in /config To edit the config from within the container use beet config -e For a command prompt as user abc docker exec -it -u abc beets bash See Beets for more info. Contains beets-extrafiles plugin, configuration details","title":"Application Setup"},{"location":"images/docker-beets/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-beets/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: beets: image: lscr.io/linuxserver/beets:latest container_name: beets environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/music - :/downloads ports: - 8337:8337 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-beets/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=beets \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8337:8337 \\ -v :/config \\ -v :/music \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/beets:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-beets/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-beets/#ports-p","text":"Parameter Function 8337 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-beets/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-beets/#volume-mappings-v","text":"Volume Function /config Configuration files. /music Music library /downloads Non processed music","title":"Volume Mappings (-v)"},{"location":"images/docker-beets/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-beets/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-beets/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-beets/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-beets/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-beets/#support-info","text":"Shell access whilst the container is running: docker exec -it beets /bin/bash To monitor the logs of the container in realtime: docker logs -f beets Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' beets Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/beets:latest","title":"Support Info"},{"location":"images/docker-beets/#versions","text":"15.01.22: - Rebasing to alpine 3.15. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 12.05.19: - Add flac and mp3val binaries required for badfiles plugin. 12.04.19: - Rebase to Alpine 3.9. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.03.19: - Swap copyartifacts for extrafiles, update endpoints with nightly tag. 01.03.19: - Switch to python3. 07.02.19: - Add fftw-dev build dependency for chromaprint. 28.01.19: - Add pipeline logic and multi arch. 15.08.18: - Rebase to alpine 3.8, use alpine repo version of pylast. 12.08.18: - Add requests pip package. 04.03.18: - Upgrade mp3gain to 1.6.1. 02.01.18: - Deprecate cpu_core routine lack of scaling. 27.12.17: - Add beautifulsoup4 pip package. 06.12.17: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 06.02.17: - Rebase to alpine linux 3.5. 16.01.17: - Add packages required for replaygain. 24.12.16: - Add beets-copyartifacts plugin. 07.12.16: - Edit cmake options for chromaprint, should now build and install fpcalc, add gstreamer lib 14.10.16: - Add version layer information. 01.10.16: - Add nano and editor variable to allow editing of the config from the container command line. 30.09.16: - Fix umask. 24.09.16: - Rebase to alpine linux. 10.09.16: - Add layer badges to README. 05.01.16: - Change ffpmeg repository, other version crashes container 06.11.15: - Initial Release 29.11.15: - Take out term setting, causing issues with key entry for some users","title":"Versions"},{"location":"images/docker-blender/","text":"linuxserver/blender Blender is a free and open-source 3D computer graphics software toolset used for creating animated films, visual effects, art, 3D printed models, motion graphics, interactive 3D applications, virtual reality, and computer games. This image does not support GPU rendering out of the box only accelerated workspace experience Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/blender:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: * http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false . Hardware Acceleration This only applies to your desktop experience, this container is capable of supporting accelerated rendering with /dev/dri mounted in, but the AMD HIP and Nvidia CUDA runtimes are massive which are not installed by default in this container. Intel/ATI/AMD To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container. Arm Devices Arm devices can run this image, but generally should not mount in /dev/dri. The OpenGL ES version is not high enough to run Blender. The program can run on these platforms though, leveraging CPU LLVMPipe rendering. Due to lack of arm32/64 binaries from the upstream project, our arm32/64 images install the latest version from the ubuntu repo, which is usually behind and thus the version the image is tagged with does not match the version contained. Keyboard Layouts This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: blender: image: lscr.io/linuxserver/blender:latest container_name: blender security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional volumes: - /path/to/config:/config ports: - 3000:3000 devices: - /dev/dri:/dev/dri #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=blender \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --device /dev/dri:/dev/dri `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/blender:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Blender desktop gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores local files and settings Device Mappings ( --device ) Parameter Function /dev/dri Add this for hardware acceleration (Linux hosts only) Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, this may be required depending on your Docker and storage configuration. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it blender /bin/bash To monitor the logs of the container in realtime: docker logs -f blender Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' blender Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/blender:latest Versions 06.05.22: - Use the full semver version in image tags. Arm32/64 version tags are inaccurate due to installing from ubuntu repo, which is usually behind. 12.03.22: - Initial Release.","title":"blender"},{"location":"images/docker-blender/#linuxserverblender","text":"Blender is a free and open-source 3D computer graphics software toolset used for creating animated films, visual effects, art, 3D printed models, motion graphics, interactive 3D applications, virtual reality, and computer games. This image does not support GPU rendering out of the box only accelerated workspace experience","title":"linuxserver/blender"},{"location":"images/docker-blender/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/blender:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-blender/#application-setup","text":"The application can be accessed at: * http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false .","title":"Application Setup"},{"location":"images/docker-blender/#hardware-acceleration","text":"This only applies to your desktop experience, this container is capable of supporting accelerated rendering with /dev/dri mounted in, but the AMD HIP and Nvidia CUDA runtimes are massive which are not installed by default in this container.","title":"Hardware Acceleration"},{"location":"images/docker-blender/#intelatiamd","text":"To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel/ATI/AMD"},{"location":"images/docker-blender/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container.","title":"Nvidia"},{"location":"images/docker-blender/#arm-devices","text":"Arm devices can run this image, but generally should not mount in /dev/dri. The OpenGL ES version is not high enough to run Blender. The program can run on these platforms though, leveraging CPU LLVMPipe rendering. Due to lack of arm32/64 binaries from the upstream project, our arm32/64 images install the latest version from the ubuntu repo, which is usually behind and thus the version the image is tagged with does not match the version contained.","title":"Arm Devices"},{"location":"images/docker-blender/#keyboard-layouts","text":"This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard","title":"Keyboard Layouts"},{"location":"images/docker-blender/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-blender/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: blender: image: lscr.io/linuxserver/blender:latest container_name: blender security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional volumes: - /path/to/config:/config ports: - 3000:3000 devices: - /dev/dri:/dev/dri #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-blender/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=blender \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --device /dev/dri:/dev/dri `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/blender:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-blender/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-blender/#ports-p","text":"Parameter Function 3000 Blender desktop gui","title":"Ports (-p)"},{"location":"images/docker-blender/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options.","title":"Environment Variables (-e)"},{"location":"images/docker-blender/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores local files and settings","title":"Volume Mappings (-v)"},{"location":"images/docker-blender/#device-mappings-device","text":"Parameter Function /dev/dri Add this for hardware acceleration (Linux hosts only)","title":"Device Mappings (--device)"},{"location":"images/docker-blender/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, this may be required depending on your Docker and storage configuration.","title":"Miscellaneous Options"},{"location":"images/docker-blender/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-blender/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-blender/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-blender/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-blender/#support-info","text":"Shell access whilst the container is running: docker exec -it blender /bin/bash To monitor the logs of the container in realtime: docker logs -f blender Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' blender Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/blender:latest","title":"Support Info"},{"location":"images/docker-blender/#versions","text":"06.05.22: - Use the full semver version in image tags. Arm32/64 version tags are inaccurate due to installing from ubuntu repo, which is usually behind. 12.03.22: - Initial Release.","title":"Versions"},{"location":"images/docker-boinc/","text":"linuxserver/boinc BOINC is a platform for high-throughput computing on a large scale (thousands or millions of computers). It can be used for volunteer computing (using consumer devices) or grid computing (using organizational resources). It supports virtualized, parallel, and GPU-based applications. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/boinc:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This image sets up the BOINC client and manager and makes its interface available via Guacamole server in the browser. The interface is available at http://your-ip:8080 . By default, there is no password set for the main gui. Optional environment variable PASSWORD will allow setting a password for the user abc . You can access advanced features of the Guacamole remote desktop using ctrl + alt + shift enabling you to use remote copy/paste and different languages. It is recommended to switch to Advanced View in the top menu, because the Computing Preferences don't seem to be displayed in Simple View . Sometimes, the pop-up windows may open in a tiny box in the upper left corner of the screen. When that happens, you can find the corner and resize them. GPU Hardware Acceleration Intel Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the BOINC docker container. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: boinc: image: lscr.io/linuxserver/boinc:latest container_name: boinc security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD= #optional volumes: - /path/to/data:/config ports: - 8080:8080 devices: - /dev/dri:/dev/dri #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=boinc \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD= `#optional` \\ -p 8080:8080 \\ -v /path/to/data:/config \\ --device /dev/dri:/dev/dri `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/boinc:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Boinc desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. PASSWORD= Optionally set a password for the gui. Volume Mappings ( -v ) Volume Function /config Where BOINC should store its database and config. Device Mappings ( --device ) Parameter Function /dev/dri Only needed if you want to use your Intel GPU (vaapi). Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it boinc /bin/bash To monitor the logs of the container in realtime: docker logs -f boinc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' boinc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/boinc:latest Versions 14.11.22: - Fix opencl driver. 18.09.22: - Rebase to jammy. 24.02.22: - Rebase to focal. 31.01.22: - Improve device permissions setting verbosity. 23.03.21: - Rebase to rdesktop-web baseimage. Deprecate GUAC_USER and GUAC_PASS env vars. Existing users can set the new var PASSWORD for the user abc . 01.04.20: - Install boinc from ppa. 17.03.20: - Add armhf and aarch64 builds and switch to multi-arch image. 16.03.20: - Clean up old pid files. 15.03.20: - Initial release.","title":"boinc"},{"location":"images/docker-boinc/#linuxserverboinc","text":"BOINC is a platform for high-throughput computing on a large scale (thousands or millions of computers). It can be used for volunteer computing (using consumer devices) or grid computing (using organizational resources). It supports virtualized, parallel, and GPU-based applications.","title":"linuxserver/boinc"},{"location":"images/docker-boinc/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/boinc:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-boinc/#application-setup","text":"This image sets up the BOINC client and manager and makes its interface available via Guacamole server in the browser. The interface is available at http://your-ip:8080 . By default, there is no password set for the main gui. Optional environment variable PASSWORD will allow setting a password for the user abc . You can access advanced features of the Guacamole remote desktop using ctrl + alt + shift enabling you to use remote copy/paste and different languages. It is recommended to switch to Advanced View in the top menu, because the Computing Preferences don't seem to be displayed in Simple View . Sometimes, the pop-up windows may open in a tiny box in the upper left corner of the screen. When that happens, you can find the corner and resize them.","title":"Application Setup"},{"location":"images/docker-boinc/#gpu-hardware-acceleration","text":"","title":"GPU Hardware Acceleration"},{"location":"images/docker-boinc/#intel","text":"Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel"},{"location":"images/docker-boinc/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the BOINC docker container.","title":"Nvidia"},{"location":"images/docker-boinc/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-boinc/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: boinc: image: lscr.io/linuxserver/boinc:latest container_name: boinc security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD= #optional volumes: - /path/to/data:/config ports: - 8080:8080 devices: - /dev/dri:/dev/dri #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-boinc/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=boinc \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD= `#optional` \\ -p 8080:8080 \\ -v /path/to/data:/config \\ --device /dev/dri:/dev/dri `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/boinc:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-boinc/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-boinc/#ports-p","text":"Parameter Function 8080 Boinc desktop gui.","title":"Ports (-p)"},{"location":"images/docker-boinc/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. PASSWORD= Optionally set a password for the gui.","title":"Environment Variables (-e)"},{"location":"images/docker-boinc/#volume-mappings-v","text":"Volume Function /config Where BOINC should store its database and config.","title":"Volume Mappings (-v)"},{"location":"images/docker-boinc/#device-mappings-device","text":"Parameter Function /dev/dri Only needed if you want to use your Intel GPU (vaapi).","title":"Device Mappings (--device)"},{"location":"images/docker-boinc/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-boinc/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-boinc/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-boinc/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-boinc/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-boinc/#support-info","text":"Shell access whilst the container is running: docker exec -it boinc /bin/bash To monitor the logs of the container in realtime: docker logs -f boinc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' boinc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/boinc:latest","title":"Support Info"},{"location":"images/docker-boinc/#versions","text":"14.11.22: - Fix opencl driver. 18.09.22: - Rebase to jammy. 24.02.22: - Rebase to focal. 31.01.22: - Improve device permissions setting verbosity. 23.03.21: - Rebase to rdesktop-web baseimage. Deprecate GUAC_USER and GUAC_PASS env vars. Existing users can set the new var PASSWORD for the user abc . 01.04.20: - Install boinc from ppa. 17.03.20: - Add armhf and aarch64 builds and switch to multi-arch image. 16.03.20: - Clean up old pid files. 15.03.20: - Initial release.","title":"Versions"},{"location":"images/docker-booksonic-air/","text":"linuxserver/booksonic-air Booksonic-air is a platform for accessing the audiobooks you own wherever you are. At the moment the platform consists of: * Booksonic Air - A server for streaming your audiobooks, successor to the original Booksonic server and based on Airsonic. * Booksonic App - An DSub based Android app for connection to Booksonic-Air servers. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/booksonic-air:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable booksonic-air releases Application Setup Whilst this is a more up to date rebase of the original Booksonic server, upgrading in place is not supported and a fresh install has been recommended. Default user/pass is admin/admin Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: booksonic-air: image: lscr.io/linuxserver/booksonic-air:latest container_name: booksonic-air environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH=url-base volumes: - :/config - :/audiobooks - :/podcasts - :/othermedia ports: - 4040:4040 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=booksonic-air \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH=url-base \\ -p 4040:4040 \\ -v :/config \\ -v :/audiobooks \\ -v :/podcasts \\ -v :/othermedia \\ --restart unless-stopped \\ lscr.io/linuxserver/booksonic-air:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4040 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH=url-base Base url for use with reverse proxies etc. Volume Mappings ( -v ) Volume Function /config Configuration files. /audiobooks Audiobooks. /podcasts Podcasts. /othermedia Other media. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it booksonic-air /bin/bash To monitor the logs of the container in realtime: docker logs -f booksonic-air Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' booksonic-air Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/booksonic-air:latest Versions 18.04.22: - Rebase to Alpine 3.15. 15.09.20: - Initial Release.","title":"booksonic-air"},{"location":"images/docker-booksonic-air/#linuxserverbooksonic-air","text":"Booksonic-air is a platform for accessing the audiobooks you own wherever you are. At the moment the platform consists of: * Booksonic Air - A server for streaming your audiobooks, successor to the original Booksonic server and based on Airsonic. * Booksonic App - An DSub based Android app for connection to Booksonic-Air servers.","title":"linuxserver/booksonic-air"},{"location":"images/docker-booksonic-air/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/booksonic-air:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-booksonic-air/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable booksonic-air releases","title":"Version Tags"},{"location":"images/docker-booksonic-air/#application-setup","text":"Whilst this is a more up to date rebase of the original Booksonic server, upgrading in place is not supported and a fresh install has been recommended. Default user/pass is admin/admin","title":"Application Setup"},{"location":"images/docker-booksonic-air/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-booksonic-air/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: booksonic-air: image: lscr.io/linuxserver/booksonic-air:latest container_name: booksonic-air environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH=url-base volumes: - :/config - :/audiobooks - :/podcasts - :/othermedia ports: - 4040:4040 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-booksonic-air/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=booksonic-air \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH=url-base \\ -p 4040:4040 \\ -v :/config \\ -v :/audiobooks \\ -v :/podcasts \\ -v :/othermedia \\ --restart unless-stopped \\ lscr.io/linuxserver/booksonic-air:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-booksonic-air/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-booksonic-air/#ports-p","text":"Parameter Function 4040 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-booksonic-air/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH=url-base Base url for use with reverse proxies etc.","title":"Environment Variables (-e)"},{"location":"images/docker-booksonic-air/#volume-mappings-v","text":"Volume Function /config Configuration files. /audiobooks Audiobooks. /podcasts Podcasts. /othermedia Other media.","title":"Volume Mappings (-v)"},{"location":"images/docker-booksonic-air/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-booksonic-air/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-booksonic-air/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-booksonic-air/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-booksonic-air/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-booksonic-air/#support-info","text":"Shell access whilst the container is running: docker exec -it booksonic-air /bin/bash To monitor the logs of the container in realtime: docker logs -f booksonic-air Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' booksonic-air Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/booksonic-air:latest","title":"Support Info"},{"location":"images/docker-booksonic-air/#versions","text":"18.04.22: - Rebase to Alpine 3.15. 15.09.20: - Initial Release.","title":"Versions"},{"location":"images/docker-booksonic/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Please migrate to https://github.com/linuxserver/docker-booksonic-air linuxserver/booksonic Booksonic is a server and an app for streaming your audiobooks to any pc or android phone. Most of the functionality is also availiable on other platforms that have apps for subsonic. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/booksonic should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Version Tags This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest Stable Booksonic releases prerelease Booksonic Pre-releases Application Setup Default user/pass is admin/admin Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: booksonic: image: lscr.io/linuxserver/booksonic container_name: booksonic environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH=url-base volumes: - :/config - :/audiobooks - :/podcasts - :/othermedia ports: - 4040:4040 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=booksonic \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH=url-base \\ -p 4040:4040 \\ -v :/config \\ -v :/audiobooks \\ -v :/podcasts \\ -v :/othermedia \\ --restart unless-stopped \\ lscr.io/linuxserver/booksonic Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4040 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH=url-base Base url for use with reverse proxies etc. Volume Mappings ( -v ) Volume Function /config Configuration files. /audiobooks Audiobooks. /podcasts Podcasts. /othermedia Other media. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it booksonic /bin/bash To monitor the logs of the container in realtime: docker logs -f booksonic Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' booksonic Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/booksonic Versions 06.05.21: - This image is now deprecated. Please migrate to https://github.com/linuxserver/docker-booksonic-air 11.08.20: - Changed upstream github repo location 22.12.19: - Revert to pulling in external war, upgrade jetty. 30.04.19: - Switching to build war from source, use stable booksonic releases. 24.03.19: - Switching to new Base images, shift to arm32v7 tag. 16.01.19: - Adding pipeline logic and multi arch. 05.01.19: - Linting fixes. 27.08.18: - Rebase to ubuntu bionic. 06.12.17: - Rebase to alpine 3.7. 11.07.17: - Rebase to alpine 3.6. 07.02.17: - Rebase to alpine 3.5. 13.12.16: - Initial Release.","title":"booksonic"},{"location":"images/docker-booksonic/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. Please migrate to https://github.com/linuxserver/docker-booksonic-air","title":"DEPRECATION NOTICE"},{"location":"images/docker-booksonic/#linuxserverbooksonic","text":"Booksonic is a server and an app for streaming your audiobooks to any pc or android phone. Most of the functionality is also availiable on other platforms that have apps for subsonic.","title":"linuxserver/booksonic"},{"location":"images/docker-booksonic/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/booksonic should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-booksonic/#version-tags","text":"This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest Stable Booksonic releases prerelease Booksonic Pre-releases","title":"Version Tags"},{"location":"images/docker-booksonic/#application-setup","text":"Default user/pass is admin/admin","title":"Application Setup"},{"location":"images/docker-booksonic/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-booksonic/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: booksonic: image: lscr.io/linuxserver/booksonic container_name: booksonic environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH=url-base volumes: - :/config - :/audiobooks - :/podcasts - :/othermedia ports: - 4040:4040 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-booksonic/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=booksonic \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH=url-base \\ -p 4040:4040 \\ -v :/config \\ -v :/audiobooks \\ -v :/podcasts \\ -v :/othermedia \\ --restart unless-stopped \\ lscr.io/linuxserver/booksonic","title":"docker cli (click here for more info)"},{"location":"images/docker-booksonic/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-booksonic/#ports-p","text":"Parameter Function 4040 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-booksonic/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH=url-base Base url for use with reverse proxies etc.","title":"Environment Variables (-e)"},{"location":"images/docker-booksonic/#volume-mappings-v","text":"Volume Function /config Configuration files. /audiobooks Audiobooks. /podcasts Podcasts. /othermedia Other media.","title":"Volume Mappings (-v)"},{"location":"images/docker-booksonic/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-booksonic/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-booksonic/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-booksonic/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-booksonic/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-booksonic/#support-info","text":"Shell access whilst the container is running: docker exec -it booksonic /bin/bash To monitor the logs of the container in realtime: docker logs -f booksonic Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' booksonic Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/booksonic","title":"Support Info"},{"location":"images/docker-booksonic/#versions","text":"06.05.21: - This image is now deprecated. Please migrate to https://github.com/linuxserver/docker-booksonic-air 11.08.20: - Changed upstream github repo location 22.12.19: - Revert to pulling in external war, upgrade jetty. 30.04.19: - Switching to build war from source, use stable booksonic releases. 24.03.19: - Switching to new Base images, shift to arm32v7 tag. 16.01.19: - Adding pipeline logic and multi arch. 05.01.19: - Linting fixes. 27.08.18: - Rebase to ubuntu bionic. 06.12.17: - Rebase to alpine 3.7. 11.07.17: - Rebase to alpine 3.6. 07.02.17: - Rebase to alpine 3.5. 13.12.16: - Initial Release.","title":"Versions"},{"location":"images/docker-bookstack/","text":"linuxserver/bookstack Bookstack is a free and open source Wiki designed for creating beautiful documentation. Featuring a simple, but powerful WYSIWYG editor it allows for teams to create detailed and useful documentation with ease. Powered by SQL and including a Markdown editor for those who prefer it, BookStack is geared towards making documentation more of a pleasure than a chore. For more information on BookStack visit their website and check it out: https://www.bookstackapp.com Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/bookstack:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The default username is admin@admin.com with the password of password , access the container at http://dockerhost:6875. This application is dependent on a MySQL database be it one you already have or a new one. If you do not already have one, set up our MariaDB container here https://hub.docker.com/r/linuxserver/mariadb/. If you intend to use this application behind a subfolder reverse proxy, such as our SWAG container or Traefik you will need to make sure that the APP_URL environment variable is set to your external domain, or it will not work Documentation for BookStack can be found at https://www.bookstackapp.com/docs/ Advanced Users (full control over the .env file) If you wish to use the extra functionality of BookStack such as email, Memcache, LDAP and so on you will need to make your own .env file with guidance from the BookStack documentation. When you create the container, do not set any arguments for any SQL settings. The container will copy an exemplary .env file to /config/www/.env on your host system for you to edit. PDF Rendering wkhtmltopdf is available to use as an alternative PDF rendering generator as described at https://www.bookstackapp.com/docs/admin/pdf-rendering/. The path to wkhtmltopdf in this image to include in your .env file is /usr/bin/wkhtmltopdf . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2\" services: bookstack: image: lscr.io/linuxserver/bookstack container_name: bookstack environment: - PUID=1000 - PGID=1000 - APP_URL= - DB_HOST=bookstack_db - DB_USER=bookstack - DB_PASS= - DB_DATABASE=bookstackapp volumes: - /path/to/data:/config ports: - 6875:80 restart: unless-stopped depends_on: - bookstack_db bookstack_db: image: lscr.io/linuxserver/mariadb container_name: bookstack_db environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD= - TZ=Europe/London - MYSQL_DATABASE=bookstackapp - MYSQL_USER=bookstack - MYSQL_PASSWORD= volumes: - /path/to/data:/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=bookstack \\ -e PUID=1000 \\ -e PGID=1000 \\ -e APP_URL= \\ -e DB_HOST= \\ -e DB_USER= \\ -e DB_PASS= \\ -e DB_DATABASE=bookstackapp \\ -p 6875:80 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/bookstack:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 will map the container's port 80 to port 6875 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation APP_URL= for specifying the IP:port or URL your application will be accessed on (ie. http://192.168.1.1:6875 or https://bookstack.mydomain.com DB_HOST= for specifying the database host DB_USER= for specifying the database user DB_PASS= for specifying the database password DB_DATABASE=bookstackapp for specifying the database to be used (non-alphanumeric passwords must be properly escaped.) Volume Mappings ( -v ) Volume Function /config this will store any uploaded data on the docker host Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it bookstack /bin/bash To monitor the logs of the container in realtime: docker logs -f bookstack Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' bookstack Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/bookstack:latest Versions 10.10.22: - Remove password escape logic which caused problems for a small subset of users. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 14.03.22: - Add symlinks for theme support. 11.07.21: - Rebase to Alpine 3.14. 12.01.21: - Remove unused requirement, as of release 0.31.0. 17.12.20: - Make APP_URL var required (upstream changes). 17.09.20: - Rebase to alpine 3.12. Fix APP_URL setting. Bump php post max and upload max filesizes to 100MB by default. 19.12.19: - Rebasing to alpine 3.11. 26.07.19: - Use old version of tidyhtml pending upstream fixes. 28.06.19: - Rebasing to alpine 3.10. 14.06.19: - Add wkhtmltopdf to image for PDF rendering. 20.04.19: - Rebase to Alpine 3.9, add MySQL init logic. 22.03.19: - Switching to new Base images, shift to arm32v7 tag. 20.01.19: - Added php7-curl 04.11.18: - Added php7-ldap 15.10.18: - Changed functionality for advanced users 08.10.18: - Advanced mode, symlink changes, sed fixing, docs updated, added some composer files 23.09.28: - Updates pre-release 02.07.18: - Initial Release.","title":"bookstack"},{"location":"images/docker-bookstack/#linuxserverbookstack","text":"Bookstack is a free and open source Wiki designed for creating beautiful documentation. Featuring a simple, but powerful WYSIWYG editor it allows for teams to create detailed and useful documentation with ease. Powered by SQL and including a Markdown editor for those who prefer it, BookStack is geared towards making documentation more of a pleasure than a chore. For more information on BookStack visit their website and check it out: https://www.bookstackapp.com","title":"linuxserver/bookstack"},{"location":"images/docker-bookstack/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/bookstack:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-bookstack/#application-setup","text":"The default username is admin@admin.com with the password of password , access the container at http://dockerhost:6875. This application is dependent on a MySQL database be it one you already have or a new one. If you do not already have one, set up our MariaDB container here https://hub.docker.com/r/linuxserver/mariadb/. If you intend to use this application behind a subfolder reverse proxy, such as our SWAG container or Traefik you will need to make sure that the APP_URL environment variable is set to your external domain, or it will not work Documentation for BookStack can be found at https://www.bookstackapp.com/docs/","title":"Application Setup"},{"location":"images/docker-bookstack/#advanced-users-full-control-over-the-env-file","text":"If you wish to use the extra functionality of BookStack such as email, Memcache, LDAP and so on you will need to make your own .env file with guidance from the BookStack documentation. When you create the container, do not set any arguments for any SQL settings. The container will copy an exemplary .env file to /config/www/.env on your host system for you to edit.","title":"Advanced Users (full control over the .env file)"},{"location":"images/docker-bookstack/#pdf-rendering","text":"wkhtmltopdf is available to use as an alternative PDF rendering generator as described at https://www.bookstackapp.com/docs/admin/pdf-rendering/. The path to wkhtmltopdf in this image to include in your .env file is /usr/bin/wkhtmltopdf .","title":"PDF Rendering"},{"location":"images/docker-bookstack/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-bookstack/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2\" services: bookstack: image: lscr.io/linuxserver/bookstack container_name: bookstack environment: - PUID=1000 - PGID=1000 - APP_URL= - DB_HOST=bookstack_db - DB_USER=bookstack - DB_PASS= - DB_DATABASE=bookstackapp volumes: - /path/to/data:/config ports: - 6875:80 restart: unless-stopped depends_on: - bookstack_db bookstack_db: image: lscr.io/linuxserver/mariadb container_name: bookstack_db environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD= - TZ=Europe/London - MYSQL_DATABASE=bookstackapp - MYSQL_USER=bookstack - MYSQL_PASSWORD= volumes: - /path/to/data:/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-bookstack/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=bookstack \\ -e PUID=1000 \\ -e PGID=1000 \\ -e APP_URL= \\ -e DB_HOST= \\ -e DB_USER= \\ -e DB_PASS= \\ -e DB_DATABASE=bookstackapp \\ -p 6875:80 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/bookstack:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-bookstack/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-bookstack/#ports-p","text":"Parameter Function 80 will map the container's port 80 to port 6875 on the host","title":"Ports (-p)"},{"location":"images/docker-bookstack/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation APP_URL= for specifying the IP:port or URL your application will be accessed on (ie. http://192.168.1.1:6875 or https://bookstack.mydomain.com DB_HOST= for specifying the database host DB_USER= for specifying the database user DB_PASS= for specifying the database password DB_DATABASE=bookstackapp for specifying the database to be used (non-alphanumeric passwords must be properly escaped.)","title":"Environment Variables (-e)"},{"location":"images/docker-bookstack/#volume-mappings-v","text":"Volume Function /config this will store any uploaded data on the docker host","title":"Volume Mappings (-v)"},{"location":"images/docker-bookstack/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-bookstack/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-bookstack/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-bookstack/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-bookstack/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-bookstack/#support-info","text":"Shell access whilst the container is running: docker exec -it bookstack /bin/bash To monitor the logs of the container in realtime: docker logs -f bookstack Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' bookstack Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/bookstack:latest","title":"Support Info"},{"location":"images/docker-bookstack/#versions","text":"10.10.22: - Remove password escape logic which caused problems for a small subset of users. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 14.03.22: - Add symlinks for theme support. 11.07.21: - Rebase to Alpine 3.14. 12.01.21: - Remove unused requirement, as of release 0.31.0. 17.12.20: - Make APP_URL var required (upstream changes). 17.09.20: - Rebase to alpine 3.12. Fix APP_URL setting. Bump php post max and upload max filesizes to 100MB by default. 19.12.19: - Rebasing to alpine 3.11. 26.07.19: - Use old version of tidyhtml pending upstream fixes. 28.06.19: - Rebasing to alpine 3.10. 14.06.19: - Add wkhtmltopdf to image for PDF rendering. 20.04.19: - Rebase to Alpine 3.9, add MySQL init logic. 22.03.19: - Switching to new Base images, shift to arm32v7 tag. 20.01.19: - Added php7-curl 04.11.18: - Added php7-ldap 15.10.18: - Changed functionality for advanced users 08.10.18: - Advanced mode, symlink changes, sed fixing, docs updated, added some composer files 23.09.28: - Updates pre-release 02.07.18: - Initial Release.","title":"Versions"},{"location":"images/docker-budge/","text":"linuxserver/budge budge is an open source 'budgeting with envelopes' personal finance app. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/budge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the web gui at http://SERVERIP:PORT Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: budge: image: lscr.io/linuxserver/budge:latest container_name: budge environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/budge/config:/config ports: - 80:80 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=budge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/budge/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/budge:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http gui 443 https gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York Volume Mappings ( -v ) Volume Function /config Persistent config files Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it budge /bin/bash To monitor the logs of the container in realtime: docker logs -f budge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' budge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/budge:latest Versions 29.11.22: - Rebase to Alpine 3.17, migrate to s6v3. 04.15.22: - Added NPM command to run db migrations. 02.05.22: - Initial Release.","title":"budge"},{"location":"images/docker-budge/#linuxserverbudge","text":"budge is an open source 'budgeting with envelopes' personal finance app.","title":"linuxserver/budge"},{"location":"images/docker-budge/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/budge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-budge/#application-setup","text":"Access the web gui at http://SERVERIP:PORT","title":"Application Setup"},{"location":"images/docker-budge/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-budge/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: budge: image: lscr.io/linuxserver/budge:latest container_name: budge environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/budge/config:/config ports: - 80:80 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-budge/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=budge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/budge/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/budge:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-budge/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-budge/#ports-p","text":"Parameter Function 80 http gui 443 https gui","title":"Ports (-p)"},{"location":"images/docker-budge/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York","title":"Environment Variables (-e)"},{"location":"images/docker-budge/#volume-mappings-v","text":"Volume Function /config Persistent config files","title":"Volume Mappings (-v)"},{"location":"images/docker-budge/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-budge/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-budge/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-budge/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-budge/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-budge/#support-info","text":"Shell access whilst the container is running: docker exec -it budge /bin/bash To monitor the logs of the container in realtime: docker logs -f budge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' budge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/budge:latest","title":"Support Info"},{"location":"images/docker-budge/#versions","text":"29.11.22: - Rebase to Alpine 3.17, migrate to s6v3. 04.15.22: - Added NPM command to run db migrations. 02.05.22: - Initial Release.","title":"Versions"},{"location":"images/docker-calibre-web/","text":"linuxserver/calibre-web Calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. It is also possible to integrate google drive and edit metadata and your calibre library through the app itself. This software is a fork of library and licensed under the GPL v3 License. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/calibre-web:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Releases of Calibre-Web nightly \u2705 Commits to the master branch of Calibre-Web Application Setup Webui can be found at http://your-ip:8083 On the initial setup screen, enter /books as your calibre library location. Default admin login: Username: admin Password: admin123 Unrar is included by default and needs to be set in the Calibre-Web admin page (Basic Configuration:External Binaries) with a path of /usr/bin/unrar 64bit only We have implemented the optional ability to pull in the dependencies to enable ebook conversion utilising Calibre, this means if you don't require this feature the container isn't uneccessarily bloated but should you require it, it is easily available. This optional layer will be rebuilt automatically on our CI pipeline upon new Calibre releases so you can stay up to date. To use this option add the optional environmental variable as shown in the docker-mods section to pull an addition docker layer to enable ebook conversion and then in the Calibre-Web admin page (Basic Configuration:External Binaries) set the Path to Calibre E-Book Converter to /usr/bin/ebook-convert This image contains the kepubify ebook conversion tool (MIT License) to convert epub to kepub. In the Calibre-Web admin page (Basic Configuration:External Binaries) set the Path to Kepubify E-Book Converter to /usr/bin/kepubify To reverse proxy with our Letsencrypt docker container we include a preconfigured reverse proxy config, for other instances of Nginx use the following location block: location /calibre-web { proxy_pass http://:8083; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; proxy_set_header X-Script-Name /calibre-web; } Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: calibre-web: image: lscr.io/linuxserver/calibre-web:latest container_name: calibre-web environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - DOCKER_MODS=linuxserver/mods:universal-calibre #optional - OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional volumes: - /path/to/data:/config - /path/to/calibre/library:/books ports: - 8083:8083 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=calibre-web \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DOCKER_MODS=linuxserver/mods:universal-calibre `#optional` \\ -e OAUTHLIB_RELAX_TOKEN_SCOPE=1 `#optional` \\ -p 8083:8083 \\ -v /path/to/data:/config \\ -v /path/to/calibre/library:/books \\ --restart unless-stopped \\ lscr.io/linuxserver/calibre-web:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8083 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. DOCKER_MODS=linuxserver/mods:universal-calibre #optional & x86-64 only Adds the ability to perform ebook conversion OAUTHLIB_RELAX_TOKEN_SCOPE=1 Optionally set this to allow Google OAUTH to work Volume Mappings ( -v ) Volume Function /config Where calibre-web stores the internal database and config. /books Where your preexisting calibre database is located. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it calibre-web /bin/bash To monitor the logs of the container in realtime: docker logs -f calibre-web Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' calibre-web Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/calibre-web:latest Versions 19.10.22: - Rebase to jammy. Upgrade to s6v3. Clean up build dependencies. 04.11.21: - Update pip arguments to ignore distro installed packages. 24.06.21: - Add note on optional OAUTHLIB_RELAX_TOKEN_SCOPE for Google OAUTH support. 17.05.21: - Add linuxserver wheel index. 10.02.21: - Add libxrandr2 25.01.21: - Add nightly tag 19.01.21: - Add python3-pkg-resources 13.01.21: - Rebase to Ubuntu Focal, see here for troubleshooting armhf. 12.10.20: - Add libxi6 12.07.20: - Add kepubify for arm64v8 05.06.20: - Add kepubify for x86-64 and arm32v7 06.05.20: - Add libxslt1.1 and update ImageMagick policy 19.01.20: - Adding LDAP libs. 13.10.19: - Migrate to Python3. 01.08.19: - Add libxcomposite1. 13.06.19: - Add docker mod to enable optional ebook conversion on x86-64. Add unrar. 02.06.19: - Rebase to Ubuntu Bionic & add Gdrive support. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 23.02.19: - Rebase to alpine 3.9, use repo version of imagemagick. 11.02.19: - Add pipeline logic and multi arch. 03.01.19: - Remove guest user from default app.db. 16.08.18: - Rebase to alpine 3.8. 03.07.18: - New build pushed, all versions below 67 have vulnerability . 05.01.18: - Deprecate cpu_core routine lack of scaling. 06.12.17: - Rebase to alpine 3.7. 27.11.17: - Use cpu core counting routine to speed up build time. 24.07.17: - Curl version for imagemagick. 17.07.17: - Initial release.","title":"calibre-web"},{"location":"images/docker-calibre-web/#linuxservercalibre-web","text":"Calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. It is also possible to integrate google drive and edit metadata and your calibre library through the app itself. This software is a fork of library and licensed under the GPL v3 License.","title":"linuxserver/calibre-web"},{"location":"images/docker-calibre-web/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/calibre-web:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-calibre-web/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Releases of Calibre-Web nightly \u2705 Commits to the master branch of Calibre-Web","title":"Version Tags"},{"location":"images/docker-calibre-web/#application-setup","text":"Webui can be found at http://your-ip:8083 On the initial setup screen, enter /books as your calibre library location. Default admin login: Username: admin Password: admin123 Unrar is included by default and needs to be set in the Calibre-Web admin page (Basic Configuration:External Binaries) with a path of /usr/bin/unrar 64bit only We have implemented the optional ability to pull in the dependencies to enable ebook conversion utilising Calibre, this means if you don't require this feature the container isn't uneccessarily bloated but should you require it, it is easily available. This optional layer will be rebuilt automatically on our CI pipeline upon new Calibre releases so you can stay up to date. To use this option add the optional environmental variable as shown in the docker-mods section to pull an addition docker layer to enable ebook conversion and then in the Calibre-Web admin page (Basic Configuration:External Binaries) set the Path to Calibre E-Book Converter to /usr/bin/ebook-convert This image contains the kepubify ebook conversion tool (MIT License) to convert epub to kepub. In the Calibre-Web admin page (Basic Configuration:External Binaries) set the Path to Kepubify E-Book Converter to /usr/bin/kepubify To reverse proxy with our Letsencrypt docker container we include a preconfigured reverse proxy config, for other instances of Nginx use the following location block: location /calibre-web { proxy_pass http://:8083; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; proxy_set_header X-Script-Name /calibre-web; }","title":"Application Setup"},{"location":"images/docker-calibre-web/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-calibre-web/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: calibre-web: image: lscr.io/linuxserver/calibre-web:latest container_name: calibre-web environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - DOCKER_MODS=linuxserver/mods:universal-calibre #optional - OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional volumes: - /path/to/data:/config - /path/to/calibre/library:/books ports: - 8083:8083 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-calibre-web/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=calibre-web \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DOCKER_MODS=linuxserver/mods:universal-calibre `#optional` \\ -e OAUTHLIB_RELAX_TOKEN_SCOPE=1 `#optional` \\ -p 8083:8083 \\ -v /path/to/data:/config \\ -v /path/to/calibre/library:/books \\ --restart unless-stopped \\ lscr.io/linuxserver/calibre-web:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-calibre-web/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-calibre-web/#ports-p","text":"Parameter Function 8083 WebUI","title":"Ports (-p)"},{"location":"images/docker-calibre-web/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. DOCKER_MODS=linuxserver/mods:universal-calibre #optional & x86-64 only Adds the ability to perform ebook conversion OAUTHLIB_RELAX_TOKEN_SCOPE=1 Optionally set this to allow Google OAUTH to work","title":"Environment Variables (-e)"},{"location":"images/docker-calibre-web/#volume-mappings-v","text":"Volume Function /config Where calibre-web stores the internal database and config. /books Where your preexisting calibre database is located.","title":"Volume Mappings (-v)"},{"location":"images/docker-calibre-web/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-calibre-web/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-calibre-web/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-calibre-web/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-calibre-web/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-calibre-web/#support-info","text":"Shell access whilst the container is running: docker exec -it calibre-web /bin/bash To monitor the logs of the container in realtime: docker logs -f calibre-web Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' calibre-web Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/calibre-web:latest","title":"Support Info"},{"location":"images/docker-calibre-web/#versions","text":"19.10.22: - Rebase to jammy. Upgrade to s6v3. Clean up build dependencies. 04.11.21: - Update pip arguments to ignore distro installed packages. 24.06.21: - Add note on optional OAUTHLIB_RELAX_TOKEN_SCOPE for Google OAUTH support. 17.05.21: - Add linuxserver wheel index. 10.02.21: - Add libxrandr2 25.01.21: - Add nightly tag 19.01.21: - Add python3-pkg-resources 13.01.21: - Rebase to Ubuntu Focal, see here for troubleshooting armhf. 12.10.20: - Add libxi6 12.07.20: - Add kepubify for arm64v8 05.06.20: - Add kepubify for x86-64 and arm32v7 06.05.20: - Add libxslt1.1 and update ImageMagick policy 19.01.20: - Adding LDAP libs. 13.10.19: - Migrate to Python3. 01.08.19: - Add libxcomposite1. 13.06.19: - Add docker mod to enable optional ebook conversion on x86-64. Add unrar. 02.06.19: - Rebase to Ubuntu Bionic & add Gdrive support. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 23.02.19: - Rebase to alpine 3.9, use repo version of imagemagick. 11.02.19: - Add pipeline logic and multi arch. 03.01.19: - Remove guest user from default app.db. 16.08.18: - Rebase to alpine 3.8. 03.07.18: - New build pushed, all versions below 67 have vulnerability . 05.01.18: - Deprecate cpu_core routine lack of scaling. 06.12.17: - Rebase to alpine 3.7. 27.11.17: - Use cpu core counting routine to speed up build time. 24.07.17: - Curl version for imagemagick. 17.07.17: - Initial release.","title":"Versions"},{"location":"images/docker-calibre/","text":"linuxserver/calibre Calibre is a powerful and easy to use e-book manager. Users say it\u2019s outstanding and a must-have. It\u2019ll allow you to do nearly everything and it takes things a step beyond normal e-book software. It\u2019s also completely free and open source and great for both casual users and computer experts. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/calibre:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Application Setup This image sets up the calibre desktop app and makes its interface available via Guacamole server in the browser. The interface is available at http://your-ip:8080 . By default, there is no password set for the main gui. Optional environment variable PASSWORD will allow setting a password for the user abc . Port 8081 is reserved for Calibre's built-in webserver, which can be enabled within the desktop app settings, and the internal port must be set to 8081 although it will then be available at the host mapped port for external access. You can access advanced features of the Guacamole remote desktop using ctrl + alt + shift enabling you to use remote copy/paste and different languages. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: calibre: image: lscr.io/linuxserver/calibre:latest container_name: calibre security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD= #optional - CLI_ARGS= #optional volumes: - /path/to/data:/config ports: - 8080:8080 - 8081:8081 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=calibre \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD= `#optional` \\ -e CLI_ARGS= `#optional` \\ -p 8080:8080 \\ -p 8081:8081 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/calibre:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Calibre desktop gui. 8081 Calibre webserver gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. PASSWORD= Optionally set a password for the gui. CLI_ARGS= Optionally pass cli start arguments to calibre. Volume Mappings ( -v ) Volume Function /config Where calibre should store its database and library. Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it calibre /bin/bash To monitor the logs of the container in realtime: docker logs -f calibre Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' calibre Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/calibre:latest Versions 19.10.22: - Set the window title to Calibre . Remove websocat as it is now handled properly in the baseimage. 18.10.22: - Deprecate Arch branch. 07.10.22: - Start calibre window maximized. 16.09.22: - Rebase to jammy. 24.07.22: - Add arm64 build for master branch. 11.07.22: - Update dependencies for Calibre 6. 28.05.22: - Rebase to focal. 31.03.22: - Fix umask. 28.02.22: - Add speech support to bionic image. 05.01.22: - Add arch branch for arm platforms. 20.04.21: - Fix the HOME folder. 19.04.21: - Add libnss3 back in. Make sure Calibre can access environment variables. 18.04.21: - Start calibre on container start rather than gui connect. 15.04.21: - Rebase to rdesktop-web baseimage. Deprecate GUAC_USER and GUAC_PASS env vars. Existing users can set the new var PASSWORD for the user abc . 25.09.20: - Switch to python3, add various new dependencies for calibre 5.0. 10.05.19: - Add new env var CLI_ARGS to pass start arguments to calibre. 18.03.19: - Let Calibre access environment variables, add optional umask setting. 23.10.19: - Remove reccomended deps and zenity for character compatibility. 18.10.19: - Add python-xdg. 08.10.19: - Add fonts-wqy-microhei ttf-wqy-zenhei fcitx-rime dependency to resolve issue with Chinese encoding. 04.10.19: - Add libxkbcommon-x11-0 dependency to resolve issue with Calibre 4. 08.08.19: - Add zenity for international character support in dialog boxes. 12.07.19: - Download binary from calibre website instead of github. 29.04.19: - Initial release.","title":"calibre"},{"location":"images/docker-calibre/#linuxservercalibre","text":"Calibre is a powerful and easy to use e-book manager. Users say it\u2019s outstanding and a must-have. It\u2019ll allow you to do nearly everything and it takes things a step beyond normal e-book software. It\u2019s also completely free and open source and great for both casual users and computer experts.","title":"linuxserver/calibre"},{"location":"images/docker-calibre/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/calibre:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-calibre/#application-setup","text":"This image sets up the calibre desktop app and makes its interface available via Guacamole server in the browser. The interface is available at http://your-ip:8080 . By default, there is no password set for the main gui. Optional environment variable PASSWORD will allow setting a password for the user abc . Port 8081 is reserved for Calibre's built-in webserver, which can be enabled within the desktop app settings, and the internal port must be set to 8081 although it will then be available at the host mapped port for external access. You can access advanced features of the Guacamole remote desktop using ctrl + alt + shift enabling you to use remote copy/paste and different languages.","title":"Application Setup"},{"location":"images/docker-calibre/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-calibre/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: calibre: image: lscr.io/linuxserver/calibre:latest container_name: calibre security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD= #optional - CLI_ARGS= #optional volumes: - /path/to/data:/config ports: - 8080:8080 - 8081:8081 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-calibre/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=calibre \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD= `#optional` \\ -e CLI_ARGS= `#optional` \\ -p 8080:8080 \\ -p 8081:8081 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/calibre:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-calibre/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-calibre/#ports-p","text":"Parameter Function 8080 Calibre desktop gui. 8081 Calibre webserver gui.","title":"Ports (-p)"},{"location":"images/docker-calibre/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. PASSWORD= Optionally set a password for the gui. CLI_ARGS= Optionally pass cli start arguments to calibre.","title":"Environment Variables (-e)"},{"location":"images/docker-calibre/#volume-mappings-v","text":"Volume Function /config Where calibre should store its database and library.","title":"Volume Mappings (-v)"},{"location":"images/docker-calibre/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-calibre/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-calibre/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-calibre/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-calibre/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-calibre/#support-info","text":"Shell access whilst the container is running: docker exec -it calibre /bin/bash To monitor the logs of the container in realtime: docker logs -f calibre Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' calibre Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/calibre:latest","title":"Support Info"},{"location":"images/docker-calibre/#versions","text":"19.10.22: - Set the window title to Calibre . Remove websocat as it is now handled properly in the baseimage. 18.10.22: - Deprecate Arch branch. 07.10.22: - Start calibre window maximized. 16.09.22: - Rebase to jammy. 24.07.22: - Add arm64 build for master branch. 11.07.22: - Update dependencies for Calibre 6. 28.05.22: - Rebase to focal. 31.03.22: - Fix umask. 28.02.22: - Add speech support to bionic image. 05.01.22: - Add arch branch for arm platforms. 20.04.21: - Fix the HOME folder. 19.04.21: - Add libnss3 back in. Make sure Calibre can access environment variables. 18.04.21: - Start calibre on container start rather than gui connect. 15.04.21: - Rebase to rdesktop-web baseimage. Deprecate GUAC_USER and GUAC_PASS env vars. Existing users can set the new var PASSWORD for the user abc . 25.09.20: - Switch to python3, add various new dependencies for calibre 5.0. 10.05.19: - Add new env var CLI_ARGS to pass start arguments to calibre. 18.03.19: - Let Calibre access environment variables, add optional umask setting. 23.10.19: - Remove reccomended deps and zenity for character compatibility. 18.10.19: - Add python-xdg. 08.10.19: - Add fonts-wqy-microhei ttf-wqy-zenhei fcitx-rime dependency to resolve issue with Chinese encoding. 04.10.19: - Add libxkbcommon-x11-0 dependency to resolve issue with Calibre 4. 08.08.19: - Add zenity for international character support in dialog boxes. 12.07.19: - Download binary from calibre website instead of github. 29.04.19: - Initial release.","title":"Versions"},{"location":"images/docker-cardigann/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend current users switch to linuxserver/jackett. linuxserver/cardigann Cardigann a server for adding extra indexers to Sonarr, SickRage and CouchPotato via Torznab and TorrentPotato proxies. Behind the scenes Cardigann logs in and runs searches and then transforms the results into a compatible format. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/cardigann should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=cardigann \\ -e PUID=1000 \\ -e PGID=1000 \\ -e SOCKS_PROXY=IP:PORT \\ -e HTTP_PROXY=IP:PORT \\ -p 5060:5060 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/cardigann docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: cardigann: image: linuxserver/cardigann container_name: cardigann environment: - PUID=1000 - PGID=1000 - SOCKS_PROXY=IP:PORT - HTTP_PROXY=IP:PORT volumes: - :/config ports: - 5060:5060 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5060 The port for the Cardigann webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation SOCKS_PROXY=IP:PORT for using a socks proxy (optional) HTTP_PROXY=IP:PORT for using a HTTP proxy (optional) Volume Mappings ( -v ) Volume Function /config Cardigann config User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup Access the webui at :5060 , for more information check out Cardigann . By adding a variable to the run command, SOCKS_PROXY or HTTP_PROXY cardigann can be used with a proxy, eg -e SOCKS_PROXY=localhost:1080 The folder /config/definitions can be used to add additional tracker definitions (for more info see Additional definitions ). Support Info Shell access whilst the container is running: docker exec -it cardigann /bin/bash To monitor the logs of the container in realtime: docker logs -f cardigann Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' cardigann Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/cardigann Versions 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.02.19: - Multi arch images and pipeline build logic 14.01.19: - Add multi arch and pipeline logic 22.08.18: - Rebase to alpine 3.8 06.05.18: - Use buildstage in Dockerfile 06.12.17: - Rebase to alpine 3.7 12.08.17: - Add npm install to build stage 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5 03.11.16: - Compiled using sstamoulis' method 01.11.16: - Initial Release","title":"cardigann"},{"location":"images/docker-cardigann/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend current users switch to linuxserver/jackett.","title":"DEPRECATION NOTICE"},{"location":"images/docker-cardigann/#linuxservercardigann","text":"Cardigann a server for adding extra indexers to Sonarr, SickRage and CouchPotato via Torznab and TorrentPotato proxies. Behind the scenes Cardigann logs in and runs searches and then transforms the results into a compatible format.","title":"linuxserver/cardigann"},{"location":"images/docker-cardigann/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/cardigann should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-cardigann/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-cardigann/#docker","text":"docker create \\ --name=cardigann \\ -e PUID=1000 \\ -e PGID=1000 \\ -e SOCKS_PROXY=IP:PORT \\ -e HTTP_PROXY=IP:PORT \\ -p 5060:5060 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/cardigann","title":"docker"},{"location":"images/docker-cardigann/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: cardigann: image: linuxserver/cardigann container_name: cardigann environment: - PUID=1000 - PGID=1000 - SOCKS_PROXY=IP:PORT - HTTP_PROXY=IP:PORT volumes: - :/config ports: - 5060:5060 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-cardigann/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-cardigann/#ports-p","text":"Parameter Function 5060 The port for the Cardigann webinterface","title":"Ports (-p)"},{"location":"images/docker-cardigann/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation SOCKS_PROXY=IP:PORT for using a socks proxy (optional) HTTP_PROXY=IP:PORT for using a HTTP proxy (optional)","title":"Environment Variables (-e)"},{"location":"images/docker-cardigann/#volume-mappings-v","text":"Volume Function /config Cardigann config","title":"Volume Mappings (-v)"},{"location":"images/docker-cardigann/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-cardigann/#application-setup","text":"Access the webui at :5060 , for more information check out Cardigann . By adding a variable to the run command, SOCKS_PROXY or HTTP_PROXY cardigann can be used with a proxy, eg -e SOCKS_PROXY=localhost:1080 The folder /config/definitions can be used to add additional tracker definitions (for more info see Additional definitions ).","title":"Application Setup"},{"location":"images/docker-cardigann/#support-info","text":"Shell access whilst the container is running: docker exec -it cardigann /bin/bash To monitor the logs of the container in realtime: docker logs -f cardigann Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' cardigann Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/cardigann","title":"Support Info"},{"location":"images/docker-cardigann/#versions","text":"23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.02.19: - Multi arch images and pipeline build logic 14.01.19: - Add multi arch and pipeline logic 22.08.18: - Rebase to alpine 3.8 06.05.18: - Use buildstage in Dockerfile 06.12.17: - Rebase to alpine 3.7 12.08.17: - Add npm install to build stage 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5 03.11.16: - Compiled using sstamoulis' method 01.11.16: - Initial Release","title":"Versions"},{"location":"images/docker-changedetection.io/","text":"linuxserver/changedetection.io Changedetection.io provides free, open-source web page monitoring, notification and change detection. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/changedetection.io:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Webui is accessible at http://SERVERIP:PORT Please note that this image does not contain the Playwright content fetcher due to a lack of support for muslc-based systems. If you require this feature please use Selenium or the official container For more info read the wiki . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: changedetection: image: lscr.io/linuxserver/changedetection.io:latest container_name: changedetection environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - BASE_URL= #optional volumes: - /path/to/appdata/config:/config ports: - 5000:5000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=changedetection.io \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e BASE_URL= `#optional` \\ -p 5000:5000 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/changedetection.io:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5000 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London BASE_URL= Specify the full URL (including protocol) when running behind a reverse proxy Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it changedetection.io /bin/bash To monitor the logs of the container in realtime: docker logs -f changedetection.io Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' changedetection.io Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/changedetection.io:latest Versions 23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 09.10.22: - Add make as build dep to fix pip jq build on armhf. 07.08.22: - Initial release.","title":"changedetection.io"},{"location":"images/docker-changedetection.io/#linuxserverchangedetectionio","text":"Changedetection.io provides free, open-source web page monitoring, notification and change detection.","title":"linuxserver/changedetection.io"},{"location":"images/docker-changedetection.io/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/changedetection.io:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-changedetection.io/#application-setup","text":"Webui is accessible at http://SERVERIP:PORT Please note that this image does not contain the Playwright content fetcher due to a lack of support for muslc-based systems. If you require this feature please use Selenium or the official container For more info read the wiki .","title":"Application Setup"},{"location":"images/docker-changedetection.io/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-changedetection.io/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: changedetection: image: lscr.io/linuxserver/changedetection.io:latest container_name: changedetection environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - BASE_URL= #optional volumes: - /path/to/appdata/config:/config ports: - 5000:5000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-changedetection.io/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=changedetection.io \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e BASE_URL= `#optional` \\ -p 5000:5000 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/changedetection.io:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-changedetection.io/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-changedetection.io/#ports-p","text":"Parameter Function 5000 WebUI","title":"Ports (-p)"},{"location":"images/docker-changedetection.io/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London BASE_URL= Specify the full URL (including protocol) when running behind a reverse proxy","title":"Environment Variables (-e)"},{"location":"images/docker-changedetection.io/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-changedetection.io/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-changedetection.io/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-changedetection.io/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-changedetection.io/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-changedetection.io/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-changedetection.io/#support-info","text":"Shell access whilst the container is running: docker exec -it changedetection.io /bin/bash To monitor the logs of the container in realtime: docker logs -f changedetection.io Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' changedetection.io Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/changedetection.io:latest","title":"Support Info"},{"location":"images/docker-changedetection.io/#versions","text":"23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 09.10.22: - Add make as build dep to fix pip jq build on armhf. 07.08.22: - Initial release.","title":"Versions"},{"location":"images/docker-chevereto/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend alternative images such as: https://github.com/linuxserver/docker-pixapop/ https://github.com/linuxserver/docker-piwigo/ https://github.com/linuxserver/docker-photoshow/ linuxserver/chevereto Chevereto is an image hosting software that allows you to create a beautiful and full-featured image hosting website on your own server. It's your hosting and your rules, so say goodbye to closures and restrictions. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/chevereto:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Chevereto-Free now has a maintainer! ~~Chevereto-Free will be EOL on 2021-12-31 and no new releases will be produced for it. Our container will continue to be updated until at least that date but we cannot make any assurances beyond it.~~ Access the WebUI at :443. For more information, check out Chevereto Free . Chevereto requires a MariaDB database, we have an image available here if you require it. If you are putting Chevereto behind a reverse proxy and need the Real IP to be passed through, edit /config/nginx/site-confs/default, and set set_real_ip_from to match the IP address/address block of your proxy server(s). Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2\" services: chevereto: image: lscr.io/linuxserver/chevereto container_name: chevereto environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data ports: - 80:80 - 443:443 restart: unless-stopped depends_on: - chevereto-db chevereto-db: image: lscr.io/linuxserver/mariadb container_name: chevereto-db environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MYSQL_ROOT_PASSWORD= - MYSQL_DATABASE=chevereto - MYSQL_USER=chevereto - MYSQL_PASSWORD= volumes: - /path/to/config:/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=chevereto \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ= \\ -p 80:80 \\ -p 443:443 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/chevereto:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http gui 443 https gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ= Timezone (i.e., America/New_York) Volume Mappings ( -v ) Volume Function /config config directory volume mapping /data data directory volume mapping Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it chevereto /bin/bash To monitor the logs of the container in realtime: docker logs -f chevereto Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' chevereto Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/chevereto:latest Versions 13.06.22: - Deprecate. 13.11.21: - Add composer to fix missing dependencies. 21.10.21: - Removed deprecation warning, change reposiory links. 22.07.21: - Rebase to Alpine 3.14. 28.08.20: - Initial Release.","title":"chevereto"},{"location":"images/docker-chevereto/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend alternative images such as: https://github.com/linuxserver/docker-pixapop/ https://github.com/linuxserver/docker-piwigo/ https://github.com/linuxserver/docker-photoshow/","title":"DEPRECATION NOTICE"},{"location":"images/docker-chevereto/#linuxserverchevereto","text":"Chevereto is an image hosting software that allows you to create a beautiful and full-featured image hosting website on your own server. It's your hosting and your rules, so say goodbye to closures and restrictions.","title":"linuxserver/chevereto"},{"location":"images/docker-chevereto/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/chevereto:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-chevereto/#application-setup","text":"Chevereto-Free now has a maintainer! ~~Chevereto-Free will be EOL on 2021-12-31 and no new releases will be produced for it. Our container will continue to be updated until at least that date but we cannot make any assurances beyond it.~~ Access the WebUI at :443. For more information, check out Chevereto Free . Chevereto requires a MariaDB database, we have an image available here if you require it. If you are putting Chevereto behind a reverse proxy and need the Real IP to be passed through, edit /config/nginx/site-confs/default, and set set_real_ip_from to match the IP address/address block of your proxy server(s).","title":"Application Setup"},{"location":"images/docker-chevereto/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-chevereto/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2\" services: chevereto: image: lscr.io/linuxserver/chevereto container_name: chevereto environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data ports: - 80:80 - 443:443 restart: unless-stopped depends_on: - chevereto-db chevereto-db: image: lscr.io/linuxserver/mariadb container_name: chevereto-db environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MYSQL_ROOT_PASSWORD= - MYSQL_DATABASE=chevereto - MYSQL_USER=chevereto - MYSQL_PASSWORD= volumes: - /path/to/config:/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-chevereto/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=chevereto \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ= \\ -p 80:80 \\ -p 443:443 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/chevereto:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-chevereto/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-chevereto/#ports-p","text":"Parameter Function 80 http gui 443 https gui","title":"Ports (-p)"},{"location":"images/docker-chevereto/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ= Timezone (i.e., America/New_York)","title":"Environment Variables (-e)"},{"location":"images/docker-chevereto/#volume-mappings-v","text":"Volume Function /config config directory volume mapping /data data directory volume mapping","title":"Volume Mappings (-v)"},{"location":"images/docker-chevereto/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-chevereto/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-chevereto/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-chevereto/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-chevereto/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-chevereto/#support-info","text":"Shell access whilst the container is running: docker exec -it chevereto /bin/bash To monitor the logs of the container in realtime: docker logs -f chevereto Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' chevereto Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/chevereto:latest","title":"Support Info"},{"location":"images/docker-chevereto/#versions","text":"13.06.22: - Deprecate. 13.11.21: - Add composer to fix missing dependencies. 21.10.21: - Removed deprecation warning, change reposiory links. 22.07.21: - Rebase to Alpine 3.14. 28.08.20: - Initial Release.","title":"Versions"},{"location":"images/docker-ci/","text":"Contact information:- Type Address/Details Discord Discord Forum Linuserver.io forum IRC freenode at #linuxserver.io more information at:- IRC Podcast Covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation! Linuxserver.io Podcast linuxserver/ci This container is not meant for public consumption as it is hard coded to LinuxServer endpoints for storage of resulting reports The purpose of this container is to accept environment variables from our build system linuxserver/pipeline-triggers to perform basic continuous integration on the software being built. Usage The container can be run locally, but it is meant to be integrated into the LinuxServer build process: sudo docker run --rm -i \\ -v /var/run/docker.sock:/var/run/docker.sock \\ -e IMAGE=\"linuxserver/\" \\ -e TAGS=\"\" \\ -e META_TAG= \\ -e BASE= \\ -e SECRET_KEY= \\ -e ACCESS_KEY= \\ -e DOCKER_ENV=\"\" \\ -e WEB_AUTH=\"\" \\ -e WEB_PATH=\". Defaults to ''.\" \\ -e S3_REGION= \\ -e S3_BUCKET= \\ -e WEB_SCREENSHOT_DELAY= -e WEB_SCREENSHOT= \\ -e DELAY_START= \\ -e PORT= \\ -e SSL= \\ -e CI_S6_VERBOSITY= -t lsiodev/ci:latest \\ python3 test_build.py The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"ci"},{"location":"images/docker-ci/#contact-information-","text":"Type Address/Details Discord Discord Forum Linuserver.io forum IRC freenode at #linuxserver.io more information at:- IRC Podcast Covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation! Linuxserver.io Podcast","title":"Contact information:-"},{"location":"images/docker-ci/#linuxserverci","text":"This container is not meant for public consumption as it is hard coded to LinuxServer endpoints for storage of resulting reports The purpose of this container is to accept environment variables from our build system linuxserver/pipeline-triggers to perform basic continuous integration on the software being built.","title":"linuxserver/ci"},{"location":"images/docker-ci/#usage","text":"The container can be run locally, but it is meant to be integrated into the LinuxServer build process: sudo docker run --rm -i \\ -v /var/run/docker.sock:/var/run/docker.sock \\ -e IMAGE=\"linuxserver/\" \\ -e TAGS=\"\" \\ -e META_TAG= \\ -e BASE= \\ -e SECRET_KEY= \\ -e ACCESS_KEY= \\ -e DOCKER_ENV=\"\" \\ -e WEB_AUTH=\"\" \\ -e WEB_PATH=\". Defaults to ''.\" \\ -e S3_REGION= \\ -e S3_BUCKET= \\ -e WEB_SCREENSHOT_DELAY= -e WEB_SCREENSHOT= \\ -e DELAY_START= \\ -e PORT= \\ -e SSL= \\ -e CI_S6_VERBOSITY= -t lsiodev/ci:latest \\ python3 test_build.py The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Usage"},{"location":"images/docker-clarkson/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend looking at Hammond as a replacement: https://github.com/akhilrex/hammond linuxserver/clarkson Clarkson is a web-based dashboard application that gives you a neat and clean interface for logging your fuel fill-ups for all of your vehicles. The application has full multi-user support, as well as multiple vehicles per user. Whenever you fill-up your car or motorcycle, keep the receipt and record the data in Clarkson. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/clarkson should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Application Setup Clarkson requires v5.7.* of MySQL and please ensure MySQL is running before starting this container . It is preferred if you create the clarkson schema before initially running the container, then creating a user with granted permissions for the schema. Creating the schema before running the app is important as the \"clarkson\" user will not have permission to create the schema on your behalf. You can, of course, use the \"root\" user, which has the ability to create schemas automatically, but this is not recommended. CREATE SCHEMA `clarkson`; CREATE USER 'clarkson_user' IDENTIFIED BY 'supersecretpassword'; GRANT ALL ON `clarkson`.* TO 'clarkson_user'; Once running, the container will run an initial MySQL migration, which populates the schema with all tables and procedures. The application will start immediately afterwards. You will need to register an initial user, of which will be the admin of the application. All subsequent users will be standard users. You can disable registrations after the fact by recreating the container with the ENABLE_REGISTRATIONS flag set to false . This will not hide the \"Register\" link, but will disable the functionality. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: clarkson: image: lscr.io/linuxserver/clarkson container_name: clarkson environment: - PUID=1000 - PGID=1000 - MYSQL_HOST= - MYSQL_USERNAME= - MYSQL_PASSWORD= - ENABLE_REGISTRATIONS= - TZ=Europe/London ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=clarkson \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_HOST= \\ -e MYSQL_USERNAME= \\ -e MYSQL_PASSWORD= \\ -e ENABLE_REGISTRATIONS= \\ -e TZ=Europe/London \\ -p 3000:3000 \\ --restart unless-stopped \\ lscr.io/linuxserver/clarkson Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation MYSQL_HOST= Points the backend to the MySQL database. This can be either a docker hostname or an IP. MYSQL_USERNAME= The user with access to the clarkson schema. MYSQL_PASSWORD= The password for the user. ENABLE_REGISTRATIONS= Defaults to false . If set to true , allows new users to register. TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it clarkson /bin/bash To monitor the logs of the container in realtime: docker logs -f clarkson Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' clarkson Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/clarkson Versions 19.01.22: - Deprecate. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 23.03.19: - Updating runtime dependancies for the JRE. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 22.08.18: - Rebase to alpine linux 3.8. 19.02.18: - Initial Release.","title":"clarkson"},{"location":"images/docker-clarkson/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend looking at Hammond as a replacement: https://github.com/akhilrex/hammond","title":"DEPRECATION NOTICE"},{"location":"images/docker-clarkson/#linuxserverclarkson","text":"Clarkson is a web-based dashboard application that gives you a neat and clean interface for logging your fuel fill-ups for all of your vehicles. The application has full multi-user support, as well as multiple vehicles per user. Whenever you fill-up your car or motorcycle, keep the receipt and record the data in Clarkson.","title":"linuxserver/clarkson"},{"location":"images/docker-clarkson/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/clarkson should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-clarkson/#application-setup","text":"Clarkson requires v5.7.* of MySQL and please ensure MySQL is running before starting this container . It is preferred if you create the clarkson schema before initially running the container, then creating a user with granted permissions for the schema. Creating the schema before running the app is important as the \"clarkson\" user will not have permission to create the schema on your behalf. You can, of course, use the \"root\" user, which has the ability to create schemas automatically, but this is not recommended. CREATE SCHEMA `clarkson`; CREATE USER 'clarkson_user' IDENTIFIED BY 'supersecretpassword'; GRANT ALL ON `clarkson`.* TO 'clarkson_user'; Once running, the container will run an initial MySQL migration, which populates the schema with all tables and procedures. The application will start immediately afterwards. You will need to register an initial user, of which will be the admin of the application. All subsequent users will be standard users. You can disable registrations after the fact by recreating the container with the ENABLE_REGISTRATIONS flag set to false . This will not hide the \"Register\" link, but will disable the functionality.","title":"Application Setup"},{"location":"images/docker-clarkson/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-clarkson/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: clarkson: image: lscr.io/linuxserver/clarkson container_name: clarkson environment: - PUID=1000 - PGID=1000 - MYSQL_HOST= - MYSQL_USERNAME= - MYSQL_PASSWORD= - ENABLE_REGISTRATIONS= - TZ=Europe/London ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-clarkson/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=clarkson \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_HOST= \\ -e MYSQL_USERNAME= \\ -e MYSQL_PASSWORD= \\ -e ENABLE_REGISTRATIONS= \\ -e TZ=Europe/London \\ -p 3000:3000 \\ --restart unless-stopped \\ lscr.io/linuxserver/clarkson","title":"docker cli (click here for more info)"},{"location":"images/docker-clarkson/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-clarkson/#ports-p","text":"Parameter Function 3000 WebUI","title":"Ports (-p)"},{"location":"images/docker-clarkson/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation MYSQL_HOST= Points the backend to the MySQL database. This can be either a docker hostname or an IP. MYSQL_USERNAME= The user with access to the clarkson schema. MYSQL_PASSWORD= The password for the user. ENABLE_REGISTRATIONS= Defaults to false . If set to true , allows new users to register. TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-clarkson/#volume-mappings-v","text":"Volume Function","title":"Volume Mappings (-v)"},{"location":"images/docker-clarkson/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-clarkson/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-clarkson/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-clarkson/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-clarkson/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-clarkson/#support-info","text":"Shell access whilst the container is running: docker exec -it clarkson /bin/bash To monitor the logs of the container in realtime: docker logs -f clarkson Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' clarkson Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/clarkson","title":"Support Info"},{"location":"images/docker-clarkson/#versions","text":"19.01.22: - Deprecate. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 23.03.19: - Updating runtime dependancies for the JRE. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 22.08.18: - Rebase to alpine linux 3.8. 19.02.18: - Initial Release.","title":"Versions"},{"location":"images/docker-cloud9/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend looking at our code-server and openvscode-server containers as potential replacements. https://github.com/linuxserver/docker-code-server https://github.com/linuxserver/docker-openvscode-server linuxserver/cloud9 Cloud9 Cloud9 is a complete web based IDE with terminal access. This container is for running their core SDK locally and developing plugins. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/cloud9:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Docker and Compose environment pre-installed go \u2705 Basic Golang environment pre-installed nodejs \u2705 Current stable NodeJS/NPM environment pre-installed python \u2705 Current Python3 environment pre-installed ruby \u2705 Current Ruby environment pre-installed Application Setup Access the webui at http://your-ip:8000, for more information check out here . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: cloud9: image: lscr.io/linuxserver/cloud9:latest container_name: cloud9 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - GITURL=https://github.com/linuxserver/docker-cloud9.git #optional - USERNAME= #optional - PASSWORD= #optional volumes: - /path/to/your/code:/code #optional - /var/run/docker.sock:/var/run/docker.sock #optional ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=cloud9 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e GITURL=https://github.com/linuxserver/docker-cloud9.git `#optional` \\ -e USERNAME= `#optional` \\ -e PASSWORD= `#optional` \\ -p 8000:8000 \\ -v /path/to/your/code:/code `#optional` \\ -v /var/run/docker.sock:/var/run/docker.sock `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/cloud9:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 The port for the Cloud9 web interface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London GITURL=https://github.com/linuxserver/docker-cloud9.git Specify a git repo to checkout on first startup USERNAME= Optionally specify a username for http auth PASSWORD= Optionally specify a password for http auth (if USERNAME and PASSWORD are not set, there will be no http auth) Volume Mappings ( -v ) Volume Function /code Optionally if you want to mount up a local folder of code instead of checking out /var/run/docker.sock Needed if you plan to use Docker or compose commands Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it cloud9 /bin/bash To monitor the logs of the container in realtime: docker logs -f cloud9 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' cloud9 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/cloud9:latest Versions 23.06.22: - Deprecate image. 24.06.21: - Use prebuilt compose binaries for the linuxserver repo. 07.02.20: - Add optional http auth. 02.06.19: - Initial Release.","title":"cloud9"},{"location":"images/docker-cloud9/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend looking at our code-server and openvscode-server containers as potential replacements. https://github.com/linuxserver/docker-code-server https://github.com/linuxserver/docker-openvscode-server","title":"DEPRECATION NOTICE"},{"location":"images/docker-cloud9/#linuxservercloud9","text":"Cloud9 Cloud9 is a complete web based IDE with terminal access. This container is for running their core SDK locally and developing plugins.","title":"linuxserver/cloud9"},{"location":"images/docker-cloud9/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/cloud9:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-cloud9/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Docker and Compose environment pre-installed go \u2705 Basic Golang environment pre-installed nodejs \u2705 Current stable NodeJS/NPM environment pre-installed python \u2705 Current Python3 environment pre-installed ruby \u2705 Current Ruby environment pre-installed","title":"Version Tags"},{"location":"images/docker-cloud9/#application-setup","text":"Access the webui at http://your-ip:8000, for more information check out here .","title":"Application Setup"},{"location":"images/docker-cloud9/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-cloud9/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: cloud9: image: lscr.io/linuxserver/cloud9:latest container_name: cloud9 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - GITURL=https://github.com/linuxserver/docker-cloud9.git #optional - USERNAME= #optional - PASSWORD= #optional volumes: - /path/to/your/code:/code #optional - /var/run/docker.sock:/var/run/docker.sock #optional ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-cloud9/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=cloud9 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e GITURL=https://github.com/linuxserver/docker-cloud9.git `#optional` \\ -e USERNAME= `#optional` \\ -e PASSWORD= `#optional` \\ -p 8000:8000 \\ -v /path/to/your/code:/code `#optional` \\ -v /var/run/docker.sock:/var/run/docker.sock `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/cloud9:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-cloud9/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-cloud9/#ports-p","text":"Parameter Function 8000 The port for the Cloud9 web interface","title":"Ports (-p)"},{"location":"images/docker-cloud9/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London GITURL=https://github.com/linuxserver/docker-cloud9.git Specify a git repo to checkout on first startup USERNAME= Optionally specify a username for http auth PASSWORD= Optionally specify a password for http auth (if USERNAME and PASSWORD are not set, there will be no http auth)","title":"Environment Variables (-e)"},{"location":"images/docker-cloud9/#volume-mappings-v","text":"Volume Function /code Optionally if you want to mount up a local folder of code instead of checking out /var/run/docker.sock Needed if you plan to use Docker or compose commands","title":"Volume Mappings (-v)"},{"location":"images/docker-cloud9/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-cloud9/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-cloud9/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-cloud9/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-cloud9/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-cloud9/#support-info","text":"Shell access whilst the container is running: docker exec -it cloud9 /bin/bash To monitor the logs of the container in realtime: docker logs -f cloud9 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' cloud9 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/cloud9:latest","title":"Support Info"},{"location":"images/docker-cloud9/#versions","text":"23.06.22: - Deprecate image. 24.06.21: - Use prebuilt compose binaries for the linuxserver repo. 07.02.20: - Add optional http auth. 02.06.19: - Initial Release.","title":"Versions"},{"location":"images/docker-code-server/","text":"linuxserver/code-server Code-server is VS Code running on a remote server, accessible through the browser. - Code on your Chromebook, tablet, and laptop with a consistent dev environment. - If you have a Windows or Mac workstation, more easily develop for Linux. - Take advantage of large cloud servers to speed up tests, compilations, downloads, and more. - Preserve battery life when you're on the go. - All intensive computation runs on your server. - You're no longer running excess instances of Chrome. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/code-server:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at http://:8443 . For github integration, drop your ssh key in to /config/.ssh . Then open a terminal from the top menu and set your github username and email via the following commands git config --global user.name \"username\" git config --global user.email \"email address\" Hashed code-server password How to create the hashed password . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: code-server: image: lscr.io/linuxserver/code-server:latest container_name: code-server environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD=password #optional - HASHED_PASSWORD= #optional - SUDO_PASSWORD=password #optional - SUDO_PASSWORD_HASH= #optional - PROXY_DOMAIN=code-server.my.domain #optional - DEFAULT_WORKSPACE=/config/workspace #optional volumes: - /path/to/appdata/config:/config ports: - 8443:8443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=code-server \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD=password `#optional` \\ -e HASHED_PASSWORD= `#optional` \\ -e SUDO_PASSWORD=password `#optional` \\ -e SUDO_PASSWORD_HASH= `#optional` \\ -e PROXY_DOMAIN=code-server.my.domain `#optional` \\ -e DEFAULT_WORKSPACE=/config/workspace `#optional` \\ -p 8443:8443 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/code-server:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8443 web gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PASSWORD=password Optional web gui password, if PASSWORD or HASHED_PASSWORD is not provided, there will be no auth. HASHED_PASSWORD= Optional web gui password, overrides PASSWORD , instructions on how to create it is below. SUDO_PASSWORD=password If this optional variable is set, user will have sudo access in the code-server terminal with the specified password. SUDO_PASSWORD_HASH= Optionally set sudo password via hash (takes priority over SUDO_PASSWORD var). Format is $type$salt$hashed . PROXY_DOMAIN=code-server.my.domain If this optional variable is set, this domain will be proxied for subdomain proxying. See Documentation DEFAULT_WORKSPACE=/config/workspace If this optional variable is set, code-server will open this directory by default Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it code-server /bin/bash To monitor the logs of the container in realtime: docker logs -f code-server Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' code-server Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/code-server:latest Versions 05.10.22: - Install recommended deps to maintain parity with the older images. 29.09.22: - Rebase to jammy, switch to s6v3. Fix chown logic to skip /config/workspace contents. 20.02.22: - Install using the official tarballs. 29.12.21: - Add install-extension as a helper for mods to install extensions. 06.12.21: - Add DEFAULT_WORKSPACE env var. 29.11.21: - Rebase to Ubuntu focal. 16.09.21: - Fix slow chown on large workspace (contents of workspace folder no longer chowned). 11.07.21: - Bump node to 14 to fix builds 08.05.21: - Fix doc link 04.02.20: - Allow setting gui password via hash using env var HASHED_PASSWORD . 23.12.20: - Allow setting sudo password via hash using env var SUDO_PASSWORD_HASH . 29.05.20: - Add --domain-proxy support. 21.05.20: - Shrink images, install via yarn, fix arm32v7 build. 18.05.20: - Switch to multi-arch images, install via npm. 29.04.20: - Update start arguments. 01.04.20: - Structural changes required for v3. 17.01.20: - Fix artifact url retrieval from github. 24.10.19: - Upgrade to v2 builds. 28.09.19: - Update project logo. 21.09.19: - Add development builds/tag. 09.07.19: - Add optional sudo access. 01.07.19: - Add nano. 24.06.19: - Initial Release.","title":"code-server"},{"location":"images/docker-code-server/#linuxservercode-server","text":"Code-server is VS Code running on a remote server, accessible through the browser. - Code on your Chromebook, tablet, and laptop with a consistent dev environment. - If you have a Windows or Mac workstation, more easily develop for Linux. - Take advantage of large cloud servers to speed up tests, compilations, downloads, and more. - Preserve battery life when you're on the go. - All intensive computation runs on your server. - You're no longer running excess instances of Chrome.","title":"linuxserver/code-server"},{"location":"images/docker-code-server/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/code-server:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-code-server/#application-setup","text":"Access the webui at http://:8443 . For github integration, drop your ssh key in to /config/.ssh . Then open a terminal from the top menu and set your github username and email via the following commands git config --global user.name \"username\" git config --global user.email \"email address\"","title":"Application Setup"},{"location":"images/docker-code-server/#hashed-code-server-password","text":"How to create the hashed password .","title":"Hashed code-server password"},{"location":"images/docker-code-server/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-code-server/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: code-server: image: lscr.io/linuxserver/code-server:latest container_name: code-server environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD=password #optional - HASHED_PASSWORD= #optional - SUDO_PASSWORD=password #optional - SUDO_PASSWORD_HASH= #optional - PROXY_DOMAIN=code-server.my.domain #optional - DEFAULT_WORKSPACE=/config/workspace #optional volumes: - /path/to/appdata/config:/config ports: - 8443:8443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-code-server/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=code-server \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD=password `#optional` \\ -e HASHED_PASSWORD= `#optional` \\ -e SUDO_PASSWORD=password `#optional` \\ -e SUDO_PASSWORD_HASH= `#optional` \\ -e PROXY_DOMAIN=code-server.my.domain `#optional` \\ -e DEFAULT_WORKSPACE=/config/workspace `#optional` \\ -p 8443:8443 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/code-server:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-code-server/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-code-server/#ports-p","text":"Parameter Function 8443 web gui","title":"Ports (-p)"},{"location":"images/docker-code-server/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PASSWORD=password Optional web gui password, if PASSWORD or HASHED_PASSWORD is not provided, there will be no auth. HASHED_PASSWORD= Optional web gui password, overrides PASSWORD , instructions on how to create it is below. SUDO_PASSWORD=password If this optional variable is set, user will have sudo access in the code-server terminal with the specified password. SUDO_PASSWORD_HASH= Optionally set sudo password via hash (takes priority over SUDO_PASSWORD var). Format is $type$salt$hashed . PROXY_DOMAIN=code-server.my.domain If this optional variable is set, this domain will be proxied for subdomain proxying. See Documentation DEFAULT_WORKSPACE=/config/workspace If this optional variable is set, code-server will open this directory by default","title":"Environment Variables (-e)"},{"location":"images/docker-code-server/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-code-server/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-code-server/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-code-server/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-code-server/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-code-server/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-code-server/#support-info","text":"Shell access whilst the container is running: docker exec -it code-server /bin/bash To monitor the logs of the container in realtime: docker logs -f code-server Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' code-server Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/code-server:latest","title":"Support Info"},{"location":"images/docker-code-server/#versions","text":"05.10.22: - Install recommended deps to maintain parity with the older images. 29.09.22: - Rebase to jammy, switch to s6v3. Fix chown logic to skip /config/workspace contents. 20.02.22: - Install using the official tarballs. 29.12.21: - Add install-extension as a helper for mods to install extensions. 06.12.21: - Add DEFAULT_WORKSPACE env var. 29.11.21: - Rebase to Ubuntu focal. 16.09.21: - Fix slow chown on large workspace (contents of workspace folder no longer chowned). 11.07.21: - Bump node to 14 to fix builds 08.05.21: - Fix doc link 04.02.20: - Allow setting gui password via hash using env var HASHED_PASSWORD . 23.12.20: - Allow setting sudo password via hash using env var SUDO_PASSWORD_HASH . 29.05.20: - Add --domain-proxy support. 21.05.20: - Shrink images, install via yarn, fix arm32v7 build. 18.05.20: - Switch to multi-arch images, install via npm. 29.04.20: - Update start arguments. 01.04.20: - Structural changes required for v3. 17.01.20: - Fix artifact url retrieval from github. 24.10.19: - Upgrade to v2 builds. 28.09.19: - Update project logo. 21.09.19: - Add development builds/tag. 09.07.19: - Add optional sudo access. 01.07.19: - Add nano. 24.06.19: - Initial Release.","title":"Versions"},{"location":"images/docker-codiad/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. PLEASE MIGRATE TO CLOUD9 IF POSSIBLE linuxserver/cloud9 linuxserver/codiad Codiad is a web-based IDE framework with a small footprint and minimal requirements. We have added a few plugins. More can be added in the marketplace in the WebUI. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/codiad should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=codiad \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/codiad docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: codiad: image: linuxserver/codiad container_name: codiad environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where Codiad stores data. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Support Info Shell access whilst the container is running: docker exec -it codiad /bin/bash To monitor the logs of the container in realtime: docker logs -f codiad Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' codiad Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/codiad Versions 10.06.19: - Deprecate Image. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9, adding ssh client. 16.01.19: - Add pipeline logic and multi arch. 26.09.18: - Add sed to init file to configure projects folder correctly. 04.09.18: - Rebase to alpine linux 3.8. 09.01.18: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 18.02.17: - Rebase to alpine linux 3.5. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 06.11.15: - Initial Release.","title":"codiad"},{"location":"images/docker-codiad/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. PLEASE MIGRATE TO CLOUD9 IF POSSIBLE linuxserver/cloud9","title":"DEPRECATION NOTICE"},{"location":"images/docker-codiad/#linuxservercodiad","text":"Codiad is a web-based IDE framework with a small footprint and minimal requirements. We have added a few plugins. More can be added in the marketplace in the WebUI.","title":"linuxserver/codiad"},{"location":"images/docker-codiad/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/codiad should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-codiad/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-codiad/#docker","text":"docker create \\ --name=codiad \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/codiad","title":"docker"},{"location":"images/docker-codiad/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: codiad: image: linuxserver/codiad container_name: codiad environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-codiad/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-codiad/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-codiad/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-codiad/#volume-mappings-v","text":"Volume Function /config Where Codiad stores data.","title":"Volume Mappings (-v)"},{"location":"images/docker-codiad/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-codiad/#support-info","text":"Shell access whilst the container is running: docker exec -it codiad /bin/bash To monitor the logs of the container in realtime: docker logs -f codiad Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' codiad Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/codiad","title":"Support Info"},{"location":"images/docker-codiad/#versions","text":"10.06.19: - Deprecate Image. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9, adding ssh client. 16.01.19: - Add pipeline logic and multi arch. 26.09.18: - Add sed to init file to configure projects folder correctly. 04.09.18: - Rebase to alpine linux 3.8. 09.01.18: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 18.02.17: - Rebase to alpine linux 3.5. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 06.11.15: - Initial Release.","title":"Versions"},{"location":"images/docker-codimd/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/codimd Codimd gives you access to all your files wherever you are. CodiMD is a real-time, multi-platform collaborative markdown note editor. This means that you can write notes with other people on your desktop, tablet or even on the phone. You can sign-in via multiple auth providers like Facebook, Twitter, GitHub and many more on the homepage. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/codimd should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. version: \"3\" services: mariadb: image: linuxserver/mariadb:latest container_name: codimd_mariadb restart: always volumes: - :/config environment: - MYSQL_ROOT_PASSWORD= - MYSQL_DATABASE=codimd - MYSQL_USER=codimd - MYSQL_PASSWORD= - PGID=1000 - PUID=1000 - TZ=Europe/London codimd: image: linuxserver/codimd:latest container_name: codimd restart: always depends_on: - mariadb volumes: - :/config environment: - DB_HOST=mariadb - DB_USER=codimd - DB_PASS= - DB_NAME=codimd - DB_PORT=3306 - PGID=1000 - PUID=1000 - TZ=Europe/London ports: - \"3000:3000\" docker cli docker run -d \\ --name=codimd \\ -e PUID=1000 \\ -e PGID=1000 \\ -e DB_HOST= \\ -e DB_PORT=3306 \\ -e DB_USER=codimd \\ -e DB_PASS= \\ -e DB_NAME=codimd \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/codimd Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 If you wish to access this container from http://{IP}:${PORT}` this must be left unchanged. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation DB_HOST= Host address of mysql database DB_PORT=3306 Port to access mysql database default is 3306 DB_USER=codimd Database user DB_PASS= Database password DB_NAME=codimd Database name TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config CodiMD config and configurable files Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup THIS IMAGE IS DEPRECATED. CodiMD is rebranded as HedgeDoc and the new docker image is at linuxserver/hedgedoc . CodiMD web interface can be accessed http://${IP}:3000/ , if you want to use a custom domain or anything besides port 3000 you will need to leverage their env settings for callbacks: (specifically for CMD_DOMAIN and CMD_URL_ADDPORT) Full list of CodiMD options For convience we provide a working example using Mysql as a backend in this document, if you do not wish to use our custom environment values or a Mysql database backend feel free to leverage any of the settings laid out in the link above. To run behind a reverse proxy we have a preconfigured config using docker networking included in our LetsEncrypt image and you can read how to use this in the Reverse Proxy Confs repository Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it codimd /bin/bash To monitor the logs of the container in realtime: docker logs -f codimd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' codimd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/codimd Versions 22.12.20: - Deprecate image in favor of the new rebranded image at linuxserver/hedgedoc . 23.05.19: - Initial release","title":"codimd"},{"location":"images/docker-codimd/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-codimd/#linuxservercodimd","text":"Codimd gives you access to all your files wherever you are. CodiMD is a real-time, multi-platform collaborative markdown note editor. This means that you can write notes with other people on your desktop, tablet or even on the phone. You can sign-in via multiple auth providers like Facebook, Twitter, GitHub and many more on the homepage.","title":"linuxserver/codimd"},{"location":"images/docker-codimd/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/codimd should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-codimd/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-codimd/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. version: \"3\" services: mariadb: image: linuxserver/mariadb:latest container_name: codimd_mariadb restart: always volumes: - :/config environment: - MYSQL_ROOT_PASSWORD= - MYSQL_DATABASE=codimd - MYSQL_USER=codimd - MYSQL_PASSWORD= - PGID=1000 - PUID=1000 - TZ=Europe/London codimd: image: linuxserver/codimd:latest container_name: codimd restart: always depends_on: - mariadb volumes: - :/config environment: - DB_HOST=mariadb - DB_USER=codimd - DB_PASS= - DB_NAME=codimd - DB_PORT=3306 - PGID=1000 - PUID=1000 - TZ=Europe/London ports: - \"3000:3000\"","title":"docker-compose (recommended)"},{"location":"images/docker-codimd/#docker-cli","text":"docker run -d \\ --name=codimd \\ -e PUID=1000 \\ -e PGID=1000 \\ -e DB_HOST= \\ -e DB_PORT=3306 \\ -e DB_USER=codimd \\ -e DB_PASS= \\ -e DB_NAME=codimd \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/codimd","title":"docker cli"},{"location":"images/docker-codimd/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-codimd/#ports-p","text":"Parameter Function 3000 If you wish to access this container from http://{IP}:${PORT}` this must be left unchanged.","title":"Ports (-p)"},{"location":"images/docker-codimd/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation DB_HOST= Host address of mysql database DB_PORT=3306 Port to access mysql database default is 3306 DB_USER=codimd Database user DB_PASS= Database password DB_NAME=codimd Database name TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-codimd/#volume-mappings-v","text":"Volume Function /config CodiMD config and configurable files","title":"Volume Mappings (-v)"},{"location":"images/docker-codimd/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-codimd/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-codimd/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-codimd/#application-setup","text":"THIS IMAGE IS DEPRECATED. CodiMD is rebranded as HedgeDoc and the new docker image is at linuxserver/hedgedoc . CodiMD web interface can be accessed http://${IP}:3000/ , if you want to use a custom domain or anything besides port 3000 you will need to leverage their env settings for callbacks: (specifically for CMD_DOMAIN and CMD_URL_ADDPORT) Full list of CodiMD options For convience we provide a working example using Mysql as a backend in this document, if you do not wish to use our custom environment values or a Mysql database backend feel free to leverage any of the settings laid out in the link above. To run behind a reverse proxy we have a preconfigured config using docker networking included in our LetsEncrypt image and you can read how to use this in the Reverse Proxy Confs repository","title":"Application Setup"},{"location":"images/docker-codimd/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-codimd/#support-info","text":"Shell access whilst the container is running: docker exec -it codimd /bin/bash To monitor the logs of the container in realtime: docker logs -f codimd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' codimd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/codimd","title":"Support Info"},{"location":"images/docker-codimd/#versions","text":"22.12.20: - Deprecate image in favor of the new rebranded image at linuxserver/hedgedoc . 23.05.19: - Initial release","title":"Versions"},{"location":"images/docker-cops/","text":"linuxserver/cops Cops by S\u00e9bastien Lucas, stands for Calibre OPDS (and HTML) Php Server. COPS links to your Calibre library database and allows downloading and emailing of books directly from a web browser and provides a OPDS feed to connect to your devices. Changes in your Calibre library are reflected immediately in your COPS pages. See : COPS's home for more details. Don't forget to check the Wiki . Why? (taken from the author's site) In my opinion Calibre is a marvelous tool but is too big and has too much dependencies to be used for its content server. That's the main reason why I coded this OPDS server. I needed a simple tool to be installed on a small server (Seagate Dockstar in my case). I initially thought of Calibre2OPDS but as it generate static file no search was possible. Later I added an simple HTML catalog that should be usable on my Kobo. So COPS's main advantages are : * No need for many dependencies. * No need for a lot of CPU or RAM. * Not much code. * Search is available. * With Dropbox / owncloud it's very easy to have an up to date OPDS server. * It was fun to code. If you want to use the OPDS feed don't forget to specify feed.php at the end of your URL. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/cops:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Unlike other implementations of COPS in a docker container, the linuxserver version gives you access to config_local.php in /config to customise your install to suit your needs, including details of your email account etc to enable emailing of books, it also includes the dependencies required to directly view epub books in your browser. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: cops: image: lscr.io/linuxserver/cops:latest container_name: cops environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/books ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=cops \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ -v :/books \\ --restart unless-stopped \\ lscr.io/linuxserver/cops:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config COPS Application Data. /books Calibre metadata.db location. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it cops /bin/bash To monitor the logs of the container in realtime: docker logs -f cops Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' cops Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/cops:latest Versions 22.11.20: - Pin composer version to 1.10.17. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 27.02.19: - Upgrade packages during install to prevent mismatch with baseimage. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Add multiarch and pipeline logic. 21.08.18: - Rebase to alpine 3.8. 02.07.18: - Add php7-ctype dependency. 08.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 03.04.17: - Add composer packages, reduce layers. 02.04.17: - Updated to version 1.1.0. 05.02.17: - Updated to Alpine 3.5 & PHP7. 24.10.16: - Updated to implement user based config. 24.10.16: - Updated to version 1.0.1. 14.10.16: - Add version layer information. 28.09.16: - Add php5-zlib. 11.09.16: - Add layer badges to README. 29.08.16: - Add php5-opcache. 28.08.16: - Add badges to README. 12.08.16: - Initial Release.","title":"cops"},{"location":"images/docker-cops/#linuxservercops","text":"Cops by S\u00e9bastien Lucas, stands for Calibre OPDS (and HTML) Php Server. COPS links to your Calibre library database and allows downloading and emailing of books directly from a web browser and provides a OPDS feed to connect to your devices. Changes in your Calibre library are reflected immediately in your COPS pages. See : COPS's home for more details. Don't forget to check the Wiki .","title":"linuxserver/cops"},{"location":"images/docker-cops/#why-taken-from-the-authors-site","text":"In my opinion Calibre is a marvelous tool but is too big and has too much dependencies to be used for its content server. That's the main reason why I coded this OPDS server. I needed a simple tool to be installed on a small server (Seagate Dockstar in my case). I initially thought of Calibre2OPDS but as it generate static file no search was possible. Later I added an simple HTML catalog that should be usable on my Kobo. So COPS's main advantages are : * No need for many dependencies. * No need for a lot of CPU or RAM. * Not much code. * Search is available. * With Dropbox / owncloud it's very easy to have an up to date OPDS server. * It was fun to code. If you want to use the OPDS feed don't forget to specify feed.php at the end of your URL.","title":"Why? (taken from the author's site)"},{"location":"images/docker-cops/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/cops:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-cops/#application-setup","text":"Unlike other implementations of COPS in a docker container, the linuxserver version gives you access to config_local.php in /config to customise your install to suit your needs, including details of your email account etc to enable emailing of books, it also includes the dependencies required to directly view epub books in your browser.","title":"Application Setup"},{"location":"images/docker-cops/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-cops/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: cops: image: lscr.io/linuxserver/cops:latest container_name: cops environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/books ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-cops/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=cops \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ -v :/books \\ --restart unless-stopped \\ lscr.io/linuxserver/cops:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-cops/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-cops/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-cops/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-cops/#volume-mappings-v","text":"Volume Function /config COPS Application Data. /books Calibre metadata.db location.","title":"Volume Mappings (-v)"},{"location":"images/docker-cops/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-cops/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-cops/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-cops/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-cops/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-cops/#support-info","text":"Shell access whilst the container is running: docker exec -it cops /bin/bash To monitor the logs of the container in realtime: docker logs -f cops Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' cops Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/cops:latest","title":"Support Info"},{"location":"images/docker-cops/#versions","text":"22.11.20: - Pin composer version to 1.10.17. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 27.02.19: - Upgrade packages during install to prevent mismatch with baseimage. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Add multiarch and pipeline logic. 21.08.18: - Rebase to alpine 3.8. 02.07.18: - Add php7-ctype dependency. 08.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 03.04.17: - Add composer packages, reduce layers. 02.04.17: - Updated to version 1.1.0. 05.02.17: - Updated to Alpine 3.5 & PHP7. 24.10.16: - Updated to implement user based config. 24.10.16: - Updated to version 1.0.1. 14.10.16: - Add version layer information. 28.09.16: - Add php5-zlib. 11.09.16: - Add layer badges to README. 29.08.16: - Add php5-opcache. 28.08.16: - Add badges to README. 12.08.16: - Initial Release.","title":"Versions"},{"location":"images/docker-couchpotato/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. This project is no longer maintained upstream and we will no longer be updating this image. For an alternative try: https://github.com/linuxserver/docker-radarr linuxserver/couchpotato Couchpotato is an automatic NZB and torrent downloader. You can keep a movies I want list and it will search for NZBs/torrents of these movies every X hours. Once a movie is found, it will send it to SABnzbd or download the torrent to a specified directory. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/couchpotato should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Application Setup Access the webui at :5050 , for more information check out CouchPotato . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: couchpotato: image: lscr.io/linuxserver/couchpotato container_name: couchpotato environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/downloads:/downloads - /path/to/movies:/movies ports: - 5050:5050 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=couchpotato \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5050:5050 \\ -v /path/to/appdata/config:/config \\ -v /path/to/downloads:/downloads \\ -v /path/to/movies:/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/couchpotato Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5050 http gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Couchpotato Application Data. /downloads Downloads Folder. /movies Movie Share. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it couchpotato /bin/bash To monitor the logs of the container in realtime: docker logs -f couchpotato Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' couchpotato Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/couchpotato Versions 29.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.01.21: - Rebasing to alpine 3.13. 10.06.19: - Add back unrar & unzip that were accidentally left out during rebase. 06.06.19: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Multi-arch builds. 16.08.18: - Rebase to alpine 3.8. 06.11.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime, add UMASK_SET variable. 12.07.17: - Add inspect commands to README, move to jenkins build and push 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5. 11.11.16: - Stop cp logging to docker log (they are accessible in the webui and the config folder). 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 12.11.15: - Misc Code Cleanup. 02.10.15: - Change to python baseimage. 28.07.15: - Updated to latest baseimage (for testing), and a fix to autoupdate.","title":"couchpotato"},{"location":"images/docker-couchpotato/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. This project is no longer maintained upstream and we will no longer be updating this image. For an alternative try: https://github.com/linuxserver/docker-radarr","title":"DEPRECATION NOTICE"},{"location":"images/docker-couchpotato/#linuxservercouchpotato","text":"Couchpotato is an automatic NZB and torrent downloader. You can keep a movies I want list and it will search for NZBs/torrents of these movies every X hours. Once a movie is found, it will send it to SABnzbd or download the torrent to a specified directory.","title":"linuxserver/couchpotato"},{"location":"images/docker-couchpotato/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/couchpotato should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-couchpotato/#application-setup","text":"Access the webui at :5050 , for more information check out CouchPotato .","title":"Application Setup"},{"location":"images/docker-couchpotato/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-couchpotato/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: couchpotato: image: lscr.io/linuxserver/couchpotato container_name: couchpotato environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/downloads:/downloads - /path/to/movies:/movies ports: - 5050:5050 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-couchpotato/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=couchpotato \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5050:5050 \\ -v /path/to/appdata/config:/config \\ -v /path/to/downloads:/downloads \\ -v /path/to/movies:/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/couchpotato","title":"docker cli (click here for more info)"},{"location":"images/docker-couchpotato/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-couchpotato/#ports-p","text":"Parameter Function 5050 http gui","title":"Ports (-p)"},{"location":"images/docker-couchpotato/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-couchpotato/#volume-mappings-v","text":"Volume Function /config Couchpotato Application Data. /downloads Downloads Folder. /movies Movie Share.","title":"Volume Mappings (-v)"},{"location":"images/docker-couchpotato/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-couchpotato/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-couchpotato/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-couchpotato/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-couchpotato/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-couchpotato/#support-info","text":"Shell access whilst the container is running: docker exec -it couchpotato /bin/bash To monitor the logs of the container in realtime: docker logs -f couchpotato Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' couchpotato Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/couchpotato","title":"Support Info"},{"location":"images/docker-couchpotato/#versions","text":"29.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.01.21: - Rebasing to alpine 3.13. 10.06.19: - Add back unrar & unzip that were accidentally left out during rebase. 06.06.19: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Multi-arch builds. 16.08.18: - Rebase to alpine 3.8. 06.11.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime, add UMASK_SET variable. 12.07.17: - Add inspect commands to README, move to jenkins build and push 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5. 11.11.16: - Stop cp logging to docker log (they are accessible in the webui and the config folder). 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 12.11.15: - Misc Code Cleanup. 02.10.15: - Change to python baseimage. 28.07.15: - Updated to latest baseimage (for testing), and a fix to autoupdate.","title":"Versions"},{"location":"images/docker-daapd/","text":"linuxserver/daapd Daapd (iTunes) media server with support for AirPlay devices, Apple Remote (and compatibles), Chromecast, MPD and internet radio. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/daapd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Map your music folder, open up itunes on the same LAN to see your music there. The web interface is available at http://:3689 For further setup options of remotes etc, check out the daapd website, Owntone . Enable spotify connect server Enable the spotify connect server by creating a pipe named 'spotify' in the root of your mounted music folder (not possible on most network mounts): mkfifo /spotify The spotify connect server should show up as the 'forked-daapd' device in your Spotify application. It is recommended to set the pipe_autostart option to true in your forked-daapd config. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: daapd: image: lscr.io/linuxserver/daapd:latest container_name: daapd network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/music restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=daapd \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v :/config \\ -v :/music \\ --restart unless-stopped \\ lscr.io/linuxserver/daapd:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Networking ( --net ) Parameter Function --net=host Shares host networking with container. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where daapd server stores its config and dbase files. /music Map to your music folder. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it daapd /bin/bash To monitor the logs of the container in realtime: docker logs -f daapd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' daapd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/daapd:latest Versions 31.05.22: - Make sure the user has access to the audio device. 31.05.22: - Add new deps, flex and bison. 12.02.22: - Rebase to Alpine 3.15. 14.09.21: - Enabled librespot. Disabled spotify on ARMv7 10.07.21: - Change of paths to work with the new package name, OwnTone. 02.04.21: - Update upstream repo, again. 30.03.21: - Update upstream repo. 06.10.20: - Enabled Spotify on Alpine 3.12 for X86_64 and ARMv7. 01.06.20: - Rebasing to alpine 3.12. 16.01.20: - Rebase to alpine linux 3.11 and build antlr3c from source. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 14.01.19: - Add pipeline logic and multi arch. 20.08.18: - Rebase to alpine linux 3.8. 09.06.18: - Use buildstage and update dependencies. 05.03.18: - Use updated configure ac and disable avcodecsend to hopefully mitigate crashes with V26. 25.02.18: - Query version before pull and build latest release. 03.01.18: - Deprecate cpu_core routine lack of scaling. 07.12.17: - Rebase to alpine linux 3.7. 03.12.17: - Bump to 25.0, cpu core counting routine for faster builds, linting fixes. 26.05.17: - Rebase to alpine linux 3.6. 06.02.17: - Rebase to alpine linux 3.5. 10.01.17: - Bump to 24.2. 14.10.16: - Add version layer information. 17.09.16: - Rebase to alpine linux, remove redundant spotify support, move to main repository. 28.02.16: - Add chromecast support, bump dependency versions. 04.01.16: - Disable ipv6 by default because in v23.4 it doesn't work in unraid with it set. 17.12.15: - Add in spotify support. 25.11.15: - Initial Release.","title":"daapd"},{"location":"images/docker-daapd/#linuxserverdaapd","text":"Daapd (iTunes) media server with support for AirPlay devices, Apple Remote (and compatibles), Chromecast, MPD and internet radio.","title":"linuxserver/daapd"},{"location":"images/docker-daapd/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/daapd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-daapd/#application-setup","text":"Map your music folder, open up itunes on the same LAN to see your music there. The web interface is available at http://:3689 For further setup options of remotes etc, check out the daapd website, Owntone .","title":"Application Setup"},{"location":"images/docker-daapd/#enable-spotify-connect-server","text":"Enable the spotify connect server by creating a pipe named 'spotify' in the root of your mounted music folder (not possible on most network mounts): mkfifo /spotify The spotify connect server should show up as the 'forked-daapd' device in your Spotify application. It is recommended to set the pipe_autostart option to true in your forked-daapd config.","title":"Enable spotify connect server"},{"location":"images/docker-daapd/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-daapd/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: daapd: image: lscr.io/linuxserver/daapd:latest container_name: daapd network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/music restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-daapd/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=daapd \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v :/config \\ -v :/music \\ --restart unless-stopped \\ lscr.io/linuxserver/daapd:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-daapd/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-daapd/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-daapd/#networking-net","text":"Parameter Function --net=host Shares host networking with container.","title":"Networking (--net)"},{"location":"images/docker-daapd/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-daapd/#volume-mappings-v","text":"Volume Function /config Where daapd server stores its config and dbase files. /music Map to your music folder.","title":"Volume Mappings (-v)"},{"location":"images/docker-daapd/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-daapd/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-daapd/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-daapd/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-daapd/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-daapd/#support-info","text":"Shell access whilst the container is running: docker exec -it daapd /bin/bash To monitor the logs of the container in realtime: docker logs -f daapd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' daapd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/daapd:latest","title":"Support Info"},{"location":"images/docker-daapd/#versions","text":"31.05.22: - Make sure the user has access to the audio device. 31.05.22: - Add new deps, flex and bison. 12.02.22: - Rebase to Alpine 3.15. 14.09.21: - Enabled librespot. Disabled spotify on ARMv7 10.07.21: - Change of paths to work with the new package name, OwnTone. 02.04.21: - Update upstream repo, again. 30.03.21: - Update upstream repo. 06.10.20: - Enabled Spotify on Alpine 3.12 for X86_64 and ARMv7. 01.06.20: - Rebasing to alpine 3.12. 16.01.20: - Rebase to alpine linux 3.11 and build antlr3c from source. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 14.01.19: - Add pipeline logic and multi arch. 20.08.18: - Rebase to alpine linux 3.8. 09.06.18: - Use buildstage and update dependencies. 05.03.18: - Use updated configure ac and disable avcodecsend to hopefully mitigate crashes with V26. 25.02.18: - Query version before pull and build latest release. 03.01.18: - Deprecate cpu_core routine lack of scaling. 07.12.17: - Rebase to alpine linux 3.7. 03.12.17: - Bump to 25.0, cpu core counting routine for faster builds, linting fixes. 26.05.17: - Rebase to alpine linux 3.6. 06.02.17: - Rebase to alpine linux 3.5. 10.01.17: - Bump to 24.2. 14.10.16: - Add version layer information. 17.09.16: - Rebase to alpine linux, remove redundant spotify support, move to main repository. 28.02.16: - Add chromecast support, bump dependency versions. 04.01.16: - Disable ipv6 by default because in v23.4 it doesn't work in unraid with it set. 17.12.15: - Add in spotify support. 25.11.15: - Initial Release.","title":"Versions"},{"location":"images/docker-darktable/","text":"linuxserver/darktable darktable is an open source photography workflow application and raw developer. A virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images and enhance them. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/darktable:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: darktable: image: lscr.io/linuxserver/darktable:latest container_name: darktable security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=darktable \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/darktable:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Darktable desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings and images Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it darktable /bin/bash To monitor the logs of the container in realtime: docker logs -f darktable Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' darktable Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/darktable:latest Versions 23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 31.12.21: - Rebase to Alpine 3.15. 01.10.21: - Rebase to Alpine 3.14. 07.04.21: - Initial release.","title":"darktable"},{"location":"images/docker-darktable/#linuxserverdarktable","text":"darktable is an open source photography workflow application and raw developer. A virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images and enhance them.","title":"linuxserver/darktable"},{"location":"images/docker-darktable/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/darktable:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-darktable/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-darktable/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-darktable/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: darktable: image: lscr.io/linuxserver/darktable:latest container_name: darktable security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-darktable/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=darktable \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/darktable:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-darktable/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-darktable/#ports-p","text":"Parameter Function 3000 Darktable desktop gui.","title":"Ports (-p)"},{"location":"images/docker-darktable/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-darktable/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings and images","title":"Volume Mappings (-v)"},{"location":"images/docker-darktable/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-darktable/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-darktable/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-darktable/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-darktable/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-darktable/#support-info","text":"Shell access whilst the container is running: docker exec -it darktable /bin/bash To monitor the logs of the container in realtime: docker logs -f darktable Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' darktable Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/darktable:latest","title":"Support Info"},{"location":"images/docker-darktable/#versions","text":"23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 31.12.21: - Rebase to Alpine 3.15. 01.10.21: - Rebase to Alpine 3.14. 07.04.21: - Initial release.","title":"Versions"},{"location":"images/docker-davos/","text":"linuxserver/davos Davos is an FTP automation tool that periodically scans given host locations for new files. It can be configured for various purposes, including listening for specific files to appear in the host location, ready for it to download and then move, if required. It also supports completion notifications as well as downstream API calls, to further the workflow. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/davos:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application does not require any set up other than starting the docker container. Further documentation can be found on the davos GitHub repository page . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: davos: image: lscr.io/linuxserver/davos:latest container_name: davos environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/download ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=davos \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 8080:8080 \\ -v :/config \\ -v :/download \\ --restart unless-stopped \\ lscr.io/linuxserver/davos:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 This is the default port that davos runs under Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation Volume Mappings ( -v ) Volume Function /config davos's config location. This is where it stores its database file and logs. /download davos's file download location Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it davos /bin/bash To monitor the logs of the container in realtime: docker logs -f davos Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' davos Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/davos:latest Versions 15.01.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.03.19: - Updating runtime deps due to change in OpenJRE. 08.03.19: - Updating build environment to pass proper build flags and use gradle wrapper. 22.02.19: - Rebasing to alpine 3.9. 18.11.16: - Initial Release.","title":"davos"},{"location":"images/docker-davos/#linuxserverdavos","text":"Davos is an FTP automation tool that periodically scans given host locations for new files. It can be configured for various purposes, including listening for specific files to appear in the host location, ready for it to download and then move, if required. It also supports completion notifications as well as downstream API calls, to further the workflow.","title":"linuxserver/davos"},{"location":"images/docker-davos/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/davos:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-davos/#application-setup","text":"The application does not require any set up other than starting the docker container. Further documentation can be found on the davos GitHub repository page .","title":"Application Setup"},{"location":"images/docker-davos/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-davos/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: davos: image: lscr.io/linuxserver/davos:latest container_name: davos environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/download ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-davos/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=davos \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 8080:8080 \\ -v :/config \\ -v :/download \\ --restart unless-stopped \\ lscr.io/linuxserver/davos:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-davos/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-davos/#ports-p","text":"Parameter Function 8080 This is the default port that davos runs under","title":"Ports (-p)"},{"location":"images/docker-davos/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation","title":"Environment Variables (-e)"},{"location":"images/docker-davos/#volume-mappings-v","text":"Volume Function /config davos's config location. This is where it stores its database file and logs. /download davos's file download location","title":"Volume Mappings (-v)"},{"location":"images/docker-davos/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-davos/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-davos/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-davos/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-davos/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-davos/#support-info","text":"Shell access whilst the container is running: docker exec -it davos /bin/bash To monitor the logs of the container in realtime: docker logs -f davos Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' davos Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/davos:latest","title":"Support Info"},{"location":"images/docker-davos/#versions","text":"15.01.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.03.19: - Updating runtime deps due to change in OpenJRE. 08.03.19: - Updating build environment to pass proper build flags and use gradle wrapper. 22.02.19: - Rebasing to alpine 3.9. 18.11.16: - Initial Release.","title":"Versions"},{"location":"images/docker-ddclient/","text":"linuxserver/ddclient Ddclient is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider. It was originally written by Paul Burry and is now mostly by wimpunk. It has the capability to update more than just dyndns and it can fetch your WAN-ipaddress in a few different ways. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ddclient:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Edit the ddclient.conf file found in your /config volume (also see official ddclient documentation ). This config file has many providers to choose from and you basically just have to uncomment your provider and add username/password where requested. If you modify ddclient.conf, ddclient will automaticcaly restart and read the config. Get dynamic IP from Fritz.Box If ddclient shall fetch the dynamic (public) IP-address from a fritz.box (AVM) add the following line to /config/ddclient.conf : use=cmd, cmd=/etc/ddclient/get-ip-from-fritzbox Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: ddclient: image: lscr.io/linuxserver/ddclient:latest container_name: ddclient environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=ddclient \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ddclient:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where ddclient should store its config files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it ddclient /bin/bash To monitor the logs of the container in realtime: docker logs -f ddclient Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ddclient Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ddclient:latest Versions 20.10.22: - Update build instructions for 3.10.0. Update default ddclient.conf . 15.01.22: - Rebase to Alpine 3.15 15.05.21: - Distribute script 'sample-get-ip-from-fritzbox' from ddclient repo 08.03.21: - Added bind-tools to provide nsupdate 01.06.20: - Rebasing to alpine 3.12. 08.02.20: - Ingest from Github. 06.02.19: - Fix permissions. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.03.19: - Add perl-io-socket-inet6 for ipv6 support. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 22.08.18: - Rebase to alpine 3.8. 10.08.18: - Update to ddclient v3.9.0. For Cloudflare users, please ensure you remove the line server=www.cloudflare.com from your ddclient.conf . 07.12.17: - Rebase to alpine 3.7. 28.05.17: - Rebase to alpine 3.6. 10.02.17: - Rebase to alpine 3.5. 26.11.16: - Update README to new standard and add icon and other small details. 29.08.16: - Initial release.","title":"ddclient"},{"location":"images/docker-ddclient/#linuxserverddclient","text":"Ddclient is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider. It was originally written by Paul Burry and is now mostly by wimpunk. It has the capability to update more than just dyndns and it can fetch your WAN-ipaddress in a few different ways.","title":"linuxserver/ddclient"},{"location":"images/docker-ddclient/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ddclient:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-ddclient/#application-setup","text":"Edit the ddclient.conf file found in your /config volume (also see official ddclient documentation ). This config file has many providers to choose from and you basically just have to uncomment your provider and add username/password where requested. If you modify ddclient.conf, ddclient will automaticcaly restart and read the config.","title":"Application Setup"},{"location":"images/docker-ddclient/#get-dynamic-ip-from-fritzbox","text":"If ddclient shall fetch the dynamic (public) IP-address from a fritz.box (AVM) add the following line to /config/ddclient.conf : use=cmd, cmd=/etc/ddclient/get-ip-from-fritzbox","title":"Get dynamic IP from Fritz.Box"},{"location":"images/docker-ddclient/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-ddclient/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: ddclient: image: lscr.io/linuxserver/ddclient:latest container_name: ddclient environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-ddclient/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=ddclient \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ddclient:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-ddclient/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-ddclient/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-ddclient/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-ddclient/#volume-mappings-v","text":"Volume Function /config Where ddclient should store its config files.","title":"Volume Mappings (-v)"},{"location":"images/docker-ddclient/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-ddclient/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-ddclient/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-ddclient/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-ddclient/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-ddclient/#support-info","text":"Shell access whilst the container is running: docker exec -it ddclient /bin/bash To monitor the logs of the container in realtime: docker logs -f ddclient Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ddclient Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ddclient:latest","title":"Support Info"},{"location":"images/docker-ddclient/#versions","text":"20.10.22: - Update build instructions for 3.10.0. Update default ddclient.conf . 15.01.22: - Rebase to Alpine 3.15 15.05.21: - Distribute script 'sample-get-ip-from-fritzbox' from ddclient repo 08.03.21: - Added bind-tools to provide nsupdate 01.06.20: - Rebasing to alpine 3.12. 08.02.20: - Ingest from Github. 06.02.19: - Fix permissions. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.03.19: - Add perl-io-socket-inet6 for ipv6 support. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 22.08.18: - Rebase to alpine 3.8. 10.08.18: - Update to ddclient v3.9.0. For Cloudflare users, please ensure you remove the line server=www.cloudflare.com from your ddclient.conf . 07.12.17: - Rebase to alpine 3.7. 28.05.17: - Rebase to alpine 3.6. 10.02.17: - Rebase to alpine 3.5. 26.11.16: - Update README to new standard and add icon and other small details. 29.08.16: - Initial release.","title":"Versions"},{"location":"images/docker-deluge/","text":"linuxserver/deluge Deluge is a lightweight, Free Software, cross-platform BitTorrent client. Full Encryption WebUI Plugin System Much more... Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/deluge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The admin interface is available at http://SERVER-IP:8112 with a default user/password of admin/deluge. To change the password (recommended) log in to the web interface and go to Preferences->Interface->Password. Change the inbound port to 6881 (or whichever port you've mapped for the container) under Preferences->Network, otherwise random ports will be used. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: deluge: image: lscr.io/linuxserver/deluge:latest container_name: deluge environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - DELUGE_LOGLEVEL=error #optional volumes: - /path/to/deluge/config:/config - /path/to/your/downloads:/downloads ports: - 8112:8112 - 6881:6881 - 6881:6881/udp restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=deluge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DELUGE_LOGLEVEL=error `#optional` \\ -p 8112:8112 \\ -p 6881:6881 \\ -p 6881:6881/udp \\ -v /path/to/deluge/config:/config \\ -v /path/to/your/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/deluge:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8112 Port for webui 6881 Inbound torrent traffic (See App Setup) 6881/udp Inbound torrent traffic (See App Setup) Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use DELUGE_LOGLEVEL=error set the loglevel output when running Deluge, default is info for deluged and warning for delgued-web Volume Mappings ( -v ) Volume Function /config deluge configs /downloads torrent download directory Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it deluge /bin/bash To monitor the logs of the container in realtime: docker logs -f deluge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' deluge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/deluge:latest Versions 29.11.22: - Restore geoip using py3-geoip as an interim measure. 24.11.22: - Remove GeoIP packages as geoip will not build under Py 3.11 and Deluge still doesn't support geoip2. 22.11.22: - Update GeoIP URL for new IPFS domain. 29.08.22: - Rebase to Alpine Edge again to follow latest releases. 12.08.22: - Bump unrar to 6.1.7. 16.06.22: - Rebase to Alpine 3.16 from edge. 22.02.22: - Rebase to Alpine, config on first startup, add GeoIP. 15.01.22: - Rebase to Focal. 07.06.21: - Remove host networking from readme examples 23.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 09.05.19: - Add python3 requests and future modules. 24.08.19: - Add ability to set LogLevel for Deluge. 09.06.19: - Update to 2.x using deluge ppa. 02.05.19: - Install full version of 7zip. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 15.11.18: - Add deluge-console. 11.11.18: - Rebase to Ubuntu Bionic, add pipeline multiarch logic. 09.04.18: - update to libressl2.7-libssl. 29.03.18: - Rebase to alpine edge. 07.12.17: - Rebase to alpine 3.7. 20.11.17: - Change libressl2.6-libssl repo. 01.07.17: - Add curl package. 26.05.17: - Rebase to alpine 3.6. 29.04.17: - Add variable for user defined umask. 28.04.17: - update to libressl2.5-libssl. 28.12.16: - Rebase to alpine 3.5 baseimage. 17.11.16: - Rebase to edge baseimage. 13.10.16: - Switch to libressl as openssl deprecated from alpine linux and deluge dependency no longer installs 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 30.08.16: - Use pip packages for some critical dependencies. 28.08.16: - Add badges to README. 15.08.16: - Rebase to alpine linux. 09.11.15: - Add unrar and unzip 15.10.15: - Initial Release.","title":"deluge"},{"location":"images/docker-deluge/#linuxserverdeluge","text":"Deluge is a lightweight, Free Software, cross-platform BitTorrent client. Full Encryption WebUI Plugin System Much more...","title":"linuxserver/deluge"},{"location":"images/docker-deluge/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/deluge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-deluge/#application-setup","text":"The admin interface is available at http://SERVER-IP:8112 with a default user/password of admin/deluge. To change the password (recommended) log in to the web interface and go to Preferences->Interface->Password. Change the inbound port to 6881 (or whichever port you've mapped for the container) under Preferences->Network, otherwise random ports will be used.","title":"Application Setup"},{"location":"images/docker-deluge/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-deluge/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: deluge: image: lscr.io/linuxserver/deluge:latest container_name: deluge environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - DELUGE_LOGLEVEL=error #optional volumes: - /path/to/deluge/config:/config - /path/to/your/downloads:/downloads ports: - 8112:8112 - 6881:6881 - 6881:6881/udp restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-deluge/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=deluge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DELUGE_LOGLEVEL=error `#optional` \\ -p 8112:8112 \\ -p 6881:6881 \\ -p 6881:6881/udp \\ -v /path/to/deluge/config:/config \\ -v /path/to/your/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/deluge:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-deluge/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-deluge/#ports-p","text":"Parameter Function 8112 Port for webui 6881 Inbound torrent traffic (See App Setup) 6881/udp Inbound torrent traffic (See App Setup)","title":"Ports (-p)"},{"location":"images/docker-deluge/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use DELUGE_LOGLEVEL=error set the loglevel output when running Deluge, default is info for deluged and warning for delgued-web","title":"Environment Variables (-e)"},{"location":"images/docker-deluge/#volume-mappings-v","text":"Volume Function /config deluge configs /downloads torrent download directory","title":"Volume Mappings (-v)"},{"location":"images/docker-deluge/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-deluge/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-deluge/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-deluge/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-deluge/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-deluge/#support-info","text":"Shell access whilst the container is running: docker exec -it deluge /bin/bash To monitor the logs of the container in realtime: docker logs -f deluge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' deluge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/deluge:latest","title":"Support Info"},{"location":"images/docker-deluge/#versions","text":"29.11.22: - Restore geoip using py3-geoip as an interim measure. 24.11.22: - Remove GeoIP packages as geoip will not build under Py 3.11 and Deluge still doesn't support geoip2. 22.11.22: - Update GeoIP URL for new IPFS domain. 29.08.22: - Rebase to Alpine Edge again to follow latest releases. 12.08.22: - Bump unrar to 6.1.7. 16.06.22: - Rebase to Alpine 3.16 from edge. 22.02.22: - Rebase to Alpine, config on first startup, add GeoIP. 15.01.22: - Rebase to Focal. 07.06.21: - Remove host networking from readme examples 23.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 09.05.19: - Add python3 requests and future modules. 24.08.19: - Add ability to set LogLevel for Deluge. 09.06.19: - Update to 2.x using deluge ppa. 02.05.19: - Install full version of 7zip. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 15.11.18: - Add deluge-console. 11.11.18: - Rebase to Ubuntu Bionic, add pipeline multiarch logic. 09.04.18: - update to libressl2.7-libssl. 29.03.18: - Rebase to alpine edge. 07.12.17: - Rebase to alpine 3.7. 20.11.17: - Change libressl2.6-libssl repo. 01.07.17: - Add curl package. 26.05.17: - Rebase to alpine 3.6. 29.04.17: - Add variable for user defined umask. 28.04.17: - update to libressl2.5-libssl. 28.12.16: - Rebase to alpine 3.5 baseimage. 17.11.16: - Rebase to edge baseimage. 13.10.16: - Switch to libressl as openssl deprecated from alpine linux and deluge dependency no longer installs 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 30.08.16: - Use pip packages for some critical dependencies. 28.08.16: - Add badges to README. 15.08.16: - Rebase to alpine linux. 09.11.15: - Add unrar and unzip 15.10.15: - Initial Release.","title":"Versions"},{"location":"images/docker-digikam/","text":"linuxserver/digikam digiKam : Professional Photo Management with the Power of Open Source Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/digikam:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false . Mysql Internal When using mysql internal mode for the database you will need to click on \"Find\" Button for all the required binaries (mysql_install_db,mysqladmin,mysqld). Then select the binary file and press Open. Keyboard Layouts This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: digikam: image: lscr.io/linuxserver/digikam:latest container_name: digikam network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional volumes: - /path/to/config:/config ports: - 3000:3000 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=digikam \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -p 3000:3000 `#optional` \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/digikam:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 digiKam desktop gui Networking ( --net ) Parameter Function --net=host Use Host Networking Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York. SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores database. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it digikam /bin/bash To monitor the logs of the container in realtime: docker logs -f digikam Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' digikam Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/digikam:latest Versions 21.11.22: - Trigger upon baseimage updates (arch being a rolling distro has too many dependency breaks otherwise). Release version will be the baseimage build date going forward. 20.10.22: - Migrate to s6v3. 07.03.22: - Add Exiftool and firefox for image exports. 20.02.22: - Add MariaDB, expand documentation. 15.02.22: - Rebase to Arch. 27.12.21: - Rebase to focal to resolve dependency issues. 27.03.21: - Download link fixed. 20.05.20: - Initial release.","title":"digikam"},{"location":"images/docker-digikam/#linuxserverdigikam","text":"digiKam : Professional Photo Management with the Power of Open Source","title":"linuxserver/digikam"},{"location":"images/docker-digikam/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/digikam:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-digikam/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false .","title":"Application Setup"},{"location":"images/docker-digikam/#mysql-internal","text":"When using mysql internal mode for the database you will need to click on \"Find\" Button for all the required binaries (mysql_install_db,mysqladmin,mysqld). Then select the binary file and press Open.","title":"Mysql Internal"},{"location":"images/docker-digikam/#keyboard-layouts","text":"This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard","title":"Keyboard Layouts"},{"location":"images/docker-digikam/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-digikam/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: digikam: image: lscr.io/linuxserver/digikam:latest container_name: digikam network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional volumes: - /path/to/config:/config ports: - 3000:3000 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-digikam/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=digikam \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -p 3000:3000 `#optional` \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/digikam:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-digikam/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-digikam/#ports-p","text":"Parameter Function 3000 digiKam desktop gui","title":"Ports (-p)"},{"location":"images/docker-digikam/#networking-net","text":"Parameter Function --net=host Use Host Networking","title":"Networking (--net)"},{"location":"images/docker-digikam/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York. SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options.","title":"Environment Variables (-e)"},{"location":"images/docker-digikam/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores database.","title":"Volume Mappings (-v)"},{"location":"images/docker-digikam/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-digikam/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-digikam/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-digikam/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-digikam/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-digikam/#support-info","text":"Shell access whilst the container is running: docker exec -it digikam /bin/bash To monitor the logs of the container in realtime: docker logs -f digikam Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' digikam Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/digikam:latest","title":"Support Info"},{"location":"images/docker-digikam/#versions","text":"21.11.22: - Trigger upon baseimage updates (arch being a rolling distro has too many dependency breaks otherwise). Release version will be the baseimage build date going forward. 20.10.22: - Migrate to s6v3. 07.03.22: - Add Exiftool and firefox for image exports. 20.02.22: - Add MariaDB, expand documentation. 15.02.22: - Rebase to Arch. 27.12.21: - Rebase to focal to resolve dependency issues. 27.03.21: - Download link fixed. 20.05.20: - Initial release.","title":"Versions"},{"location":"images/docker-dillinger/","text":"linuxserver/dillinger Dillinger is a cloud-enabled, mobile-ready, offline-storage, AngularJS powered HTML5 Markdown editor. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/dillinger:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Application Setup Access the webui at http://your-ip:8080 , keep in mind that storage for this application is in your browser session not server side. Only plugin configurations will ever be stored server side. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: dillinger: image: lscr.io/linuxserver/dillinger:latest container_name: dillinger environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=dillinger \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/dillinger:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 The port for the Dillinger web interface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Dillinger plugin config files Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it dillinger /bin/bash To monitor the logs of the container in realtime: docker logs -f dillinger Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' dillinger Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/dillinger:latest Versions 19.04.22: - Rebase to Alpine. 31.05.19: - Initial Release.","title":"dillinger"},{"location":"images/docker-dillinger/#linuxserverdillinger","text":"Dillinger is a cloud-enabled, mobile-ready, offline-storage, AngularJS powered HTML5 Markdown editor.","title":"linuxserver/dillinger"},{"location":"images/docker-dillinger/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/dillinger:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-dillinger/#application-setup","text":"Access the webui at http://your-ip:8080 , keep in mind that storage for this application is in your browser session not server side. Only plugin configurations will ever be stored server side.","title":"Application Setup"},{"location":"images/docker-dillinger/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-dillinger/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: dillinger: image: lscr.io/linuxserver/dillinger:latest container_name: dillinger environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-dillinger/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=dillinger \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/dillinger:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-dillinger/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-dillinger/#ports-p","text":"Parameter Function 8080 The port for the Dillinger web interface","title":"Ports (-p)"},{"location":"images/docker-dillinger/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-dillinger/#volume-mappings-v","text":"Volume Function /config Dillinger plugin config files","title":"Volume Mappings (-v)"},{"location":"images/docker-dillinger/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-dillinger/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-dillinger/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-dillinger/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-dillinger/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-dillinger/#support-info","text":"Shell access whilst the container is running: docker exec -it dillinger /bin/bash To monitor the logs of the container in realtime: docker logs -f dillinger Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' dillinger Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/dillinger:latest","title":"Support Info"},{"location":"images/docker-dillinger/#versions","text":"19.04.22: - Rebase to Alpine. 31.05.19: - Initial Release.","title":"Versions"},{"location":"images/docker-diskover/","text":"linuxserver/diskover diskover is an open source file system indexer that uses Elasticsearch to index and manage data across heterogeneous storage systems. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/diskover:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This application is dependent on an ElasticSearch instance. Please see the example compose file for additional information. The default username is diskover with the password of darkdata , access the container at http:/// . The UI may be unusable until a valid index has been created. The default diskover-web Constants.php file located at /config/diskover-web.conf.d/Constants.php will need to be edited to allow diskover-web to communicate with the ElasticSearch container. The following entries will need to be edited: * const ES_HOST = elasticsearch * const ES_PORT = 9200 The application doesn't start an index by default. A crontab is created inside of the /config directory and can be set up to run automated indexes of /data . Changes to this crontab file require a restart to apply. You can also manually run an index by executing /app/diskover/diskover.py either in interactive or detached mode: docker exec -u abc -d diskover python3 /app/diskover/diskover.py -i diskover-my_index_name /data Will run an index in the background docker exec -u abc -it diskover python3 /app/diskover/diskover.py -i diskover-my_index_name /data Will run an index in the foreground Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) version: '2' services: diskover: image: lscr.io/linuxserver/diskover container_name: diskover environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - ES_HOST=elasticsearch - ES_PORT=9200 volumes: - /path/to/diskover/config:/config - /path/to/diskover/data:/data ports: - 80:80 mem_limit: 4096m restart: unless-stopped depends_on: - elasticsearch elasticsearch: container_name: elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2 environment: - discovery.type=single-node - xpack.security.enabled=true - bootstrap.memory_lock=true - \"ES_JAVA_OPTS=-Xms1g -Xmx1g\" ulimits: memlock: soft: -1 hard: -1 volumes: - /path/to/esdata:/usr/share/elasticsearch/data ports: - 9200:9200 depends_on: - elasticsearch-helper restart: unless-stopped elasticsearch-helper: image: alpine command: sh -c \"sysctl -w vm.max_map_count=262144\" privileged: true docker cli ( click here for more info ) docker run -d \\ --name=diskover \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e ES_HOST=elasticsearch \\ -e ES_PORT=9200 \\ -e ES_USER=elastic \\ -e ES_PASS=changeme \\ -p 80:80 \\ -v /path/to/diskover/config:/config \\ -v /path/to/diskover/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/diskover:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 diskover Web UI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York ES_HOST=elasticsearch ElasticSearch host (optional) ES_PORT=9200 ElasticSearch port (optional) ES_USER=elastic ElasticSearch username (optional) ES_PASS=changeme ElasticSearch password (optional) Volume Mappings ( -v ) Volume Function /config Persistent config files /data Default mount point to crawl Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it diskover /bin/bash To monitor the logs of the container in realtime: docker logs -f diskover Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' diskover Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/diskover:latest Versions 25.02.22: - Add php7-sqlite3 to support rc4 release. 03.11.21: - Added more support for potential config files. 31.10.21: - Added xpack.security variable to ElasticSearch; added instructions to edit Constants.php in diskover; corrected command needed to manually generate an index in diskover 11.10.21: - Updated to diskover-community v2. 19.11.20: - Fix pip packages. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 12.04.19: - Rebase to Alpine 3.9. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.11.18: - Initial Release.","title":"diskover"},{"location":"images/docker-diskover/#linuxserverdiskover","text":"diskover is an open source file system indexer that uses Elasticsearch to index and manage data across heterogeneous storage systems.","title":"linuxserver/diskover"},{"location":"images/docker-diskover/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/diskover:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-diskover/#application-setup","text":"This application is dependent on an ElasticSearch instance. Please see the example compose file for additional information. The default username is diskover with the password of darkdata , access the container at http:/// . The UI may be unusable until a valid index has been created. The default diskover-web Constants.php file located at /config/diskover-web.conf.d/Constants.php will need to be edited to allow diskover-web to communicate with the ElasticSearch container. The following entries will need to be edited: * const ES_HOST = elasticsearch * const ES_PORT = 9200 The application doesn't start an index by default. A crontab is created inside of the /config directory and can be set up to run automated indexes of /data . Changes to this crontab file require a restart to apply. You can also manually run an index by executing /app/diskover/diskover.py either in interactive or detached mode: docker exec -u abc -d diskover python3 /app/diskover/diskover.py -i diskover-my_index_name /data Will run an index in the background docker exec -u abc -it diskover python3 /app/diskover/diskover.py -i diskover-my_index_name /data Will run an index in the foreground","title":"Application Setup"},{"location":"images/docker-diskover/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-diskover/#docker-compose-recommended-click-here-for-more-info","text":"version: '2' services: diskover: image: lscr.io/linuxserver/diskover container_name: diskover environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - ES_HOST=elasticsearch - ES_PORT=9200 volumes: - /path/to/diskover/config:/config - /path/to/diskover/data:/data ports: - 80:80 mem_limit: 4096m restart: unless-stopped depends_on: - elasticsearch elasticsearch: container_name: elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2 environment: - discovery.type=single-node - xpack.security.enabled=true - bootstrap.memory_lock=true - \"ES_JAVA_OPTS=-Xms1g -Xmx1g\" ulimits: memlock: soft: -1 hard: -1 volumes: - /path/to/esdata:/usr/share/elasticsearch/data ports: - 9200:9200 depends_on: - elasticsearch-helper restart: unless-stopped elasticsearch-helper: image: alpine command: sh -c \"sysctl -w vm.max_map_count=262144\" privileged: true","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-diskover/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=diskover \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e ES_HOST=elasticsearch \\ -e ES_PORT=9200 \\ -e ES_USER=elastic \\ -e ES_PASS=changeme \\ -p 80:80 \\ -v /path/to/diskover/config:/config \\ -v /path/to/diskover/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/diskover:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-diskover/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-diskover/#ports-p","text":"Parameter Function 80 diskover Web UI","title":"Ports (-p)"},{"location":"images/docker-diskover/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York ES_HOST=elasticsearch ElasticSearch host (optional) ES_PORT=9200 ElasticSearch port (optional) ES_USER=elastic ElasticSearch username (optional) ES_PASS=changeme ElasticSearch password (optional)","title":"Environment Variables (-e)"},{"location":"images/docker-diskover/#volume-mappings-v","text":"Volume Function /config Persistent config files /data Default mount point to crawl","title":"Volume Mappings (-v)"},{"location":"images/docker-diskover/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-diskover/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-diskover/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-diskover/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-diskover/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-diskover/#support-info","text":"Shell access whilst the container is running: docker exec -it diskover /bin/bash To monitor the logs of the container in realtime: docker logs -f diskover Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' diskover Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/diskover:latest","title":"Support Info"},{"location":"images/docker-diskover/#versions","text":"25.02.22: - Add php7-sqlite3 to support rc4 release. 03.11.21: - Added more support for potential config files. 31.10.21: - Added xpack.security variable to ElasticSearch; added instructions to edit Constants.php in diskover; corrected command needed to manually generate an index in diskover 11.10.21: - Updated to diskover-community v2. 19.11.20: - Fix pip packages. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 12.04.19: - Rebase to Alpine 3.9. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.11.18: - Initial Release.","title":"Versions"},{"location":"images/docker-doc-builder/","text":"linuxserver/doc-builder Expects to run as part of the LSIO CI process. Not for public consumption. Running against remote: docker run --rm \\ -e CONTAINER_NAME=${CONTAINER_NAME} \\ -v ${TEMPDIR}:/ansible/readme \\ linuxserver/doc-builder:latest Running locally: If you need to test functionality just navigate to the folder with the readme-vars.yml and run: docker run --rm \\ -v $(pwd):/tmp \\ -e LOCAL=true \\ linuxserver/doc-builder:latest The output will be in a GENERATED.md in your current working directory. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"linuxserver/doc-builder"},{"location":"images/docker-doc-builder/#linuxserverdoc-builder","text":"Expects to run as part of the LSIO CI process. Not for public consumption. Running against remote: docker run --rm \\ -e CONTAINER_NAME=${CONTAINER_NAME} \\ -v ${TEMPDIR}:/ansible/readme \\ linuxserver/doc-builder:latest Running locally: If you need to test functionality just navigate to the folder with the readme-vars.yml and run: docker run --rm \\ -v $(pwd):/tmp \\ -e LOCAL=true \\ linuxserver/doc-builder:latest The output will be in a GENERATED.md in your current working directory. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"linuxserver/doc-builder"},{"location":"images/docker-docker-compose/","text":"The LinuxServer.io team brings you another container release featuring: regular and timely application updates easy user mappings (PGID, PUID) custom base image with s6 overlay weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth regular security updates Find us at: Blog - all the things you can do with our containers including How-To guides, opinions and much more! Discord - realtime support / chat with the community and the team. Discourse - post on our community forum. Fleet - an online web interface which displays all of our maintained images. GitHub - view the source for all of our repositories. Open Collective - please consider helping us by either donating or contributing to our budget linuxserver/docker-compose docker-compose is a tool for defining and running multi-container Docker applications. With Compose, you use a Compose file to configure your application's services. Then, using a single command, you create and start all the services from your configuration. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/docker-compose:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 docker-compose v1 releases alpine \u2705 docker-compose v1 releases with our alpine baseimage v2 \u2705 docker compose v2 releases Usage Docker cli docker run --rm \\ -v /var/run/docker.sock:/var/run/docker.sock \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ lscr.io/linuxserver/docker-compose:latest \\ up You can replace the last line with any docker-compose command and argument, which will be passed to docker-compose inside the image. Recommended method We provide a very convenient script that allows the docker-compose container to run as if it was installed natively: sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose Running these two commands on your docker host once will let you issue commands such as docker-compose up -d and the docker-compose container will do its job behind the scenes. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it docker-compose /bin/bash To monitor the logs of the container in realtime: docker logs -f docker-compose container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' docker-compose image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/docker-compose:latest Updating Info Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image. Below are the instructions for updating containers: Via Docker Run Update the image: docker pull lscr.io/linuxserver/docker-compose:latest You can also remove the old dangling images: docker image prune Building locally If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-docker-compose.git cd docker-docker-compose docker build \\ --no-cache \\ --pull \\ -t lscr.io/linuxserver/docker-compose:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 . Versions 15.03.22: - Add v2 branch. Change master to only fetch v1 releases. Change alpine to only fetch v1 releases. Rebase master to focal. Rebase alpine to 3.15. 17.12.20: - Update run.sh with formatting changes. 04.10.20: - Update run.sh with changes from upstream. 31.08.20: - Update tox and virtualenv. 31.07.20: - Add support for global env var DOCKER_COMPOSE_IMAGE_TAG in the run.sh script. 06.07.20: - Publish docker-compose and docker-cli binaries in Github releases. 01.07.20: - Release alpine based images at alpine tag. 04.06.20: - Bump docker-cli to 19.03.8, auto-detect python3 version. 19.05.20: - Initial Release.","title":"docker-compose"},{"location":"images/docker-docker-compose/#linuxserverdocker-compose","text":"docker-compose is a tool for defining and running multi-container Docker applications. With Compose, you use a Compose file to configure your application's services. Then, using a single command, you create and start all the services from your configuration.","title":"linuxserver/docker-compose"},{"location":"images/docker-docker-compose/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/docker-compose:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-docker-compose/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 docker-compose v1 releases alpine \u2705 docker-compose v1 releases with our alpine baseimage v2 \u2705 docker compose v2 releases","title":"Version Tags"},{"location":"images/docker-docker-compose/#usage","text":"","title":"Usage"},{"location":"images/docker-docker-compose/#docker-cli","text":"docker run --rm \\ -v /var/run/docker.sock:/var/run/docker.sock \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ lscr.io/linuxserver/docker-compose:latest \\ up You can replace the last line with any docker-compose command and argument, which will be passed to docker-compose inside the image.","title":"Docker cli"},{"location":"images/docker-docker-compose/#recommended-method","text":"We provide a very convenient script that allows the docker-compose container to run as if it was installed natively: sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose Running these two commands on your docker host once will let you issue commands such as docker-compose up -d and the docker-compose container will do its job behind the scenes.","title":"Recommended method"},{"location":"images/docker-docker-compose/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-docker-compose/#support-info","text":"Shell access whilst the container is running: docker exec -it docker-compose /bin/bash To monitor the logs of the container in realtime: docker logs -f docker-compose container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' docker-compose image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/docker-compose:latest","title":"Support Info"},{"location":"images/docker-docker-compose/#updating-info","text":"Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image. Below are the instructions for updating containers:","title":"Updating Info"},{"location":"images/docker-docker-compose/#via-docker-run","text":"Update the image: docker pull lscr.io/linuxserver/docker-compose:latest You can also remove the old dangling images: docker image prune","title":"Via Docker Run"},{"location":"images/docker-docker-compose/#building-locally","text":"If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-docker-compose.git cd docker-docker-compose docker build \\ --no-cache \\ --pull \\ -t lscr.io/linuxserver/docker-compose:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 .","title":"Building locally"},{"location":"images/docker-docker-compose/#versions","text":"15.03.22: - Add v2 branch. Change master to only fetch v1 releases. Change alpine to only fetch v1 releases. Rebase master to focal. Rebase alpine to 3.15. 17.12.20: - Update run.sh with formatting changes. 04.10.20: - Update run.sh with changes from upstream. 31.08.20: - Update tox and virtualenv. 31.07.20: - Add support for global env var DOCKER_COMPOSE_IMAGE_TAG in the run.sh script. 06.07.20: - Publish docker-compose and docker-cli binaries in Github releases. 01.07.20: - Release alpine based images at alpine tag. 04.06.20: - Bump docker-cli to 19.03.8, auto-detect python3 version. 19.05.20: - Initial Release.","title":"Versions"},{"location":"images/docker-dokuwiki/","text":"linuxserver/dokuwiki Dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in access controls and authentication connectors make DokuWiki especially useful in the enterprise context and the large number of plugins contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/dokuwiki:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Upon first install go to http://$IP:$PORT/install.php once you have completed the setup, restart the container, login as admin and set \"Use nice URLs\" in the admin/Configuration Settings panel to .htaccess and tick Use slash as namespace separator in URLs to enable nice URLs you will find the webui at http://$IP:$PORT/ , for more info see Dokuwiki Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: dokuwiki: image: lscr.io/linuxserver/dokuwiki:latest container_name: dokuwiki environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 80:80 - 443:443 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=dokuwiki \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/dokuwiki:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Application HTTP Port 443 #optional Application HTTPS Port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it dokuwiki /bin/bash To monitor the logs of the container in realtime: docker logs -f dokuwiki Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' dokuwiki Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/dokuwiki:latest Versions 11.13.22: - Move lib/images/smileys/local and lib/images/interwiki outside of the container for user defined smiley and interwiki icon support. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 20.07.21: - Add php7-dom, fixes minor issues in sprintdoc template. 15.04.21: - Add vendor folder to deny list. 21.02.21: - Store search index outside of container, set absolute (default) path for savedir . 23.01.21: - Rebasing to alpine 3.13. 28.09.20: - Add php7-pdo_sqlite and php7-sqlite3. 23.09.20: - Fix php-local.ini bug introduced in the prior PR. 14.09.20: - Rebase to alpine 3.12. Add php7-ctype, php7-curl, php7-pdo_mysql, php7-pdo_pgsql, php7-pecl-imagick and php7-iconv. Bump upload max filesize and post max size to 100MB. Remove deprecated APP_URL env var. Fix breaking addons. 19.12.19: - Rebasing to alpine 3.11. 01.12.19: - Add php7-ldap package to support LDAP authentication. 28.05.19: - Initial Release.","title":"dokuwiki"},{"location":"images/docker-dokuwiki/#linuxserverdokuwiki","text":"Dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in access controls and authentication connectors make DokuWiki especially useful in the enterprise context and the large number of plugins contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki.","title":"linuxserver/dokuwiki"},{"location":"images/docker-dokuwiki/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/dokuwiki:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-dokuwiki/#application-setup","text":"Upon first install go to http://$IP:$PORT/install.php once you have completed the setup, restart the container, login as admin and set \"Use nice URLs\" in the admin/Configuration Settings panel to .htaccess and tick Use slash as namespace separator in URLs to enable nice URLs you will find the webui at http://$IP:$PORT/ , for more info see Dokuwiki","title":"Application Setup"},{"location":"images/docker-dokuwiki/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-dokuwiki/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: dokuwiki: image: lscr.io/linuxserver/dokuwiki:latest container_name: dokuwiki environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 80:80 - 443:443 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-dokuwiki/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=dokuwiki \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/dokuwiki:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-dokuwiki/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-dokuwiki/#ports-p","text":"Parameter Function 80 Application HTTP Port 443 #optional Application HTTPS Port","title":"Ports (-p)"},{"location":"images/docker-dokuwiki/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-dokuwiki/#volume-mappings-v","text":"Volume Function /config Configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-dokuwiki/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-dokuwiki/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-dokuwiki/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-dokuwiki/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-dokuwiki/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-dokuwiki/#support-info","text":"Shell access whilst the container is running: docker exec -it dokuwiki /bin/bash To monitor the logs of the container in realtime: docker logs -f dokuwiki Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' dokuwiki Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/dokuwiki:latest","title":"Support Info"},{"location":"images/docker-dokuwiki/#versions","text":"11.13.22: - Move lib/images/smileys/local and lib/images/interwiki outside of the container for user defined smiley and interwiki icon support. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 20.07.21: - Add php7-dom, fixes minor issues in sprintdoc template. 15.04.21: - Add vendor folder to deny list. 21.02.21: - Store search index outside of container, set absolute (default) path for savedir . 23.01.21: - Rebasing to alpine 3.13. 28.09.20: - Add php7-pdo_sqlite and php7-sqlite3. 23.09.20: - Fix php-local.ini bug introduced in the prior PR. 14.09.20: - Rebase to alpine 3.12. Add php7-ctype, php7-curl, php7-pdo_mysql, php7-pdo_pgsql, php7-pecl-imagick and php7-iconv. Bump upload max filesize and post max size to 100MB. Remove deprecated APP_URL env var. Fix breaking addons. 19.12.19: - Rebasing to alpine 3.11. 01.12.19: - Add php7-ldap package to support LDAP authentication. 28.05.19: - Initial Release.","title":"Versions"},{"location":"images/docker-domoticz/","text":"linuxserver/domoticz Domoticz is a Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. Notifications/Alerts can be sent to any mobile device. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/domoticz:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup To configure Domoticz, go to the IP of your docker host on the port you configured (default 8080), and add your hardware in Setup > Hardware. The user manual is available at www.domoticz.com Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: domoticz: image: lscr.io/linuxserver/domoticz:latest container_name: domoticz environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - WEBROOT=domoticz #optional - DBASE= #optional volumes: - :/config ports: - 8080:8080 - 6144:6144 - 1443:1443 devices: - path to device:path to device restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=domoticz \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e WEBROOT=domoticz `#optional` \\ -e DBASE= `#optional` \\ -p 8080:8080 \\ -p 6144:6144 \\ -p 1443:1443 \\ -v :/config \\ --device path to device:path to device \\ --restart unless-stopped \\ lscr.io/linuxserver/domoticz:latest Passing Through USB Devices To get full use of Domoticz, you probably have a USB device you want to pass through. To figure out which device to pass through, you have to connect the device and look in dmesg for the device node created. Issue the command 'dmesg | tail' after you connected your device and you should see something like below. usb 1-1.2: new full-speed USB device number 7 using ehci-pci ftdi_sio 1-1.2:1.0: FTDI USB Serial Device converter detected usb 1-1.2: Detected FT232RL usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0 As you can see above, the device node created is ttyUSB0. It does not say where, but it's almost always in /dev/. The correct tag for passing through this USB device is '--device /dev/ttyUSB0:/dev/ttyUSB0' Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 WebUI 6144 Domoticz communication port. 1443 Domoticz communication port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. WEBROOT=domoticz Sets webroot to domoticz for usage with subfolder reverse proxy. Not needed unless reverse proxying. DBASE= Sets path to database. Do not set unless you know what this does. Volume Mappings ( -v ) Volume Function /config Where Domoticz stores config files and data. Device Mappings ( --device ) Parameter Function path to device For passing through USB devices. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it domoticz /bin/bash To monitor the logs of the container in realtime: docker logs -f domoticz Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' domoticz Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/domoticz:latest Versions 15.10.22: - Remove deprecated legacy stable branches. 05.02.22: - Set default webroot to /. Add env. variable for setting custom databas path. 26.12.20: - Rebase to Ubuntu Focal, see here for troubleshooting armhf. 24.11.19: - Change to using domoticz builtin Lua and MQTT. 03.11.19: - Set capabilities for domoticz binary and move cmake from edge repo. 28.06.19: - Rebasing to alpine 3.10. Add iputils for ping. Fix typo in readme. Fix permissions for custom icons. 12.05.19: - Add boost dependencies and turn off static boost build. Bump to Alpine 3.9. 30.03.19: - Add env variable to set webroot. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 19.02.19: - Fix branch for version logic. 11.02.19: - Add pipeline logic and multi arch. 02.07.18: - Add openssh package. 01.07.18: - Fix backup/restore in webgui. 03.04.18: - Add dependencies for BroadlinkRM2 plugin. 20.01.18: - Move telldus core to repo to prevent build fail when source site goes down. 18.01.18: - Remove logging to syslog in the run command to prevent double logging. 04.01.18: - Deprecate cpu_core routine lack of scaling. 08.12.17: - Rebase to alpine 3.7. 26.11.17: - Use cpu core counting routine to speed up build time. 28.05.17: - Rebase to alpine 3.6. 26.02.17: - Add curl and replace openssl with libressl. 11.02.17: - Update README. 03.01.17: - Initial Release.","title":"domoticz"},{"location":"images/docker-domoticz/#linuxserverdomoticz","text":"Domoticz is a Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. Notifications/Alerts can be sent to any mobile device.","title":"linuxserver/domoticz"},{"location":"images/docker-domoticz/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/domoticz:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-domoticz/#application-setup","text":"To configure Domoticz, go to the IP of your docker host on the port you configured (default 8080), and add your hardware in Setup > Hardware. The user manual is available at www.domoticz.com","title":"Application Setup"},{"location":"images/docker-domoticz/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-domoticz/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: domoticz: image: lscr.io/linuxserver/domoticz:latest container_name: domoticz environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - WEBROOT=domoticz #optional - DBASE= #optional volumes: - :/config ports: - 8080:8080 - 6144:6144 - 1443:1443 devices: - path to device:path to device restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-domoticz/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=domoticz \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e WEBROOT=domoticz `#optional` \\ -e DBASE= `#optional` \\ -p 8080:8080 \\ -p 6144:6144 \\ -p 1443:1443 \\ -v :/config \\ --device path to device:path to device \\ --restart unless-stopped \\ lscr.io/linuxserver/domoticz:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-domoticz/#passing-through-usb-devices","text":"To get full use of Domoticz, you probably have a USB device you want to pass through. To figure out which device to pass through, you have to connect the device and look in dmesg for the device node created. Issue the command 'dmesg | tail' after you connected your device and you should see something like below. usb 1-1.2: new full-speed USB device number 7 using ehci-pci ftdi_sio 1-1.2:1.0: FTDI USB Serial Device converter detected usb 1-1.2: Detected FT232RL usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0 As you can see above, the device node created is ttyUSB0. It does not say where, but it's almost always in /dev/. The correct tag for passing through this USB device is '--device /dev/ttyUSB0:/dev/ttyUSB0'","title":"Passing Through USB Devices"},{"location":"images/docker-domoticz/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-domoticz/#ports-p","text":"Parameter Function 8080 WebUI 6144 Domoticz communication port. 1443 Domoticz communication port.","title":"Ports (-p)"},{"location":"images/docker-domoticz/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. WEBROOT=domoticz Sets webroot to domoticz for usage with subfolder reverse proxy. Not needed unless reverse proxying. DBASE= Sets path to database. Do not set unless you know what this does.","title":"Environment Variables (-e)"},{"location":"images/docker-domoticz/#volume-mappings-v","text":"Volume Function /config Where Domoticz stores config files and data.","title":"Volume Mappings (-v)"},{"location":"images/docker-domoticz/#device-mappings-device","text":"Parameter Function path to device For passing through USB devices.","title":"Device Mappings (--device)"},{"location":"images/docker-domoticz/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-domoticz/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-domoticz/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-domoticz/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-domoticz/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-domoticz/#support-info","text":"Shell access whilst the container is running: docker exec -it domoticz /bin/bash To monitor the logs of the container in realtime: docker logs -f domoticz Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' domoticz Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/domoticz:latest","title":"Support Info"},{"location":"images/docker-domoticz/#versions","text":"15.10.22: - Remove deprecated legacy stable branches. 05.02.22: - Set default webroot to /. Add env. variable for setting custom databas path. 26.12.20: - Rebase to Ubuntu Focal, see here for troubleshooting armhf. 24.11.19: - Change to using domoticz builtin Lua and MQTT. 03.11.19: - Set capabilities for domoticz binary and move cmake from edge repo. 28.06.19: - Rebasing to alpine 3.10. Add iputils for ping. Fix typo in readme. Fix permissions for custom icons. 12.05.19: - Add boost dependencies and turn off static boost build. Bump to Alpine 3.9. 30.03.19: - Add env variable to set webroot. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 19.02.19: - Fix branch for version logic. 11.02.19: - Add pipeline logic and multi arch. 02.07.18: - Add openssh package. 01.07.18: - Fix backup/restore in webgui. 03.04.18: - Add dependencies for BroadlinkRM2 plugin. 20.01.18: - Move telldus core to repo to prevent build fail when source site goes down. 18.01.18: - Remove logging to syslog in the run command to prevent double logging. 04.01.18: - Deprecate cpu_core routine lack of scaling. 08.12.17: - Rebase to alpine 3.7. 26.11.17: - Use cpu core counting routine to speed up build time. 28.05.17: - Rebase to alpine 3.6. 26.02.17: - Add curl and replace openssl with libressl. 11.02.17: - Update README. 03.01.17: - Initial Release.","title":"Versions"},{"location":"images/docker-doplarr/","text":"linuxserver/doplarr Doplarr is an *arr request bot for Discord.\" Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/doplarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Application Setup Start by following the Discord setup instructions from Doplarr's readme. NOTE: The DISCORD__TOKEN environment variable is required to run the container! If you are using Overseerr, fill in the Overseerr API and URL variables, and leave the Radarr/Sonarr variables blank. If you are using Radarr/Sonarr (and not using Overseerr), fill in the Radarr/Sonarr API and URL variables, and leave the Overseerr variables blank. Extra java options can be passed with the JAVA_OPTS environment variable, eg -e JAVA_OPTS=\"-Xmx256m -Xms256m\" . Review and adjust any Optional Settings from Doplarr's readme. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: doplarr: image: lscr.io/linuxserver/doplarr:latest container_name: doplarr environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - DISCORD__TOKEN= - OVERSEERR__API= - OVERSEERR__URL=http://localhost:5055 - RADARR__API= - RADARR__URL=http://localhost:7878 - SONARR__API= - SONARR__URL=http://localhost:8989 - DISCORD__MAX_RESULTS=25 #optional - DISCORD__REQUESTED_MSG_STYLE=:plain #optional - SONARR__QUALITY_PROFILE= #optional - RADARR__QUALITY_PROFILE= #optional - SONARR__ROOTFOLDER= #optional - RADARR__ROOTFOLDER= #optional - SONARR__LANGUAGE_PROFILE= #optional - OVERSEERR__DEFAULT_ID= #optional - PARTIAL_SEASONS=true #optional - LOG_LEVEL=:info #optional - JAVA_OPTS= #optional volumes: - /path/to/appdata/config:/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=doplarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e DISCORD__TOKEN= \\ -e OVERSEERR__API= \\ -e OVERSEERR__URL=http://localhost:5055 \\ -e RADARR__API= \\ -e RADARR__URL=http://localhost:7878 \\ -e SONARR__API= \\ -e SONARR__URL=http://localhost:8989 \\ -e DISCORD__MAX_RESULTS=25 `#optional` \\ -e DISCORD__REQUESTED_MSG_STYLE=:plain `#optional` \\ -e SONARR__QUALITY_PROFILE= `#optional` \\ -e RADARR__QUALITY_PROFILE= `#optional` \\ -e SONARR__ROOTFOLDER= `#optional` \\ -e RADARR__ROOTFOLDER= `#optional` \\ -e SONARR__LANGUAGE_PROFILE= `#optional` \\ -e OVERSEERR__DEFAULT_ID= `#optional` \\ -e PARTIAL_SEASONS=true `#optional` \\ -e LOG_LEVEL=:info `#optional` \\ -e JAVA_OPTS= `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/doplarr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York DISCORD__TOKEN= Specify your discord bot token. OVERSEERR__API= Specify your Overseerr API key. Leave blank if using Radarr/Sonarr. OVERSEERR__URL=http://localhost:5055 Specify your Overseerr URL. Leave blank if using Radarr/Sonarr. RADARR__API= Specify your Radarr API key. Leave blank if using Overseerr. RADARR__URL=http://localhost:7878 Specify your Radarr URL. Leave blank if using Overseerr. SONARR__API= Specify your Sonarr API key. Leave blank if using Overseerr. SONARR__URL=http://localhost:8989 Specify your Sonarr URL. Leave blank if using Overseerr. DISCORD__MAX_RESULTS=25 Sets the maximum size of the search results selection DISCORD__REQUESTED_MSG_STYLE=:plain Sets the style of the request alert message. One of :plain :embed :none SONARR__QUALITY_PROFILE= The name of the quality profile to use by default for Sonarr RADARR__QUALITY_PROFILE= The name of the quality profile to use by default for Radarr SONARR__ROOTFOLDER= The root folder to use by default for Sonarr RADARR__ROOTFOLDER= The root folder to use by default for Radarr SONARR__LANGUAGE_PROFILE= The name of the language profile to use by default for Sonarr OVERSEERR__DEFAULT_ID= The Overseerr user id to use by default if there is no associated discord account for the requester PARTIAL_SEASONS=true Sets whether users can request partial seasons. LOG_LEVEL=:info The log level for the logging backend. This can be changed for debugging purposes. One of trace :debug :info :warn :error :fatal :report JAVA_OPTS= For passing additional java options. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it doplarr /bin/bash To monitor the logs of the container in realtime: docker logs -f doplarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' doplarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/doplarr:latest Versions 01.05.22: - Remove DISCORD__ROLE_ID environment variable, see Permissions Configuration . 30.01.22: - Variable adjustments. 30.01.22: - Initial Release.","title":"doplarr"},{"location":"images/docker-doplarr/#linuxserverdoplarr","text":"Doplarr is an *arr request bot for Discord.\"","title":"linuxserver/doplarr"},{"location":"images/docker-doplarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/doplarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-doplarr/#application-setup","text":"Start by following the Discord setup instructions from Doplarr's readme. NOTE: The DISCORD__TOKEN environment variable is required to run the container! If you are using Overseerr, fill in the Overseerr API and URL variables, and leave the Radarr/Sonarr variables blank. If you are using Radarr/Sonarr (and not using Overseerr), fill in the Radarr/Sonarr API and URL variables, and leave the Overseerr variables blank. Extra java options can be passed with the JAVA_OPTS environment variable, eg -e JAVA_OPTS=\"-Xmx256m -Xms256m\" . Review and adjust any Optional Settings from Doplarr's readme.","title":"Application Setup"},{"location":"images/docker-doplarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-doplarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: doplarr: image: lscr.io/linuxserver/doplarr:latest container_name: doplarr environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - DISCORD__TOKEN= - OVERSEERR__API= - OVERSEERR__URL=http://localhost:5055 - RADARR__API= - RADARR__URL=http://localhost:7878 - SONARR__API= - SONARR__URL=http://localhost:8989 - DISCORD__MAX_RESULTS=25 #optional - DISCORD__REQUESTED_MSG_STYLE=:plain #optional - SONARR__QUALITY_PROFILE= #optional - RADARR__QUALITY_PROFILE= #optional - SONARR__ROOTFOLDER= #optional - RADARR__ROOTFOLDER= #optional - SONARR__LANGUAGE_PROFILE= #optional - OVERSEERR__DEFAULT_ID= #optional - PARTIAL_SEASONS=true #optional - LOG_LEVEL=:info #optional - JAVA_OPTS= #optional volumes: - /path/to/appdata/config:/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-doplarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=doplarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e DISCORD__TOKEN= \\ -e OVERSEERR__API= \\ -e OVERSEERR__URL=http://localhost:5055 \\ -e RADARR__API= \\ -e RADARR__URL=http://localhost:7878 \\ -e SONARR__API= \\ -e SONARR__URL=http://localhost:8989 \\ -e DISCORD__MAX_RESULTS=25 `#optional` \\ -e DISCORD__REQUESTED_MSG_STYLE=:plain `#optional` \\ -e SONARR__QUALITY_PROFILE= `#optional` \\ -e RADARR__QUALITY_PROFILE= `#optional` \\ -e SONARR__ROOTFOLDER= `#optional` \\ -e RADARR__ROOTFOLDER= `#optional` \\ -e SONARR__LANGUAGE_PROFILE= `#optional` \\ -e OVERSEERR__DEFAULT_ID= `#optional` \\ -e PARTIAL_SEASONS=true `#optional` \\ -e LOG_LEVEL=:info `#optional` \\ -e JAVA_OPTS= `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/doplarr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-doplarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-doplarr/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-doplarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York DISCORD__TOKEN= Specify your discord bot token. OVERSEERR__API= Specify your Overseerr API key. Leave blank if using Radarr/Sonarr. OVERSEERR__URL=http://localhost:5055 Specify your Overseerr URL. Leave blank if using Radarr/Sonarr. RADARR__API= Specify your Radarr API key. Leave blank if using Overseerr. RADARR__URL=http://localhost:7878 Specify your Radarr URL. Leave blank if using Overseerr. SONARR__API= Specify your Sonarr API key. Leave blank if using Overseerr. SONARR__URL=http://localhost:8989 Specify your Sonarr URL. Leave blank if using Overseerr. DISCORD__MAX_RESULTS=25 Sets the maximum size of the search results selection DISCORD__REQUESTED_MSG_STYLE=:plain Sets the style of the request alert message. One of :plain :embed :none SONARR__QUALITY_PROFILE= The name of the quality profile to use by default for Sonarr RADARR__QUALITY_PROFILE= The name of the quality profile to use by default for Radarr SONARR__ROOTFOLDER= The root folder to use by default for Sonarr RADARR__ROOTFOLDER= The root folder to use by default for Radarr SONARR__LANGUAGE_PROFILE= The name of the language profile to use by default for Sonarr OVERSEERR__DEFAULT_ID= The Overseerr user id to use by default if there is no associated discord account for the requester PARTIAL_SEASONS=true Sets whether users can request partial seasons. LOG_LEVEL=:info The log level for the logging backend. This can be changed for debugging purposes. One of trace :debug :info :warn :error :fatal :report JAVA_OPTS= For passing additional java options.","title":"Environment Variables (-e)"},{"location":"images/docker-doplarr/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-doplarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-doplarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-doplarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-doplarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-doplarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-doplarr/#support-info","text":"Shell access whilst the container is running: docker exec -it doplarr /bin/bash To monitor the logs of the container in realtime: docker logs -f doplarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' doplarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/doplarr:latest","title":"Support Info"},{"location":"images/docker-doplarr/#versions","text":"01.05.22: - Remove DISCORD__ROLE_ID environment variable, see Permissions Configuration . 30.01.22: - Variable adjustments. 30.01.22: - Initial Release.","title":"Versions"},{"location":"images/docker-doublecommander/","text":"linuxserver/doublecommander Double Commander is a free cross platform open source file manager with two panels side by side. It is inspired by Total Commander and features some new ideas. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/doublecommander:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: doublecommander: image: lscr.io/linuxserver/doublecommander:latest container_name: doublecommander environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=doublecommander \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/doublecommander:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Double Commander desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings. /data Host data directories, mount as many as needed. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it doublecommander /bin/bash To monitor the logs of the container in realtime: docker logs -f doublecommander Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' doublecommander Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/doublecommander:latest Versions 16.09.22: - Migrate to s6v3. 15.02.21: - Rebase to Ubuntu Jammy. 14.12.21: - Rebase to Ubuntu focal. 25.03.20: - Initial release.","title":"doublecommander"},{"location":"images/docker-doublecommander/#linuxserverdoublecommander","text":"Double Commander is a free cross platform open source file manager with two panels side by side. It is inspired by Total Commander and features some new ideas.","title":"linuxserver/doublecommander"},{"location":"images/docker-doublecommander/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/doublecommander:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-doublecommander/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-doublecommander/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-doublecommander/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: doublecommander: image: lscr.io/linuxserver/doublecommander:latest container_name: doublecommander environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-doublecommander/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=doublecommander \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/doublecommander:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-doublecommander/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-doublecommander/#ports-p","text":"Parameter Function 3000 Double Commander desktop gui.","title":"Ports (-p)"},{"location":"images/docker-doublecommander/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-doublecommander/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings. /data Host data directories, mount as many as needed.","title":"Volume Mappings (-v)"},{"location":"images/docker-doublecommander/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-doublecommander/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-doublecommander/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-doublecommander/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-doublecommander/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-doublecommander/#support-info","text":"Shell access whilst the container is running: docker exec -it doublecommander /bin/bash To monitor the logs of the container in realtime: docker logs -f doublecommander Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' doublecommander Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/doublecommander:latest","title":"Support Info"},{"location":"images/docker-doublecommander/#versions","text":"16.09.22: - Migrate to s6v3. 15.02.21: - Rebase to Ubuntu Jammy. 14.12.21: - Rebase to Ubuntu focal. 25.03.20: - Initial release.","title":"Versions"},{"location":"images/docker-duckdns/","text":"linuxserver/duckdns Duckdns is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. The service is completely free, and doesn't require reactivation or forum posts to maintain its existence. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/duckdns:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Go to the duckdns website , register your subdomain(s) and retrieve your token Create a container with your subdomain(s) and token It will update your IP with the DuckDNS service every 5 minutes (with a random jitter) Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: duckdns: image: lscr.io/linuxserver/duckdns:latest container_name: duckdns environment: - PUID=1000 #optional - PGID=1000 #optional - TZ=Europe/London - SUBDOMAINS=subdomain1,subdomain2 - TOKEN=token - LOG_FILE=false #optional volumes: - /path/to/appdata/config:/config #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=duckdns \\ -e PUID=1000 `#optional` \\ -e PGID=1000 `#optional` \\ -e TZ=Europe/London \\ -e SUBDOMAINS=subdomain1,subdomain2 \\ -e TOKEN=token \\ -e LOG_FILE=false `#optional` \\ -v /path/to/appdata/config:/config `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/duckdns:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBDOMAINS=subdomain1,subdomain2 multiple subdomains allowed, comma separated, no spaces TOKEN=token DuckDNS token LOG_FILE=false Set to true to log to file (also need to map /config). Volume Mappings ( -v ) Volume Function /config Used in conjunction with logging to file. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it duckdns /bin/bash To monitor the logs of the container in realtime: docker logs -f duckdns Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' duckdns Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/duckdns:latest Versions 23.09.22: - Rebase to alpine 3.16 and s6v3. 19.09.22: - Rebase to alpine 3.15. 17.05.22: - Don't allow insecure connections and add timeout. 17.05.22: - Add random jitter to update time. 23.02.22: - Append to log file instead of overwriting every time. 03.05.21: - Re-adjust cron timings to prevent peak times, update code formatting. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 13.04.20: - Add donation links for DuckDNS. 19.12.19: - Rebasing to alpine 3.11. 24.09.19: - Fix perms on github and remove chmod that can stall the container. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 08.02.19: - Update readme with optional parameters. 10.12.18: - Fix docker compose example. 15.10.18: - Multi-arch image. 22.08.18: - Rebase to alpine 3.8. 08.12.17: - Rebase to alpine 3.7. 28.05.17: - Rebase to alpine 3.6. 09.02.17: - Rebase to alpine 3.5. 17.11.16: - Initial release.","title":"duckdns"},{"location":"images/docker-duckdns/#linuxserverduckdns","text":"Duckdns is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. The service is completely free, and doesn't require reactivation or forum posts to maintain its existence.","title":"linuxserver/duckdns"},{"location":"images/docker-duckdns/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/duckdns:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-duckdns/#application-setup","text":"Go to the duckdns website , register your subdomain(s) and retrieve your token Create a container with your subdomain(s) and token It will update your IP with the DuckDNS service every 5 minutes (with a random jitter)","title":"Application Setup"},{"location":"images/docker-duckdns/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-duckdns/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: duckdns: image: lscr.io/linuxserver/duckdns:latest container_name: duckdns environment: - PUID=1000 #optional - PGID=1000 #optional - TZ=Europe/London - SUBDOMAINS=subdomain1,subdomain2 - TOKEN=token - LOG_FILE=false #optional volumes: - /path/to/appdata/config:/config #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-duckdns/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=duckdns \\ -e PUID=1000 `#optional` \\ -e PGID=1000 `#optional` \\ -e TZ=Europe/London \\ -e SUBDOMAINS=subdomain1,subdomain2 \\ -e TOKEN=token \\ -e LOG_FILE=false `#optional` \\ -v /path/to/appdata/config:/config `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/duckdns:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-duckdns/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-duckdns/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-duckdns/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBDOMAINS=subdomain1,subdomain2 multiple subdomains allowed, comma separated, no spaces TOKEN=token DuckDNS token LOG_FILE=false Set to true to log to file (also need to map /config).","title":"Environment Variables (-e)"},{"location":"images/docker-duckdns/#volume-mappings-v","text":"Volume Function /config Used in conjunction with logging to file.","title":"Volume Mappings (-v)"},{"location":"images/docker-duckdns/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-duckdns/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-duckdns/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-duckdns/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-duckdns/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-duckdns/#support-info","text":"Shell access whilst the container is running: docker exec -it duckdns /bin/bash To monitor the logs of the container in realtime: docker logs -f duckdns Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' duckdns Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/duckdns:latest","title":"Support Info"},{"location":"images/docker-duckdns/#versions","text":"23.09.22: - Rebase to alpine 3.16 and s6v3. 19.09.22: - Rebase to alpine 3.15. 17.05.22: - Don't allow insecure connections and add timeout. 17.05.22: - Add random jitter to update time. 23.02.22: - Append to log file instead of overwriting every time. 03.05.21: - Re-adjust cron timings to prevent peak times, update code formatting. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 13.04.20: - Add donation links for DuckDNS. 19.12.19: - Rebasing to alpine 3.11. 24.09.19: - Fix perms on github and remove chmod that can stall the container. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 08.02.19: - Update readme with optional parameters. 10.12.18: - Fix docker compose example. 15.10.18: - Multi-arch image. 22.08.18: - Rebase to alpine 3.8. 08.12.17: - Rebase to alpine 3.7. 28.05.17: - Rebase to alpine 3.6. 09.02.17: - Rebase to alpine 3.5. 17.11.16: - Initial release.","title":"Versions"},{"location":"images/docker-duplicati/","text":"linuxserver/duplicati Duplicati works with standard protocols like FTP, SSH, WebDAV as well as popular services like Microsoft OneDrive, Amazon Cloud Drive & S3, Google Drive, box.com, Mega, hubiC and many others. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/duplicati:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Beta releases of Duplicati development \u2705 Canary releases of Duplicati Application Setup The webui is at :8200 , create backup jobs etc via the webui, for local backups select /backups as the destination. For more information see Duplicati . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: duplicati: image: lscr.io/linuxserver/duplicati:latest container_name: duplicati environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CLI_ARGS= #optional volumes: - :/config - :/backups - :/source ports: - 8200:8200 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=duplicati \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CLI_ARGS= `#optional` \\ -p 8200:8200 \\ -v :/config \\ -v :/backups \\ -v :/source \\ --restart unless-stopped \\ lscr.io/linuxserver/duplicati:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8200 http gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London CLI_ARGS= Optionally specify any CLI variables you want to launch the app with Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /backups Path to store local backups. /source Path to source for files to backup. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it duplicati /bin/bash To monitor the logs of the container in realtime: docker logs -f duplicati Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' duplicati Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/duplicati:latest Versions 03.08.22: - Deprecate armhf. 25.04.22: - Rebase to mono:focal. 01.08.19: - Rebase to Linuxserver LTS mono version. 16.07.19: - Allow for additional command line arguments in an environment variable. 28.06.19: - Rebase to bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 28.02.19: - Allow access from all hostnames, clarify info on image tags. 13.01.19: - Use jq instead of awk in dockerfiles. 11.01.19: - Multi-arch image. 09.12.17: - Fix continuation lines. 31.08.17: - Build only beta or release versions (thanks deasmi). 24.04.17: - Initial release.","title":"duplicati"},{"location":"images/docker-duplicati/#linuxserverduplicati","text":"Duplicati works with standard protocols like FTP, SSH, WebDAV as well as popular services like Microsoft OneDrive, Amazon Cloud Drive & S3, Google Drive, box.com, Mega, hubiC and many others.","title":"linuxserver/duplicati"},{"location":"images/docker-duplicati/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/duplicati:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-duplicati/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Beta releases of Duplicati development \u2705 Canary releases of Duplicati","title":"Version Tags"},{"location":"images/docker-duplicati/#application-setup","text":"The webui is at :8200 , create backup jobs etc via the webui, for local backups select /backups as the destination. For more information see Duplicati .","title":"Application Setup"},{"location":"images/docker-duplicati/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-duplicati/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: duplicati: image: lscr.io/linuxserver/duplicati:latest container_name: duplicati environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CLI_ARGS= #optional volumes: - :/config - :/backups - :/source ports: - 8200:8200 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-duplicati/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=duplicati \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CLI_ARGS= `#optional` \\ -p 8200:8200 \\ -v :/config \\ -v :/backups \\ -v :/source \\ --restart unless-stopped \\ lscr.io/linuxserver/duplicati:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-duplicati/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-duplicati/#ports-p","text":"Parameter Function 8200 http gui","title":"Ports (-p)"},{"location":"images/docker-duplicati/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London CLI_ARGS= Optionally specify any CLI variables you want to launch the app with","title":"Environment Variables (-e)"},{"location":"images/docker-duplicati/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /backups Path to store local backups. /source Path to source for files to backup.","title":"Volume Mappings (-v)"},{"location":"images/docker-duplicati/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-duplicati/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-duplicati/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-duplicati/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-duplicati/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-duplicati/#support-info","text":"Shell access whilst the container is running: docker exec -it duplicati /bin/bash To monitor the logs of the container in realtime: docker logs -f duplicati Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' duplicati Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/duplicati:latest","title":"Support Info"},{"location":"images/docker-duplicati/#versions","text":"03.08.22: - Deprecate armhf. 25.04.22: - Rebase to mono:focal. 01.08.19: - Rebase to Linuxserver LTS mono version. 16.07.19: - Allow for additional command line arguments in an environment variable. 28.06.19: - Rebase to bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 28.02.19: - Allow access from all hostnames, clarify info on image tags. 13.01.19: - Use jq instead of awk in dockerfiles. 11.01.19: - Multi-arch image. 09.12.17: - Fix continuation lines. 31.08.17: - Build only beta or release versions (thanks deasmi). 24.04.17: - Initial release.","title":"Versions"},{"location":"images/docker-emby/","text":"linuxserver/emby Emby organizes video, music, live TV, and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone emby Media Server. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/emby:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable emby releases beta \u2705 Beta emby releases Application Setup Webui can be found at http://:8096 Emby has very complete and verbose documentation located here . Hardware acceleration users for Intel Quicksync and AMD VAAPI will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the emby docker. OpenMAX (Raspberry Pi) Hardware acceleration users for Raspberry Pi OpenMAX will need to mount their /dev/vchiq video device inside of the container and their system OpenMax libs by passing the following options when running or creating the container: --device=/dev/vchiq:/dev/vchiq -v /opt/vc/lib:/opt/vc/lib V4L2 (Raspberry Pi) Hardware acceleration users for Raspberry Pi V4L2 will need to mount their /dev/video1X devices inside of the container by passing the following options when running or creating the container: --device=/dev/video10:/dev/video10 --device=/dev/video11:/dev/video11 --device=/dev/video12:/dev/video12 Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: emby: image: lscr.io/linuxserver/emby:latest container_name: emby environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/library:/config - /path/to/tvshows:/data/tvshows - /path/to/movies:/data/movies - /opt/vc/lib:/opt/vc/lib #optional ports: - 8096:8096 - 8920:8920 #optional devices: - /dev/dri:/dev/dri #optional - /dev/vchiq:/dev/vchiq #optional - /dev/video10:/dev/video10 #optional - /dev/video11:/dev/video11 #optional - /dev/video12:/dev/video12 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=emby \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8096:8096 \\ -p 8920:8920 `#optional` \\ -v /path/to/library:/config \\ -v /path/to/tvshows:/data/tvshows \\ -v /path/to/movies:/data/movies \\ -v /opt/vc/lib:/opt/vc/lib `#optional` \\ --device /dev/dri:/dev/dri `#optional` \\ --device /dev/vchiq:/dev/vchiq `#optional` \\ --device /dev/video10:/dev/video10 `#optional` \\ --device /dev/video11:/dev/video11 `#optional` \\ --device /dev/video12:/dev/video12 `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/emby:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8096 Http webUI. 8920 Https webUI (you need to setup your own certificate). Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Emby data storage location. This can grow very large, 50gb+ is likely for a large collection. /data/tvshows Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. /data/movies Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. /opt/vc/lib Path for Raspberry Pi OpenMAX libs optional . Device Mappings ( --device ) Parameter Function /dev/dri Only needed if you want to use your Intel or AMD GPU for hardware accelerated video encoding (vaapi). /dev/vchiq Only needed if you want to use your Raspberry Pi OpenMax video encoding (Bellagio). /dev/video10 Only needed if you want to use your Raspberry Pi V4L2 video encoding. /dev/video11 Only needed if you want to use your Raspberry Pi V4L2 video encoding. /dev/video12 Only needed if you want to use your Raspberry Pi V4L2 video encoding. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it emby /bin/bash To monitor the logs of the container in realtime: docker logs -f emby Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' emby Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/emby:latest Versions 26.09.22: - Update chown behavior. 18.09.22: - Migrate to s6v3, rebase to Ubuntu Jammy. 19.05.21: - Structural changes upstream. 17.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. Remove no longer used mapping for /transcode. 21.12.20: - Rebase to Focal, see here for troubleshooting armhf. 03.11.20: - Fix issue with missing samba folder. 13.11.20: - Fix issue with samba and ffmpeg. 03.07.20: - Add support for amd vaapi hw transcode. 29.02.20: - Add v4l2 support on Raspberry Pi. 26.02.20: - Add openmax support on Raspberry Pi. 15.02.20: - Allow restarting emby from the gui (also allows for auto restarts after addon updates). 02.10.19: - Improve permission fixing for render and dvb devices. 13.08.19: - Add umask environment variable. 24.06.19: - Fix typos in readme. 30.05.19: - Initial release.","title":"emby"},{"location":"images/docker-emby/#linuxserveremby","text":"Emby organizes video, music, live TV, and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone emby Media Server.","title":"linuxserver/emby"},{"location":"images/docker-emby/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/emby:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-emby/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable emby releases beta \u2705 Beta emby releases","title":"Version Tags"},{"location":"images/docker-emby/#application-setup","text":"Webui can be found at http://:8096 Emby has very complete and verbose documentation located here . Hardware acceleration users for Intel Quicksync and AMD VAAPI will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the emby docker.","title":"Application Setup"},{"location":"images/docker-emby/#openmax-raspberry-pi","text":"Hardware acceleration users for Raspberry Pi OpenMAX will need to mount their /dev/vchiq video device inside of the container and their system OpenMax libs by passing the following options when running or creating the container: --device=/dev/vchiq:/dev/vchiq -v /opt/vc/lib:/opt/vc/lib","title":"OpenMAX (Raspberry Pi)"},{"location":"images/docker-emby/#v4l2-raspberry-pi","text":"Hardware acceleration users for Raspberry Pi V4L2 will need to mount their /dev/video1X devices inside of the container by passing the following options when running or creating the container: --device=/dev/video10:/dev/video10 --device=/dev/video11:/dev/video11 --device=/dev/video12:/dev/video12","title":"V4L2 (Raspberry Pi)"},{"location":"images/docker-emby/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-emby/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: emby: image: lscr.io/linuxserver/emby:latest container_name: emby environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/library:/config - /path/to/tvshows:/data/tvshows - /path/to/movies:/data/movies - /opt/vc/lib:/opt/vc/lib #optional ports: - 8096:8096 - 8920:8920 #optional devices: - /dev/dri:/dev/dri #optional - /dev/vchiq:/dev/vchiq #optional - /dev/video10:/dev/video10 #optional - /dev/video11:/dev/video11 #optional - /dev/video12:/dev/video12 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-emby/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=emby \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8096:8096 \\ -p 8920:8920 `#optional` \\ -v /path/to/library:/config \\ -v /path/to/tvshows:/data/tvshows \\ -v /path/to/movies:/data/movies \\ -v /opt/vc/lib:/opt/vc/lib `#optional` \\ --device /dev/dri:/dev/dri `#optional` \\ --device /dev/vchiq:/dev/vchiq `#optional` \\ --device /dev/video10:/dev/video10 `#optional` \\ --device /dev/video11:/dev/video11 `#optional` \\ --device /dev/video12:/dev/video12 `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/emby:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-emby/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-emby/#ports-p","text":"Parameter Function 8096 Http webUI. 8920 Https webUI (you need to setup your own certificate).","title":"Ports (-p)"},{"location":"images/docker-emby/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-emby/#volume-mappings-v","text":"Volume Function /config Emby data storage location. This can grow very large, 50gb+ is likely for a large collection. /data/tvshows Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. /data/movies Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. /opt/vc/lib Path for Raspberry Pi OpenMAX libs optional .","title":"Volume Mappings (-v)"},{"location":"images/docker-emby/#device-mappings-device","text":"Parameter Function /dev/dri Only needed if you want to use your Intel or AMD GPU for hardware accelerated video encoding (vaapi). /dev/vchiq Only needed if you want to use your Raspberry Pi OpenMax video encoding (Bellagio). /dev/video10 Only needed if you want to use your Raspberry Pi V4L2 video encoding. /dev/video11 Only needed if you want to use your Raspberry Pi V4L2 video encoding. /dev/video12 Only needed if you want to use your Raspberry Pi V4L2 video encoding.","title":"Device Mappings (--device)"},{"location":"images/docker-emby/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-emby/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-emby/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-emby/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-emby/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-emby/#support-info","text":"Shell access whilst the container is running: docker exec -it emby /bin/bash To monitor the logs of the container in realtime: docker logs -f emby Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' emby Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/emby:latest","title":"Support Info"},{"location":"images/docker-emby/#versions","text":"26.09.22: - Update chown behavior. 18.09.22: - Migrate to s6v3, rebase to Ubuntu Jammy. 19.05.21: - Structural changes upstream. 17.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. Remove no longer used mapping for /transcode. 21.12.20: - Rebase to Focal, see here for troubleshooting armhf. 03.11.20: - Fix issue with missing samba folder. 13.11.20: - Fix issue with samba and ffmpeg. 03.07.20: - Add support for amd vaapi hw transcode. 29.02.20: - Add v4l2 support on Raspberry Pi. 26.02.20: - Add openmax support on Raspberry Pi. 15.02.20: - Allow restarting emby from the gui (also allows for auto restarts after addon updates). 02.10.19: - Improve permission fixing for render and dvb devices. 13.08.19: - Add umask environment variable. 24.06.19: - Fix typos in readme. 30.05.19: - Initial release.","title":"Versions"},{"location":"images/docker-embystat/","text":"linuxserver/embystat Embystat is a personal web server that can calculate all kinds of statistics from your (local) Emby server. Just install this on your server and let him calculate all kinds of fun stuff. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/embystat:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at :6555 . Follow the setup wizard on initial install. Then configure the required services. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: embystat: image: lscr.io/linuxserver/embystat:latest container_name: embystat environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 6555:6555 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=embystat \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6555:6555 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/embystat:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 6555 web gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it embystat /bin/bash To monitor the logs of the container in realtime: docker logs -f embystat Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' embystat Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/embystat:latest Versions 11.06.22: - Rebase to focal, update disable updates flag. 08.04.20: - Structural changes for beta18. 04.12.19: - Disable in app updates. 12.11.19: - Multi-arch builds. 10.09.19: - Initial Release.","title":"embystat"},{"location":"images/docker-embystat/#linuxserverembystat","text":"Embystat is a personal web server that can calculate all kinds of statistics from your (local) Emby server. Just install this on your server and let him calculate all kinds of fun stuff.","title":"linuxserver/embystat"},{"location":"images/docker-embystat/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/embystat:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-embystat/#application-setup","text":"Access the webui at :6555 . Follow the setup wizard on initial install. Then configure the required services.","title":"Application Setup"},{"location":"images/docker-embystat/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-embystat/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: embystat: image: lscr.io/linuxserver/embystat:latest container_name: embystat environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 6555:6555 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-embystat/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=embystat \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6555:6555 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/embystat:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-embystat/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-embystat/#ports-p","text":"Parameter Function 6555 web gui","title":"Ports (-p)"},{"location":"images/docker-embystat/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-embystat/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-embystat/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-embystat/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-embystat/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-embystat/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-embystat/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-embystat/#support-info","text":"Shell access whilst the container is running: docker exec -it embystat /bin/bash To monitor the logs of the container in realtime: docker logs -f embystat Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' embystat Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/embystat:latest","title":"Support Info"},{"location":"images/docker-embystat/#versions","text":"11.06.22: - Rebase to focal, update disable updates flag. 08.04.20: - Structural changes for beta18. 04.12.19: - Disable in app updates. 12.11.19: - Multi-arch builds. 10.09.19: - Initial Release.","title":"Versions"},{"location":"images/docker-emulatorjs/","text":"linuxserver/emulatorjs Emulatorjs - In browser web based emulation portable to nearly any device for many retro consoles. A mix of emulators is used between Libretro and EmulatorJS. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/emulatorjs:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The Backend can be accessed at: http://yourhost:3000/ The first thing you will need to do is click to download the default art/configs from this interface, this will setup a skeleton directory in your /data mount. From there add roms to the respective roms directories and follow the on screen instructions to add them to your web frontend running on port 80. The frontend application has been initially optimized around being used with a standard gamepad (more specifically for modern Xbox consoles that have chromium based Edge browsers). The navigation revolves around the up/down/left/right keys to browse the menus and launch games. Mobile browsers will function, just keep in mind compatibility will be reduced especially for CD based games. It is important to note that some of the current emulators used for this frontend are obfuscated code, efforts are being made to reverse engineer it but you should know it can potentially reach out to third party services if you manually enable features like netplay (this should never happen in a stock setup). The point of this message is that on top of the de-obfuscation effort there is also effort to stop using binary blobs and shift to built from source libretro emscripten blobs, for now this web based emulation stack is the best for useability and compatibility. We are in the process to transitioning to libretro cores for emulators, currently 27/30 emulators have been replaced. For Xbox users please click the select button a couple times after launching a game to ensure the B button does not trigger a \"back\" action in the browser. (official name \"view button\" it is the two small squares) Exiting the controller mode and back to browser controls can be triggered by holding the start button for 3 seconds. (official name \"menu button\" the three lines) You will be unable to use features like save states and modify controller layouts on the emulatorjs based emulators currently as I have not determined a methodology of re-entering controller mode once you exit it. All normal game saves will function given you exit the game play screen cleanly using the B button for back this includes multi disc games for psx. Your game saves are stored in browser storage by hostname so if you make any changes to your local hosted setup (port or IP) the saves will not follow with it. For libretro based emulators you can use the button combination start+select+L+R to access the libretro menu and change settings/save or load/etc. We know about most of the oddities like crackling sound for some emulators, rendering issues, and games unreliably auto launching to fullscreen. In general full CD games on the Xbox web browser do not seem to work due to their size if you have a chd/pbp less than 450 megs it will run. Edge on Xbox has some kind of undocumented ram limitation of about a gigabyte. Until all emulators are transitioned to libretro cores the oddities of using self hosted EmulatorJS will not be something that can or should be solved using hacky workarounds interacting with obfuscated code. Just keep in mind these are full blown machine emulators running in Javascript in a browser, do not expect bare metal performance. Mounting in existing rom directories can be achieved by pointing to the default folder structure, IE lets say you would like to mount your NES library: -v /path/to/nes/roms:/data/nes/roms The folder names are: * 3do * arcade * atari2600 * atari7800 * colecovision * doom * gb * gba * gbc * jaguar * lynx * msx * n64 * nds * nes * ngp * odyssey2 * pce * psx * sega32x * segaCD * segaGG * segaMD * segaMS * segaSaturn * segaSG * snes * vb * vectrex * ws Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: emulatorjs: image: lscr.io/linuxserver/emulatorjs:latest container_name: emulatorjs environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional volumes: - /path/to/config:/config - /path/to/data:/data ports: - 3000:3000 - 80:80 - 4001:4001 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=emulatorjs \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -p 3000:3000 \\ -p 80:80 \\ -p 4001:4001 `#optional` \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/emulatorjs:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Rom/artwork management interface, used to generate/manage config files and download artwork 80 Emulation frontend containing static web files used to browse and launch games 4001 IPFS peering port, if you want to participate in the P2P network to distribute frontend artwork please forward this to the Internet Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder for reverse proxies IE '/FOLDER/' Volume Mappings ( -v ) Volume Function /config Path to store user profiles /data Path to store roms/artwork Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it emulatorjs /bin/bash To monitor the logs of the container in realtime: docker logs -f emulatorjs Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' emulatorjs Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/emulatorjs:latest Versions 24.11.22: - Update IPFS links for chdman. 04.04.22: - Ingest pre-built chdman bins during build time. 23.02.22: - Update ingestion point for emulatorjs bins. 25.01.22: - Allow users to mount in existing rom directories. 14.01.22: - Add profile paths and rebase to Alpine 3.15. 04.01.22: - Add headers needed for Threaded emulators. 29.11.21: - Add wasm mime type to NGINX. 26.11.21: - Configure IPFS in a lower power mode, use homebuilt blobs for emu cores. 19.11.21: - Pin retroarch version. 14.11.21: - Update default cores to ingest. 23.10.21: - Initial release.","title":"emulatorjs"},{"location":"images/docker-emulatorjs/#linuxserveremulatorjs","text":"Emulatorjs - In browser web based emulation portable to nearly any device for many retro consoles. A mix of emulators is used between Libretro and EmulatorJS.","title":"linuxserver/emulatorjs"},{"location":"images/docker-emulatorjs/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/emulatorjs:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-emulatorjs/#application-setup","text":"The Backend can be accessed at: http://yourhost:3000/ The first thing you will need to do is click to download the default art/configs from this interface, this will setup a skeleton directory in your /data mount. From there add roms to the respective roms directories and follow the on screen instructions to add them to your web frontend running on port 80. The frontend application has been initially optimized around being used with a standard gamepad (more specifically for modern Xbox consoles that have chromium based Edge browsers). The navigation revolves around the up/down/left/right keys to browse the menus and launch games. Mobile browsers will function, just keep in mind compatibility will be reduced especially for CD based games. It is important to note that some of the current emulators used for this frontend are obfuscated code, efforts are being made to reverse engineer it but you should know it can potentially reach out to third party services if you manually enable features like netplay (this should never happen in a stock setup). The point of this message is that on top of the de-obfuscation effort there is also effort to stop using binary blobs and shift to built from source libretro emscripten blobs, for now this web based emulation stack is the best for useability and compatibility. We are in the process to transitioning to libretro cores for emulators, currently 27/30 emulators have been replaced. For Xbox users please click the select button a couple times after launching a game to ensure the B button does not trigger a \"back\" action in the browser. (official name \"view button\" it is the two small squares) Exiting the controller mode and back to browser controls can be triggered by holding the start button for 3 seconds. (official name \"menu button\" the three lines) You will be unable to use features like save states and modify controller layouts on the emulatorjs based emulators currently as I have not determined a methodology of re-entering controller mode once you exit it. All normal game saves will function given you exit the game play screen cleanly using the B button for back this includes multi disc games for psx. Your game saves are stored in browser storage by hostname so if you make any changes to your local hosted setup (port or IP) the saves will not follow with it. For libretro based emulators you can use the button combination start+select+L+R to access the libretro menu and change settings/save or load/etc. We know about most of the oddities like crackling sound for some emulators, rendering issues, and games unreliably auto launching to fullscreen. In general full CD games on the Xbox web browser do not seem to work due to their size if you have a chd/pbp less than 450 megs it will run. Edge on Xbox has some kind of undocumented ram limitation of about a gigabyte. Until all emulators are transitioned to libretro cores the oddities of using self hosted EmulatorJS will not be something that can or should be solved using hacky workarounds interacting with obfuscated code. Just keep in mind these are full blown machine emulators running in Javascript in a browser, do not expect bare metal performance. Mounting in existing rom directories can be achieved by pointing to the default folder structure, IE lets say you would like to mount your NES library: -v /path/to/nes/roms:/data/nes/roms The folder names are: * 3do * arcade * atari2600 * atari7800 * colecovision * doom * gb * gba * gbc * jaguar * lynx * msx * n64 * nds * nes * ngp * odyssey2 * pce * psx * sega32x * segaCD * segaGG * segaMD * segaMS * segaSaturn * segaSG * snes * vb * vectrex * ws","title":"Application Setup"},{"location":"images/docker-emulatorjs/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-emulatorjs/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: emulatorjs: image: lscr.io/linuxserver/emulatorjs:latest container_name: emulatorjs environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional volumes: - /path/to/config:/config - /path/to/data:/data ports: - 3000:3000 - 80:80 - 4001:4001 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-emulatorjs/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=emulatorjs \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -p 3000:3000 \\ -p 80:80 \\ -p 4001:4001 `#optional` \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/emulatorjs:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-emulatorjs/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-emulatorjs/#ports-p","text":"Parameter Function 3000 Rom/artwork management interface, used to generate/manage config files and download artwork 80 Emulation frontend containing static web files used to browse and launch games 4001 IPFS peering port, if you want to participate in the P2P network to distribute frontend artwork please forward this to the Internet","title":"Ports (-p)"},{"location":"images/docker-emulatorjs/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder for reverse proxies IE '/FOLDER/'","title":"Environment Variables (-e)"},{"location":"images/docker-emulatorjs/#volume-mappings-v","text":"Volume Function /config Path to store user profiles /data Path to store roms/artwork","title":"Volume Mappings (-v)"},{"location":"images/docker-emulatorjs/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-emulatorjs/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-emulatorjs/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-emulatorjs/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-emulatorjs/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-emulatorjs/#support-info","text":"Shell access whilst the container is running: docker exec -it emulatorjs /bin/bash To monitor the logs of the container in realtime: docker logs -f emulatorjs Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' emulatorjs Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/emulatorjs:latest","title":"Support Info"},{"location":"images/docker-emulatorjs/#versions","text":"24.11.22: - Update IPFS links for chdman. 04.04.22: - Ingest pre-built chdman bins during build time. 23.02.22: - Update ingestion point for emulatorjs bins. 25.01.22: - Allow users to mount in existing rom directories. 14.01.22: - Add profile paths and rebase to Alpine 3.15. 04.01.22: - Add headers needed for Threaded emulators. 29.11.21: - Add wasm mime type to NGINX. 26.11.21: - Configure IPFS in a lower power mode, use homebuilt blobs for emu cores. 19.11.21: - Pin retroarch version. 14.11.21: - Update default cores to ingest. 23.10.21: - Initial release.","title":"Versions"},{"location":"images/docker-endlessh/","text":"linuxserver/endlessh Endlessh is an SSH tarpit that very slowly sends an endless, random SSH banner. It keeps SSH clients locked up for hours or even days at a time. The purpose is to put your real SSH server on another port and then let the script kiddies get stuck in this tarpit instead of bothering a real server. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/endlessh:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The app listens on the port mapped for ssh connections. To log to file, set the environment variable LOGFILE to true and map a volume for /config . The logs will be under /config/logs/endlessh . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: endlessh: image: lscr.io/linuxserver/endlessh:latest container_name: endlessh environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MSDELAY=10000 #optional - MAXLINES=32 #optional - MAXCLIENTS=4096 #optional - LOGFILE=false #optional - BINDFAMILY= #optional volumes: - /path/to/appdata:/config #optional ports: - 22:2222 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=endlessh \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MSDELAY=10000 `#optional` \\ -e MAXLINES=32 `#optional` \\ -e MAXCLIENTS=4096 `#optional` \\ -e LOGFILE=false `#optional` \\ -e BINDFAMILY= `#optional` \\ -p 22:2222 \\ -v /path/to/appdata:/config `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/endlessh:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 2222 ssh port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London MSDELAY=10000 The endless banner is sent one line at a time. This is the delay in milliseconds between individual lines. MAXLINES=32 The length of each line is randomized. This controls the maximum length of each line. Shorter lines may keep clients on for longer if they give up after a certain number of bytes. MAXCLIENTS=4096 Maximum number of connections to accept at a time. Connections beyond this are not immediately rejected, but will wait in the queue. LOGFILE=false By default, the app logs to container log. If this is set to true , the log will be output to file under /config/logs/endlessh ( /config needs to be mapped). BINDFAMILY= By default, the app binds to IPv4 and IPv6 addresses. Set it to 4 or 6 to bind to IPv4 only or IPv6 only, respectively. Leave blank to bind to both. Volume Mappings ( -v ) Volume Function /config Required if LOGFILE is set to true . Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it endlessh /bin/bash To monitor the logs of the container in realtime: docker logs -f endlessh Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' endlessh Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/endlessh:latest Versions 23.09.22: - Migrate to s6v3. 20.07.22: - Rebase to Alpine 3.16. 16.04.22: - Rebase to Alpine 3.15. 07.10.21: - Fix typo on MAXLINES var. 08.06.21: - Add BINDFAMILY option. 16.04.21: - Initial Release.","title":"endlessh"},{"location":"images/docker-endlessh/#linuxserverendlessh","text":"Endlessh is an SSH tarpit that very slowly sends an endless, random SSH banner. It keeps SSH clients locked up for hours or even days at a time. The purpose is to put your real SSH server on another port and then let the script kiddies get stuck in this tarpit instead of bothering a real server.","title":"linuxserver/endlessh"},{"location":"images/docker-endlessh/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/endlessh:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-endlessh/#application-setup","text":"The app listens on the port mapped for ssh connections. To log to file, set the environment variable LOGFILE to true and map a volume for /config . The logs will be under /config/logs/endlessh .","title":"Application Setup"},{"location":"images/docker-endlessh/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-endlessh/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: endlessh: image: lscr.io/linuxserver/endlessh:latest container_name: endlessh environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MSDELAY=10000 #optional - MAXLINES=32 #optional - MAXCLIENTS=4096 #optional - LOGFILE=false #optional - BINDFAMILY= #optional volumes: - /path/to/appdata:/config #optional ports: - 22:2222 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-endlessh/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=endlessh \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MSDELAY=10000 `#optional` \\ -e MAXLINES=32 `#optional` \\ -e MAXCLIENTS=4096 `#optional` \\ -e LOGFILE=false `#optional` \\ -e BINDFAMILY= `#optional` \\ -p 22:2222 \\ -v /path/to/appdata:/config `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/endlessh:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-endlessh/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-endlessh/#ports-p","text":"Parameter Function 2222 ssh port","title":"Ports (-p)"},{"location":"images/docker-endlessh/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London MSDELAY=10000 The endless banner is sent one line at a time. This is the delay in milliseconds between individual lines. MAXLINES=32 The length of each line is randomized. This controls the maximum length of each line. Shorter lines may keep clients on for longer if they give up after a certain number of bytes. MAXCLIENTS=4096 Maximum number of connections to accept at a time. Connections beyond this are not immediately rejected, but will wait in the queue. LOGFILE=false By default, the app logs to container log. If this is set to true , the log will be output to file under /config/logs/endlessh ( /config needs to be mapped). BINDFAMILY= By default, the app binds to IPv4 and IPv6 addresses. Set it to 4 or 6 to bind to IPv4 only or IPv6 only, respectively. Leave blank to bind to both.","title":"Environment Variables (-e)"},{"location":"images/docker-endlessh/#volume-mappings-v","text":"Volume Function /config Required if LOGFILE is set to true .","title":"Volume Mappings (-v)"},{"location":"images/docker-endlessh/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-endlessh/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-endlessh/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-endlessh/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-endlessh/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-endlessh/#support-info","text":"Shell access whilst the container is running: docker exec -it endlessh /bin/bash To monitor the logs of the container in realtime: docker logs -f endlessh Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' endlessh Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/endlessh:latest","title":"Support Info"},{"location":"images/docker-endlessh/#versions","text":"23.09.22: - Migrate to s6v3. 20.07.22: - Rebase to Alpine 3.16. 16.04.22: - Rebase to Alpine 3.15. 07.10.21: - Fix typo on MAXLINES var. 08.06.21: - Add BINDFAMILY option. 16.04.21: - Initial Release.","title":"Versions"},{"location":"images/docker-fail2ban/","text":"linuxserver/fail2ban Fail2ban is a daemon to ban hosts that cause multiple authentication errors. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/fail2ban:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This container is designed to allow fail2ban to function at the host level, as well as at the docker container level. If you are running applications on the host, you will need to set the chain to INPUT in the jail for that application. Configuration Files On first run, the container will create a number of folders and files in /config . The default configurations for fail2ban are all disabled by default. Please refer to the Configuration README , which can be viewed in our repository, or in your config folder at /config/fail2ban/README.md . Remote Logs All jails require the ability to read the application log files. We recommend mounting each application's log folder as a volume to the container (illustrated by the optional volumes in our documentation). Mounting individual log files can cause issues and is not recommended. The /remotelogs path is designed to act as a parent for all log files you would like fail2ban to be able to use. Each log file should be mounted in a subfolder underneath /remotelogs , ex: - /remotelogs/nginx/ would mount a folder containing the nginx logs to the container Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: fail2ban: image: lscr.io/linuxserver/fail2ban:latest container_name: fail2ban cap_add: - NET_ADMIN - NET_RAW network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata/config:/config - /var/log:/var/log:ro - /path/to/airsonic/log:/remotelogs/airsonic:ro #optional - /path/to/apache2/log:/remotelogs/apache2:ro #optional - /path/to/authelia/log:/remotelogs/authelia:ro #optional - /path/to/emby/log:/remotelogs/emby:ro #optional - /path/to/filebrowser/log:/remotelogs/filebrowser:ro #optional - /path/to/homeassistant/log:/remotelogs/homeassistant:ro #optional - /path/to/lighttpd/log:/remotelogs/lighttpd:ro #optional - /path/to/nextcloud/log:/remotelogs/nextcloud:ro #optional - /path/to/nginx/log:/remotelogs/nginx:ro #optional - /path/to/nzbget/log:/remotelogs/nzbget:ro #optional - /path/to/overseerr/log:/remotelogs/overseerr:ro #optional - /path/to/prowlarr/log:/remotelogs/prowlarr:ro #optional - /path/to/radarr/log:/remotelogs/radarr:ro #optional - /path/to/sabnzbd/log:/remotelogs/sabnzbd:ro #optional - /path/to/sonarr/log:/remotelogs/sonarr:ro #optional - /path/to/unificontroller/log:/remotelogs/unificontroller:ro #optional - /path/to/vaultwarden/log:/remotelogs/vaultwarden:ro #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=fail2ban \\ --net=host \\ --cap-add=NET_ADMIN \\ --cap-add=NET_RAW \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -v /path/to/appdata/config:/config \\ -v /var/log:/var/log:ro \\ -v /path/to/airsonic/log:/remotelogs/airsonic:ro `#optional` \\ -v /path/to/apache2/log:/remotelogs/apache2:ro `#optional` \\ -v /path/to/authelia/log:/remotelogs/authelia:ro `#optional` \\ -v /path/to/emby/log:/remotelogs/emby:ro `#optional` \\ -v /path/to/filebrowser/log:/remotelogs/filebrowser:ro `#optional` \\ -v /path/to/homeassistant/log:/remotelogs/homeassistant:ro `#optional` \\ -v /path/to/lighttpd/log:/remotelogs/lighttpd:ro `#optional` \\ -v /path/to/nextcloud/log:/remotelogs/nextcloud:ro `#optional` \\ -v /path/to/nginx/log:/remotelogs/nginx:ro `#optional` \\ -v /path/to/nzbget/log:/remotelogs/nzbget:ro `#optional` \\ -v /path/to/overseerr/log:/remotelogs/overseerr:ro `#optional` \\ -v /path/to/prowlarr/log:/remotelogs/prowlarr:ro `#optional` \\ -v /path/to/radarr/log:/remotelogs/radarr:ro `#optional` \\ -v /path/to/sabnzbd/log:/remotelogs/sabnzbd:ro `#optional` \\ -v /path/to/sonarr/log:/remotelogs/sonarr:ro `#optional` \\ -v /path/to/unificontroller/log:/remotelogs/unificontroller:ro `#optional` \\ -v /path/to/vaultwarden/log:/remotelogs/vaultwarden:ro `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/fail2ban:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Networking ( --net ) Parameter Function --net=host Shares host networking with container. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /var/log:ro Host logs. Mounted as Read Only. /remotelogs/airsonic:ro Optional path to airsonic log folder. Mounted as Read Only. /remotelogs/apache2:ro Optional path to apache2 log folder. Mounted as Read Only. /remotelogs/authelia:ro Optional path to authelia log folder. Mounted as Read Only. /remotelogs/emby:ro Optional path to emby log folder. Mounted as Read Only. /remotelogs/filebrowser:ro Optional path to filebrowser log folder. Mounted as Read Only. /remotelogs/homeassistant:ro Optional path to homeassistant log folder. Mounted as Read Only. /remotelogs/lighttpd:ro Optional path to lighttpd log folder. Mounted as Read Only. /remotelogs/nextcloud:ro Optional path to nextcloud log folder. Mounted as Read Only. /remotelogs/nginx:ro Optional path to nginx log folder. Mounted as Read Only. /remotelogs/nzbget:ro Optional path to nzbget log folder. Mounted as Read Only. /remotelogs/overseerr:ro Optional path to overseerr log folder. Mounted as Read Only. /remotelogs/prowlarr:ro Optional path to prowlarr log folder. Mounted as Read Only. /remotelogs/radarr:ro Optional path to radarr log folder. Mounted as Read Only. /remotelogs/sabnzbd:ro Optional path to sabnzbd log folder. Mounted as Read Only. /remotelogs/sonarr:ro Optional path to sonarr log folder. Mounted as Read Only. /remotelogs/unificontroller:ro Optional path to unificontroller log folder. Mounted as Read Only. /remotelogs/vaultwarden:ro Optional path to vaultwarden log folder. Mounted as Read Only. Miscellaneous Options Parameter Function Portainer notice {% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %} Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it fail2ban /bin/bash To monitor the logs of the container in realtime: docker logs -f fail2ban Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' fail2ban Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/fail2ban:latest Versions 15.12.22: - Rebase to Alpine 3.17, Add ssmtp and whois packages. Symlink config to allow live reloading. 25.08.22: - Update README to clarify remote log information. 09.08.22: - Initial Release.","title":"fail2ban"},{"location":"images/docker-fail2ban/#linuxserverfail2ban","text":"Fail2ban is a daemon to ban hosts that cause multiple authentication errors.","title":"linuxserver/fail2ban"},{"location":"images/docker-fail2ban/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/fail2ban:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-fail2ban/#application-setup","text":"This container is designed to allow fail2ban to function at the host level, as well as at the docker container level. If you are running applications on the host, you will need to set the chain to INPUT in the jail for that application.","title":"Application Setup"},{"location":"images/docker-fail2ban/#configuration-files","text":"On first run, the container will create a number of folders and files in /config . The default configurations for fail2ban are all disabled by default. Please refer to the Configuration README , which can be viewed in our repository, or in your config folder at /config/fail2ban/README.md .","title":"Configuration Files"},{"location":"images/docker-fail2ban/#remote-logs","text":"All jails require the ability to read the application log files. We recommend mounting each application's log folder as a volume to the container (illustrated by the optional volumes in our documentation). Mounting individual log files can cause issues and is not recommended. The /remotelogs path is designed to act as a parent for all log files you would like fail2ban to be able to use. Each log file should be mounted in a subfolder underneath /remotelogs , ex: - /remotelogs/nginx/ would mount a folder containing the nginx logs to the container","title":"Remote Logs"},{"location":"images/docker-fail2ban/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-fail2ban/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: fail2ban: image: lscr.io/linuxserver/fail2ban:latest container_name: fail2ban cap_add: - NET_ADMIN - NET_RAW network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata/config:/config - /var/log:/var/log:ro - /path/to/airsonic/log:/remotelogs/airsonic:ro #optional - /path/to/apache2/log:/remotelogs/apache2:ro #optional - /path/to/authelia/log:/remotelogs/authelia:ro #optional - /path/to/emby/log:/remotelogs/emby:ro #optional - /path/to/filebrowser/log:/remotelogs/filebrowser:ro #optional - /path/to/homeassistant/log:/remotelogs/homeassistant:ro #optional - /path/to/lighttpd/log:/remotelogs/lighttpd:ro #optional - /path/to/nextcloud/log:/remotelogs/nextcloud:ro #optional - /path/to/nginx/log:/remotelogs/nginx:ro #optional - /path/to/nzbget/log:/remotelogs/nzbget:ro #optional - /path/to/overseerr/log:/remotelogs/overseerr:ro #optional - /path/to/prowlarr/log:/remotelogs/prowlarr:ro #optional - /path/to/radarr/log:/remotelogs/radarr:ro #optional - /path/to/sabnzbd/log:/remotelogs/sabnzbd:ro #optional - /path/to/sonarr/log:/remotelogs/sonarr:ro #optional - /path/to/unificontroller/log:/remotelogs/unificontroller:ro #optional - /path/to/vaultwarden/log:/remotelogs/vaultwarden:ro #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-fail2ban/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=fail2ban \\ --net=host \\ --cap-add=NET_ADMIN \\ --cap-add=NET_RAW \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -v /path/to/appdata/config:/config \\ -v /var/log:/var/log:ro \\ -v /path/to/airsonic/log:/remotelogs/airsonic:ro `#optional` \\ -v /path/to/apache2/log:/remotelogs/apache2:ro `#optional` \\ -v /path/to/authelia/log:/remotelogs/authelia:ro `#optional` \\ -v /path/to/emby/log:/remotelogs/emby:ro `#optional` \\ -v /path/to/filebrowser/log:/remotelogs/filebrowser:ro `#optional` \\ -v /path/to/homeassistant/log:/remotelogs/homeassistant:ro `#optional` \\ -v /path/to/lighttpd/log:/remotelogs/lighttpd:ro `#optional` \\ -v /path/to/nextcloud/log:/remotelogs/nextcloud:ro `#optional` \\ -v /path/to/nginx/log:/remotelogs/nginx:ro `#optional` \\ -v /path/to/nzbget/log:/remotelogs/nzbget:ro `#optional` \\ -v /path/to/overseerr/log:/remotelogs/overseerr:ro `#optional` \\ -v /path/to/prowlarr/log:/remotelogs/prowlarr:ro `#optional` \\ -v /path/to/radarr/log:/remotelogs/radarr:ro `#optional` \\ -v /path/to/sabnzbd/log:/remotelogs/sabnzbd:ro `#optional` \\ -v /path/to/sonarr/log:/remotelogs/sonarr:ro `#optional` \\ -v /path/to/unificontroller/log:/remotelogs/unificontroller:ro `#optional` \\ -v /path/to/vaultwarden/log:/remotelogs/vaultwarden:ro `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/fail2ban:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-fail2ban/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-fail2ban/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-fail2ban/#networking-net","text":"Parameter Function --net=host Shares host networking with container.","title":"Networking (--net)"},{"location":"images/docker-fail2ban/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York","title":"Environment Variables (-e)"},{"location":"images/docker-fail2ban/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /var/log:ro Host logs. Mounted as Read Only. /remotelogs/airsonic:ro Optional path to airsonic log folder. Mounted as Read Only. /remotelogs/apache2:ro Optional path to apache2 log folder. Mounted as Read Only. /remotelogs/authelia:ro Optional path to authelia log folder. Mounted as Read Only. /remotelogs/emby:ro Optional path to emby log folder. Mounted as Read Only. /remotelogs/filebrowser:ro Optional path to filebrowser log folder. Mounted as Read Only. /remotelogs/homeassistant:ro Optional path to homeassistant log folder. Mounted as Read Only. /remotelogs/lighttpd:ro Optional path to lighttpd log folder. Mounted as Read Only. /remotelogs/nextcloud:ro Optional path to nextcloud log folder. Mounted as Read Only. /remotelogs/nginx:ro Optional path to nginx log folder. Mounted as Read Only. /remotelogs/nzbget:ro Optional path to nzbget log folder. Mounted as Read Only. /remotelogs/overseerr:ro Optional path to overseerr log folder. Mounted as Read Only. /remotelogs/prowlarr:ro Optional path to prowlarr log folder. Mounted as Read Only. /remotelogs/radarr:ro Optional path to radarr log folder. Mounted as Read Only. /remotelogs/sabnzbd:ro Optional path to sabnzbd log folder. Mounted as Read Only. /remotelogs/sonarr:ro Optional path to sonarr log folder. Mounted as Read Only. /remotelogs/unificontroller:ro Optional path to unificontroller log folder. Mounted as Read Only. /remotelogs/vaultwarden:ro Optional path to vaultwarden log folder. Mounted as Read Only.","title":"Volume Mappings (-v)"},{"location":"images/docker-fail2ban/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-fail2ban/#portainer-notice","text":"{% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %}","title":"Portainer notice"},{"location":"images/docker-fail2ban/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-fail2ban/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-fail2ban/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-fail2ban/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-fail2ban/#support-info","text":"Shell access whilst the container is running: docker exec -it fail2ban /bin/bash To monitor the logs of the container in realtime: docker logs -f fail2ban Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' fail2ban Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/fail2ban:latest","title":"Support Info"},{"location":"images/docker-fail2ban/#versions","text":"15.12.22: - Rebase to Alpine 3.17, Add ssmtp and whois packages. Symlink config to allow live reloading. 25.08.22: - Update README to clarify remote log information. 09.08.22: - Initial Release.","title":"Versions"},{"location":"images/docker-feed2toot/","text":"linuxserver/feed2toot Feed2toot automatically parses rss feeds, identifies new posts and posts them on the Mastodon social network. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/feed2toot:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Run docker run --rm -it -w /config -v /path/to/data:/config -e PUID=1000 -e PGID=1000 lscr.io/linuxserver/feed2toot /usr/bin/register_feed2toot_app to generate credential files (be sure to set the correct volume path and PUID/PGID values). Edit the feed2toot.ini in /config to configure your instance name and RSS feeds. See the feed2toot docs for more information. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: feed2toot: image: lscr.io/linuxserver/feed2toot:latest container_name: feed2toot environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - FEED_LIMIT=5 #optional volumes: - /path/to/data:/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=feed2toot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e FEED_LIMIT=5 `#optional` \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/feed2toot:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. FEED_LIMIT=5 Limit number of RSS entries published at each execution. Volume Mappings ( -v ) Volume Function /config Local path for feed2toot config files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it feed2toot /bin/bash To monitor the logs of the container in realtime: docker logs -f feed2toot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' feed2toot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/feed2toot:latest Versions 14.11.22: - Initial Release.","title":"feed2toot"},{"location":"images/docker-feed2toot/#linuxserverfeed2toot","text":"Feed2toot automatically parses rss feeds, identifies new posts and posts them on the Mastodon social network.","title":"linuxserver/feed2toot"},{"location":"images/docker-feed2toot/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/feed2toot:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-feed2toot/#application-setup","text":"Run docker run --rm -it -w /config -v /path/to/data:/config -e PUID=1000 -e PGID=1000 lscr.io/linuxserver/feed2toot /usr/bin/register_feed2toot_app to generate credential files (be sure to set the correct volume path and PUID/PGID values). Edit the feed2toot.ini in /config to configure your instance name and RSS feeds. See the feed2toot docs for more information.","title":"Application Setup"},{"location":"images/docker-feed2toot/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-feed2toot/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: feed2toot: image: lscr.io/linuxserver/feed2toot:latest container_name: feed2toot environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - FEED_LIMIT=5 #optional volumes: - /path/to/data:/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-feed2toot/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=feed2toot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e FEED_LIMIT=5 `#optional` \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/feed2toot:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-feed2toot/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-feed2toot/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-feed2toot/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. FEED_LIMIT=5 Limit number of RSS entries published at each execution.","title":"Environment Variables (-e)"},{"location":"images/docker-feed2toot/#volume-mappings-v","text":"Volume Function /config Local path for feed2toot config files.","title":"Volume Mappings (-v)"},{"location":"images/docker-feed2toot/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-feed2toot/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-feed2toot/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-feed2toot/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-feed2toot/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-feed2toot/#support-info","text":"Shell access whilst the container is running: docker exec -it feed2toot /bin/bash To monitor the logs of the container in realtime: docker logs -f feed2toot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' feed2toot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/feed2toot:latest","title":"Support Info"},{"location":"images/docker-feed2toot/#versions","text":"14.11.22: - Initial Release.","title":"Versions"},{"location":"images/docker-ffmpeg/","text":"The LinuxServer.io team brings you another container release featuring :- regular and timely application updates easy user mappings (PGID, PUID) custom base image with s6 overlay weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth regular security updates Find us at: * Blog - all the things you can do with our containers including How-To guides, opinions and much more! * Discord - realtime support / chat with the community and the team. * Discourse - post on our community forum. * Fleet - an online web interface which displays all of our maintained images. * Podcast - on hiatus. Coming back soon (late 2018). * Open Collective - please consider helping us by either donating or contributing to our budget FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ffmpeg:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Usage Unlike most of our container library this image is meant to be run ephemerally from the command line parsing user input for a custom FFmpeg command. You will need to understand some Docker basics to use this image and be familiar with how to construct an FFmpeg command. In the commands below we will be bind mounting our current working directory from the CLI to /config, the assumption is that input.mkv is in your current working directory. If an input file is detected we will run FFmpeg as that user/group so the output file will match it's permissions. The image supports Hardware acceleration on x86 pay close attention to the variables for the examples below. Basic Transcode docker run --rm -it \\ -v $(pwd):/config \\ linuxserver/ffmpeg \\ -i /config/input.mkv \\ -c:v libx264 \\ -b:v 4M \\ -vf scale=1280:720 \\ -c:a copy \\ /config/output.mkv Hardware accelerated (VAAPI) docker run --rm -it \\ --device=/dev/dri:/dev/dri \\ -v $(pwd):/config \\ linuxserver/ffmpeg \\ -vaapi_device /dev/dri/renderD128 \\ -i /config/input.mkv \\ -c:v h264_vaapi \\ -b:v 4M \\ -vf 'format=nv12|vaapi,hwupload,scale_vaapi=w=1280:h=720' \\ -c:a copy \\ /config/output.mkv Nvidia Hardware accelerated docker run --rm -it \\ --runtime=nvidia \\ -v $(pwd):/config \\ linuxserver/ffmpeg \\ -hwaccel nvdec \\ -i /config/input.mkv \\ -c:v h264_nvenc \\ -b:v 4M \\ -vf scale=1280:720 \\ -c:a copy \\ /config/output.mkv Building locally If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-ffmpeg.git cd docker-ffmpeg docker build \\ --no-cache \\ --pull \\ -t linuxserver/ffmpeg:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 . Versions 19.06.22: - Rebase to Focal. 26.08.21: - Add support for libOpenCL. 01.07.21: - Bump to 4.4. 17.06.20: - Bump to 4.3. 16.06.20: - Add support for libvmaf. 01.08.19: - Initial release.","title":"ffmpeg"},{"location":"images/docker-ffmpeg/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ffmpeg:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-ffmpeg/#usage","text":"Unlike most of our container library this image is meant to be run ephemerally from the command line parsing user input for a custom FFmpeg command. You will need to understand some Docker basics to use this image and be familiar with how to construct an FFmpeg command. In the commands below we will be bind mounting our current working directory from the CLI to /config, the assumption is that input.mkv is in your current working directory. If an input file is detected we will run FFmpeg as that user/group so the output file will match it's permissions. The image supports Hardware acceleration on x86 pay close attention to the variables for the examples below.","title":"Usage"},{"location":"images/docker-ffmpeg/#basic-transcode","text":"docker run --rm -it \\ -v $(pwd):/config \\ linuxserver/ffmpeg \\ -i /config/input.mkv \\ -c:v libx264 \\ -b:v 4M \\ -vf scale=1280:720 \\ -c:a copy \\ /config/output.mkv","title":"Basic Transcode"},{"location":"images/docker-ffmpeg/#hardware-accelerated-vaapi","text":"docker run --rm -it \\ --device=/dev/dri:/dev/dri \\ -v $(pwd):/config \\ linuxserver/ffmpeg \\ -vaapi_device /dev/dri/renderD128 \\ -i /config/input.mkv \\ -c:v h264_vaapi \\ -b:v 4M \\ -vf 'format=nv12|vaapi,hwupload,scale_vaapi=w=1280:h=720' \\ -c:a copy \\ /config/output.mkv","title":"Hardware accelerated (VAAPI)"},{"location":"images/docker-ffmpeg/#nvidia-hardware-accelerated","text":"docker run --rm -it \\ --runtime=nvidia \\ -v $(pwd):/config \\ linuxserver/ffmpeg \\ -hwaccel nvdec \\ -i /config/input.mkv \\ -c:v h264_nvenc \\ -b:v 4M \\ -vf scale=1280:720 \\ -c:a copy \\ /config/output.mkv","title":"Nvidia Hardware accelerated"},{"location":"images/docker-ffmpeg/#building-locally","text":"If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-ffmpeg.git cd docker-ffmpeg docker build \\ --no-cache \\ --pull \\ -t linuxserver/ffmpeg:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 .","title":"Building locally"},{"location":"images/docker-ffmpeg/#versions","text":"19.06.22: - Rebase to Focal. 26.08.21: - Add support for libOpenCL. 01.07.21: - Bump to 4.4. 17.06.20: - Bump to 4.3. 16.06.20: - Add support for libvmaf. 01.08.19: - Initial release.","title":"Versions"},{"location":"images/docker-filezilla/","text":"linuxserver/filezilla FIleZilla Client is a fast and reliable cross-platform FTP, FTPS and SFTP client with lots of useful features and an intuitive graphical user interface. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/filezilla:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: filezilla: image: lscr.io/linuxserver/filezilla:latest container_name: filezilla security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=filezilla \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/filezilla:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 FileZilla desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores local files and settings Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it filezilla /bin/bash To monitor the logs of the container in realtime: docker logs -f filezilla Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' filezilla Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/filezilla:latest Versions 21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 23.12.21: - Rebase to Alpine 3.15. 26.09.21: - Rebase to Alpine 3.14. 18.04.21: - Initial release.","title":"filezilla"},{"location":"images/docker-filezilla/#linuxserverfilezilla","text":"FIleZilla Client is a fast and reliable cross-platform FTP, FTPS and SFTP client with lots of useful features and an intuitive graphical user interface.","title":"linuxserver/filezilla"},{"location":"images/docker-filezilla/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/filezilla:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-filezilla/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-filezilla/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-filezilla/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: filezilla: image: lscr.io/linuxserver/filezilla:latest container_name: filezilla security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-filezilla/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=filezilla \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/filezilla:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-filezilla/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-filezilla/#ports-p","text":"Parameter Function 3000 FileZilla desktop gui.","title":"Ports (-p)"},{"location":"images/docker-filezilla/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-filezilla/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores local files and settings","title":"Volume Mappings (-v)"},{"location":"images/docker-filezilla/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-filezilla/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-filezilla/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-filezilla/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-filezilla/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-filezilla/#support-info","text":"Shell access whilst the container is running: docker exec -it filezilla /bin/bash To monitor the logs of the container in realtime: docker logs -f filezilla Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' filezilla Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/filezilla:latest","title":"Support Info"},{"location":"images/docker-filezilla/#versions","text":"21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 23.12.21: - Rebase to Alpine 3.15. 26.09.21: - Rebase to Alpine 3.14. 18.04.21: - Initial release.","title":"Versions"},{"location":"images/docker-firefox/","text":"linuxserver/firefox Firefox Browser, also known as Mozilla Firefox or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. Firefox uses the Gecko layout engine to render web pages, which implements current and anticipated web standards. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/firefox:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: firefox: image: lscr.io/linuxserver/firefox:latest container_name: firefox security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 shm_size: \"1gb\" restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=firefox \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --shm-size=\"1gb\" \\ --restart unless-stopped \\ lscr.io/linuxserver/firefox:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Firefox desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores local files and settings Miscellaneous Options Parameter Function --shm-size= This is needed for any modern website to function like youtube. --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it firefox /bin/bash To monitor the logs of the container in realtime: docker logs -f firefox Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' firefox Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/firefox:latest Versions 21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 23.12.21: - Rebase to Alpine 3.15, stop using ESR. 26.09.21: - Rebase to Alpine 3.14. 19.04.21: - Initial release.","title":"firefox"},{"location":"images/docker-firefox/#linuxserverfirefox","text":"Firefox Browser, also known as Mozilla Firefox or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. Firefox uses the Gecko layout engine to render web pages, which implements current and anticipated web standards.","title":"linuxserver/firefox"},{"location":"images/docker-firefox/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/firefox:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-firefox/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-firefox/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-firefox/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: firefox: image: lscr.io/linuxserver/firefox:latest container_name: firefox security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 shm_size: \"1gb\" restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-firefox/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=firefox \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --shm-size=\"1gb\" \\ --restart unless-stopped \\ lscr.io/linuxserver/firefox:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-firefox/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-firefox/#ports-p","text":"Parameter Function 3000 Firefox desktop gui.","title":"Ports (-p)"},{"location":"images/docker-firefox/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-firefox/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores local files and settings","title":"Volume Mappings (-v)"},{"location":"images/docker-firefox/#miscellaneous-options","text":"Parameter Function --shm-size= This is needed for any modern website to function like youtube. --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-firefox/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-firefox/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-firefox/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-firefox/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-firefox/#support-info","text":"Shell access whilst the container is running: docker exec -it firefox /bin/bash To monitor the logs of the container in realtime: docker logs -f firefox Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' firefox Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/firefox:latest","title":"Support Info"},{"location":"images/docker-firefox/#versions","text":"21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 23.12.21: - Rebase to Alpine 3.15, stop using ESR. 26.09.21: - Rebase to Alpine 3.14. 19.04.21: - Initial release.","title":"Versions"},{"location":"images/docker-fleet/","text":"linuxserver/fleet Fleet provides an online web interface which displays a set of maintained images from one or more owned repositories. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/fleet:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Navigate to http://your_ip_here:8080 to display the home page. If DATABASE is selected as the preferred authentication process, ensure that you set up an initial user via http://your_ip_here:8080/setup . Once done, that page will no longer be available. A restart is preferable as it will remove the page altogether. Once complete, you can log into the app via http://your_ip_here:8080/login to manage your repositories. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: fleet: image: lscr.io/linuxserver/fleet:latest container_name: fleet environment: - PUID=1000 - PGID=1000 - fleet_admin_authentication_type=DATABASE - fleet_database_url=jdbc:mariadb://:3306/fleet - fleet_database_username=fleet_user - fleet_database_password=dbuserpassword - fleet_admin_secret=randomstring #optional volumes: - :/config ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=fleet \\ -e PUID=1000 \\ -e PGID=1000 \\ -e fleet_admin_authentication_type=DATABASE \\ -e fleet_database_url=jdbc:mariadb://:3306/fleet \\ -e fleet_database_username=fleet_user \\ -e fleet_database_password=dbuserpassword \\ -e fleet_admin_secret=randomstring `#optional` \\ -p 8080:8080 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/fleet:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Http port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation fleet_admin_authentication_type=DATABASE A switch to define how Fleet manages user logins. If set to DATABASE, see the related optional params. Can be set to either DATABASE or PROPERTIES. fleet_database_url=jdbc:mariadb://:3306/fleet The full JDBC connection string to the Fleet database fleet_database_username=fleet_user The username with the relevant GRANT permissions for the database fleet_database_password=dbuserpassword The database user's password. fleet_admin_secret=randomstring A string used as part of the password key derivation process. Volume Mappings ( -v ) Volume Function /config The primary config file and rolling log files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it fleet /bin/bash To monitor the logs of the container in realtime: docker logs -f fleet Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' fleet Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/fleet:latest Versions 02.05.22: - Rebase to Alpine 3.15. 13.12.21: - Add mitigations for CVE-2021-44228 26.04.20: - Updated to keep in line with v2.0.0 branch of Fleet 19.12.19: - Rebasing to alpine 3.11. 02.07.19: - Rebasing to alpine 3.10. 02.07.19: - Stop container if fleet fails. 19.05.19: - Use new base images for arm versions. 01.04.19: - Initial Release","title":"fleet"},{"location":"images/docker-fleet/#linuxserverfleet","text":"Fleet provides an online web interface which displays a set of maintained images from one or more owned repositories.","title":"linuxserver/fleet"},{"location":"images/docker-fleet/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/fleet:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-fleet/#application-setup","text":"Navigate to http://your_ip_here:8080 to display the home page. If DATABASE is selected as the preferred authentication process, ensure that you set up an initial user via http://your_ip_here:8080/setup . Once done, that page will no longer be available. A restart is preferable as it will remove the page altogether. Once complete, you can log into the app via http://your_ip_here:8080/login to manage your repositories.","title":"Application Setup"},{"location":"images/docker-fleet/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-fleet/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: fleet: image: lscr.io/linuxserver/fleet:latest container_name: fleet environment: - PUID=1000 - PGID=1000 - fleet_admin_authentication_type=DATABASE - fleet_database_url=jdbc:mariadb://:3306/fleet - fleet_database_username=fleet_user - fleet_database_password=dbuserpassword - fleet_admin_secret=randomstring #optional volumes: - :/config ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-fleet/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=fleet \\ -e PUID=1000 \\ -e PGID=1000 \\ -e fleet_admin_authentication_type=DATABASE \\ -e fleet_database_url=jdbc:mariadb://:3306/fleet \\ -e fleet_database_username=fleet_user \\ -e fleet_database_password=dbuserpassword \\ -e fleet_admin_secret=randomstring `#optional` \\ -p 8080:8080 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/fleet:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-fleet/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-fleet/#ports-p","text":"Parameter Function 8080 Http port","title":"Ports (-p)"},{"location":"images/docker-fleet/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation fleet_admin_authentication_type=DATABASE A switch to define how Fleet manages user logins. If set to DATABASE, see the related optional params. Can be set to either DATABASE or PROPERTIES. fleet_database_url=jdbc:mariadb://:3306/fleet The full JDBC connection string to the Fleet database fleet_database_username=fleet_user The username with the relevant GRANT permissions for the database fleet_database_password=dbuserpassword The database user's password. fleet_admin_secret=randomstring A string used as part of the password key derivation process.","title":"Environment Variables (-e)"},{"location":"images/docker-fleet/#volume-mappings-v","text":"Volume Function /config The primary config file and rolling log files.","title":"Volume Mappings (-v)"},{"location":"images/docker-fleet/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-fleet/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-fleet/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-fleet/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-fleet/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-fleet/#support-info","text":"Shell access whilst the container is running: docker exec -it fleet /bin/bash To monitor the logs of the container in realtime: docker logs -f fleet Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' fleet Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/fleet:latest","title":"Support Info"},{"location":"images/docker-fleet/#versions","text":"02.05.22: - Rebase to Alpine 3.15. 13.12.21: - Add mitigations for CVE-2021-44228 26.04.20: - Updated to keep in line with v2.0.0 branch of Fleet 19.12.19: - Rebasing to alpine 3.11. 02.07.19: - Rebasing to alpine 3.10. 02.07.19: - Stop container if fleet fails. 19.05.19: - Use new base images for arm versions. 01.04.19: - Initial Release","title":"Versions"},{"location":"images/docker-foldingathome/","text":"linuxserver/foldingathome Folding@home is a distributed computing project for simulating protein dynamics, including the process of protein folding and the movements of proteins implicated in a variety of diseases. It brings together citizen scientists who volunteer to run simulations of protein dynamics on their personal computers. Insights from this data are helping scientists to better understand biology, and providing new opportunities for developing therapeutics. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/foldingathome:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Application Setup This image sets up the Folding@home client. The interface is available at http://your-ip:7396 . The built-in webserver provides very basic control (ie. GPUs are only active when set to Medium or higher). For more fine grained control of individual devices, you can use the FAHControl app on a different device and connect remotely via port 36330 (no password). There are a couple of minor issues with the webgui: - If you get an \"ERR_EMPTY_RESPONSE\" error when trying to access via IP, it's most likely due to a clash of cookies/cache. Try opening in an incgnito window. - If you're getting a constant refresh of the window but no display of info, try a force refresh via shft-F5 or ctrl-F5 . GPU Hardware Acceleration Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the foldingathome docker container. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: foldingathome: image: lscr.io/linuxserver/foldingathome:latest container_name: foldingathome environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 7396:7396 - 36330:36330 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=foldingathome \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 7396:7396 \\ -p 36330:36330 `#optional` \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/foldingathome:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 7396 Folding@home web gui. 36330 Optional port for connecting remotely via FAHControl app (no password). Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where Folding@home should store its database and config. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it foldingathome /bin/bash To monitor the logs of the container in realtime: docker logs -f foldingathome Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' foldingathome Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/foldingathome:latest Versions 14.12.22: - Rebase to Ubuntu Jammy, migrate to s6v3. 15.01.22: - Rebase to Ubuntu Focal. Add arm64v8 builds (cpu only). Increase verbosity about gpu driver permission settings. 09.01.21: - Add nvidia.icd. 14.04.20: - Add Folding@home donation links. 20.03.20: - Initial release.","title":"foldingathome"},{"location":"images/docker-foldingathome/#linuxserverfoldingathome","text":"Folding@home is a distributed computing project for simulating protein dynamics, including the process of protein folding and the movements of proteins implicated in a variety of diseases. It brings together citizen scientists who volunteer to run simulations of protein dynamics on their personal computers. Insights from this data are helping scientists to better understand biology, and providing new opportunities for developing therapeutics.","title":"linuxserver/foldingathome"},{"location":"images/docker-foldingathome/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/foldingathome:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-foldingathome/#application-setup","text":"This image sets up the Folding@home client. The interface is available at http://your-ip:7396 . The built-in webserver provides very basic control (ie. GPUs are only active when set to Medium or higher). For more fine grained control of individual devices, you can use the FAHControl app on a different device and connect remotely via port 36330 (no password). There are a couple of minor issues with the webgui: - If you get an \"ERR_EMPTY_RESPONSE\" error when trying to access via IP, it's most likely due to a clash of cookies/cache. Try opening in an incgnito window. - If you're getting a constant refresh of the window but no display of info, try a force refresh via shft-F5 or ctrl-F5 .","title":"Application Setup"},{"location":"images/docker-foldingathome/#gpu-hardware-acceleration","text":"","title":"GPU Hardware Acceleration"},{"location":"images/docker-foldingathome/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the foldingathome docker container.","title":"Nvidia"},{"location":"images/docker-foldingathome/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-foldingathome/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: foldingathome: image: lscr.io/linuxserver/foldingathome:latest container_name: foldingathome environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 7396:7396 - 36330:36330 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-foldingathome/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=foldingathome \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 7396:7396 \\ -p 36330:36330 `#optional` \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/foldingathome:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-foldingathome/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-foldingathome/#ports-p","text":"Parameter Function 7396 Folding@home web gui. 36330 Optional port for connecting remotely via FAHControl app (no password).","title":"Ports (-p)"},{"location":"images/docker-foldingathome/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-foldingathome/#volume-mappings-v","text":"Volume Function /config Where Folding@home should store its database and config.","title":"Volume Mappings (-v)"},{"location":"images/docker-foldingathome/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-foldingathome/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-foldingathome/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-foldingathome/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-foldingathome/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-foldingathome/#support-info","text":"Shell access whilst the container is running: docker exec -it foldingathome /bin/bash To monitor the logs of the container in realtime: docker logs -f foldingathome Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' foldingathome Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/foldingathome:latest","title":"Support Info"},{"location":"images/docker-foldingathome/#versions","text":"14.12.22: - Rebase to Ubuntu Jammy, migrate to s6v3. 15.01.22: - Rebase to Ubuntu Focal. Add arm64v8 builds (cpu only). Increase verbosity about gpu driver permission settings. 09.01.21: - Add nvidia.icd. 14.04.20: - Add Folding@home donation links. 20.03.20: - Initial release.","title":"Versions"},{"location":"images/docker-freshrss/","text":"linuxserver/freshrss Freshrss is a free, self-hostable aggregator for rss feeds. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/freshrss:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui set up wizard at http://serverIP:port For external databases, create a user and database in your mysql/mariadb server (not root) and then follow the setup wizard in the webui. Use the IP address for \"host\" of your database server. Additional extensions can be dropped into /config/www/freshrss/extensions and will be active after container restart. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: freshrss: image: lscr.io/linuxserver/freshrss:latest container_name: freshrss environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=freshrss \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/freshrss:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Local storage for freshrss site files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it freshrss /bin/bash To monitor the logs of the container in realtime: docker logs -f freshrss Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' freshrss Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/freshrss:latest Versions 21.10.22: - Fix cron init to properly migrate existing installations to new app location. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 31.03.20: - Internalize app and enable updates for existing users, allow user customized crontab. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Add multi arch and pipeline logic. 05.09.18: - Rebase to alpine linux 3.8. 17.03.18: - Update nginx config to resolve api not working. 08.01.18: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 23.02.17: - Rebase to alpine linux 3.5 and nginx. 14.10.16: - Add version layer information. 08.10.16: - Add Sqlite support for standalone operation. 27.09.16: - Fix for cron job. 11.09.16: - Add layer badges to README. 23.11.15: - Update dependencies to latest requirements. 21.08.15: - Initial Release.","title":"freshrss"},{"location":"images/docker-freshrss/#linuxserverfreshrss","text":"Freshrss is a free, self-hostable aggregator for rss feeds.","title":"linuxserver/freshrss"},{"location":"images/docker-freshrss/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/freshrss:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-freshrss/#application-setup","text":"Access the webui set up wizard at http://serverIP:port For external databases, create a user and database in your mysql/mariadb server (not root) and then follow the setup wizard in the webui. Use the IP address for \"host\" of your database server. Additional extensions can be dropped into /config/www/freshrss/extensions and will be active after container restart.","title":"Application Setup"},{"location":"images/docker-freshrss/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-freshrss/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: freshrss: image: lscr.io/linuxserver/freshrss:latest container_name: freshrss environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-freshrss/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=freshrss \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/freshrss:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-freshrss/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-freshrss/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-freshrss/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-freshrss/#volume-mappings-v","text":"Volume Function /config Local storage for freshrss site files.","title":"Volume Mappings (-v)"},{"location":"images/docker-freshrss/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-freshrss/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-freshrss/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-freshrss/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-freshrss/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-freshrss/#support-info","text":"Shell access whilst the container is running: docker exec -it freshrss /bin/bash To monitor the logs of the container in realtime: docker logs -f freshrss Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' freshrss Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/freshrss:latest","title":"Support Info"},{"location":"images/docker-freshrss/#versions","text":"21.10.22: - Fix cron init to properly migrate existing installations to new app location. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 31.03.20: - Internalize app and enable updates for existing users, allow user customized crontab. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Add multi arch and pipeline logic. 05.09.18: - Rebase to alpine linux 3.8. 17.03.18: - Update nginx config to resolve api not working. 08.01.18: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 23.02.17: - Rebase to alpine linux 3.5 and nginx. 14.10.16: - Add version layer information. 08.10.16: - Add Sqlite support for standalone operation. 27.09.16: - Fix for cron job. 11.09.16: - Add layer badges to README. 23.11.15: - Update dependencies to latest requirements. 21.08.15: - Initial Release.","title":"Versions"},{"location":"images/docker-gazee/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/gazee Gazee is a WebApp Comic Reader for your favorite digital comics. Reach and read your comic library from any web connected device with a modern web browser. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/gazee should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v6-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=gazee \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 4242:4242 \\ -v :/config \\ -v :/comics \\ -v :/mylar \\ -v :/certs \\ --restart unless-stopped \\ linuxserver/gazee docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: gazee: image: linuxserver/gazee container_name: gazee environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/comics - :/mylar - :/certs ports: - 4242:4242 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4242 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation Volume Mappings ( -v ) Volume Function /config Where Gazee should store config files. /comics Path to comics folder. /mylar Path to Mylar DB. /certs Where SSL certs should be stored. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup Webui can be found at your-ip:4242 Default username and password for the web interface: Username: admin Password: gazee Click the gear icon to go to the settings page. Change the default admin password or add a new admin and remove the admin user altogether. Comic path should be set to /comics Optional Mylar DB path should be set to /mylar Optional path for certificates and keys should be set to /certs After you update the settings, Gazee will restart and begin an intial scan of your comic library. Happy Reading! Support Info Shell access whilst the container is running: docker exec -it gazee /bin/bash To monitor the logs of the container in realtime: docker logs -f gazee Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' gazee Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/gazee Versions 27.03.19: - Deprecate image and get in semi working state. 11.02.19: - Add pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 30.12.17: - Ensure version 11 of cherrypy. 07.12.17: - Initial Release.","title":"gazee"},{"location":"images/docker-gazee/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-gazee/#linuxservergazee","text":"Gazee is a WebApp Comic Reader for your favorite digital comics. Reach and read your comic library from any web connected device with a modern web browser.","title":"linuxserver/gazee"},{"location":"images/docker-gazee/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/gazee should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v6-latest","title":"Supported Architectures"},{"location":"images/docker-gazee/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-gazee/#docker","text":"docker create \\ --name=gazee \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 4242:4242 \\ -v :/config \\ -v :/comics \\ -v :/mylar \\ -v :/certs \\ --restart unless-stopped \\ linuxserver/gazee","title":"docker"},{"location":"images/docker-gazee/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: gazee: image: linuxserver/gazee container_name: gazee environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/comics - :/mylar - :/certs ports: - 4242:4242 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-gazee/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-gazee/#ports-p","text":"Parameter Function 4242 WebUI","title":"Ports (-p)"},{"location":"images/docker-gazee/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation","title":"Environment Variables (-e)"},{"location":"images/docker-gazee/#volume-mappings-v","text":"Volume Function /config Where Gazee should store config files. /comics Path to comics folder. /mylar Path to Mylar DB. /certs Where SSL certs should be stored.","title":"Volume Mappings (-v)"},{"location":"images/docker-gazee/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-gazee/#application-setup","text":"Webui can be found at your-ip:4242 Default username and password for the web interface: Username: admin Password: gazee Click the gear icon to go to the settings page. Change the default admin password or add a new admin and remove the admin user altogether. Comic path should be set to /comics Optional Mylar DB path should be set to /mylar Optional path for certificates and keys should be set to /certs After you update the settings, Gazee will restart and begin an intial scan of your comic library. Happy Reading!","title":"Application Setup"},{"location":"images/docker-gazee/#support-info","text":"Shell access whilst the container is running: docker exec -it gazee /bin/bash To monitor the logs of the container in realtime: docker logs -f gazee Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' gazee Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/gazee","title":"Support Info"},{"location":"images/docker-gazee/#versions","text":"27.03.19: - Deprecate image and get in semi working state. 11.02.19: - Add pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 30.12.17: - Ensure version 11 of cherrypy. 07.12.17: - Initial Release.","title":"Versions"},{"location":"images/docker-gmail-order-bot/","text":"lsiodev/gmail-order-bot Gmail-order-bot - A bot used to leverage a Gmail account as an order messaging service to consume email orders from Nano Checkout and process them using any custom logic you choose. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/lsiodev/gmail-order-bot:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This container is for developers only! We make pre-defined bots we use in our workflow, but you have to have an underlying understanding of javascript and some basic Docker skills to use it. The entire basis of this is to act as middleware between your email address receiving orders from https://checkout.linuxserver.io and send them to some external service. The bot will archive any messages that do not come from orders@nanocheckout.com with valid DKIM signatures, so definetly do not use this on a personal account. The concept behind this bot and using email as a destination for orders is to serve normal users that simply want an email for an order out of the box and provide a free messaging queue akin to something like RabbitMQ for people that want to automate order ingestion. By default we include bots we use that will be copied over on first container run, for example a simple discord ping when an order is received with the order details: const Discord = require('discord.js'); const YAML = require('yaml'); const discordtoken = process.env.DISCORD_TOKEN; const roomid = process.env.DISCORD_ROOM exports.orderbot = async function(order) { return new Promise(resolve => { const client = new Discord.Client(); client.login(discordtoken); client.on('ready', async () => { delete order.rawpayload await client.channels.cache.get(roomid.toString()).send(YAML.stringify(order)); client.destroy(); resolve(true) }) }); } This code will be passed an order object containing all the order details parsed from the email message. Here we use custom env variables to set application settings to connect up to and send a message to discord. In order to use this bot you will need to perform the following setup steps: 1. Create a dedicated gmail account to use for https://checkout.linuxserver.io 2. Enable API access to this Gmail account by clicking on Enable the Gmail API here https://developers.google.com/gmail/api/quickstart/nodejs 3. Save your credentials.json file from that action to the folder you will be bind mounting as /config 4. Run docker run --rm -it -u $(id -u ${USER}):$(id -g ${USER}) -v /path/to/data:/config --entrypoint /config.sh lsiodev/gmail-order-bot 5. Go to the URL prompted and enter the key you get from it. 6. Start the container using the run/compose example in this readme. When the container starts if you are using a custom bot located in /config/bots it will install the node modules included in it's package.json, do not use system level node modules this container is Alpine based and it will cause conflicts. From there the bot will loop in for your defined timeout and pull in emails and spit out orders to your destination. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: gmail-order-bot: image: lscr.io/lsiodev/gmail-order-bot:latest container_name: gmail-order-bot environment: - PUID=1000 - PGID=1000 - BOT_NAME=discord - LOOP_TIME=60 volumes: - /path/to/data:/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=gmail-order-bot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e BOT_NAME=discord \\ -e LOOP_TIME=60 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/lsiodev/gmail-order-bot:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation BOT_NAME=discord On successful order receive send the order payload to this bot (default bots are located in root/defaults/bots) LOOP_TIME=60 Time in seconds to reach into gmail and get new messages to process Volume Mappings ( -v ) Volume Function /config Path to gmail tokens and custom/default bots Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it gmail-order-bot /bin/bash To monitor the logs of the container in realtime: docker logs -f gmail-order-bot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' gmail-order-bot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/lsiodev/gmail-order-bot:latest Versions 06.07.20: - Initial Release.","title":"gmail-order-bot"},{"location":"images/docker-gmail-order-bot/#lsiodevgmail-order-bot","text":"Gmail-order-bot - A bot used to leverage a Gmail account as an order messaging service to consume email orders from Nano Checkout and process them using any custom logic you choose.","title":"lsiodev/gmail-order-bot"},{"location":"images/docker-gmail-order-bot/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/lsiodev/gmail-order-bot:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-gmail-order-bot/#application-setup","text":"This container is for developers only! We make pre-defined bots we use in our workflow, but you have to have an underlying understanding of javascript and some basic Docker skills to use it. The entire basis of this is to act as middleware between your email address receiving orders from https://checkout.linuxserver.io and send them to some external service. The bot will archive any messages that do not come from orders@nanocheckout.com with valid DKIM signatures, so definetly do not use this on a personal account. The concept behind this bot and using email as a destination for orders is to serve normal users that simply want an email for an order out of the box and provide a free messaging queue akin to something like RabbitMQ for people that want to automate order ingestion. By default we include bots we use that will be copied over on first container run, for example a simple discord ping when an order is received with the order details: const Discord = require('discord.js'); const YAML = require('yaml'); const discordtoken = process.env.DISCORD_TOKEN; const roomid = process.env.DISCORD_ROOM exports.orderbot = async function(order) { return new Promise(resolve => { const client = new Discord.Client(); client.login(discordtoken); client.on('ready', async () => { delete order.rawpayload await client.channels.cache.get(roomid.toString()).send(YAML.stringify(order)); client.destroy(); resolve(true) }) }); } This code will be passed an order object containing all the order details parsed from the email message. Here we use custom env variables to set application settings to connect up to and send a message to discord. In order to use this bot you will need to perform the following setup steps: 1. Create a dedicated gmail account to use for https://checkout.linuxserver.io 2. Enable API access to this Gmail account by clicking on Enable the Gmail API here https://developers.google.com/gmail/api/quickstart/nodejs 3. Save your credentials.json file from that action to the folder you will be bind mounting as /config 4. Run docker run --rm -it -u $(id -u ${USER}):$(id -g ${USER}) -v /path/to/data:/config --entrypoint /config.sh lsiodev/gmail-order-bot 5. Go to the URL prompted and enter the key you get from it. 6. Start the container using the run/compose example in this readme. When the container starts if you are using a custom bot located in /config/bots it will install the node modules included in it's package.json, do not use system level node modules this container is Alpine based and it will cause conflicts. From there the bot will loop in for your defined timeout and pull in emails and spit out orders to your destination.","title":"Application Setup"},{"location":"images/docker-gmail-order-bot/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-gmail-order-bot/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: gmail-order-bot: image: lscr.io/lsiodev/gmail-order-bot:latest container_name: gmail-order-bot environment: - PUID=1000 - PGID=1000 - BOT_NAME=discord - LOOP_TIME=60 volumes: - /path/to/data:/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-gmail-order-bot/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=gmail-order-bot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e BOT_NAME=discord \\ -e LOOP_TIME=60 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/lsiodev/gmail-order-bot:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-gmail-order-bot/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-gmail-order-bot/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-gmail-order-bot/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation BOT_NAME=discord On successful order receive send the order payload to this bot (default bots are located in root/defaults/bots) LOOP_TIME=60 Time in seconds to reach into gmail and get new messages to process","title":"Environment Variables (-e)"},{"location":"images/docker-gmail-order-bot/#volume-mappings-v","text":"Volume Function /config Path to gmail tokens and custom/default bots","title":"Volume Mappings (-v)"},{"location":"images/docker-gmail-order-bot/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-gmail-order-bot/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-gmail-order-bot/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-gmail-order-bot/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-gmail-order-bot/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-gmail-order-bot/#support-info","text":"Shell access whilst the container is running: docker exec -it gmail-order-bot /bin/bash To monitor the logs of the container in realtime: docker logs -f gmail-order-bot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' gmail-order-bot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/lsiodev/gmail-order-bot:latest","title":"Support Info"},{"location":"images/docker-gmail-order-bot/#versions","text":"06.07.20: - Initial Release.","title":"Versions"},{"location":"images/docker-grav/","text":"linuxserver/grav Grav is a Fast, Simple, and Flexible, file-based Web-platform. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/grav:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup For more information check out the Grav documentation . Our image includes the grav-admin plugin. To use the CLI tools you need to pass the working directory as part of your exec command (or use an interactive shell), e.g. docker exec -it -w /app/www/public/grav-admin grav bin/gpm Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: grav: image: lscr.io/linuxserver/grav:latest container_name: grav environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata/config:/config ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=grav \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/grav:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Port for web frontend Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it grav /bin/bash To monitor the logs of the container in realtime: docker logs -f grav Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' grav Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/grav:latest Versions 11.12.22: - Rebase to Alpine 3.17, PHP 8.1. 05.09.22: - All php to read envs passed to container. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 03.09.21: - Added support for Redis caching. 01.07.21: - Rebase to Alpine 3.14. 09.04.21: - Initial Release.","title":"grav"},{"location":"images/docker-grav/#linuxservergrav","text":"Grav is a Fast, Simple, and Flexible, file-based Web-platform.","title":"linuxserver/grav"},{"location":"images/docker-grav/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/grav:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-grav/#application-setup","text":"For more information check out the Grav documentation . Our image includes the grav-admin plugin. To use the CLI tools you need to pass the working directory as part of your exec command (or use an interactive shell), e.g. docker exec -it -w /app/www/public/grav-admin grav bin/gpm","title":"Application Setup"},{"location":"images/docker-grav/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-grav/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: grav: image: lscr.io/linuxserver/grav:latest container_name: grav environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata/config:/config ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-grav/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=grav \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/grav:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-grav/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-grav/#ports-p","text":"Parameter Function 80 Port for web frontend","title":"Ports (-p)"},{"location":"images/docker-grav/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York","title":"Environment Variables (-e)"},{"location":"images/docker-grav/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-grav/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-grav/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-grav/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-grav/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-grav/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-grav/#support-info","text":"Shell access whilst the container is running: docker exec -it grav /bin/bash To monitor the logs of the container in realtime: docker logs -f grav Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' grav Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/grav:latest","title":"Support Info"},{"location":"images/docker-grav/#versions","text":"11.12.22: - Rebase to Alpine 3.17, PHP 8.1. 05.09.22: - All php to read envs passed to container. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 03.09.21: - Added support for Redis caching. 01.07.21: - Rebase to Alpine 3.14. 09.04.21: - Initial Release.","title":"Versions"},{"location":"images/docker-grocy/","text":"linuxserver/grocy Grocy is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utility. Keep track of your purchases, how much food you are wasting, what chores need doing and what batteries need charging with this proudly Open Source tool For more information on grocy visit their website and check it out: https://grocy.info Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/grocy:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Grocy is simple to get running. Configure the container with instructions below, start it, and you can then access it by visiting http://your.ip:9283 - once the page loads, you can log in with the default username and password of admin / admin Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: grocy: image: lscr.io/linuxserver/grocy:latest container_name: grocy environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 9283:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=grocy \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9283:80 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/grocy:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 will map the container's port 80 to port 9283 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London for specifying your timezone Volume Mappings ( -v ) Volume Function /config this will store any uploaded data on the docker host Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it grocy /bin/bash To monitor the logs of the container in realtime: docker logs -f grocy Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' grocy Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/grocy:latest Versions 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 22.08.21: - Rebase to Alpine 3.14 and PHP 8. 25.07.21: - Add 'int','json' and 'zlib' PHP extensions. 10.05.21: - Reduce image size. 08.04.21: - Update docs to reflect jenkins builder changes. 17.02.21: - Rebasing to alpine 3.13. 26.01.21: - Add 'ldap' PHP extension. 22.12.20: - Add 'ctype' PHP extension. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 22.09.19: - Add 'gd' PHP extension. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 27.12.18: - Initial Release.","title":"grocy"},{"location":"images/docker-grocy/#linuxservergrocy","text":"Grocy is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utility. Keep track of your purchases, how much food you are wasting, what chores need doing and what batteries need charging with this proudly Open Source tool For more information on grocy visit their website and check it out: https://grocy.info","title":"linuxserver/grocy"},{"location":"images/docker-grocy/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/grocy:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-grocy/#application-setup","text":"Grocy is simple to get running. Configure the container with instructions below, start it, and you can then access it by visiting http://your.ip:9283 - once the page loads, you can log in with the default username and password of admin / admin","title":"Application Setup"},{"location":"images/docker-grocy/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-grocy/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: grocy: image: lscr.io/linuxserver/grocy:latest container_name: grocy environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 9283:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-grocy/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=grocy \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9283:80 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/grocy:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-grocy/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-grocy/#ports-p","text":"Parameter Function 80 will map the container's port 80 to port 9283 on the host","title":"Ports (-p)"},{"location":"images/docker-grocy/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London for specifying your timezone","title":"Environment Variables (-e)"},{"location":"images/docker-grocy/#volume-mappings-v","text":"Volume Function /config this will store any uploaded data on the docker host","title":"Volume Mappings (-v)"},{"location":"images/docker-grocy/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-grocy/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-grocy/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-grocy/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-grocy/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-grocy/#support-info","text":"Shell access whilst the container is running: docker exec -it grocy /bin/bash To monitor the logs of the container in realtime: docker logs -f grocy Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' grocy Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/grocy:latest","title":"Support Info"},{"location":"images/docker-grocy/#versions","text":"20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 22.08.21: - Rebase to Alpine 3.14 and PHP 8. 25.07.21: - Add 'int','json' and 'zlib' PHP extensions. 10.05.21: - Reduce image size. 08.04.21: - Update docs to reflect jenkins builder changes. 17.02.21: - Rebasing to alpine 3.13. 26.01.21: - Add 'ldap' PHP extension. 22.12.20: - Add 'ctype' PHP extension. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 22.09.19: - Add 'gd' PHP extension. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 27.12.18: - Initial Release.","title":"Versions"},{"location":"images/docker-guacd/","text":"linuxserver/guacd Guacd - Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. This container is only the backend server component needed to use The official or 3rd party HTML5 frontends. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/guacd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This is a backend only service, to leverage Guacd server you need to use either the official Java frontend guacamole-client or an open source alternative like guacamole-lite . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: guacd: image: lscr.io/linuxserver/guacd:latest container_name: guacd ports: - 4822:4822 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=guacd \\ -p 4822:4822 \\ --restart unless-stopped \\ lscr.io/linuxserver/guacd:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4822 Port Guacamole server listens on Environment Variables ( -e ) Env Function Volume Mappings ( -v ) Volume Function Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it guacd /bin/bash To monitor the logs of the container in realtime: docker logs -f guacd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' guacd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/guacd:latest Versions 11.03.22: - Bump to 1.4.0. 15.05.21: - Add terminus font for SSH support. 08.05.21: - Bump to 1.3.0, rebase to Alpine. 27.07.20: - Bump to 1.2.0. 17.04.20: - Bump back 1.1.0, rebase to focal 08.02.20: - Bump to 1.1.0. 25.05.19: - Initial Release.","title":"guacd"},{"location":"images/docker-guacd/#linuxserverguacd","text":"Guacd - Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. This container is only the backend server component needed to use The official or 3rd party HTML5 frontends.","title":"linuxserver/guacd"},{"location":"images/docker-guacd/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/guacd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-guacd/#application-setup","text":"This is a backend only service, to leverage Guacd server you need to use either the official Java frontend guacamole-client or an open source alternative like guacamole-lite .","title":"Application Setup"},{"location":"images/docker-guacd/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-guacd/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: guacd: image: lscr.io/linuxserver/guacd:latest container_name: guacd ports: - 4822:4822 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-guacd/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=guacd \\ -p 4822:4822 \\ --restart unless-stopped \\ lscr.io/linuxserver/guacd:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-guacd/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-guacd/#ports-p","text":"Parameter Function 4822 Port Guacamole server listens on","title":"Ports (-p)"},{"location":"images/docker-guacd/#environment-variables-e","text":"Env Function","title":"Environment Variables (-e)"},{"location":"images/docker-guacd/#volume-mappings-v","text":"Volume Function","title":"Volume Mappings (-v)"},{"location":"images/docker-guacd/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-guacd/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-guacd/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-guacd/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-guacd/#support-info","text":"Shell access whilst the container is running: docker exec -it guacd /bin/bash To monitor the logs of the container in realtime: docker logs -f guacd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' guacd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/guacd:latest","title":"Support Info"},{"location":"images/docker-guacd/#versions","text":"11.03.22: - Bump to 1.4.0. 15.05.21: - Add terminus font for SSH support. 08.05.21: - Bump to 1.3.0, rebase to Alpine. 27.07.20: - Bump to 1.2.0. 17.04.20: - Bump back 1.1.0, rebase to focal 08.02.20: - Bump to 1.1.0. 25.05.19: - Initial Release.","title":"Versions"},{"location":"images/docker-habridge/","text":"linuxserver/habridge Habridge emulates Philips Hue API to other home automation gateways such as an Amazon Echo/Dot Gen 1 (gen 2 has issues discovering ha-bridge) or other systems that support Philips Hue. The Bridge handles basic commands such as \"On\", \"Off\" and \"brightness\" commands of the hue protocol. This bridge can control most devices that have a distinct API. In the cases of systems that require authorization and/or have APIs that cannot be handled in the current method, a module may need to be built. The Harmony Hub is such a module and so is the Nest module. The Bridge has helpers to build devices for the gateway for the Logitech Harmony Hub, Vera, Vera Lite or Vera Edge, Nest, Somfy Tahoma, Home Assistant, Domoticz, MQTT, HAL, Fibaro, HomeWizard, LIFX, OpenHAB, FHEM, Broadlink and the ability to proxy all of your real Hue bridges behind this bridge. This bridge was built to help put the Internet of Things together. For more information about how to use this software have a look at their Wiki https://github.com/bwssytems/ha-bridge/wiki Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/habridge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup To set up the ha-bridge simply go to http://localhost:8080. Once you are in the webui you can add devices and configure ha-bridge to your liking. For information on how to configure ha-bridge, go to their wiki at https://github.com/bwssytems/ha-bridge/wiki Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: habridge: image: lscr.io/linuxserver/habridge:latest container_name: habridge environment: - PUID=1000 - PGID=1000 - SEC_KEY= - TZ=Europe/London volumes: - :/config ports: - 8080:8080 - 50000:50000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=habridge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e SEC_KEY= \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -p 50000:50000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/habridge:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 WebUI 50000 HABridge communication port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation SEC_KEY= Key used to secure communication. TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where HABridge stores config files and data. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it habridge /bin/bash To monitor the logs of the container in realtime: docker logs -f habridge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' habridge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/habridge:latest Versions 11.12.22: - Rebasing to alpine 3.17. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 28.08.18: - Rebase to alpine 3.8. 12.04.18: - Add workaround to bind to port 80 if needed. 08.04.18: - Initial Release.","title":"habridge"},{"location":"images/docker-habridge/#linuxserverhabridge","text":"Habridge emulates Philips Hue API to other home automation gateways such as an Amazon Echo/Dot Gen 1 (gen 2 has issues discovering ha-bridge) or other systems that support Philips Hue. The Bridge handles basic commands such as \"On\", \"Off\" and \"brightness\" commands of the hue protocol. This bridge can control most devices that have a distinct API. In the cases of systems that require authorization and/or have APIs that cannot be handled in the current method, a module may need to be built. The Harmony Hub is such a module and so is the Nest module. The Bridge has helpers to build devices for the gateway for the Logitech Harmony Hub, Vera, Vera Lite or Vera Edge, Nest, Somfy Tahoma, Home Assistant, Domoticz, MQTT, HAL, Fibaro, HomeWizard, LIFX, OpenHAB, FHEM, Broadlink and the ability to proxy all of your real Hue bridges behind this bridge. This bridge was built to help put the Internet of Things together. For more information about how to use this software have a look at their Wiki https://github.com/bwssytems/ha-bridge/wiki","title":"linuxserver/habridge"},{"location":"images/docker-habridge/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/habridge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-habridge/#application-setup","text":"To set up the ha-bridge simply go to http://localhost:8080. Once you are in the webui you can add devices and configure ha-bridge to your liking. For information on how to configure ha-bridge, go to their wiki at https://github.com/bwssytems/ha-bridge/wiki","title":"Application Setup"},{"location":"images/docker-habridge/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-habridge/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: habridge: image: lscr.io/linuxserver/habridge:latest container_name: habridge environment: - PUID=1000 - PGID=1000 - SEC_KEY= - TZ=Europe/London volumes: - :/config ports: - 8080:8080 - 50000:50000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-habridge/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=habridge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e SEC_KEY= \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -p 50000:50000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/habridge:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-habridge/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-habridge/#ports-p","text":"Parameter Function 8080 WebUI 50000 HABridge communication port.","title":"Ports (-p)"},{"location":"images/docker-habridge/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation SEC_KEY= Key used to secure communication. TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-habridge/#volume-mappings-v","text":"Volume Function /config Where HABridge stores config files and data.","title":"Volume Mappings (-v)"},{"location":"images/docker-habridge/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-habridge/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-habridge/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-habridge/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-habridge/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-habridge/#support-info","text":"Shell access whilst the container is running: docker exec -it habridge /bin/bash To monitor the logs of the container in realtime: docker logs -f habridge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' habridge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/habridge:latest","title":"Support Info"},{"location":"images/docker-habridge/#versions","text":"11.12.22: - Rebasing to alpine 3.17. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 28.08.18: - Rebase to alpine 3.8. 12.04.18: - Add workaround to bind to port 80 if needed. 08.04.18: - Initial Release.","title":"Versions"},{"location":"images/docker-headphones/","text":"linuxserver/headphones Headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, \u00b5Torrent and Blackhole. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/headphones:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: headphones: image: lscr.io/linuxserver/headphones:latest container_name: headphones environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads - :/music ports: - 8181:8181 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=headphones \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8181:8181 \\ -v :/config \\ -v :/downloads \\ -v :/music \\ --restart unless-stopped \\ lscr.io/linuxserver/headphones:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8181 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. /downloads ISOs. /music Your music directory. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it headphones /bin/bash To monitor the logs of the container in realtime: docker logs -f headphones Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' headphones Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/headphones:latest Versions 02.02.22: - Rebasing to alpine 3.15. Updating to Python 3. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 09.05.19: - Add default UTC timezone if user does not set it. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 18.08.18: - Rebase to alpine 3.8. 03.04.18: - Remove forced port and update README. 05.01.18: - Deprecate cpu_core routine lack of scaling. 12.12.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Add flac package to handle FLAC based .cue. 25.05.17: - Rebase to alpine 3.6. 03.05.17: - Reduce layer, replace broken source for shntool. 07.02.17: - Rebase to alpine 3.5. 23.12.16: - Fix capitalisation in README. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README, compile shntool. 08.08.16: - Rebase to alpine linux. 18.07.15: - Inital Release","title":"headphones"},{"location":"images/docker-headphones/#linuxserverheadphones","text":"Headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, \u00b5Torrent and Blackhole.","title":"linuxserver/headphones"},{"location":"images/docker-headphones/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/headphones:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-headphones/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-headphones/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: headphones: image: lscr.io/linuxserver/headphones:latest container_name: headphones environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads - :/music ports: - 8181:8181 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-headphones/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=headphones \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8181:8181 \\ -v :/config \\ -v :/downloads \\ -v :/music \\ --restart unless-stopped \\ lscr.io/linuxserver/headphones:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-headphones/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-headphones/#ports-p","text":"Parameter Function 8181 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-headphones/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-headphones/#volume-mappings-v","text":"Volume Function /config Configuration files. /downloads ISOs. /music Your music directory.","title":"Volume Mappings (-v)"},{"location":"images/docker-headphones/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-headphones/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-headphones/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-headphones/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-headphones/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-headphones/#support-info","text":"Shell access whilst the container is running: docker exec -it headphones /bin/bash To monitor the logs of the container in realtime: docker logs -f headphones Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' headphones Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/headphones:latest","title":"Support Info"},{"location":"images/docker-headphones/#versions","text":"02.02.22: - Rebasing to alpine 3.15. Updating to Python 3. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 09.05.19: - Add default UTC timezone if user does not set it. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 18.08.18: - Rebase to alpine 3.8. 03.04.18: - Remove forced port and update README. 05.01.18: - Deprecate cpu_core routine lack of scaling. 12.12.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Add flac package to handle FLAC based .cue. 25.05.17: - Rebase to alpine 3.6. 03.05.17: - Reduce layer, replace broken source for shntool. 07.02.17: - Rebase to alpine 3.5. 23.12.16: - Fix capitalisation in README. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README, compile shntool. 08.08.16: - Rebase to alpine linux. 18.07.15: - Inital Release","title":"Versions"},{"location":"images/docker-healthchecks/","text":"linuxserver/healthchecks Healthchecks is a watchdog for your cron jobs. It's a web server that listens for pings from your cron jobs, plus a web interface. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/healthchecks:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the WebUI at :8000. For more information, check out Healthchecks . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: healthchecks: image: lscr.io/linuxserver/healthchecks:latest container_name: healthchecks environment: - PUID=1000 - PGID=1000 - SITE_ROOT= - SITE_NAME= - DEFAULT_FROM_EMAIL= - EMAIL_HOST= - EMAIL_PORT= - EMAIL_HOST_USER= - EMAIL_HOST_PASSWORD= - EMAIL_USE_TLS= - SUPERUSER_EMAIL= - SUPERUSER_PASSWORD= - REGENERATE_SETTINGS= #optional - SITE_LOGO_URL= #optional - ALLOWED_HOSTS= #optional - SECRET_KEY= #optional - APPRISE_ENABLED= #optional - DEBUG= #optional volumes: - /path/to/data:/config ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=healthchecks \\ -e PUID=1000 \\ -e PGID=1000 \\ -e SITE_ROOT= \\ -e SITE_NAME= \\ -e DEFAULT_FROM_EMAIL= \\ -e EMAIL_HOST= \\ -e EMAIL_PORT= \\ -e EMAIL_HOST_USER= \\ -e EMAIL_HOST_PASSWORD= \\ -e EMAIL_USE_TLS= \\ -e SUPERUSER_EMAIL= \\ -e SUPERUSER_PASSWORD= \\ -e REGENERATE_SETTINGS= `#optional` \\ -e SITE_LOGO_URL= `#optional` \\ -e ALLOWED_HOSTS= `#optional` \\ -e SECRET_KEY= `#optional` \\ -e APPRISE_ENABLED= `#optional` \\ -e DEBUG= `#optional` \\ -p 8000:8000 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/healthchecks:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 will map the container's port 8000 to port 8000 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation SITE_ROOT= The site's top-level URL and the port it listens to if differrent than 80 or 443 (e.g., https://healthchecks.example.com:8000) SITE_NAME= The site's name (e.g., \"Example Corp HealthChecks\") DEFAULT_FROM_EMAIL= From email for alerts EMAIL_HOST= SMTP host EMAIL_PORT= SMTP port EMAIL_HOST_USER= SMTP user EMAIL_HOST_PASSWORD= SMTP password EMAIL_USE_TLS= Use TLS for SMTP ( True or False ) SUPERUSER_EMAIL= Superuser email SUPERUSER_PASSWORD= Superuser password REGENERATE_SETTINGS= Defaults to False. Set to true to always override the local_settings.py file with values from environment variables. Do not set to True if you have made manual modifications to this file. SITE_LOGO_URL= Full URL to custom site logo ALLOWED_HOSTS= Array of valid hostnames for the server [\"test.com\",\"test2.com\"] (default: [\"*\"] ) SECRET_KEY= A secret key used for cryptographic signing. Will generate a secure value if one is not supplied APPRISE_ENABLED= Defaults to False. A boolean that turns on/off the Apprise integration (https://github.com/caronc/apprise) DEBUG= Defaults to True. Debug mode relaxes CSRF protections and increases logging verbosity but should be disabled for production instances as it will impact performance and security. Volume Mappings ( -v ) Volume Function /config Database and healthchecks config directory Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it healthchecks /bin/bash To monitor the logs of the container in realtime: docker logs -f healthchecks Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' healthchecks Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/healthchecks:latest Versions 18.10.22: - Add curl-dev to fix broken pip builds. 11.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 27.09.22: - Fix sending of Email Reports 08.01.22: - Fix CSRF setting for Django 4.0 (introduced in v1.25.0) 11.11.21: - Add Apprise to Docker as in v1.24.0 10.09.21: - Fix creation of superuser 07.08.21: - Update custom logo handling to support changes in v1.22.0 11.07.21: - Rebase to Alpine 3.14. 18.05.21: - Add linuxserver wheel index. 11.01.21: - Add libffi-dev to allow building of python cryptography lib. 19.07.20: - Rebasing to alpine 3.12, fixed 'ALLOWED_HOSTS' bug, now defaults to wildcard 19.12.19: - Rebasing to alpine 3.11. 31.10.19: - Add postgres client and fix config for CSRF. 23.10.19: - Allow to create superuser 28.06.19: - Rebasing to alpine 3.10. 12.04.19: - Rebase to Alpine 3.9. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 14.02.19: - Adding mysql libs needed for using a database. 11.10.18: - adding pipeline logic and multi arching release 15.11.17: - git pull is now in Dockerfile so each tagged container contains the same code version 17.10.17: - Fixed local_settings.py output 27.09.17: - Initial Release.","title":"healthchecks"},{"location":"images/docker-healthchecks/#linuxserverhealthchecks","text":"Healthchecks is a watchdog for your cron jobs. It's a web server that listens for pings from your cron jobs, plus a web interface.","title":"linuxserver/healthchecks"},{"location":"images/docker-healthchecks/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/healthchecks:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-healthchecks/#application-setup","text":"Access the WebUI at :8000. For more information, check out Healthchecks .","title":"Application Setup"},{"location":"images/docker-healthchecks/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-healthchecks/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: healthchecks: image: lscr.io/linuxserver/healthchecks:latest container_name: healthchecks environment: - PUID=1000 - PGID=1000 - SITE_ROOT= - SITE_NAME= - DEFAULT_FROM_EMAIL= - EMAIL_HOST= - EMAIL_PORT= - EMAIL_HOST_USER= - EMAIL_HOST_PASSWORD= - EMAIL_USE_TLS= - SUPERUSER_EMAIL= - SUPERUSER_PASSWORD= - REGENERATE_SETTINGS= #optional - SITE_LOGO_URL= #optional - ALLOWED_HOSTS= #optional - SECRET_KEY= #optional - APPRISE_ENABLED= #optional - DEBUG= #optional volumes: - /path/to/data:/config ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-healthchecks/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=healthchecks \\ -e PUID=1000 \\ -e PGID=1000 \\ -e SITE_ROOT= \\ -e SITE_NAME= \\ -e DEFAULT_FROM_EMAIL= \\ -e EMAIL_HOST= \\ -e EMAIL_PORT= \\ -e EMAIL_HOST_USER= \\ -e EMAIL_HOST_PASSWORD= \\ -e EMAIL_USE_TLS= \\ -e SUPERUSER_EMAIL= \\ -e SUPERUSER_PASSWORD= \\ -e REGENERATE_SETTINGS= `#optional` \\ -e SITE_LOGO_URL= `#optional` \\ -e ALLOWED_HOSTS= `#optional` \\ -e SECRET_KEY= `#optional` \\ -e APPRISE_ENABLED= `#optional` \\ -e DEBUG= `#optional` \\ -p 8000:8000 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/healthchecks:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-healthchecks/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-healthchecks/#ports-p","text":"Parameter Function 8000 will map the container's port 8000 to port 8000 on the host","title":"Ports (-p)"},{"location":"images/docker-healthchecks/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation SITE_ROOT= The site's top-level URL and the port it listens to if differrent than 80 or 443 (e.g., https://healthchecks.example.com:8000) SITE_NAME= The site's name (e.g., \"Example Corp HealthChecks\") DEFAULT_FROM_EMAIL= From email for alerts EMAIL_HOST= SMTP host EMAIL_PORT= SMTP port EMAIL_HOST_USER= SMTP user EMAIL_HOST_PASSWORD= SMTP password EMAIL_USE_TLS= Use TLS for SMTP ( True or False ) SUPERUSER_EMAIL= Superuser email SUPERUSER_PASSWORD= Superuser password REGENERATE_SETTINGS= Defaults to False. Set to true to always override the local_settings.py file with values from environment variables. Do not set to True if you have made manual modifications to this file. SITE_LOGO_URL= Full URL to custom site logo ALLOWED_HOSTS= Array of valid hostnames for the server [\"test.com\",\"test2.com\"] (default: [\"*\"] ) SECRET_KEY= A secret key used for cryptographic signing. Will generate a secure value if one is not supplied APPRISE_ENABLED= Defaults to False. A boolean that turns on/off the Apprise integration (https://github.com/caronc/apprise) DEBUG= Defaults to True. Debug mode relaxes CSRF protections and increases logging verbosity but should be disabled for production instances as it will impact performance and security.","title":"Environment Variables (-e)"},{"location":"images/docker-healthchecks/#volume-mappings-v","text":"Volume Function /config Database and healthchecks config directory","title":"Volume Mappings (-v)"},{"location":"images/docker-healthchecks/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-healthchecks/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-healthchecks/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-healthchecks/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-healthchecks/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-healthchecks/#support-info","text":"Shell access whilst the container is running: docker exec -it healthchecks /bin/bash To monitor the logs of the container in realtime: docker logs -f healthchecks Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' healthchecks Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/healthchecks:latest","title":"Support Info"},{"location":"images/docker-healthchecks/#versions","text":"18.10.22: - Add curl-dev to fix broken pip builds. 11.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 27.09.22: - Fix sending of Email Reports 08.01.22: - Fix CSRF setting for Django 4.0 (introduced in v1.25.0) 11.11.21: - Add Apprise to Docker as in v1.24.0 10.09.21: - Fix creation of superuser 07.08.21: - Update custom logo handling to support changes in v1.22.0 11.07.21: - Rebase to Alpine 3.14. 18.05.21: - Add linuxserver wheel index. 11.01.21: - Add libffi-dev to allow building of python cryptography lib. 19.07.20: - Rebasing to alpine 3.12, fixed 'ALLOWED_HOSTS' bug, now defaults to wildcard 19.12.19: - Rebasing to alpine 3.11. 31.10.19: - Add postgres client and fix config for CSRF. 23.10.19: - Allow to create superuser 28.06.19: - Rebasing to alpine 3.10. 12.04.19: - Rebase to Alpine 3.9. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 14.02.19: - Adding mysql libs needed for using a database. 11.10.18: - adding pipeline logic and multi arching release 15.11.17: - git pull is now in Dockerfile so each tagged container contains the same code version 17.10.17: - Fixed local_settings.py output 27.09.17: - Initial Release.","title":"Versions"},{"location":"images/docker-hedgedoc/","text":"linuxserver/hedgedoc HedgeDoc gives you access to all your files wherever you are. HedgeDoc is a real-time, multi-platform collaborative markdown note editor. This means that you can write notes with other people on your desktop, tablet or even on the phone. You can sign-in via multiple auth providers like Facebook, Twitter, GitHub and many more on the homepage. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/hedgedoc:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup HedgeDoc web interface can be accessed http://${IP}:3000/ , if you want to use a custom domain or anything besides port 3000 you will need to leverage their env settings for callbacks: (specifically for CMD_DOMAIN, CMD_PORT and CMD_URL_ADDPORT) Full list of HedgeDoc options For convience we provide a working example using Mysql as a backend in this document, if you do not wish to use our custom environment values or a Mysql database backend feel free to leverage any of the settings laid out in the link above. To run behind a reverse proxy we have a preconfigured config using docker networking included in our SWAG image and you can read how to use this in the Reverse Proxy Confs repository Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: hedgedoc: image: lscr.io/linuxserver/hedgedoc:latest container_name: hedgedoc environment: - PUID=1000 - PGID=1000 - DB_HOST= - DB_PORT=3306 - DB_USER=hedgedoc - DB_PASS= - DB_NAME=hedgedoc - TZ=Europe/London - CMD_DOMAIN=localhost - CMD_URL_ADDPORT=false #optional - CMD_PROTOCOL_USESSL=false #optional - CMD_PORT=3000 #optional - CMD_ALLOW_ORIGIN=['localhost'] #optional volumes: - /path/to/appdata:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=hedgedoc \\ -e PUID=1000 \\ -e PGID=1000 \\ -e DB_HOST= \\ -e DB_PORT=3306 \\ -e DB_USER=hedgedoc \\ -e DB_PASS= \\ -e DB_NAME=hedgedoc \\ -e TZ=Europe/London \\ -e CMD_DOMAIN=localhost \\ -e CMD_URL_ADDPORT=false `#optional` \\ -e CMD_PROTOCOL_USESSL=false `#optional` \\ -e CMD_PORT=3000 `#optional` \\ -e CMD_ALLOW_ORIGIN=['localhost'] `#optional` \\ -p 3000:3000 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/hedgedoc:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Web gui port (internal port also needs to be changed if accessing at port other than 80, 443 and 3000). Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation DB_HOST= Host address of mysql database DB_PORT=3306 Port to access mysql database default is 3306 DB_USER=hedgedoc Database user DB_PASS= Database password DB_NAME=hedgedoc Database name TZ=Europe/London Specify a timezone to use EG Europe/London. CMD_DOMAIN=localhost The address the gui will be accessed at (ie. 192.168.1.1 or hedgedoc.domain.com ). CMD_URL_ADDPORT=false Set to true if using a port other than 80 or 443 . CMD_PROTOCOL_USESSL=false Set to true if accessing over https via reverse proxy. CMD_PORT=3000 If you wish to access hedgedoc at a port different than 80, 443 or 3000, you need to set this to that port (ie. CMD_PORT=5000 ) and change the port mapping accordingly (5000:5000). CMD_ALLOW_ORIGIN=['localhost'] Comma-separated list of allowed hostnames Volume Mappings ( -v ) Volume Function /config HedgeDoc config and configurable files Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it hedgedoc /bin/bash To monitor the logs of the container in realtime: docker logs -f hedgedoc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' hedgedoc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/hedgedoc:latest Versions 02.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 10.04.22: - Use python3 to build node sqlite3. 10.02.22: - Rebase to Alpine 3.15. 09.02.22: - Add optional var CMD_PORT that is needed for accessing at port other than 80, 443 and 3000. 09.12.21: - Add optional var CMD_PROTOCOL_USESSL that is needed for reverse proxy. 07.12.21: - Rebase to ubuntu focal. Update to node 16. Make sure uploads are persistent. 15.10.21: - Add required env var CMD_DOMAIN . 05.05.21: - Remove symlinking some folders from config to /opt/hedgedoc/public. 03.05.21: - Remove deprecated sequalizerc step. 22.12.20: - Initial release","title":"hedgedoc"},{"location":"images/docker-hedgedoc/#linuxserverhedgedoc","text":"HedgeDoc gives you access to all your files wherever you are. HedgeDoc is a real-time, multi-platform collaborative markdown note editor. This means that you can write notes with other people on your desktop, tablet or even on the phone. You can sign-in via multiple auth providers like Facebook, Twitter, GitHub and many more on the homepage.","title":"linuxserver/hedgedoc"},{"location":"images/docker-hedgedoc/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/hedgedoc:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-hedgedoc/#application-setup","text":"HedgeDoc web interface can be accessed http://${IP}:3000/ , if you want to use a custom domain or anything besides port 3000 you will need to leverage their env settings for callbacks: (specifically for CMD_DOMAIN, CMD_PORT and CMD_URL_ADDPORT) Full list of HedgeDoc options For convience we provide a working example using Mysql as a backend in this document, if you do not wish to use our custom environment values or a Mysql database backend feel free to leverage any of the settings laid out in the link above. To run behind a reverse proxy we have a preconfigured config using docker networking included in our SWAG image and you can read how to use this in the Reverse Proxy Confs repository","title":"Application Setup"},{"location":"images/docker-hedgedoc/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-hedgedoc/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: hedgedoc: image: lscr.io/linuxserver/hedgedoc:latest container_name: hedgedoc environment: - PUID=1000 - PGID=1000 - DB_HOST= - DB_PORT=3306 - DB_USER=hedgedoc - DB_PASS= - DB_NAME=hedgedoc - TZ=Europe/London - CMD_DOMAIN=localhost - CMD_URL_ADDPORT=false #optional - CMD_PROTOCOL_USESSL=false #optional - CMD_PORT=3000 #optional - CMD_ALLOW_ORIGIN=['localhost'] #optional volumes: - /path/to/appdata:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-hedgedoc/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=hedgedoc \\ -e PUID=1000 \\ -e PGID=1000 \\ -e DB_HOST= \\ -e DB_PORT=3306 \\ -e DB_USER=hedgedoc \\ -e DB_PASS= \\ -e DB_NAME=hedgedoc \\ -e TZ=Europe/London \\ -e CMD_DOMAIN=localhost \\ -e CMD_URL_ADDPORT=false `#optional` \\ -e CMD_PROTOCOL_USESSL=false `#optional` \\ -e CMD_PORT=3000 `#optional` \\ -e CMD_ALLOW_ORIGIN=['localhost'] `#optional` \\ -p 3000:3000 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/hedgedoc:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-hedgedoc/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-hedgedoc/#ports-p","text":"Parameter Function 3000 Web gui port (internal port also needs to be changed if accessing at port other than 80, 443 and 3000).","title":"Ports (-p)"},{"location":"images/docker-hedgedoc/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation DB_HOST= Host address of mysql database DB_PORT=3306 Port to access mysql database default is 3306 DB_USER=hedgedoc Database user DB_PASS= Database password DB_NAME=hedgedoc Database name TZ=Europe/London Specify a timezone to use EG Europe/London. CMD_DOMAIN=localhost The address the gui will be accessed at (ie. 192.168.1.1 or hedgedoc.domain.com ). CMD_URL_ADDPORT=false Set to true if using a port other than 80 or 443 . CMD_PROTOCOL_USESSL=false Set to true if accessing over https via reverse proxy. CMD_PORT=3000 If you wish to access hedgedoc at a port different than 80, 443 or 3000, you need to set this to that port (ie. CMD_PORT=5000 ) and change the port mapping accordingly (5000:5000). CMD_ALLOW_ORIGIN=['localhost'] Comma-separated list of allowed hostnames","title":"Environment Variables (-e)"},{"location":"images/docker-hedgedoc/#volume-mappings-v","text":"Volume Function /config HedgeDoc config and configurable files","title":"Volume Mappings (-v)"},{"location":"images/docker-hedgedoc/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-hedgedoc/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-hedgedoc/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-hedgedoc/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-hedgedoc/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-hedgedoc/#support-info","text":"Shell access whilst the container is running: docker exec -it hedgedoc /bin/bash To monitor the logs of the container in realtime: docker logs -f hedgedoc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' hedgedoc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/hedgedoc:latest","title":"Support Info"},{"location":"images/docker-hedgedoc/#versions","text":"02.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 10.04.22: - Use python3 to build node sqlite3. 10.02.22: - Rebase to Alpine 3.15. 09.02.22: - Add optional var CMD_PORT that is needed for accessing at port other than 80, 443 and 3000. 09.12.21: - Add optional var CMD_PROTOCOL_USESSL that is needed for reverse proxy. 07.12.21: - Rebase to ubuntu focal. Update to node 16. Make sure uploads are persistent. 15.10.21: - Add required env var CMD_DOMAIN . 05.05.21: - Remove symlinking some folders from config to /opt/hedgedoc/public. 03.05.21: - Remove deprecated sequalizerc step. 22.12.20: - Initial release","title":"Versions"},{"location":"images/docker-heimdall/","text":"linuxserver/heimdall Heimdall is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/heimdall:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Heimdall releases. development \u2705 Latest commit from the github 2.x branch. Application Setup Access the web gui at http://SERVERIP:PORT Adding password protection This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd . Replace with a username of your choice and you will be asked to enter a password. Uncomment the basic auth lines in /config/nginx/site-confs/default.conf and restart the container. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: heimdall: image: lscr.io/linuxserver/heimdall:latest container_name: heimdall environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 80:80 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=heimdall \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/heimdall:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http gui 443 https gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it heimdall /bin/bash To monitor the logs of the container in realtime: docker logs -f heimdall Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' heimdall Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/heimdall:latest Versions 14.11.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 04.11.22: - Build commits to upstream branch 2.x for the development tag. 13.03.21: - Make searchproviders.yaml user configurable. 10.02.21: - Revert to alpine 3.12 as php 7.4 broke laravel. 10.02.21: - Rebasing to alpine 3.13. 17.08.20: - Add php7-curl. 01.06.20: - Rebasing to alpine 3.12. 17.01.20: - Use nginx from baseimage. 19.12.19: - Rebasing to alpine 3.11. 16.07.19: - Save laravel.log to /config/log/heimdall. 28.06.19: - Rebasing to alpine 3.10. 01.04.19: - Fix permission detect logic. 26.03.19: - Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 15.03.19: - Clarify docker image tags in readme. 22.02.19: - Rebasing to alpine 3.9. 16.01.18: - Generate random app key in .env for new installs. 20.11.18: - Upgrade baseimage packages during build. 04.11.18: - Add php7-zip. 31.10.18: - Add queue service. 17.10.18: - Symlink avatars folder. 16.10.18: - Updated fastcgi_params for user login support. 07.10.18: - Symlink .env rather than copy. It now resides under /config/www 30.09.18: - Multi-arch image. Move .env to /config . 05.09.18: - Rebase to alpine linux 3.8. 06.03.18: - Use password protection if htpasswd is set. Existing users can delete their default site config at /config/nginx/site-confs/default.conf and restart the container, a new default site config with htpasswd support will be created in its place 12.02.18: - Initial Release.","title":"heimdall"},{"location":"images/docker-heimdall/#linuxserverheimdall","text":"Heimdall is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo.","title":"linuxserver/heimdall"},{"location":"images/docker-heimdall/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/heimdall:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-heimdall/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Heimdall releases. development \u2705 Latest commit from the github 2.x branch.","title":"Version Tags"},{"location":"images/docker-heimdall/#application-setup","text":"Access the web gui at http://SERVERIP:PORT","title":"Application Setup"},{"location":"images/docker-heimdall/#adding-password-protection","text":"This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd . Replace with a username of your choice and you will be asked to enter a password. Uncomment the basic auth lines in /config/nginx/site-confs/default.conf and restart the container.","title":"Adding password protection"},{"location":"images/docker-heimdall/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-heimdall/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: heimdall: image: lscr.io/linuxserver/heimdall:latest container_name: heimdall environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 80:80 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-heimdall/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=heimdall \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/heimdall:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-heimdall/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-heimdall/#ports-p","text":"Parameter Function 80 http gui 443 https gui","title":"Ports (-p)"},{"location":"images/docker-heimdall/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-heimdall/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-heimdall/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-heimdall/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-heimdall/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-heimdall/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-heimdall/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-heimdall/#support-info","text":"Shell access whilst the container is running: docker exec -it heimdall /bin/bash To monitor the logs of the container in realtime: docker logs -f heimdall Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' heimdall Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/heimdall:latest","title":"Support Info"},{"location":"images/docker-heimdall/#versions","text":"14.11.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 04.11.22: - Build commits to upstream branch 2.x for the development tag. 13.03.21: - Make searchproviders.yaml user configurable. 10.02.21: - Revert to alpine 3.12 as php 7.4 broke laravel. 10.02.21: - Rebasing to alpine 3.13. 17.08.20: - Add php7-curl. 01.06.20: - Rebasing to alpine 3.12. 17.01.20: - Use nginx from baseimage. 19.12.19: - Rebasing to alpine 3.11. 16.07.19: - Save laravel.log to /config/log/heimdall. 28.06.19: - Rebasing to alpine 3.10. 01.04.19: - Fix permission detect logic. 26.03.19: - Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 15.03.19: - Clarify docker image tags in readme. 22.02.19: - Rebasing to alpine 3.9. 16.01.18: - Generate random app key in .env for new installs. 20.11.18: - Upgrade baseimage packages during build. 04.11.18: - Add php7-zip. 31.10.18: - Add queue service. 17.10.18: - Symlink avatars folder. 16.10.18: - Updated fastcgi_params for user login support. 07.10.18: - Symlink .env rather than copy. It now resides under /config/www 30.09.18: - Multi-arch image. Move .env to /config . 05.09.18: - Rebase to alpine linux 3.8. 06.03.18: - Use password protection if htpasswd is set. Existing users can delete their default site config at /config/nginx/site-confs/default.conf and restart the container, a new default site config with htpasswd support will be created in its place 12.02.18: - Initial Release.","title":"Versions"},{"location":"images/docker-homeassistant/","text":"linuxserver/homeassistant Home Assistant Core - Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/homeassistant:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This image is based on Home Assistant Core. The Webui can be found at http://your-ip:8123 . Follow the wizard to set up Home Assistant. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: homeassistant: image: lscr.io/linuxserver/homeassistant:latest container_name: homeassistant network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 8123:8123 #optional devices: - /path/to/device:/path/to/device #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=homeassistant \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8123:8123 `#optional` \\ -v /path/to/data:/config \\ --device /path/to/device:/path/to/device `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/homeassistant:latest Host vs. Bridge Home Assistant can discover and automatically configure zeroconf / mDNS and UPnP devices on your network. In order for this to work you must create the container with --net=host . Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8123 Application WebUI, only use this if you are not using host mode. Networking ( --net ) Parameter Function --net=host Shares host networking with container. Required for some devices to be discovered by Home Assistant. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify your TimeZone e.g. Europe/London. Volume Mappings ( -v ) Volume Function /config Home Assistant config storage path. Device Mappings ( --device ) Parameter Function /path/to/device For passing through USB, serial or gpio devices. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it homeassistant /bin/bash To monitor the logs of the container in realtime: docker logs -f homeassistant Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' homeassistant Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/homeassistant:latest Versions 16.11.22: - Fix the dep conflict for google calendar. 23.09.22: - Migrate to s6v3. 29.07.22: - Improve usb device permission fix. 07.07.22: - Rebase to alpine 3.16, switch to cp310 wheels. 07.05.22: - Build matplotlib with the same Numpy version as HA req. 31.03.22: - Install pycups. 07.03.22: - Install PySwitchbot. 02.03.22: - Update pip and use legacy resolver, clean up temp python files, reduce image size. 04.02.22: - Always compile grpcio on arm32v7 due to pypi pushing a glibc only wheel. 12.12.21: - Use the new build.yaml to determine HA base version. 25.09.21: - Use the new lsio homeassistant wheel repo, instead of the HA wheels. 13.09.21: - Build psycopg locally as the HA provided wheel does not seem to work properly. 13.09.21: - Fix setcap in service. Build CISO8601 locally as the HA provided wheel does not seem to work properly. 12.09.21: - Rebase to alpine 3.14. Build on native armhf. 09.08.21: - Fixed broken build caused by missing dependency. 01.07.21: - Remove HACS dependencies as it caused a crash in Home-assistant. 25.02.21: - Add python dependencies from homeassistant base image. 07.02.21: - Fix building from the wrong requirement file. Add ssh client & external DB libs. 06.02.21: - Add iputils so ping works as non root user. 30.01.21: - Initial Release.","title":"homeassistant"},{"location":"images/docker-homeassistant/#linuxserverhomeassistant","text":"Home Assistant Core - Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.","title":"linuxserver/homeassistant"},{"location":"images/docker-homeassistant/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/homeassistant:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-homeassistant/#application-setup","text":"This image is based on Home Assistant Core. The Webui can be found at http://your-ip:8123 . Follow the wizard to set up Home Assistant.","title":"Application Setup"},{"location":"images/docker-homeassistant/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-homeassistant/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: homeassistant: image: lscr.io/linuxserver/homeassistant:latest container_name: homeassistant network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 8123:8123 #optional devices: - /path/to/device:/path/to/device #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-homeassistant/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=homeassistant \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8123:8123 `#optional` \\ -v /path/to/data:/config \\ --device /path/to/device:/path/to/device `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/homeassistant:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-homeassistant/#host-vs-bridge","text":"Home Assistant can discover and automatically configure zeroconf / mDNS and UPnP devices on your network. In order for this to work you must create the container with --net=host .","title":"Host vs. Bridge"},{"location":"images/docker-homeassistant/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-homeassistant/#ports-p","text":"Parameter Function 8123 Application WebUI, only use this if you are not using host mode.","title":"Ports (-p)"},{"location":"images/docker-homeassistant/#networking-net","text":"Parameter Function --net=host Shares host networking with container. Required for some devices to be discovered by Home Assistant.","title":"Networking (--net)"},{"location":"images/docker-homeassistant/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify your TimeZone e.g. Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-homeassistant/#volume-mappings-v","text":"Volume Function /config Home Assistant config storage path.","title":"Volume Mappings (-v)"},{"location":"images/docker-homeassistant/#device-mappings-device","text":"Parameter Function /path/to/device For passing through USB, serial or gpio devices.","title":"Device Mappings (--device)"},{"location":"images/docker-homeassistant/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-homeassistant/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-homeassistant/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-homeassistant/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-homeassistant/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-homeassistant/#support-info","text":"Shell access whilst the container is running: docker exec -it homeassistant /bin/bash To monitor the logs of the container in realtime: docker logs -f homeassistant Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' homeassistant Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/homeassistant:latest","title":"Support Info"},{"location":"images/docker-homeassistant/#versions","text":"16.11.22: - Fix the dep conflict for google calendar. 23.09.22: - Migrate to s6v3. 29.07.22: - Improve usb device permission fix. 07.07.22: - Rebase to alpine 3.16, switch to cp310 wheels. 07.05.22: - Build matplotlib with the same Numpy version as HA req. 31.03.22: - Install pycups. 07.03.22: - Install PySwitchbot. 02.03.22: - Update pip and use legacy resolver, clean up temp python files, reduce image size. 04.02.22: - Always compile grpcio on arm32v7 due to pypi pushing a glibc only wheel. 12.12.21: - Use the new build.yaml to determine HA base version. 25.09.21: - Use the new lsio homeassistant wheel repo, instead of the HA wheels. 13.09.21: - Build psycopg locally as the HA provided wheel does not seem to work properly. 13.09.21: - Fix setcap in service. Build CISO8601 locally as the HA provided wheel does not seem to work properly. 12.09.21: - Rebase to alpine 3.14. Build on native armhf. 09.08.21: - Fixed broken build caused by missing dependency. 01.07.21: - Remove HACS dependencies as it caused a crash in Home-assistant. 25.02.21: - Add python dependencies from homeassistant base image. 07.02.21: - Fix building from the wrong requirement file. Add ssh client & external DB libs. 06.02.21: - Add iputils so ping works as non root user. 30.01.21: - Initial Release.","title":"Versions"},{"location":"images/docker-htpcmanager/","text":"linuxserver/htpcmanager Htpcmanager is a front end for many htpc related applications. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/htpcmanager:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The webui is found at port 8085. Smartmontools and psutil have not been included, you can safely ignore the warning error in the log. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: htpcmanager: image: lscr.io/linuxserver/htpcmanager:latest container_name: htpcmanager environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 8085:8085 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=htpcmanager \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8085:8085 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/htpcmanager:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8085 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it htpcmanager /bin/bash To monitor the logs of the container in realtime: docker logs -f htpcmanager Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' htpcmanager Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/htpcmanager:latest Versions 24.08.22: - Rebase to alpine 3.15, use linuxserver.io wheel repo. 08.04.21: - Fix build. 10.02.21: - Rebasing to alpine 3.13. 26.10.20: - Rebase to alpine 3.12, python3, change upstream project 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 12.12.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 07.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 26.09.16: - Add back cherrypy after removal from baseimage. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 14.01.15: - Remove hardcoded loglevel from the run command, set in webui 19.09.15: - Initial Release.","title":"htpcmanager"},{"location":"images/docker-htpcmanager/#linuxserverhtpcmanager","text":"Htpcmanager is a front end for many htpc related applications.","title":"linuxserver/htpcmanager"},{"location":"images/docker-htpcmanager/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/htpcmanager:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-htpcmanager/#application-setup","text":"The webui is found at port 8085. Smartmontools and psutil have not been included, you can safely ignore the warning error in the log.","title":"Application Setup"},{"location":"images/docker-htpcmanager/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-htpcmanager/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: htpcmanager: image: lscr.io/linuxserver/htpcmanager:latest container_name: htpcmanager environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 8085:8085 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-htpcmanager/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=htpcmanager \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8085:8085 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/htpcmanager:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-htpcmanager/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-htpcmanager/#ports-p","text":"Parameter Function 8085 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-htpcmanager/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-htpcmanager/#volume-mappings-v","text":"Volume Function /config Configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-htpcmanager/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-htpcmanager/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-htpcmanager/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-htpcmanager/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-htpcmanager/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-htpcmanager/#support-info","text":"Shell access whilst the container is running: docker exec -it htpcmanager /bin/bash To monitor the logs of the container in realtime: docker logs -f htpcmanager Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' htpcmanager Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/htpcmanager:latest","title":"Support Info"},{"location":"images/docker-htpcmanager/#versions","text":"24.08.22: - Rebase to alpine 3.15, use linuxserver.io wheel repo. 08.04.21: - Fix build. 10.02.21: - Rebasing to alpine 3.13. 26.10.20: - Rebase to alpine 3.12, python3, change upstream project 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 12.12.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 07.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 26.09.16: - Add back cherrypy after removal from baseimage. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 14.01.15: - Remove hardcoded loglevel from the run command, set in webui 19.09.15: - Initial Release.","title":"Versions"},{"location":"images/docker-hydra/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/hydra Hydra is a meta search for NZB indexers and the \"spiritual successor\" to NZBmegasearcH. It provides easy access to a number of raw and newznab based indexers. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/hydra should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: hydra: image: lscr.io/linuxserver/hydra container_name: hydra environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads ports: - 5075:5075 restart: unless-stopped docker cli docker run -d \\ --name=hydra \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5075:5075 \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/hydra Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5075 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where hydra should store config files. /downloads NZB download folder. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup THIS IMAGE HAS BEEN DEPRECATED. Please use linuxserver/nzbhydra2 instead. The web interface is at :5075 , to set up indexers and connections to your nzb download applications. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it hydra /bin/bash To monitor the logs of the container in realtime: docker logs -f hydra Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' hydra Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/hydra Versions 04.11.19: - Deprecated. Please use linuxserver/nzbhydra2 instead. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 12.12.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 07.11.16: - Move git clone internal to the container,point config, database and log to use same locations for existing users. 14.10.16: - Add version layer information. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 25.01.16: - Initial Release.","title":"hydra"},{"location":"images/docker-hydra/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-hydra/#linuxserverhydra","text":"Hydra is a meta search for NZB indexers and the \"spiritual successor\" to NZBmegasearcH. It provides easy access to a number of raw and newznab based indexers.","title":"linuxserver/hydra"},{"location":"images/docker-hydra/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/hydra should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-hydra/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-hydra/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: hydra: image: lscr.io/linuxserver/hydra container_name: hydra environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads ports: - 5075:5075 restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-hydra/#docker-cli","text":"docker run -d \\ --name=hydra \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5075:5075 \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/hydra","title":"docker cli"},{"location":"images/docker-hydra/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-hydra/#ports-p","text":"Parameter Function 5075 WebUI","title":"Ports (-p)"},{"location":"images/docker-hydra/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-hydra/#volume-mappings-v","text":"Volume Function /config Where hydra should store config files. /downloads NZB download folder.","title":"Volume Mappings (-v)"},{"location":"images/docker-hydra/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-hydra/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-hydra/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-hydra/#application-setup","text":"THIS IMAGE HAS BEEN DEPRECATED. Please use linuxserver/nzbhydra2 instead. The web interface is at :5075 , to set up indexers and connections to your nzb download applications.","title":"Application Setup"},{"location":"images/docker-hydra/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-hydra/#support-info","text":"Shell access whilst the container is running: docker exec -it hydra /bin/bash To monitor the logs of the container in realtime: docker logs -f hydra Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' hydra Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/hydra","title":"Support Info"},{"location":"images/docker-hydra/#versions","text":"04.11.19: - Deprecated. Please use linuxserver/nzbhydra2 instead. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 12.12.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 07.11.16: - Move git clone internal to the container,point config, database and log to use same locations for existing users. 14.10.16: - Add version layer information. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 25.01.16: - Initial Release.","title":"Versions"},{"location":"images/docker-hydra2/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We will continue releases with a new image under the correct name: linuxserver/nzbhydra2. linuxserver/hydra2 Hydra2 is a meta search application for NZB indexers, the \"spiritual successor\" to NZBmegasearcH, and an evolution of the original application NZBHydra . It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. NOTE: The last version that supports migration is linuxserver/hydra2:v2.10.2-ls49 Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/hydra2 should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Version Tags This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest Stable releases dev Prereleases from their GitHub Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=hydra2 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5076:5076 \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ linuxserver/hydra2 docker-compose Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: hydra2: image: linuxserver/hydra2 container_name: hydra2 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads ports: - 5076:5076 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5076 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where hydra2 should store config files. /downloads NZB download folder. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup The web interface is at :5076 , to set up indexers and connections to your nzb download applications. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above. Support Info Shell access whilst the container is running: docker exec -it hydra2 /bin/bash To monitor the logs of the container in realtime: docker logs -f hydra2 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' hydra2 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/hydra2 Versions 19.04.20: - Deprecated. New repo at linuxserver/docker-nzbhydra2 . 08.01.20: - Switch to python3. 05.01.20: - Add dev tag for prereleases. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch. 18.08.18: - Bump java version to 10, (bionic currently refers to it as version 11). 10.08.18: - Rebase to ubuntu bionic. 15.04.18: - Change to port 5076 in the Dockerfile. 11.01.18: - Initial Release.","title":"hydra2"},{"location":"images/docker-hydra2/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We will continue releases with a new image under the correct name: linuxserver/nzbhydra2.","title":"DEPRECATION NOTICE"},{"location":"images/docker-hydra2/#linuxserverhydra2","text":"Hydra2 is a meta search application for NZB indexers, the \"spiritual successor\" to NZBmegasearcH, and an evolution of the original application NZBHydra . It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. NOTE: The last version that supports migration is linuxserver/hydra2:v2.10.2-ls49","title":"linuxserver/hydra2"},{"location":"images/docker-hydra2/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/hydra2 should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-hydra2/#version-tags","text":"This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest Stable releases dev Prereleases from their GitHub","title":"Version Tags"},{"location":"images/docker-hydra2/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-hydra2/#docker","text":"docker create \\ --name=hydra2 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5076:5076 \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ linuxserver/hydra2","title":"docker"},{"location":"images/docker-hydra2/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: hydra2: image: linuxserver/hydra2 container_name: hydra2 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads ports: - 5076:5076 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-hydra2/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-hydra2/#ports-p","text":"Parameter Function 5076 WebUI","title":"Ports (-p)"},{"location":"images/docker-hydra2/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-hydra2/#volume-mappings-v","text":"Volume Function /config Where hydra2 should store config files. /downloads NZB download folder.","title":"Volume Mappings (-v)"},{"location":"images/docker-hydra2/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-hydra2/#application-setup","text":"The web interface is at :5076 , to set up indexers and connections to your nzb download applications.","title":"Application Setup"},{"location":"images/docker-hydra2/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above.","title":"Docker Mods"},{"location":"images/docker-hydra2/#support-info","text":"Shell access whilst the container is running: docker exec -it hydra2 /bin/bash To monitor the logs of the container in realtime: docker logs -f hydra2 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' hydra2 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/hydra2","title":"Support Info"},{"location":"images/docker-hydra2/#versions","text":"19.04.20: - Deprecated. New repo at linuxserver/docker-nzbhydra2 . 08.01.20: - Switch to python3. 05.01.20: - Add dev tag for prereleases. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch. 18.08.18: - Bump java version to 10, (bionic currently refers to it as version 11). 10.08.18: - Rebase to ubuntu bionic. 15.04.18: - Change to port 5076 in the Dockerfile. 11.01.18: - Initial Release.","title":"Versions"},{"location":"images/docker-ipfs/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Please use the official IPFS container here: https://hub.docker.com/r/ipfs/go-ipfs When this project started the web interface was not integrated well with the default IPFS server. Now it is great and well maintained, hosting it on a static webserver does not make much sense anymore. linuxserver/ipfs Ipfs - A peer-to-peer hypermedia protocol designed to make the web faster, safer, and more open. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ipfs should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Application Setup In order to push files beyond your local gateway you have to make sure port 4001 is forwarded to the internet. This is required for IPFS peers to reach in and grab your files so public gateways can serve them. Access the webui at http://localhost , if not using localhost scroll to the bottom of the page and set the API Address setting to IE http://192.168.1.10:5001 , from there you can upload and manage files you push to IPFS. Your gateway to access IPFS files is http://localhost:8080/ipfs/YOUR-FILE-HASH-HERE . You can also simply use public IPFS gateways like: * Cloudflare - https://cloudflare-ipfs.com/ipfs/YOUR-FILE-HASH-HERE * IPFS.io - https://ipfs.io/ipfs/YOUR-FILE-HASH-HERE * Eternum.io - https://ipfs.eternum.io/ipfs/YOUR-FILE-HASH-HERE Cloudflare is a solid option as they actually edge cache the files on their CDN so even if your node pinning the item goes down for periods of time their cache will last up to a month. For more on using IPFS please read the docs here Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: ipfs: image: lscr.io/linuxserver/ipfs container_name: ipfs environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 80:80 - 4001:4001 - 5001:5001 - 8080:8080 - 443:443 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=ipfs \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 4001:4001 \\ -p 5001:5001 \\ -p 8080:8080 \\ -p 443:443 `#optional` \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ipfs Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 The port for the IPFS web UI 4001 Peering port, this is the only port you should expose to the internet 5001 API port, the clientside webUI needs to be able to talk to this from whatever machine your web browser is on 8080 Gateway Port, actually serves IPFS content 443 HTTPS port for web UI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config IPFS storage and config files/logs Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it ipfs /bin/bash To monitor the logs of the container in realtime: docker logs -f ipfs Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ipfs Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ipfs Versions 02.02.22: - Deprecate. 19.09.21: - Build webui from source. Update code formatting. Rebase to Alpine 3.14. 01.04.21: - Add migration bins to image to support upgrades. 24.02.20: - Rebase to Alpine 3.13. 09.07.19: - Initial version.","title":"ipfs"},{"location":"images/docker-ipfs/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. Please use the official IPFS container here: https://hub.docker.com/r/ipfs/go-ipfs When this project started the web interface was not integrated well with the default IPFS server. Now it is great and well maintained, hosting it on a static webserver does not make much sense anymore.","title":"DEPRECATION NOTICE"},{"location":"images/docker-ipfs/#linuxserveripfs","text":"Ipfs - A peer-to-peer hypermedia protocol designed to make the web faster, safer, and more open.","title":"linuxserver/ipfs"},{"location":"images/docker-ipfs/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ipfs should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-ipfs/#application-setup","text":"In order to push files beyond your local gateway you have to make sure port 4001 is forwarded to the internet. This is required for IPFS peers to reach in and grab your files so public gateways can serve them. Access the webui at http://localhost , if not using localhost scroll to the bottom of the page and set the API Address setting to IE http://192.168.1.10:5001 , from there you can upload and manage files you push to IPFS. Your gateway to access IPFS files is http://localhost:8080/ipfs/YOUR-FILE-HASH-HERE . You can also simply use public IPFS gateways like: * Cloudflare - https://cloudflare-ipfs.com/ipfs/YOUR-FILE-HASH-HERE * IPFS.io - https://ipfs.io/ipfs/YOUR-FILE-HASH-HERE * Eternum.io - https://ipfs.eternum.io/ipfs/YOUR-FILE-HASH-HERE Cloudflare is a solid option as they actually edge cache the files on their CDN so even if your node pinning the item goes down for periods of time their cache will last up to a month. For more on using IPFS please read the docs here","title":"Application Setup"},{"location":"images/docker-ipfs/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-ipfs/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: ipfs: image: lscr.io/linuxserver/ipfs container_name: ipfs environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 80:80 - 4001:4001 - 5001:5001 - 8080:8080 - 443:443 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-ipfs/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=ipfs \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 4001:4001 \\ -p 5001:5001 \\ -p 8080:8080 \\ -p 443:443 `#optional` \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ipfs","title":"docker cli (click here for more info)"},{"location":"images/docker-ipfs/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-ipfs/#ports-p","text":"Parameter Function 80 The port for the IPFS web UI 4001 Peering port, this is the only port you should expose to the internet 5001 API port, the clientside webUI needs to be able to talk to this from whatever machine your web browser is on 8080 Gateway Port, actually serves IPFS content 443 HTTPS port for web UI","title":"Ports (-p)"},{"location":"images/docker-ipfs/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-ipfs/#volume-mappings-v","text":"Volume Function /config IPFS storage and config files/logs","title":"Volume Mappings (-v)"},{"location":"images/docker-ipfs/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-ipfs/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-ipfs/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-ipfs/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-ipfs/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-ipfs/#support-info","text":"Shell access whilst the container is running: docker exec -it ipfs /bin/bash To monitor the logs of the container in realtime: docker logs -f ipfs Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ipfs Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ipfs","title":"Support Info"},{"location":"images/docker-ipfs/#versions","text":"02.02.22: - Deprecate. 19.09.21: - Build webui from source. Update code formatting. Rebase to Alpine 3.14. 01.04.21: - Add migration bins to image to support upgrades. 24.02.20: - Rebase to Alpine 3.13. 09.07.19: - Initial version.","title":"Versions"},{"location":"images/docker-jackett/","text":"linuxserver/jackett Jackett works as a proxy server: it translates queries from apps (Sonarr, SickRage, CouchPotato, Mylar, etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/jackett:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Jackett Releases development \u2705 Latest Jackett Releases Application Setup The web interface is at :9117 , configure various trackers and connections to other apps there. More info at Jackett . Disable autoupdates in the webui to prevent jackett crashing, the image is refreshed when new versions are released. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: jackett: image: lscr.io/linuxserver/jackett:latest container_name: jackett environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - AUTO_UPDATE=true #optional - RUN_OPTS= #optional volumes: - :/config - :/downloads ports: - 9117:9117 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=jackett \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e AUTO_UPDATE=true `#optional` \\ -e RUN_OPTS= `#optional` \\ -p 9117:9117 \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/jackett:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 9117 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. AUTO_UPDATE=true Allow Jackett to update inside of the container (currently recommended by Jackett and enabled by default) RUN_OPTS= Optionally specify additional arguments to be passed. Volume Mappings ( -v ) Volume Function /config Where Jackett should store its config file. /downloads Path to torrent blackhole. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it jackett /bin/bash To monitor the logs of the container in realtime: docker logs -f jackett Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' jackett Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/jackett:latest Versions 10.05.22: - Rebase to Ubuntu Focal. 24.05.20: - Allow user to optionally enable auto updates. 31.12.19: - Remove agressive startup chowning. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.03.19: - Switch to net-core builds of jackett, not dependant on mono and smaller images. 11.02.19: - Add pipeline logic and multi arch. 11.06.18: - Ensure root ownership of Jackett files. 13.12.17: - Fix continuation lines. 17.04.17: - Switch to using inhouse mono baseimage, ubuntu xenial based. 09.02.17: - Rebase to alpine 3.5. 29.10.16: - Call python2 from edge main to satisfy new mono dependency. 14.10.16: - Add version layer information. 22.09.16: - Remove autoupdate, tidy up Dockerfile. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 06.08.16: - Rebase to alpine linux for smaller image. 25.01.16: - Initial Release.","title":"jackett"},{"location":"images/docker-jackett/#linuxserverjackett","text":"Jackett works as a proxy server: it translates queries from apps (Sonarr, SickRage, CouchPotato, Mylar, etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps.","title":"linuxserver/jackett"},{"location":"images/docker-jackett/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/jackett:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-jackett/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Jackett Releases development \u2705 Latest Jackett Releases","title":"Version Tags"},{"location":"images/docker-jackett/#application-setup","text":"The web interface is at :9117 , configure various trackers and connections to other apps there. More info at Jackett . Disable autoupdates in the webui to prevent jackett crashing, the image is refreshed when new versions are released.","title":"Application Setup"},{"location":"images/docker-jackett/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-jackett/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: jackett: image: lscr.io/linuxserver/jackett:latest container_name: jackett environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - AUTO_UPDATE=true #optional - RUN_OPTS= #optional volumes: - :/config - :/downloads ports: - 9117:9117 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-jackett/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=jackett \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e AUTO_UPDATE=true `#optional` \\ -e RUN_OPTS= `#optional` \\ -p 9117:9117 \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/jackett:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-jackett/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-jackett/#ports-p","text":"Parameter Function 9117 WebUI","title":"Ports (-p)"},{"location":"images/docker-jackett/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. AUTO_UPDATE=true Allow Jackett to update inside of the container (currently recommended by Jackett and enabled by default) RUN_OPTS= Optionally specify additional arguments to be passed.","title":"Environment Variables (-e)"},{"location":"images/docker-jackett/#volume-mappings-v","text":"Volume Function /config Where Jackett should store its config file. /downloads Path to torrent blackhole.","title":"Volume Mappings (-v)"},{"location":"images/docker-jackett/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-jackett/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-jackett/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-jackett/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-jackett/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-jackett/#support-info","text":"Shell access whilst the container is running: docker exec -it jackett /bin/bash To monitor the logs of the container in realtime: docker logs -f jackett Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' jackett Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/jackett:latest","title":"Support Info"},{"location":"images/docker-jackett/#versions","text":"10.05.22: - Rebase to Ubuntu Focal. 24.05.20: - Allow user to optionally enable auto updates. 31.12.19: - Remove agressive startup chowning. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.03.19: - Switch to net-core builds of jackett, not dependant on mono and smaller images. 11.02.19: - Add pipeline logic and multi arch. 11.06.18: - Ensure root ownership of Jackett files. 13.12.17: - Fix continuation lines. 17.04.17: - Switch to using inhouse mono baseimage, ubuntu xenial based. 09.02.17: - Rebase to alpine 3.5. 29.10.16: - Call python2 from edge main to satisfy new mono dependency. 14.10.16: - Add version layer information. 22.09.16: - Remove autoupdate, tidy up Dockerfile. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 06.08.16: - Rebase to alpine linux for smaller image. 25.01.16: - Initial Release.","title":"Versions"},{"location":"images/docker-jellyfin/","text":"linuxserver/jellyfin Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/jellyfin:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Jellyfin releases nightly \u2705 Nightly Jellyfin releases Application Setup Webui can be found at http://:8096 More information can be found on the official documentation here . Hardware Acceleration Intel Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the jellyfin docker container. OpenMAX (Raspberry Pi) Hardware acceleration users for Raspberry Pi MMAL/OpenMAX will need to mount their /dev/vcsm and /dev/vchiq video devices inside of the container and their system OpenMax libs by passing the following options when running or creating the container: --device=/dev/vcsm:/dev/vcsm --device=/dev/vchiq:/dev/vchiq -v /opt/vc/lib:/opt/vc/lib V4L2 (Raspberry Pi) Hardware acceleration users for Raspberry Pi V4L2 will need to mount their /dev/video1X devices inside of the container by passing the following options when running or creating the container: --device=/dev/video10:/dev/video10 --device=/dev/video11:/dev/video11 --device=/dev/video12:/dev/video12 Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - JELLYFIN_PublishedServerUrl=192.168.0.5 #optional volumes: - /path/to/library:/config - /path/to/tvseries:/data/tvshows - /path/to/movies:/data/movies ports: - 8096:8096 - 8920:8920 #optional - 7359:7359/udp #optional - 1900:1900/udp #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=jellyfin \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e JELLYFIN_PublishedServerUrl=192.168.0.5 `#optional` \\ -p 8096:8096 \\ -p 8920:8920 `#optional` \\ -p 7359:7359/udp `#optional` \\ -p 1900:1900/udp `#optional` \\ -v /path/to/library:/config \\ -v /path/to/tvseries:/data/tvshows \\ -v /path/to/movies:/data/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/jellyfin:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8096 Http webUI. 8920 Optional - Https webUI (you need to set up your own certificate). 7359/udp Optional - Allows clients to discover Jellyfin on the local network. 1900/udp Optional - Service discovery used by DNLA and clients. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use (e.g. Europe/London). JELLYFIN_PublishedServerUrl=192.168.0.5 Set the autodiscovery response domain or IP address. Volume Mappings ( -v ) Volume Function /config Jellyfin data storage location. This can grow very large, 50gb+ is likely for a large collection. /data/tvshows Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. /data/movies Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Optional Parameters The official documentation for ports has additional ports that can provide auto discovery. Service Discovery ( 1900/udp ) - Since client auto-discover would break if this option were configurable, you cannot change this in the settings at this time. DLNA also uses this port and is required to be in the local subnet. Client Discovery ( 7359/udp ) - Allows clients to discover Jellyfin on the local network. A broadcast message to this port with \"Who is Jellyfin Server?\" will get a JSON response that includes the server address, ID, and name. -p 7359:7359/udp \\ -p 1900:1900/udp \\ The official documentation for environmentals has additional environmentals that can provide additional configurability such as migrating to the native Jellyfin image. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it jellyfin /bin/bash To monitor the logs of the container in realtime: docker logs -f jellyfin Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' jellyfin Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/jellyfin:latest Versions 07.12.22: - Rebase master to Jammy, migrate to s6v3. 11.06.22: - Switch to upstream repo's ffmpeg5 build. 05.01.22: - Specify Intel iHD driver versions to avoid mismatched libva errors. 25.12.21: - Fix video device group perms error message. 10.12.21: - Rework readme, disable template sync. 22.09.21: - Pull only the server, web and ffmpeg packages instead of the wrapper. 23.06.21: - Add log message if device permissions are incorrect. Pin jellyfin dependency versions to prevent upstream apt repo issues. Deprecate the bionic tag. 21.05.21: - Add nvidia.icd file to fix missing tonemapping using Nvidia HW. 20.01.21: - Add Jellyfin Binary Environmentals 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.11.20: - Rebase to Focal, branch off Bionic. 22.07.20: - Ingest releases from Jellyfin repo. 28.04.20: - Replace MMAL/OMX dependency device /dev/vc-mem with /dev/vcsm as the former was not sufficient for raspbian. 11.04.20: - Enable hw decode (mmal) on Raspberry Pi, update readme instructions, add donation info, create missing default transcodes folder. 11.03.20: - Add Pi V4L2 support, remove optional transcode mapping (location is selected in the gui, defaults to path under /config ). 30.01.20: - Add nightly tag. 09.01.20: - Add Pi OpenMax support. 02.10.19: - Improve permission fixing for render & dvb devices. 31.07.19: - Add AMD drivers for vaapi support on x86. 13.06.19: - Add Intel drivers for vaapi support on x86. 07.06.19: - Initial release.","title":"jellyfin"},{"location":"images/docker-jellyfin/#linuxserverjellyfin","text":"Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it.","title":"linuxserver/jellyfin"},{"location":"images/docker-jellyfin/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/jellyfin:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-jellyfin/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Jellyfin releases nightly \u2705 Nightly Jellyfin releases","title":"Version Tags"},{"location":"images/docker-jellyfin/#application-setup","text":"Webui can be found at http://:8096 More information can be found on the official documentation here .","title":"Application Setup"},{"location":"images/docker-jellyfin/#hardware-acceleration","text":"","title":"Hardware Acceleration"},{"location":"images/docker-jellyfin/#intel","text":"Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel"},{"location":"images/docker-jellyfin/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the jellyfin docker container.","title":"Nvidia"},{"location":"images/docker-jellyfin/#openmax-raspberry-pi","text":"Hardware acceleration users for Raspberry Pi MMAL/OpenMAX will need to mount their /dev/vcsm and /dev/vchiq video devices inside of the container and their system OpenMax libs by passing the following options when running or creating the container: --device=/dev/vcsm:/dev/vcsm --device=/dev/vchiq:/dev/vchiq -v /opt/vc/lib:/opt/vc/lib","title":"OpenMAX (Raspberry Pi)"},{"location":"images/docker-jellyfin/#v4l2-raspberry-pi","text":"Hardware acceleration users for Raspberry Pi V4L2 will need to mount their /dev/video1X devices inside of the container by passing the following options when running or creating the container: --device=/dev/video10:/dev/video10 --device=/dev/video11:/dev/video11 --device=/dev/video12:/dev/video12","title":"V4L2 (Raspberry Pi)"},{"location":"images/docker-jellyfin/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-jellyfin/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - JELLYFIN_PublishedServerUrl=192.168.0.5 #optional volumes: - /path/to/library:/config - /path/to/tvseries:/data/tvshows - /path/to/movies:/data/movies ports: - 8096:8096 - 8920:8920 #optional - 7359:7359/udp #optional - 1900:1900/udp #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-jellyfin/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=jellyfin \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e JELLYFIN_PublishedServerUrl=192.168.0.5 `#optional` \\ -p 8096:8096 \\ -p 8920:8920 `#optional` \\ -p 7359:7359/udp `#optional` \\ -p 1900:1900/udp `#optional` \\ -v /path/to/library:/config \\ -v /path/to/tvseries:/data/tvshows \\ -v /path/to/movies:/data/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/jellyfin:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-jellyfin/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-jellyfin/#ports-p","text":"Parameter Function 8096 Http webUI. 8920 Optional - Https webUI (you need to set up your own certificate). 7359/udp Optional - Allows clients to discover Jellyfin on the local network. 1900/udp Optional - Service discovery used by DNLA and clients.","title":"Ports (-p)"},{"location":"images/docker-jellyfin/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use (e.g. Europe/London). JELLYFIN_PublishedServerUrl=192.168.0.5 Set the autodiscovery response domain or IP address.","title":"Environment Variables (-e)"},{"location":"images/docker-jellyfin/#volume-mappings-v","text":"Volume Function /config Jellyfin data storage location. This can grow very large, 50gb+ is likely for a large collection. /data/tvshows Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. /data/movies Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc.","title":"Volume Mappings (-v)"},{"location":"images/docker-jellyfin/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-jellyfin/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-jellyfin/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-jellyfin/#optional-parameters","text":"The official documentation for ports has additional ports that can provide auto discovery. Service Discovery ( 1900/udp ) - Since client auto-discover would break if this option were configurable, you cannot change this in the settings at this time. DLNA also uses this port and is required to be in the local subnet. Client Discovery ( 7359/udp ) - Allows clients to discover Jellyfin on the local network. A broadcast message to this port with \"Who is Jellyfin Server?\" will get a JSON response that includes the server address, ID, and name. -p 7359:7359/udp \\ -p 1900:1900/udp \\ The official documentation for environmentals has additional environmentals that can provide additional configurability such as migrating to the native Jellyfin image.","title":"Optional Parameters"},{"location":"images/docker-jellyfin/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-jellyfin/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-jellyfin/#support-info","text":"Shell access whilst the container is running: docker exec -it jellyfin /bin/bash To monitor the logs of the container in realtime: docker logs -f jellyfin Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' jellyfin Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/jellyfin:latest","title":"Support Info"},{"location":"images/docker-jellyfin/#versions","text":"07.12.22: - Rebase master to Jammy, migrate to s6v3. 11.06.22: - Switch to upstream repo's ffmpeg5 build. 05.01.22: - Specify Intel iHD driver versions to avoid mismatched libva errors. 25.12.21: - Fix video device group perms error message. 10.12.21: - Rework readme, disable template sync. 22.09.21: - Pull only the server, web and ffmpeg packages instead of the wrapper. 23.06.21: - Add log message if device permissions are incorrect. Pin jellyfin dependency versions to prevent upstream apt repo issues. Deprecate the bionic tag. 21.05.21: - Add nvidia.icd file to fix missing tonemapping using Nvidia HW. 20.01.21: - Add Jellyfin Binary Environmentals 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.11.20: - Rebase to Focal, branch off Bionic. 22.07.20: - Ingest releases from Jellyfin repo. 28.04.20: - Replace MMAL/OMX dependency device /dev/vc-mem with /dev/vcsm as the former was not sufficient for raspbian. 11.04.20: - Enable hw decode (mmal) on Raspberry Pi, update readme instructions, add donation info, create missing default transcodes folder. 11.03.20: - Add Pi V4L2 support, remove optional transcode mapping (location is selected in the gui, defaults to path under /config ). 30.01.20: - Add nightly tag. 09.01.20: - Add Pi OpenMax support. 02.10.19: - Improve permission fixing for render & dvb devices. 31.07.19: - Add AMD drivers for vaapi support on x86. 13.06.19: - Add Intel drivers for vaapi support on x86. 07.06.19: - Initial release.","title":"Versions"},{"location":"images/docker-jenkins-builder/","text":"linuxserver/jenkins-builder Expects to run as part of the LSIO CI process. Not for public consumption. Running against remote project docker run --rm \\ -e CONTAINER_NAME=${CONTAINER_NAME} \\ -v ${TEMPDIR}:/ansible/jenkins \\ lscr.io/linuxserver/jenkins-builder:latest Running against local project If you need to test functionality just navigate to the folder with the jenkins-vars.yml and run: docker pull lscr.io/linuxserver/jenkins-builder:latest && \\ docker run --rm \\ -v $(pwd):/tmp \\ -e LOCAL=true \\ -e PUID=$(id -u) -e PGID=$(id -g) \\ lscr.io/linuxserver/jenkins-builder:latest && \\ rm -rf .jenkins-external Newly generated files (including README.md , Jenkinsfile , issue templates, etc.) will overwrite the existing files in your current working directory. Building locally If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-jenkins-builder.git cd docker-jenkins-builder docker build \\ --no-cache \\ --pull \\ -t lscr.io/linuxserver/jenkins-builder:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 . Versions The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"jenkins-builder"},{"location":"images/docker-jenkins-builder/#linuxserverjenkins-builder","text":"Expects to run as part of the LSIO CI process. Not for public consumption.","title":"linuxserver/jenkins-builder"},{"location":"images/docker-jenkins-builder/#running-against-remote-project","text":"docker run --rm \\ -e CONTAINER_NAME=${CONTAINER_NAME} \\ -v ${TEMPDIR}:/ansible/jenkins \\ lscr.io/linuxserver/jenkins-builder:latest","title":"Running against remote project"},{"location":"images/docker-jenkins-builder/#running-against-local-project","text":"If you need to test functionality just navigate to the folder with the jenkins-vars.yml and run: docker pull lscr.io/linuxserver/jenkins-builder:latest && \\ docker run --rm \\ -v $(pwd):/tmp \\ -e LOCAL=true \\ -e PUID=$(id -u) -e PGID=$(id -g) \\ lscr.io/linuxserver/jenkins-builder:latest && \\ rm -rf .jenkins-external Newly generated files (including README.md , Jenkinsfile , issue templates, etc.) will overwrite the existing files in your current working directory.","title":"Running against local project"},{"location":"images/docker-jenkins-builder/#building-locally","text":"If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-jenkins-builder.git cd docker-jenkins-builder docker build \\ --no-cache \\ --pull \\ -t lscr.io/linuxserver/jenkins-builder:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 .","title":"Building locally"},{"location":"images/docker-jenkins-builder/#versions","text":"The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Versions"},{"location":"images/docker-kanzi/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/kanzi Kanzi , formerly titled Kodi-Alexa, this custom skill is the ultimate voice remote control for navigating Kodi. It can do anything you can think of (100+ intents). This container also contains lexigram-cli to setup Kanzi with an Amazon Developer Account and automatically deploy it to Amazon. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/kanzi:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Initial setup Once you start the container for the first time, you need to perform some steps before use. Create an Amazon Developer Account here. Open a terminal in the /config directory of the docker container docker exec -itw /config kanzi bash Enter lexigram login --no-browser true to setup your AWS credentials and copy the URL into a browser, login to your Amazon Developer Account and copy/paste the resulting authorisation code back into the terminal and press enter. Edit the file kodi.config according to your local setup and this will be used by the included gunicorn server to respond to requests. Restart the container to automatically deploy the Kanzi skill. Reverse proxy this container with our LetsEncrypt container which contains preconfigured templates for reverse proxying the Kanzi container on either a subdomain or subfolder utilising Docker custom networking. Alternatively, if you already have an Nginx reverse proxy set up, you can use one of these location blocks to reverse proxy Kanzi to a subfolder or subdomain respectively. Subfolder location /kanzi { rewrite ^/kanzi/(.*) /$1 break; proxy_pass https://$IP-ADDRESS:8000; proxy_redirect https://$IP-ADDRESS:8000 /kanzi; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Host $server_name; } Subdomain location / { proxy_pass https://$IP-ADDRESS:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Host $server_name; } Strict reverse proxies This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: kanzi: image: lscr.io/linuxserver/kanzi:latest container_name: kanzi environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - INVOCATION_NAME=kanzi - URL_ENDPOINT=https://server.com/kanzi/ volumes: - :/config ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=kanzi \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e INVOCATION_NAME=kanzi \\ -e URL_ENDPOINT=https://server.com/kanzi/ \\ -p 8000:8000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/kanzi:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 Application Port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. INVOCATION_NAME=kanzi Specify an invocation name for this skill, use either kanzi or kod. URL_ENDPOINT=https://server.com/kanzi/ Specify the URL at which the webserver is reachable either https://kanzi.server.com/ or https://server.com/kanzi/ Note the trailing slash MUST be included. Volume Mappings ( -v ) Volume Function /config Configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it kanzi /bin/bash To monitor the logs of the container in realtime: docker logs -f kanzi Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' kanzi Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/kanzi:latest Versions 20.06.22: - Deprecate image. 13.04.19: - Initial Release.","title":"kanzi"},{"location":"images/docker-kanzi/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-kanzi/#linuxserverkanzi","text":"Kanzi , formerly titled Kodi-Alexa, this custom skill is the ultimate voice remote control for navigating Kodi. It can do anything you can think of (100+ intents). This container also contains lexigram-cli to setup Kanzi with an Amazon Developer Account and automatically deploy it to Amazon.","title":"linuxserver/kanzi"},{"location":"images/docker-kanzi/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/kanzi:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-kanzi/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-kanzi/#initial-setup","text":"Once you start the container for the first time, you need to perform some steps before use. Create an Amazon Developer Account here. Open a terminal in the /config directory of the docker container docker exec -itw /config kanzi bash Enter lexigram login --no-browser true to setup your AWS credentials and copy the URL into a browser, login to your Amazon Developer Account and copy/paste the resulting authorisation code back into the terminal and press enter. Edit the file kodi.config according to your local setup and this will be used by the included gunicorn server to respond to requests. Restart the container to automatically deploy the Kanzi skill. Reverse proxy this container with our LetsEncrypt container which contains preconfigured templates for reverse proxying the Kanzi container on either a subdomain or subfolder utilising Docker custom networking. Alternatively, if you already have an Nginx reverse proxy set up, you can use one of these location blocks to reverse proxy Kanzi to a subfolder or subdomain respectively. Subfolder location /kanzi { rewrite ^/kanzi/(.*) /$1 break; proxy_pass https://$IP-ADDRESS:8000; proxy_redirect https://$IP-ADDRESS:8000 /kanzi; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Host $server_name; } Subdomain location / { proxy_pass https://$IP-ADDRESS:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Host $server_name; }","title":"Initial setup"},{"location":"images/docker-kanzi/#strict-reverse-proxies","text":"This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-kanzi/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-kanzi/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: kanzi: image: lscr.io/linuxserver/kanzi:latest container_name: kanzi environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - INVOCATION_NAME=kanzi - URL_ENDPOINT=https://server.com/kanzi/ volumes: - :/config ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-kanzi/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=kanzi \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e INVOCATION_NAME=kanzi \\ -e URL_ENDPOINT=https://server.com/kanzi/ \\ -p 8000:8000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/kanzi:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-kanzi/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-kanzi/#ports-p","text":"Parameter Function 8000 Application Port","title":"Ports (-p)"},{"location":"images/docker-kanzi/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. INVOCATION_NAME=kanzi Specify an invocation name for this skill, use either kanzi or kod. URL_ENDPOINT=https://server.com/kanzi/ Specify the URL at which the webserver is reachable either https://kanzi.server.com/ or https://server.com/kanzi/ Note the trailing slash MUST be included.","title":"Environment Variables (-e)"},{"location":"images/docker-kanzi/#volume-mappings-v","text":"Volume Function /config Configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-kanzi/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-kanzi/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-kanzi/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-kanzi/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-kanzi/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-kanzi/#support-info","text":"Shell access whilst the container is running: docker exec -it kanzi /bin/bash To monitor the logs of the container in realtime: docker logs -f kanzi Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' kanzi Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/kanzi:latest","title":"Support Info"},{"location":"images/docker-kanzi/#versions","text":"20.06.22: - Deprecate image. 13.04.19: - Initial Release.","title":"Versions"},{"location":"images/docker-kasm/","text":"linuxserver/kasm Kasm Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services. Kasm uses devops-enabled Containerized Desktop Infrastructure (CDI) to create on-demand, disposable, docker containers that are accessible via web browser. Example use-cases include Remote Browser Isolation (RBI), Data Loss Prevention (DLP), Desktop as a Service (DaaS), Secure Remote Access Services (RAS), and Open Source Intelligence (OSINT) collections. The rendering of the graphical-based containers is powered by the open-source project KasmVNC . Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/kasm:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Kasm releases develop \u2705 Tip of develop Application Setup This container uses Docker in Docker and requires being run in privileged mode. This container also requires an initial setup that runs on port 3000. Unlike other containers the web interface port (default 443) needs to be set for the env variable KASM_PORT and both the inside and outside port IE for 4443 KASM_PORT=4443 -p 4443:4443 Unraid users due to the DinD storage layer /opt/ should be mounted directly to a disk IE /mnt/disk1/appdata/path or optimally with a cache disk at /mnt/cache/appdata/path Access the installation wizard at https:// your ip :3000 and follow the instructions there. Once setup is complete access https:// your ip :443 and login with the credentials you entered during setup. The default users are: admin@kasm.local user@kasm.local Currently Synology systems are not supported due to them blocking CPU scheduling in their Kernel. GPU Support During installation an option will be presented to force all Workspace containers to mount in and use a specific GPU. If using an NVIDIA GPU you will need to pass -e NVIDIA_VISIBLE_DEVICES=all or --gpus all and have the NVIDIA Container Runtime installed on the host. Also if using NVIDIA, Kasm Workspaces has native NVIDIA support so you can optionally opt to simply use that instead of he manual override during installation. Gamepad support In order to properly create virtual Gamepads you will need to mount from your host /dev/input and /run/udev/data . Please see HERE for instructions on enabling gamepad support. Persistant profiles In order to use persistant profiles in Workspaces you will need to mount in a folder to use from your host to /profiles . From there when configuring a workspace you can set the Persistant Profile Path to IE /profiles/ubuntu-focal/{username}/ , more infomation can be found HERE . Strict reverse proxies This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: kasm: image: lscr.io/linuxserver/kasm:latest container_name: kasm privileged: true environment: - KASM_PORT=443 - TZ=Europe/London - DOCKER_HUB_USERNAME=USER #optional - DOCKER_HUB_PASSWORD=PASS #optional volumes: - /path/to/data:/opt - /path/to/profiles:/profiles #optional - /dev/input:/dev/input #optional - /run/udev/data:/run/udev/data #optional ports: - 3000:3000 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=kasm \\ --privileged \\ -e KASM_PORT=443 \\ -e TZ=Europe/London \\ -e DOCKER_HUB_USERNAME=USER `#optional` \\ -e DOCKER_HUB_PASSWORD=PASS `#optional` \\ -p 3000:3000 \\ -p 443:443 \\ -v /path/to/data:/opt \\ -v /path/to/profiles:/profiles `#optional` \\ -v /dev/input:/dev/input `#optional` \\ -v /run/udev/data:/run/udev/data `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/kasm:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Kasm Installation wizard. (https) 443 Kasm Workspaces interface. (https) Environment Variables ( -e ) Env Function KASM_PORT=443 Specify the port you bind to the outside for Kasm Workspaces. TZ=Europe/London Specify a timezone to use EG Europe/London. DOCKER_HUB_USERNAME=USER Optionally specify a DockerHub Username to pull private images. DOCKER_HUB_PASSWORD=PASS Optionally specify a DockerHub password to pull private images. Volume Mappings ( -v ) Volume Function /opt Docker and installation storage. /profiles Optionally specify a path for persistent profile storage. /dev/input Optional for gamepad support. /run/udev/data Optional for gamepad support. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it kasm /bin/bash To monitor the logs of the container in realtime: docker logs -f kasm Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' kasm Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/kasm:latest Versions 05.11.22: - Rebase to Jammy, add support for GPUs, add support for Gamepads. 23.09.22: - Migrate to s6v3. 02.07.22: - Initial Release.","title":"kasm"},{"location":"images/docker-kasm/#linuxserverkasm","text":"Kasm Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services. Kasm uses devops-enabled Containerized Desktop Infrastructure (CDI) to create on-demand, disposable, docker containers that are accessible via web browser. Example use-cases include Remote Browser Isolation (RBI), Data Loss Prevention (DLP), Desktop as a Service (DaaS), Secure Remote Access Services (RAS), and Open Source Intelligence (OSINT) collections. The rendering of the graphical-based containers is powered by the open-source project KasmVNC .","title":"linuxserver/kasm"},{"location":"images/docker-kasm/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/kasm:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-kasm/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Kasm releases develop \u2705 Tip of develop","title":"Version Tags"},{"location":"images/docker-kasm/#application-setup","text":"This container uses Docker in Docker and requires being run in privileged mode. This container also requires an initial setup that runs on port 3000. Unlike other containers the web interface port (default 443) needs to be set for the env variable KASM_PORT and both the inside and outside port IE for 4443 KASM_PORT=4443 -p 4443:4443 Unraid users due to the DinD storage layer /opt/ should be mounted directly to a disk IE /mnt/disk1/appdata/path or optimally with a cache disk at /mnt/cache/appdata/path Access the installation wizard at https:// your ip :3000 and follow the instructions there. Once setup is complete access https:// your ip :443 and login with the credentials you entered during setup. The default users are: admin@kasm.local user@kasm.local Currently Synology systems are not supported due to them blocking CPU scheduling in their Kernel.","title":"Application Setup"},{"location":"images/docker-kasm/#gpu-support","text":"During installation an option will be presented to force all Workspace containers to mount in and use a specific GPU. If using an NVIDIA GPU you will need to pass -e NVIDIA_VISIBLE_DEVICES=all or --gpus all and have the NVIDIA Container Runtime installed on the host. Also if using NVIDIA, Kasm Workspaces has native NVIDIA support so you can optionally opt to simply use that instead of he manual override during installation.","title":"GPU Support"},{"location":"images/docker-kasm/#gamepad-support","text":"In order to properly create virtual Gamepads you will need to mount from your host /dev/input and /run/udev/data . Please see HERE for instructions on enabling gamepad support.","title":"Gamepad support"},{"location":"images/docker-kasm/#persistant-profiles","text":"In order to use persistant profiles in Workspaces you will need to mount in a folder to use from your host to /profiles . From there when configuring a workspace you can set the Persistant Profile Path to IE /profiles/ubuntu-focal/{username}/ , more infomation can be found HERE .","title":"Persistant profiles"},{"location":"images/docker-kasm/#strict-reverse-proxies","text":"This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-kasm/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-kasm/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: kasm: image: lscr.io/linuxserver/kasm:latest container_name: kasm privileged: true environment: - KASM_PORT=443 - TZ=Europe/London - DOCKER_HUB_USERNAME=USER #optional - DOCKER_HUB_PASSWORD=PASS #optional volumes: - /path/to/data:/opt - /path/to/profiles:/profiles #optional - /dev/input:/dev/input #optional - /run/udev/data:/run/udev/data #optional ports: - 3000:3000 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-kasm/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=kasm \\ --privileged \\ -e KASM_PORT=443 \\ -e TZ=Europe/London \\ -e DOCKER_HUB_USERNAME=USER `#optional` \\ -e DOCKER_HUB_PASSWORD=PASS `#optional` \\ -p 3000:3000 \\ -p 443:443 \\ -v /path/to/data:/opt \\ -v /path/to/profiles:/profiles `#optional` \\ -v /dev/input:/dev/input `#optional` \\ -v /run/udev/data:/run/udev/data `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/kasm:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-kasm/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-kasm/#ports-p","text":"Parameter Function 3000 Kasm Installation wizard. (https) 443 Kasm Workspaces interface. (https)","title":"Ports (-p)"},{"location":"images/docker-kasm/#environment-variables-e","text":"Env Function KASM_PORT=443 Specify the port you bind to the outside for Kasm Workspaces. TZ=Europe/London Specify a timezone to use EG Europe/London. DOCKER_HUB_USERNAME=USER Optionally specify a DockerHub Username to pull private images. DOCKER_HUB_PASSWORD=PASS Optionally specify a DockerHub password to pull private images.","title":"Environment Variables (-e)"},{"location":"images/docker-kasm/#volume-mappings-v","text":"Volume Function /opt Docker and installation storage. /profiles Optionally specify a path for persistent profile storage. /dev/input Optional for gamepad support. /run/udev/data Optional for gamepad support.","title":"Volume Mappings (-v)"},{"location":"images/docker-kasm/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-kasm/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-kasm/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-kasm/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-kasm/#support-info","text":"Shell access whilst the container is running: docker exec -it kasm /bin/bash To monitor the logs of the container in realtime: docker logs -f kasm Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' kasm Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/kasm:latest","title":"Support Info"},{"location":"images/docker-kasm/#versions","text":"05.11.22: - Rebase to Jammy, add support for GPUs, add support for Gamepads. 23.09.22: - Migrate to s6v3. 02.07.22: - Initial Release.","title":"Versions"},{"location":"images/docker-kdenlive/","text":"linuxserver/kdenlive Kdenlive is a powerful free and open source cross-platform video editing program made by the KDE community. Feature rich and production ready. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/kdenlive:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: * http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false . Hardware Acceleration (x86_64 only) In order to perform hardware transcoding you will need to mount a video device into the container. Some of the default hardware rendering/transcode profiles will point to devices in /dev/dri for vaapi_device . Make sure the profile you are using points to the correct device in the container. IE if you have intel integrated graphics along with an Nvdia or AMD video card you might have renderD128, renderD129, etc. To check which device is which use vainfo from inside the container: (right click the desktop and open xterm) vainfo --display drm --device /dev/dri/renderD128 Intel/ATI/AMD To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container. Keyboard Layouts This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: kdenlive: image: lscr.io/linuxserver/kdenlive:latest container_name: kdenlive security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional volumes: - /path/to/config:/config ports: - 3000:3000 devices: - /dev/dri:/dev/dri #optional shm_size: \"1gb\" #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=kdenlive \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --device /dev/dri:/dev/dri `#optional` \\ --shm-size=\"1gb\" `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/kdenlive:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Kdenlive desktop gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores local files and settings Device Mappings ( --device ) Parameter Function /dev/dri Add this for hardware acceleration (Linux hosts only) Miscellaneous Options Parameter Function --shm-size= This might be needed to prevent crashing --security-opt seccomp=unconfined For Docker Engine only, this may be required depending on your Docker and storage configuration. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it kdenlive /bin/bash To monitor the logs of the container in realtime: docker logs -f kdenlive Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' kdenlive Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/kdenlive:latest Versions 16.09.22: - Migrate to s6v3. 09.03.22: - Update seccomp explanation. 07.03.22: - Initial release.","title":"kdenlive"},{"location":"images/docker-kdenlive/#linuxserverkdenlive","text":"Kdenlive is a powerful free and open source cross-platform video editing program made by the KDE community. Feature rich and production ready.","title":"linuxserver/kdenlive"},{"location":"images/docker-kdenlive/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/kdenlive:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-kdenlive/#application-setup","text":"The application can be accessed at: * http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false .","title":"Application Setup"},{"location":"images/docker-kdenlive/#hardware-acceleration-x86_64-only","text":"In order to perform hardware transcoding you will need to mount a video device into the container. Some of the default hardware rendering/transcode profiles will point to devices in /dev/dri for vaapi_device . Make sure the profile you are using points to the correct device in the container. IE if you have intel integrated graphics along with an Nvdia or AMD video card you might have renderD128, renderD129, etc. To check which device is which use vainfo from inside the container: (right click the desktop and open xterm) vainfo --display drm --device /dev/dri/renderD128","title":"Hardware Acceleration (x86_64 only)"},{"location":"images/docker-kdenlive/#intelatiamd","text":"To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel/ATI/AMD"},{"location":"images/docker-kdenlive/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container.","title":"Nvidia"},{"location":"images/docker-kdenlive/#keyboard-layouts","text":"This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard","title":"Keyboard Layouts"},{"location":"images/docker-kdenlive/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-kdenlive/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: kdenlive: image: lscr.io/linuxserver/kdenlive:latest container_name: kdenlive security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional volumes: - /path/to/config:/config ports: - 3000:3000 devices: - /dev/dri:/dev/dri #optional shm_size: \"1gb\" #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-kdenlive/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=kdenlive \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --device /dev/dri:/dev/dri `#optional` \\ --shm-size=\"1gb\" `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/kdenlive:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-kdenlive/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-kdenlive/#ports-p","text":"Parameter Function 3000 Kdenlive desktop gui","title":"Ports (-p)"},{"location":"images/docker-kdenlive/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options.","title":"Environment Variables (-e)"},{"location":"images/docker-kdenlive/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores local files and settings","title":"Volume Mappings (-v)"},{"location":"images/docker-kdenlive/#device-mappings-device","text":"Parameter Function /dev/dri Add this for hardware acceleration (Linux hosts only)","title":"Device Mappings (--device)"},{"location":"images/docker-kdenlive/#miscellaneous-options","text":"Parameter Function --shm-size= This might be needed to prevent crashing --security-opt seccomp=unconfined For Docker Engine only, this may be required depending on your Docker and storage configuration.","title":"Miscellaneous Options"},{"location":"images/docker-kdenlive/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-kdenlive/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-kdenlive/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-kdenlive/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-kdenlive/#support-info","text":"Shell access whilst the container is running: docker exec -it kdenlive /bin/bash To monitor the logs of the container in realtime: docker logs -f kdenlive Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' kdenlive Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/kdenlive:latest","title":"Support Info"},{"location":"images/docker-kdenlive/#versions","text":"16.09.22: - Migrate to s6v3. 09.03.22: - Update seccomp explanation. 07.03.22: - Initial release.","title":"Versions"},{"location":"images/docker-lazylibrarian/","text":"linuxserver/lazylibrarian Lazylibrarian is a program to follow authors and grab metadata for all your digital reading needs. It uses a combination of Goodreads Librarything and optionally GoogleBooks as sources for author info and book info. This container is based on the DobyTang fork. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/lazylibrarian:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at http://:5299/home , for more information check out Lazylibrarian . Calibredb import 64bit only We have implemented the optional ability to pull in the dependencies to enable the Calibredb import program:, this means if you don't require this feature the container isn't uneccessarily bloated but should you require it, it is easily available. This optional layer will be rebuilt automatically on our CI pipeline upon new Calibre releases so you can stay up to date. To use this option add the optional environmental variable as detailed in the docker-mods section to pull an addition docker layer to enable ebook conversion and then in the LazyLibrarian config page (Processing:Calibredb import program:) set the path to converter tool to /usr/bin/calibredb ffmpeg By adding linuxserver/mods:lazylibrarian-ffmpeg to your DOCKER_MODS environment variable you can install ffmpeg into your container on startup. This allows you to use the audiobook conversion features of LazyLibrarian. You can enable it in the Web UI under Settings > Processing > External Programs by setting the ffmpeg path to ffmpeg . Media folders We have set /books as optional path , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional path if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: lazylibrarian: image: lscr.io/linuxserver/lazylibrarian:latest container_name: lazylibrarian environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - DOCKER_MODS=linuxserver/calibre-web:calibre|linuxserver/mods:lazylibrarian-ffmpeg #optional volumes: - /path/to/data:/config - /path/to/downloads/:/downloads - /path/to/data/:/books #optional ports: - 5299:5299 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=lazylibrarian \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DOCKER_MODS=linuxserver/calibre-web:calibre|linuxserver/mods:lazylibrarian-ffmpeg `#optional` \\ -p 5299:5299 \\ -v /path/to/data:/config \\ -v /path/to/downloads/:/downloads \\ -v /path/to/data/:/books `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/lazylibrarian:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5299 The port for the LazyLibrarian webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London DOCKER_MODS=linuxserver/calibre-web:calibre|linuxserver/mods:lazylibrarian-ffmpeg Allows additional functionality to be added, e.g. the Calibredb import program (optional, more info below) Volume Mappings ( -v ) Volume Function /config LazyLibrarian config /downloads Download location /books Books location Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it lazylibrarian /bin/bash To monitor the logs of the container in realtime: docker logs -f lazylibrarian Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lazylibrarian Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/lazylibrarian:latest Versions 07.12.22: - Rebase to Ubuntu Jammy, migrate to s6v3. Use pyproject.toml for deps. Build unrar from source. 27.09.22: - Switch to Levenshtein , add cmake as build dep on armhf. 07.05.22: - Rebase to Ubuntu Focal. 22.05.21: - Make the paths clearer to the user, remove optional volume. 17.05.21: - Add linuxserver wheel index. 23.10.19: - Changed gitlab download link. 23.10.19: - Add python module Pillow. 31.07.19: - Add pyopenssl, remove git dependency during build time. 09.07.19: - Rebase to Ubuntu Bionic, enables Calibre docker mod. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 05.03.19: - Added apprise python package. 22.02.19: - Rebasing to alpine 3.9. 10.12.18: - Moved to Pipeline Building 16.08.18: - Rebase to alpine 3.8 05.01.18: - Deprecate cpu_core routine lack of scaling 12.12.17: - Rebase to alpine 3.7 21.07.17: - Internal git pull instead of at runtime 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5 30.01.17: - Compile libunrar.so to allow reading of .cbr format files 12.01.17: - Add ghostscript package, allows magazine covers to be created etc 14.10.16: - Add version layer information 03.10.16: - Fix non-persistent settings and make log folder 28.09.16: - Inital Release","title":"lazylibrarian"},{"location":"images/docker-lazylibrarian/#linuxserverlazylibrarian","text":"Lazylibrarian is a program to follow authors and grab metadata for all your digital reading needs. It uses a combination of Goodreads Librarything and optionally GoogleBooks as sources for author info and book info. This container is based on the DobyTang fork.","title":"linuxserver/lazylibrarian"},{"location":"images/docker-lazylibrarian/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/lazylibrarian:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-lazylibrarian/#application-setup","text":"Access the webui at http://:5299/home , for more information check out Lazylibrarian .","title":"Application Setup"},{"location":"images/docker-lazylibrarian/#calibredb-import","text":"64bit only We have implemented the optional ability to pull in the dependencies to enable the Calibredb import program:, this means if you don't require this feature the container isn't uneccessarily bloated but should you require it, it is easily available. This optional layer will be rebuilt automatically on our CI pipeline upon new Calibre releases so you can stay up to date. To use this option add the optional environmental variable as detailed in the docker-mods section to pull an addition docker layer to enable ebook conversion and then in the LazyLibrarian config page (Processing:Calibredb import program:) set the path to converter tool to /usr/bin/calibredb","title":"Calibredb import"},{"location":"images/docker-lazylibrarian/#ffmpeg","text":"By adding linuxserver/mods:lazylibrarian-ffmpeg to your DOCKER_MODS environment variable you can install ffmpeg into your container on startup. This allows you to use the audiobook conversion features of LazyLibrarian. You can enable it in the Web UI under Settings > Processing > External Programs by setting the ffmpeg path to ffmpeg .","title":"ffmpeg"},{"location":"images/docker-lazylibrarian/#media-folders","text":"We have set /books as optional path , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional path if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Media folders"},{"location":"images/docker-lazylibrarian/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-lazylibrarian/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: lazylibrarian: image: lscr.io/linuxserver/lazylibrarian:latest container_name: lazylibrarian environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - DOCKER_MODS=linuxserver/calibre-web:calibre|linuxserver/mods:lazylibrarian-ffmpeg #optional volumes: - /path/to/data:/config - /path/to/downloads/:/downloads - /path/to/data/:/books #optional ports: - 5299:5299 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-lazylibrarian/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=lazylibrarian \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DOCKER_MODS=linuxserver/calibre-web:calibre|linuxserver/mods:lazylibrarian-ffmpeg `#optional` \\ -p 5299:5299 \\ -v /path/to/data:/config \\ -v /path/to/downloads/:/downloads \\ -v /path/to/data/:/books `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/lazylibrarian:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-lazylibrarian/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-lazylibrarian/#ports-p","text":"Parameter Function 5299 The port for the LazyLibrarian webinterface","title":"Ports (-p)"},{"location":"images/docker-lazylibrarian/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London DOCKER_MODS=linuxserver/calibre-web:calibre|linuxserver/mods:lazylibrarian-ffmpeg Allows additional functionality to be added, e.g. the Calibredb import program (optional, more info below)","title":"Environment Variables (-e)"},{"location":"images/docker-lazylibrarian/#volume-mappings-v","text":"Volume Function /config LazyLibrarian config /downloads Download location /books Books location","title":"Volume Mappings (-v)"},{"location":"images/docker-lazylibrarian/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-lazylibrarian/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-lazylibrarian/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-lazylibrarian/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-lazylibrarian/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-lazylibrarian/#support-info","text":"Shell access whilst the container is running: docker exec -it lazylibrarian /bin/bash To monitor the logs of the container in realtime: docker logs -f lazylibrarian Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lazylibrarian Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/lazylibrarian:latest","title":"Support Info"},{"location":"images/docker-lazylibrarian/#versions","text":"07.12.22: - Rebase to Ubuntu Jammy, migrate to s6v3. Use pyproject.toml for deps. Build unrar from source. 27.09.22: - Switch to Levenshtein , add cmake as build dep on armhf. 07.05.22: - Rebase to Ubuntu Focal. 22.05.21: - Make the paths clearer to the user, remove optional volume. 17.05.21: - Add linuxserver wheel index. 23.10.19: - Changed gitlab download link. 23.10.19: - Add python module Pillow. 31.07.19: - Add pyopenssl, remove git dependency during build time. 09.07.19: - Rebase to Ubuntu Bionic, enables Calibre docker mod. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 05.03.19: - Added apprise python package. 22.02.19: - Rebasing to alpine 3.9. 10.12.18: - Moved to Pipeline Building 16.08.18: - Rebase to alpine 3.8 05.01.18: - Deprecate cpu_core routine lack of scaling 12.12.17: - Rebase to alpine 3.7 21.07.17: - Internal git pull instead of at runtime 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5 30.01.17: - Compile libunrar.so to allow reading of .cbr format files 12.01.17: - Add ghostscript package, allows magazine covers to be created etc 14.10.16: - Add version layer information 03.10.16: - Fix non-persistent settings and make log folder 28.09.16: - Inital Release","title":"Versions"},{"location":"images/docker-ldap-auth/","text":"linuxserver/ldap-auth Ldap-auth software is for authenticating users who request protected resources from servers proxied by nginx. It includes a daemon (ldap-auth) that communicates with an authentication server, and a webserver daemon that generates an authentication cookie based on the user\u2019s credentials. The daemons are written in Python for use with a Lightweight Directory Access Protocol (LDAP) authentication server (OpenLDAP or Microsoft Windows Active Directory 2003 and 2012). Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ldap-auth:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This container itself does not have any settings and it relies on the pertinent information passed through in http headers of incoming requests. Make sure that your webserver is set up with the right config. Here's a sample config: nginx-ldap-auth.conf . Unlike the upstream project, this image encodes the cookie information with fernet, using a randomly generated key during container creation (or optionally user defined). Also unlike the upstream project, this image serves the login page at /ldaplogin (as well as /login ) to prevent clashes with reverse proxied apps that may also use /login for their internal auth. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: ldap-auth: image: lscr.io/linuxserver/ldap-auth:latest container_name: ldap-auth environment: - TZ=Europe/London - FERNETKEY= #optional - CERTFILE= #optional - KEYFILE= #optional ports: - 8888:8888 - 9000:9000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=ldap-auth \\ -e TZ=Europe/London \\ -e FERNETKEY= `#optional` \\ -e CERTFILE= `#optional` \\ -e KEYFILE= `#optional` \\ -p 8888:8888 \\ -p 9000:9000 \\ --restart unless-stopped \\ lscr.io/linuxserver/ldap-auth:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8888 the port for ldap auth daemon 9000 the port for ldap login page Environment Variables ( -e ) Env Function TZ=Europe/London Specify a timezone to use EG Europe/London FERNETKEY= Optionally define a custom fernet key, has to be base64-encoded 32-byte (only needed if container is frequently recreated, or if using multi-node setups, invalidating previous authentications) CERTFILE= Point this to a certificate file to enable HTTP over SSL (HTTPS) for the ldap auth daemon KEYFILE= Point this to the private key file, matching the certificate file referred to in CERTFILE Volume Mappings ( -v ) Volume Function Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it ldap-auth /bin/bash To monitor the logs of the container in realtime: docker logs -f ldap-auth Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ldap-auth Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ldap-auth:latest Versions 19.09.22: - Rebase to alpine 3.15. 14.05.21: - Add linuxserver wheel index. 12.02.21: - Clean up cargo/rust cache. 10.02.21: - Rebasing to alpine 3.13. 08.09.20: - Set form action correctly. 30.07.20: - Fix bug related to unset optional CERTFILE and KEYFILE vars. 27.07.20: - Add support for HTTP over SSL (HTTPS). 21.07.20: - Add support for optional user defined fernet key. 02.06.20: - Rebasing to alpine 3.12, serve login page at /ldaplogin as well as /login , to prevent clashes with reverese proxied apps. 17.05.20: - Add support for self-signed CA certs. 20.02.20: - Switch to python3. 19.12.19: - Rebasing to alpine 3.11. 01.07.19: - Fall back to base64 encoding when basic http auth is used. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 18.09.18: - Update pip 14.09.18: - Add TZ parameter, remove unnecessary PUID/PGID params 11.08.18: - Initial release.","title":"ldap-auth"},{"location":"images/docker-ldap-auth/#linuxserverldap-auth","text":"Ldap-auth software is for authenticating users who request protected resources from servers proxied by nginx. It includes a daemon (ldap-auth) that communicates with an authentication server, and a webserver daemon that generates an authentication cookie based on the user\u2019s credentials. The daemons are written in Python for use with a Lightweight Directory Access Protocol (LDAP) authentication server (OpenLDAP or Microsoft Windows Active Directory 2003 and 2012).","title":"linuxserver/ldap-auth"},{"location":"images/docker-ldap-auth/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ldap-auth:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-ldap-auth/#application-setup","text":"This container itself does not have any settings and it relies on the pertinent information passed through in http headers of incoming requests. Make sure that your webserver is set up with the right config. Here's a sample config: nginx-ldap-auth.conf . Unlike the upstream project, this image encodes the cookie information with fernet, using a randomly generated key during container creation (or optionally user defined). Also unlike the upstream project, this image serves the login page at /ldaplogin (as well as /login ) to prevent clashes with reverse proxied apps that may also use /login for their internal auth.","title":"Application Setup"},{"location":"images/docker-ldap-auth/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-ldap-auth/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: ldap-auth: image: lscr.io/linuxserver/ldap-auth:latest container_name: ldap-auth environment: - TZ=Europe/London - FERNETKEY= #optional - CERTFILE= #optional - KEYFILE= #optional ports: - 8888:8888 - 9000:9000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-ldap-auth/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=ldap-auth \\ -e TZ=Europe/London \\ -e FERNETKEY= `#optional` \\ -e CERTFILE= `#optional` \\ -e KEYFILE= `#optional` \\ -p 8888:8888 \\ -p 9000:9000 \\ --restart unless-stopped \\ lscr.io/linuxserver/ldap-auth:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-ldap-auth/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-ldap-auth/#ports-p","text":"Parameter Function 8888 the port for ldap auth daemon 9000 the port for ldap login page","title":"Ports (-p)"},{"location":"images/docker-ldap-auth/#environment-variables-e","text":"Env Function TZ=Europe/London Specify a timezone to use EG Europe/London FERNETKEY= Optionally define a custom fernet key, has to be base64-encoded 32-byte (only needed if container is frequently recreated, or if using multi-node setups, invalidating previous authentications) CERTFILE= Point this to a certificate file to enable HTTP over SSL (HTTPS) for the ldap auth daemon KEYFILE= Point this to the private key file, matching the certificate file referred to in CERTFILE","title":"Environment Variables (-e)"},{"location":"images/docker-ldap-auth/#volume-mappings-v","text":"Volume Function","title":"Volume Mappings (-v)"},{"location":"images/docker-ldap-auth/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-ldap-auth/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-ldap-auth/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-ldap-auth/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-ldap-auth/#support-info","text":"Shell access whilst the container is running: docker exec -it ldap-auth /bin/bash To monitor the logs of the container in realtime: docker logs -f ldap-auth Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ldap-auth Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ldap-auth:latest","title":"Support Info"},{"location":"images/docker-ldap-auth/#versions","text":"19.09.22: - Rebase to alpine 3.15. 14.05.21: - Add linuxserver wheel index. 12.02.21: - Clean up cargo/rust cache. 10.02.21: - Rebasing to alpine 3.13. 08.09.20: - Set form action correctly. 30.07.20: - Fix bug related to unset optional CERTFILE and KEYFILE vars. 27.07.20: - Add support for HTTP over SSL (HTTPS). 21.07.20: - Add support for optional user defined fernet key. 02.06.20: - Rebasing to alpine 3.12, serve login page at /ldaplogin as well as /login , to prevent clashes with reverese proxied apps. 17.05.20: - Add support for self-signed CA certs. 20.02.20: - Switch to python3. 19.12.19: - Rebasing to alpine 3.11. 01.07.19: - Fall back to base64 encoding when basic http auth is used. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 18.09.18: - Update pip 14.09.18: - Add TZ parameter, remove unnecessary PUID/PGID params 11.08.18: - Initial release.","title":"Versions"},{"location":"images/docker-letsencrypt/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. IMPORTANT NOTICE: THIS IMAGE HAS BEEN DEPRECATED AND THE PROJECT IS MOVED TO A NEW REPO Due to a trademark related request, this image is moved to a new repo on Docker Hub and GitHub . This is a breaking change and you need to manually update. Apologies for the the disruption. Switching existing implementations over to the new image is very easy, just follow these simple steps: https://github.com/linuxserver/docker-swag#migrating-from-the-old-linuxserverletsencrypt-image This repository will be archived and builds for the image will no longer be created at the end of 2020 linuxserver/letsencrypt SWAG - Secure Web-server And Gateway (formerly known as letsencrypt, no relation to Let's Encrypt\u2122) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes. It also contains fail2ban for intrusion prevention. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/letsencrypt should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container. docker docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=yourdomain.url \\ -e SUBDOMAINS=www, \\ -e VALIDATION=http \\ -e DNSPLUGIN=cloudflare `#optional` \\ -e PROPAGATION= `#optional` \\ -e DUCKDNSTOKEN= `#optional` \\ -e EMAIL= `#optional` \\ -e ONLY_SUBDOMAINS=false `#optional` \\ -e EXTRA_DOMAINS= `#optional` \\ -e STAGING=false `#optional` \\ -p 443:443 \\ -p 80:80 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ linuxserver/letsencrypt docker-compose Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: swag: image: linuxserver/letsencrypt container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=yourdomain.url - SUBDOMAINS=www, - VALIDATION=http - DNSPLUGIN=cloudflare #optional - PROPAGATION= #optional - DUCKDNSTOKEN= #optional - EMAIL= #optional - ONLY_SUBDOMAINS=false #optional - EXTRA_DOMAINS= #optional - STAGING=false #optional volumes: - /path/to/appdata/config:/config ports: - 443:443 - 80:80 #optional restart: unless-stopped Parameters Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Parameter Function -p 443 Https port -p 80 Http port (required for http validation and http -> https redirect) -e PUID=1000 for UserID - see below for explanation -e PGID=1000 for GroupID - see below for explanation -e TZ=Europe/London Specify a timezone to use EG Europe/London. -e URL=yourdomain.url Top url you have control over ( customdomain.com if you own it, or customsubdomain.ddnsprovider.com if dynamic dns). -e SUBDOMAINS=www, Subdomains you'd like the cert to cover (comma separated, no spaces) ie. www,ftp,cloud . For a wildcard cert, set this exactly to wildcard (wildcard cert is available via dns and duckdns validation only) -e VALIDATION=http Certbot validation method to use, options are http , dns or duckdns ( dns method also requires DNSPLUGIN variable set) ( duckdns method requires DUCKDNSTOKEN variable set, and the SUBDOMAINS variable must be either empty or set to wildcard ). -e DNSPLUGIN=cloudflare Required if VALIDATION is set to dns . Options are aliyun , cloudflare , cloudxns , cpanel , digitalocean , dnsimple , dnsmadeeasy , domeneshop , gandi , google , inwx , linode , luadns , nsone , ovh , rfc2136 , route53 and transip . Also need to enter the credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf . -e PROPAGATION= Optionally override (in seconds) the default propagation time for the dns plugins. -e DUCKDNSTOKEN= Required if VALIDATION is set to duckdns . Retrieve your token from https://www.duckdns.org -e EMAIL= Optional e-mail address used for cert expiration notifications. -e ONLY_SUBDOMAINS=false If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to true -e EXTRA_DOMAINS= Additional fully qualified domain names (comma separated, no spaces) ie. extradomain.com,subdomain.anotherdomain.org,*.anotherdomain.org -e STAGING=false Set to true to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes. -v /config All the config files including the webroot reside here. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup Validation and initial setup Before running this container, make sure that the url and subdomains are properly forwarded to this container's host, and that port 443 (and/or 80) is not being used by another service on the host (NAS gui, another webserver, etc.). For http validation, port 80 on the internet side of the router should be forwarded to this container's port 80 For dns validation, make sure to enter your credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf Cloudflare provides free accounts for managing dns and is very easy to use with this image. Make sure that it is set up for \"dns only\" instead of \"dns + proxy\" Google dns plugin is meant to be used with \"Google Cloud DNS\", a paid enterprise product, and not for \"Google Domains DNS\" For duckdns validation, either leave the SUBDOMAINS variable empty or set it to wildcard , and set the DUCKDNSTOKEN variable with your duckdns token. Due to a limitation of duckdns, the resulting cert will only cover either main subdomain (ie. yoursubdomain.duckdns.org ), or sub-subdomains (ie. *.yoursubdomain.duckdns.org ), but will not both at the same time. You can use our duckdns image to update your IP on duckdns.org. --cap-add=NET_ADMIN is required for fail2ban to modify iptables If you need a dynamic dns provider, you can use the free provider duckdns.org where the URL will be yoursubdomain.duckdns.org and the SUBDOMAINS can be www,ftp,cloud with http validation, or wildcard with dns validation. After setup, navigate to https://yourdomain.url to access the default homepage (http access through port 80 is disabled by default, you can enable it by editing the default site config at /config/nginx/site-confs/default ). Certs are checked nightly and if expiration is within 30 days, renewal is attempted. If your cert is about to expire in less than 30 days, check the logs under /config/log/letsencrypt to see why the renewals have been failing. It is recommended to input your e-mail in docker parameters so you receive expiration notices from Let's Encrypt in those circumstances. Security and password protection The container detects changes to url and subdomains, revokes existing certs and generates new ones during start. The container provides a pre-generated 4096-bit dhparams.pem (rotated weekly via Jenkins job ) for new instances, however you may generate your own by running docker exec letsencrypt openssl dhparam -out /config/nginx/dhparams.pem 4096 WARNING: This takes a very long time If you'd like to password protect your sites, you can use htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it letsencrypt htpasswd -c /config/nginx/.htpasswd You can add multiple user:pass to .htpasswd . For the first user, use the above command, for others, use the above command without the -c flag, as it will force deletion of the existing .htpasswd and creation of a new one You can also use ldap auth for security and access control. A sample, user configurable ldap.conf is provided, and it requires the separate image linuxserver/ldap-auth to communicate with an ldap server. Site config and reverse proxy The default site config resides at /config/nginx/site-confs/default . Feel free to modify this file, and you can add other conf files to this directory. However, if you delete the default file, a new default will be created on container start. Preset reverse proxy config files are added for popular apps. See the README.md file under /config/nginx/proxy_confs for instructions on how to enable them. The preset confs reside in and get imported from this repo . If you wish to hide your site from search engine crawlers, you may find it useful to add this configuration line to your site config, within the server block, above the line where ssl.conf is included add_header X-Robots-Tag \"noindex, nofollow, nosnippet, noarchive\"; This will ask Google et al not to index and list your site. Be careful with this, as you will eventually be de-listed if you leave this line in on a site you wish to be present on search engines If you wish to redirect http to https, you must expose port 80 Using certs in other containers This container includes auto-generated pfx and private-fullchain-bundle pem certs that are needed by other apps like Emby and Znc. To use these certs in other containers, do either of the following: (Easier) Mount the container's config folder in other containers (ie. -v /path-to-le-config:/le-ssl ) and in the other containers, use the cert location /le-ssl/keys/letsencrypt/ (More secure) Mount the letsencrypt folder etc/letsencrypt that resides under /config in other containers (ie. -v /path-to-le-config/etc/letsencrypt:/le-ssl ) and in the other containers, use the cert location /le-ssl/live// (This is more secure because the first method shares the entire letsencrypt config folder with other containers, including the www files, whereas the second method only shares the ssl certs) These certs include: cert.pem , chain.pem , fullchain.pem and privkey.pem , which are generated by Let's Encrypt and used by nginx and various other apps privkey.pfx , a format supported by Microsoft and commonly used by dotnet apps such as Emby Server (no password) priv-fullchain-bundle.pem , a pem cert that bundles the private key and the fullchain, used by apps like ZNC Using fail2ban This container includes fail2ban set up with 3 jails by default: nginx-http-auth nginx-badbots nginx-botsearch To enable or disable other jails, modify the file /config/fail2ban/jail.local To modify filters and actions, instead of editing the .conf files, create .local files with the same name and edit those because .conf files get overwritten when the actions and filters are updated. .local files will append whatever's in the .conf files (ie. nginx-http-auth.conf --> nginx-http-auth.local ) You can check which jails are active via docker exec -it swag fail2ban-client status You can check the status of a specific jail via docker exec -it swag fail2ban-client status You can unban an IP via docker exec -it swag fail2ban-client set unbanip A list of commands can be found here: https://www.fail2ban.org/wiki/index.php/Commands Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above. Support Info Shell access whilst the container is running: docker exec -it swag /bin/bash To monitor the logs of the container in realtime: docker logs -f swag container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' swag image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/letsencrypt Updating Info Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image. Below are the instructions for updating containers: Via Docker Run/Create Update the image: docker pull linuxserver/letsencrypt Stop the running container: docker stop swag Delete the container: docker rm swag Recreate a new container with the same docker create parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved) Start the new container: docker start swag You can also remove the old dangling images: docker image prune Via Docker Compose Update all images: docker-compose pull or update a single image: docker-compose pull swag Let compose update all containers as necessary: docker-compose up -d or update a single container: docker-compose up -d swag You can also remove the old dangling images: docker image prune Via Watchtower auto-updater (especially useful if you don't remember the original parameters) Pull the latest image at its tag and replace it with the same env variables in one run: docker run --rm \\ -v /var/run/docker.sock:/var/run/docker.sock \\ containrrr/watchtower \\ --run-once swag Note: We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using Docker Compose. You can also remove the old dangling images: docker image prune Building locally If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-letsencrypt.git cd docker-letsencrypt docker build \\ --no-cache \\ --pull \\ -t linuxserver/letsencrypt:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 . Versions 28.07.20: - Start transition to new name, SWAG. 17.06.20: - Reformat ssl.conf. Pull in pre-generated dhparams.pem from DO Spaces. Deprecate DHLEVEL param. 01.06.20: - Rebasing to alpine 3.12, change ldap login address to /ldaplogin to avoid clashes (existing users need to manually update). 31.05.20: - Tweak Authelia confs (existing users can delete authelia-server.conf and authelia-location.conf , and restart to update). 23.05.20: - Add support for Authelia. 15.05.20: - Remove php7-pecl-imagick due to upstream issues. Add support for Geoip2 auto db retrieval. 10.05.20: - Added support for fail2ban deny statements. 04.05.20: - Allow for optionally setting propagation time for dns plugins. Add repo version of whois to replace the built-in busybox version. Update jail.local to change default fail2ban ban action to more widely supported iptables-allports . 13.04.20: - Update cloudflare.ini with token info. 11.03.20: - Add php7-sodium. 06.03.20: - Implement cert renewal attempt during container start (only if the cert is already expired or will expire within the next 24 hours, otherwise it will be attempted at 2:08am). 05.03.20: - Use port and proto upstream variables for ldap and default sample confs. 24.02.20: - Remove world/group read permissions in dns-conf. 23.02.20: - Add aliyun dns validation plugin. 28.01.20: - Deprecate tls-sni validation method, remove from docs. 27.01.20: - Add support for cpanel dns validation. 10.01.20: - Add support for domeneshop dns validation. 07.01.20: - Update ciphers from Mozilla ssl-config recommendations. 01.01.20: - Add support for gandi dns validation. 31.12.19: - GeoIP2 databases now require personal license keys to download. Auto download is disabled and log message is added. 19.12.19: - Rebasing to alpine 3.11. 19.12.19: - Increase large_client_header_buffers in nginx.conf to prevent 414 errors. 18.12.19: - Add php7-imap and php7-pecl-apcu. 11.12.19: - Fix Google Cloud DNS to use .json file for authentication. 20.11.19: - Fix cryptography version mismatch due to pip issue. 17.11.19: - Add php7-pdo_odbc. 17.11.19: - Add transip dns validation plugin. 27.10.19: - Turn off lua resty core to get rid of error message in the log (existing users will have to delete /config/nginx/nginx.conf and restart the container). 26.10.19: - Add new package for stream-geoip2, remove geoip2 module patch. 24.10.19: - Add php7-pecl-imagick. 23.10.19: - Update Host header in proxy.conf to fix CSRF issues. 12.10.19: - Add linode dns validation plugin. 23.09.19: - Move GeoIP2 db to /config to make it persistent. 14.08.19: - Add inwx dns validation plugin. 06.08.19: - Add php7-ftp. 04.08.19: - Add php7-bcmath, php7-pear, php7-xmlrpc. 02.08.19: - Add php7-ldap, remove geoip v1(deprecated). 01.08.19: - Mark https redirect block as default_server (effective only for new installs). 31.07.19: - Create GeoIP2 databse (libmaxminddb) during container start if it doesn't exist. 30.07.19: - Support main domain via duckdns validation. 29.07.19: - Enable http to https redirect by default (effective only for new installs). 01.07.19: - Patch geoip2 module until upstream is fixed. 30.06.19: - Add geoip2 module. 28.06.19: - Rebasing to alpine 3.10. 19.06.19: - Set resolver to docker dns in ssl.conf. 29.05.19: - Compensate for changes to the reverse-proxy-confs repo. 26.05.19: - Remove botocore/urllib patch. 08.05.19: - Remove default.conf when nginx is upgraded in downstream image. 30.04.19: - Add php-redis. 12.04.19: - Rebase aarch64 image to 3.9. 25.03.19: - Rebase aarch64 image back to 3.8 due to python issues (specifically with fail2ban), switch packages to python 3 on amd64 and armhf, clean up pip/python cache to shrink image size. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.03.19: - Add TLSv1.3 to ssl.conf. 02.03.19: - Add php intl and posix modules. 27.02.19: - Add gnupg package. 22.02.19: - Rebase to alpine 3.9. 03.02.19: - Removed memcached due to seccomp errors. Let us know if you need to re-enable memcached. 28.01.19: - Add pipeline logic and multi arch. 21.01.19: - Remove client_body_max from proxy.conf (existing users need to manually update). 09.01.19: - Remove tls v1 and v1.1 from default ssl.conf, update ciphers (existing users need to manually update). 30.12.18: - Fix bundle key generation. 19.12.18: - Add ipv6 and http/2 support to default site config. 08.12.18: - Had to remove cert renewal during container start due to certbot's new undocumented feature of up to 8 minute random delay. 03.12.18: - Fix silly bug resetting the duckdns token. 02.12.18: - Add dns validation support for ovh. 20.11.18: - Externalize reverse proxy confs to separate github repo linuxserver/reverse-proxy-confs , update baseimage packages during build 19.11.18: - Add php opcache package. 12.11.18: - Add support for duckdns wildcard certs via dns validation 31.10.18: - Add various preset proxy confs and fix others (thanks @nemchik and @hijxf) 02.10.18: - Fix fail2ban instructions and logrotate conf 11.09.18: - Add various preset proxy confs and fix others (thanks @nemchik and @LeoVerto) 04.09.18: - Linting fixes. 30.08.18: - Add support for ldap auth, add proxy confs for bazarr, couchpotato, headphones, lidarr and plex subfolder (thanks @nemchik and @jedahan) 21.08.18: - Rebase to alpine 3.8, add info on search engine de-listing 08.08.18: - Add subdomain proxy conf for plex, update emby proxy confs 25.07.18: - Add subdomain proxy conf for syncthing 23.07.18: - Remove backwards compatibility and set default validation method to http. Update portainer proxy config to fix websockets. Add unifi proxy conf. 31.05.18: - Update ssl.conf and proxy.conf for tighter security (thanks @nemchik) 30.05.18: - Add reverse proxy configs for jackett, monitorr, nzbget, nzbletsencrypt, organizr, portainer and transmission (thanks @nemchik) 18.05.18: - Add more info on certs and unraid reverse proxy config 11.05.18: - Add php pgsql support 24.04.18: - Auto generate a private key + fullchain bundle pem that is needed by certain apps 20.04.18: - Add standardized optional reverse proxy conf files 19.04.18: - Bind memcached to localhost only, add php7-sqlite3 08.04.18: - Fix renewal hooks 29.03.18: - Create pfx cert after renewal for dns validation (previous version only created it for http and tls, an oversight) 29.03.18: - Fix staging for v2 api 13.03.18: - Support for wildcard cert with dns validation added. Switched to v2 api for ACME. 21.02.18: - Reduce shellcheck directives by renaming secondary variables 20.02.18: - Sanitize variables, increase log verbosity 01.02.18: - Big changes. VALIDATION parameter added for choosing certbot validation methods, including dns through official plugins. HTTPVAL is deprecated. STAGING parameter added for testing. Backwards compatibility for the short term. Since tls-sni is disabled by letsencrypt, most users will have to change their settings and adopt the new parameters within the next 90 days. Reorganized the nginx default config, split ssl settings into new ssl.conf 13.01.18: - Re-enable ipv6 due to update to fail2ban 0.10.1. Existing users can enable ipv6 by deleting /config/fail2ban/action.d/iptables-common.local and restarting the container after updating the image 11.01.18: - Halt the container if validation fails instead of a stop (so restart=always doesn't get users throttled with Let's Encrypt) 10.01.18: - Add option for http validation on port 80 05.01.18: - Rebase to alpine 3.7 04.11.17: - Add php7 soap module 31.10.17: - Add php7 exif and xmlreader modules 25.09.17: - Manage fail2ban via s6 24.09.17: - Add memcached service 01.09.17: - --privileged is no longer required as long as --cap-add=NET_ADMIN is added, instructions modified accordingly, disabled fail2ban ipv6 actions due to requiring access to host kernel modules 31.08.17: - Add php7-phar 14.07.17: - Enable modules dynamically in nginx.conf 06.07.17: - Add support for multiple domains (thanks @oznu) 22.06.17: - Add various nginx modules and enable all modules in the default nginx.conf 16.06.17: - Update deprecated certbot option for https validation, make e-mail entry optional, update readme 05.06.17: - Add php7-bz2 27.05.17: - Rebase to alpine 3.6. 03.05.17: - Fix log permissions. 18.04.17: - Add php7-sockets, update fail2ban filter and action defaults 27.02.17: - Add php7-dom, php7-iconv and php7-pdo_sqlite 21.02.17: - Add php7-xml 10.02.17: - Switch to alpine 3.5 base and php7, add php zlib module and all nginx modules 13.01.17: - Add php5-ctype and php5-openssl 04.01.17: - Add php5-mysqli and php5-pdo_mysql 22.11.16: - Add gd and mcrypt packages 21.11.16: - Add curl package 07.11.16: - Initial Release","title":"letsencrypt"},{"location":"images/docker-letsencrypt/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-letsencrypt/#important-notice-this-image-has-been-deprecated-and-the-project-is-moved-to-a-new-repo","text":"Due to a trademark related request, this image is moved to a new repo on Docker Hub and GitHub . This is a breaking change and you need to manually update. Apologies for the the disruption. Switching existing implementations over to the new image is very easy, just follow these simple steps: https://github.com/linuxserver/docker-swag#migrating-from-the-old-linuxserverletsencrypt-image","title":"IMPORTANT NOTICE: THIS IMAGE HAS BEEN DEPRECATED AND THE PROJECT IS MOVED TO A NEW REPO"},{"location":"images/docker-letsencrypt/#this-repository-will-be-archived-and-builds-for-the-image-will-no-longer-be-created-at-the-end-of-2020","text":"","title":"This repository will be archived and builds for the image will no longer be created at the end of 2020"},{"location":"images/docker-letsencrypt/#linuxserverletsencrypt","text":"SWAG - Secure Web-server And Gateway (formerly known as letsencrypt, no relation to Let's Encrypt\u2122) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes. It also contains fail2ban for intrusion prevention.","title":"linuxserver/letsencrypt"},{"location":"images/docker-letsencrypt/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/letsencrypt should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-letsencrypt/#usage","text":"Here are some example snippets to help you get started creating a container.","title":"Usage"},{"location":"images/docker-letsencrypt/#docker","text":"docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=yourdomain.url \\ -e SUBDOMAINS=www, \\ -e VALIDATION=http \\ -e DNSPLUGIN=cloudflare `#optional` \\ -e PROPAGATION= `#optional` \\ -e DUCKDNSTOKEN= `#optional` \\ -e EMAIL= `#optional` \\ -e ONLY_SUBDOMAINS=false `#optional` \\ -e EXTRA_DOMAINS= `#optional` \\ -e STAGING=false `#optional` \\ -p 443:443 \\ -p 80:80 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ linuxserver/letsencrypt","title":"docker"},{"location":"images/docker-letsencrypt/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: swag: image: linuxserver/letsencrypt container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=yourdomain.url - SUBDOMAINS=www, - VALIDATION=http - DNSPLUGIN=cloudflare #optional - PROPAGATION= #optional - DUCKDNSTOKEN= #optional - EMAIL= #optional - ONLY_SUBDOMAINS=false #optional - EXTRA_DOMAINS= #optional - STAGING=false #optional volumes: - /path/to/appdata/config:/config ports: - 443:443 - 80:80 #optional restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-letsencrypt/#parameters","text":"Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Parameter Function -p 443 Https port -p 80 Http port (required for http validation and http -> https redirect) -e PUID=1000 for UserID - see below for explanation -e PGID=1000 for GroupID - see below for explanation -e TZ=Europe/London Specify a timezone to use EG Europe/London. -e URL=yourdomain.url Top url you have control over ( customdomain.com if you own it, or customsubdomain.ddnsprovider.com if dynamic dns). -e SUBDOMAINS=www, Subdomains you'd like the cert to cover (comma separated, no spaces) ie. www,ftp,cloud . For a wildcard cert, set this exactly to wildcard (wildcard cert is available via dns and duckdns validation only) -e VALIDATION=http Certbot validation method to use, options are http , dns or duckdns ( dns method also requires DNSPLUGIN variable set) ( duckdns method requires DUCKDNSTOKEN variable set, and the SUBDOMAINS variable must be either empty or set to wildcard ). -e DNSPLUGIN=cloudflare Required if VALIDATION is set to dns . Options are aliyun , cloudflare , cloudxns , cpanel , digitalocean , dnsimple , dnsmadeeasy , domeneshop , gandi , google , inwx , linode , luadns , nsone , ovh , rfc2136 , route53 and transip . Also need to enter the credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf . -e PROPAGATION= Optionally override (in seconds) the default propagation time for the dns plugins. -e DUCKDNSTOKEN= Required if VALIDATION is set to duckdns . Retrieve your token from https://www.duckdns.org -e EMAIL= Optional e-mail address used for cert expiration notifications. -e ONLY_SUBDOMAINS=false If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to true -e EXTRA_DOMAINS= Additional fully qualified domain names (comma separated, no spaces) ie. extradomain.com,subdomain.anotherdomain.org,*.anotherdomain.org -e STAGING=false Set to true to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes. -v /config All the config files including the webroot reside here.","title":"Parameters"},{"location":"images/docker-letsencrypt/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-letsencrypt/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-letsencrypt/#user-group-identifiers","text":"When using volumes ( -v flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-letsencrypt/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-letsencrypt/#validation-and-initial-setup","text":"Before running this container, make sure that the url and subdomains are properly forwarded to this container's host, and that port 443 (and/or 80) is not being used by another service on the host (NAS gui, another webserver, etc.). For http validation, port 80 on the internet side of the router should be forwarded to this container's port 80 For dns validation, make sure to enter your credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf Cloudflare provides free accounts for managing dns and is very easy to use with this image. Make sure that it is set up for \"dns only\" instead of \"dns + proxy\" Google dns plugin is meant to be used with \"Google Cloud DNS\", a paid enterprise product, and not for \"Google Domains DNS\" For duckdns validation, either leave the SUBDOMAINS variable empty or set it to wildcard , and set the DUCKDNSTOKEN variable with your duckdns token. Due to a limitation of duckdns, the resulting cert will only cover either main subdomain (ie. yoursubdomain.duckdns.org ), or sub-subdomains (ie. *.yoursubdomain.duckdns.org ), but will not both at the same time. You can use our duckdns image to update your IP on duckdns.org. --cap-add=NET_ADMIN is required for fail2ban to modify iptables If you need a dynamic dns provider, you can use the free provider duckdns.org where the URL will be yoursubdomain.duckdns.org and the SUBDOMAINS can be www,ftp,cloud with http validation, or wildcard with dns validation. After setup, navigate to https://yourdomain.url to access the default homepage (http access through port 80 is disabled by default, you can enable it by editing the default site config at /config/nginx/site-confs/default ). Certs are checked nightly and if expiration is within 30 days, renewal is attempted. If your cert is about to expire in less than 30 days, check the logs under /config/log/letsencrypt to see why the renewals have been failing. It is recommended to input your e-mail in docker parameters so you receive expiration notices from Let's Encrypt in those circumstances.","title":"Validation and initial setup"},{"location":"images/docker-letsencrypt/#security-and-password-protection","text":"The container detects changes to url and subdomains, revokes existing certs and generates new ones during start. The container provides a pre-generated 4096-bit dhparams.pem (rotated weekly via Jenkins job ) for new instances, however you may generate your own by running docker exec letsencrypt openssl dhparam -out /config/nginx/dhparams.pem 4096 WARNING: This takes a very long time If you'd like to password protect your sites, you can use htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it letsencrypt htpasswd -c /config/nginx/.htpasswd You can add multiple user:pass to .htpasswd . For the first user, use the above command, for others, use the above command without the -c flag, as it will force deletion of the existing .htpasswd and creation of a new one You can also use ldap auth for security and access control. A sample, user configurable ldap.conf is provided, and it requires the separate image linuxserver/ldap-auth to communicate with an ldap server.","title":"Security and password protection"},{"location":"images/docker-letsencrypt/#site-config-and-reverse-proxy","text":"The default site config resides at /config/nginx/site-confs/default . Feel free to modify this file, and you can add other conf files to this directory. However, if you delete the default file, a new default will be created on container start. Preset reverse proxy config files are added for popular apps. See the README.md file under /config/nginx/proxy_confs for instructions on how to enable them. The preset confs reside in and get imported from this repo . If you wish to hide your site from search engine crawlers, you may find it useful to add this configuration line to your site config, within the server block, above the line where ssl.conf is included add_header X-Robots-Tag \"noindex, nofollow, nosnippet, noarchive\"; This will ask Google et al not to index and list your site. Be careful with this, as you will eventually be de-listed if you leave this line in on a site you wish to be present on search engines If you wish to redirect http to https, you must expose port 80","title":"Site config and reverse proxy"},{"location":"images/docker-letsencrypt/#using-certs-in-other-containers","text":"This container includes auto-generated pfx and private-fullchain-bundle pem certs that are needed by other apps like Emby and Znc. To use these certs in other containers, do either of the following: (Easier) Mount the container's config folder in other containers (ie. -v /path-to-le-config:/le-ssl ) and in the other containers, use the cert location /le-ssl/keys/letsencrypt/ (More secure) Mount the letsencrypt folder etc/letsencrypt that resides under /config in other containers (ie. -v /path-to-le-config/etc/letsencrypt:/le-ssl ) and in the other containers, use the cert location /le-ssl/live// (This is more secure because the first method shares the entire letsencrypt config folder with other containers, including the www files, whereas the second method only shares the ssl certs) These certs include: cert.pem , chain.pem , fullchain.pem and privkey.pem , which are generated by Let's Encrypt and used by nginx and various other apps privkey.pfx , a format supported by Microsoft and commonly used by dotnet apps such as Emby Server (no password) priv-fullchain-bundle.pem , a pem cert that bundles the private key and the fullchain, used by apps like ZNC","title":"Using certs in other containers"},{"location":"images/docker-letsencrypt/#using-fail2ban","text":"This container includes fail2ban set up with 3 jails by default: nginx-http-auth nginx-badbots nginx-botsearch To enable or disable other jails, modify the file /config/fail2ban/jail.local To modify filters and actions, instead of editing the .conf files, create .local files with the same name and edit those because .conf files get overwritten when the actions and filters are updated. .local files will append whatever's in the .conf files (ie. nginx-http-auth.conf --> nginx-http-auth.local ) You can check which jails are active via docker exec -it swag fail2ban-client status You can check the status of a specific jail via docker exec -it swag fail2ban-client status You can unban an IP via docker exec -it swag fail2ban-client set unbanip A list of commands can be found here: https://www.fail2ban.org/wiki/index.php/Commands","title":"Using fail2ban"},{"location":"images/docker-letsencrypt/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above.","title":"Docker Mods"},{"location":"images/docker-letsencrypt/#support-info","text":"Shell access whilst the container is running: docker exec -it swag /bin/bash To monitor the logs of the container in realtime: docker logs -f swag container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' swag image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/letsencrypt","title":"Support Info"},{"location":"images/docker-letsencrypt/#updating-info","text":"Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image. Below are the instructions for updating containers:","title":"Updating Info"},{"location":"images/docker-letsencrypt/#via-docker-runcreate","text":"Update the image: docker pull linuxserver/letsencrypt Stop the running container: docker stop swag Delete the container: docker rm swag Recreate a new container with the same docker create parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved) Start the new container: docker start swag You can also remove the old dangling images: docker image prune","title":"Via Docker Run/Create"},{"location":"images/docker-letsencrypt/#via-docker-compose","text":"Update all images: docker-compose pull or update a single image: docker-compose pull swag Let compose update all containers as necessary: docker-compose up -d or update a single container: docker-compose up -d swag You can also remove the old dangling images: docker image prune","title":"Via Docker Compose"},{"location":"images/docker-letsencrypt/#via-watchtower-auto-updater-especially-useful-if-you-dont-remember-the-original-parameters","text":"Pull the latest image at its tag and replace it with the same env variables in one run: docker run --rm \\ -v /var/run/docker.sock:/var/run/docker.sock \\ containrrr/watchtower \\ --run-once swag Note: We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using Docker Compose. You can also remove the old dangling images: docker image prune","title":"Via Watchtower auto-updater (especially useful if you don't remember the original parameters)"},{"location":"images/docker-letsencrypt/#building-locally","text":"If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-letsencrypt.git cd docker-letsencrypt docker build \\ --no-cache \\ --pull \\ -t linuxserver/letsencrypt:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 .","title":"Building locally"},{"location":"images/docker-letsencrypt/#versions","text":"28.07.20: - Start transition to new name, SWAG. 17.06.20: - Reformat ssl.conf. Pull in pre-generated dhparams.pem from DO Spaces. Deprecate DHLEVEL param. 01.06.20: - Rebasing to alpine 3.12, change ldap login address to /ldaplogin to avoid clashes (existing users need to manually update). 31.05.20: - Tweak Authelia confs (existing users can delete authelia-server.conf and authelia-location.conf , and restart to update). 23.05.20: - Add support for Authelia. 15.05.20: - Remove php7-pecl-imagick due to upstream issues. Add support for Geoip2 auto db retrieval. 10.05.20: - Added support for fail2ban deny statements. 04.05.20: - Allow for optionally setting propagation time for dns plugins. Add repo version of whois to replace the built-in busybox version. Update jail.local to change default fail2ban ban action to more widely supported iptables-allports . 13.04.20: - Update cloudflare.ini with token info. 11.03.20: - Add php7-sodium. 06.03.20: - Implement cert renewal attempt during container start (only if the cert is already expired or will expire within the next 24 hours, otherwise it will be attempted at 2:08am). 05.03.20: - Use port and proto upstream variables for ldap and default sample confs. 24.02.20: - Remove world/group read permissions in dns-conf. 23.02.20: - Add aliyun dns validation plugin. 28.01.20: - Deprecate tls-sni validation method, remove from docs. 27.01.20: - Add support for cpanel dns validation. 10.01.20: - Add support for domeneshop dns validation. 07.01.20: - Update ciphers from Mozilla ssl-config recommendations. 01.01.20: - Add support for gandi dns validation. 31.12.19: - GeoIP2 databases now require personal license keys to download. Auto download is disabled and log message is added. 19.12.19: - Rebasing to alpine 3.11. 19.12.19: - Increase large_client_header_buffers in nginx.conf to prevent 414 errors. 18.12.19: - Add php7-imap and php7-pecl-apcu. 11.12.19: - Fix Google Cloud DNS to use .json file for authentication. 20.11.19: - Fix cryptography version mismatch due to pip issue. 17.11.19: - Add php7-pdo_odbc. 17.11.19: - Add transip dns validation plugin. 27.10.19: - Turn off lua resty core to get rid of error message in the log (existing users will have to delete /config/nginx/nginx.conf and restart the container). 26.10.19: - Add new package for stream-geoip2, remove geoip2 module patch. 24.10.19: - Add php7-pecl-imagick. 23.10.19: - Update Host header in proxy.conf to fix CSRF issues. 12.10.19: - Add linode dns validation plugin. 23.09.19: - Move GeoIP2 db to /config to make it persistent. 14.08.19: - Add inwx dns validation plugin. 06.08.19: - Add php7-ftp. 04.08.19: - Add php7-bcmath, php7-pear, php7-xmlrpc. 02.08.19: - Add php7-ldap, remove geoip v1(deprecated). 01.08.19: - Mark https redirect block as default_server (effective only for new installs). 31.07.19: - Create GeoIP2 databse (libmaxminddb) during container start if it doesn't exist. 30.07.19: - Support main domain via duckdns validation. 29.07.19: - Enable http to https redirect by default (effective only for new installs). 01.07.19: - Patch geoip2 module until upstream is fixed. 30.06.19: - Add geoip2 module. 28.06.19: - Rebasing to alpine 3.10. 19.06.19: - Set resolver to docker dns in ssl.conf. 29.05.19: - Compensate for changes to the reverse-proxy-confs repo. 26.05.19: - Remove botocore/urllib patch. 08.05.19: - Remove default.conf when nginx is upgraded in downstream image. 30.04.19: - Add php-redis. 12.04.19: - Rebase aarch64 image to 3.9. 25.03.19: - Rebase aarch64 image back to 3.8 due to python issues (specifically with fail2ban), switch packages to python 3 on amd64 and armhf, clean up pip/python cache to shrink image size. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.03.19: - Add TLSv1.3 to ssl.conf. 02.03.19: - Add php intl and posix modules. 27.02.19: - Add gnupg package. 22.02.19: - Rebase to alpine 3.9. 03.02.19: - Removed memcached due to seccomp errors. Let us know if you need to re-enable memcached. 28.01.19: - Add pipeline logic and multi arch. 21.01.19: - Remove client_body_max from proxy.conf (existing users need to manually update). 09.01.19: - Remove tls v1 and v1.1 from default ssl.conf, update ciphers (existing users need to manually update). 30.12.18: - Fix bundle key generation. 19.12.18: - Add ipv6 and http/2 support to default site config. 08.12.18: - Had to remove cert renewal during container start due to certbot's new undocumented feature of up to 8 minute random delay. 03.12.18: - Fix silly bug resetting the duckdns token. 02.12.18: - Add dns validation support for ovh. 20.11.18: - Externalize reverse proxy confs to separate github repo linuxserver/reverse-proxy-confs , update baseimage packages during build 19.11.18: - Add php opcache package. 12.11.18: - Add support for duckdns wildcard certs via dns validation 31.10.18: - Add various preset proxy confs and fix others (thanks @nemchik and @hijxf) 02.10.18: - Fix fail2ban instructions and logrotate conf 11.09.18: - Add various preset proxy confs and fix others (thanks @nemchik and @LeoVerto) 04.09.18: - Linting fixes. 30.08.18: - Add support for ldap auth, add proxy confs for bazarr, couchpotato, headphones, lidarr and plex subfolder (thanks @nemchik and @jedahan) 21.08.18: - Rebase to alpine 3.8, add info on search engine de-listing 08.08.18: - Add subdomain proxy conf for plex, update emby proxy confs 25.07.18: - Add subdomain proxy conf for syncthing 23.07.18: - Remove backwards compatibility and set default validation method to http. Update portainer proxy config to fix websockets. Add unifi proxy conf. 31.05.18: - Update ssl.conf and proxy.conf for tighter security (thanks @nemchik) 30.05.18: - Add reverse proxy configs for jackett, monitorr, nzbget, nzbletsencrypt, organizr, portainer and transmission (thanks @nemchik) 18.05.18: - Add more info on certs and unraid reverse proxy config 11.05.18: - Add php pgsql support 24.04.18: - Auto generate a private key + fullchain bundle pem that is needed by certain apps 20.04.18: - Add standardized optional reverse proxy conf files 19.04.18: - Bind memcached to localhost only, add php7-sqlite3 08.04.18: - Fix renewal hooks 29.03.18: - Create pfx cert after renewal for dns validation (previous version only created it for http and tls, an oversight) 29.03.18: - Fix staging for v2 api 13.03.18: - Support for wildcard cert with dns validation added. Switched to v2 api for ACME. 21.02.18: - Reduce shellcheck directives by renaming secondary variables 20.02.18: - Sanitize variables, increase log verbosity 01.02.18: - Big changes. VALIDATION parameter added for choosing certbot validation methods, including dns through official plugins. HTTPVAL is deprecated. STAGING parameter added for testing. Backwards compatibility for the short term. Since tls-sni is disabled by letsencrypt, most users will have to change their settings and adopt the new parameters within the next 90 days. Reorganized the nginx default config, split ssl settings into new ssl.conf 13.01.18: - Re-enable ipv6 due to update to fail2ban 0.10.1. Existing users can enable ipv6 by deleting /config/fail2ban/action.d/iptables-common.local and restarting the container after updating the image 11.01.18: - Halt the container if validation fails instead of a stop (so restart=always doesn't get users throttled with Let's Encrypt) 10.01.18: - Add option for http validation on port 80 05.01.18: - Rebase to alpine 3.7 04.11.17: - Add php7 soap module 31.10.17: - Add php7 exif and xmlreader modules 25.09.17: - Manage fail2ban via s6 24.09.17: - Add memcached service 01.09.17: - --privileged is no longer required as long as --cap-add=NET_ADMIN is added, instructions modified accordingly, disabled fail2ban ipv6 actions due to requiring access to host kernel modules 31.08.17: - Add php7-phar 14.07.17: - Enable modules dynamically in nginx.conf 06.07.17: - Add support for multiple domains (thanks @oznu) 22.06.17: - Add various nginx modules and enable all modules in the default nginx.conf 16.06.17: - Update deprecated certbot option for https validation, make e-mail entry optional, update readme 05.06.17: - Add php7-bz2 27.05.17: - Rebase to alpine 3.6. 03.05.17: - Fix log permissions. 18.04.17: - Add php7-sockets, update fail2ban filter and action defaults 27.02.17: - Add php7-dom, php7-iconv and php7-pdo_sqlite 21.02.17: - Add php7-xml 10.02.17: - Switch to alpine 3.5 base and php7, add php zlib module and all nginx modules 13.01.17: - Add php5-ctype and php5-openssl 04.01.17: - Add php5-mysqli and php5-pdo_mysql 22.11.16: - Add gd and mcrypt packages 21.11.16: - Add curl package 07.11.16: - Initial Release","title":"Versions"},{"location":"images/docker-libreoffice/","text":"linuxserver/libreoffice LibreOffice is a free and powerful office suite, and a successor to OpenOffice.org (commonly known as OpenOffice). Its clean interface and feature-rich tools help you unleash your creativity and enhance your productivity. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/libreoffice:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: libreoffice: image: lscr.io/linuxserver/libreoffice:latest container_name: libreoffice security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=libreoffice \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/libreoffice:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 LibreOffice desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings and documents Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it libreoffice /bin/bash To monitor the logs of the container in realtime: docker logs -f libreoffice Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' libreoffice Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/libreoffice:latest Versions 21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 23.12.21: - Rebase to Alpine 3.15. 26.09.21: - Rebase to Alpine 3.14. 05.04.21: - Initial release.","title":"libreoffice"},{"location":"images/docker-libreoffice/#linuxserverlibreoffice","text":"LibreOffice is a free and powerful office suite, and a successor to OpenOffice.org (commonly known as OpenOffice). Its clean interface and feature-rich tools help you unleash your creativity and enhance your productivity.","title":"linuxserver/libreoffice"},{"location":"images/docker-libreoffice/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/libreoffice:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-libreoffice/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-libreoffice/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-libreoffice/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: libreoffice: image: lscr.io/linuxserver/libreoffice:latest container_name: libreoffice security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-libreoffice/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=libreoffice \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/libreoffice:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-libreoffice/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-libreoffice/#ports-p","text":"Parameter Function 3000 LibreOffice desktop gui.","title":"Ports (-p)"},{"location":"images/docker-libreoffice/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-libreoffice/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings and documents","title":"Volume Mappings (-v)"},{"location":"images/docker-libreoffice/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-libreoffice/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-libreoffice/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-libreoffice/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-libreoffice/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-libreoffice/#support-info","text":"Shell access whilst the container is running: docker exec -it libreoffice /bin/bash To monitor the logs of the container in realtime: docker logs -f libreoffice Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' libreoffice Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/libreoffice:latest","title":"Support Info"},{"location":"images/docker-libreoffice/#versions","text":"21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 23.12.21: - Rebase to Alpine 3.15. 26.09.21: - Rebase to Alpine 3.14. 05.04.21: - Initial release.","title":"Versions"},{"location":"images/docker-libresonic/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. PLEASE USE AIRSONIC linuxserver/airsonic linuxserver/libresonic Libresonic is a free, web-based media streamer, providing ubiqutious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/libresonic should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=libresonic \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH= `#optional` \\ -p 4040:4040 \\ -v :/config \\ -v :/music \\ -v :/playlists \\ -v :/podcasts \\ -v :/media `#optional` \\ --restart unless-stopped \\ linuxserver/libresonic docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: libresonic: image: linuxserver/libresonic container_name: libresonic environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH= #optional volumes: - :/config - :/music - :/playlists - :/podcasts volumes: - :/media #optional ports: - 4040:4040 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4040 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH= For setting url-base in reverse proxy setups. Volume Mappings ( -v ) Volume Function /config Configuration file location. /music Location of music. /playlists Location for playlists to be saved to. /podcasts Location of podcasts. /media Location of other media. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup Access WebUI at :4040 . Default user/pass is admin/admin Support Info Shell access whilst the container is running: docker exec -it libresonic /bin/bash To monitor the logs of the container in realtime: docker logs -f libresonic Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' libresonic Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/libresonic Versions 24.03.19: - Switching to new Base images, shift to arm32v7 tag. 15.01.19: - Pull war from github, adding pipeline multi arch builds. 05.01.19: - Linting fixes. 27.08.18: - Rebase to ubuntu bionic. 12.12.17: - Rebase to alpine 3.7. 11.07.17: - Rebase to alpine 3.6. 12.05.17: - Add annotation timeout (primarily for armhf and lower powered hosts). 08.02.17: - Rebase to alpine 3.5. 04.12.16: - Update jetty runner version. 29.11.16: - Switch to building from release tags following v6.1 stable release. 17.11.16: - Initial Release.","title":"libresonic"},{"location":"images/docker-libresonic/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. PLEASE USE AIRSONIC linuxserver/airsonic","title":"DEPRECATION NOTICE"},{"location":"images/docker-libresonic/#linuxserverlibresonic","text":"Libresonic is a free, web-based media streamer, providing ubiqutious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room.","title":"linuxserver/libresonic"},{"location":"images/docker-libresonic/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/libresonic should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-libresonic/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-libresonic/#docker","text":"docker create \\ --name=libresonic \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH= `#optional` \\ -p 4040:4040 \\ -v :/config \\ -v :/music \\ -v :/playlists \\ -v :/podcasts \\ -v :/media `#optional` \\ --restart unless-stopped \\ linuxserver/libresonic","title":"docker"},{"location":"images/docker-libresonic/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: libresonic: image: linuxserver/libresonic container_name: libresonic environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH= #optional volumes: - :/config - :/music - :/playlists - :/podcasts volumes: - :/media #optional ports: - 4040:4040 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-libresonic/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-libresonic/#ports-p","text":"Parameter Function 4040 WebUI","title":"Ports (-p)"},{"location":"images/docker-libresonic/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH= For setting url-base in reverse proxy setups.","title":"Environment Variables (-e)"},{"location":"images/docker-libresonic/#volume-mappings-v","text":"Volume Function /config Configuration file location. /music Location of music. /playlists Location for playlists to be saved to. /podcasts Location of podcasts. /media Location of other media.","title":"Volume Mappings (-v)"},{"location":"images/docker-libresonic/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-libresonic/#application-setup","text":"Access WebUI at :4040 . Default user/pass is admin/admin","title":"Application Setup"},{"location":"images/docker-libresonic/#support-info","text":"Shell access whilst the container is running: docker exec -it libresonic /bin/bash To monitor the logs of the container in realtime: docker logs -f libresonic Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' libresonic Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/libresonic","title":"Support Info"},{"location":"images/docker-libresonic/#versions","text":"24.03.19: - Switching to new Base images, shift to arm32v7 tag. 15.01.19: - Pull war from github, adding pipeline multi arch builds. 05.01.19: - Linting fixes. 27.08.18: - Rebase to ubuntu bionic. 12.12.17: - Rebase to alpine 3.7. 11.07.17: - Rebase to alpine 3.6. 12.05.17: - Add annotation timeout (primarily for armhf and lower powered hosts). 08.02.17: - Rebase to alpine 3.5. 04.12.16: - Update jetty runner version. 29.11.16: - Switch to building from release tags following v6.1 stable release. 17.11.16: - Initial Release.","title":"Versions"},{"location":"images/docker-librespeed/","text":"linuxserver/librespeed Librespeed is a very lightweight Speedtest implemented in Javascript, using XMLHttpRequest and Web Workers. No Flash, No Java, No Websocket, No Bullshit. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/librespeed:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the speedtest webui at http://SERVERIP . The results database can be accessed at http://SERVERIP/results/stats.php with the password set. The default template used is based on example-singleServer-full.html . However, all templates are provided for reference at /config/www/ . Feel free to customize /config/www/index.html as you like. Delete the file and restart to go back to the image default. You can optionally place customized speedtest.js and speedtest_worker.js files under /config/www and they will supersede the defaults after a container start. Keep in mind that once you do so, they will no longer be updated. You can delete them and recreate the container to go back to the image defaults. If you are setting up a mysql or postgresql database, you first need to import the tables into your database as described at the following link https://github.com/librespeed/speedtest/blob/master/doc.md#creating-the-database To enable a custom results page set the environment variable CUSTOM_RESULTS=true and start (or restart) the container at least once for /config/www/results/index.php to be created and modify this file to your liking. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: librespeed: image: lscr.io/linuxserver/librespeed:latest container_name: librespeed environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD=PASSWORD - CUSTOM_RESULTS=false #optional - DB_TYPE=sqlite #optional - DB_NAME=DB_NAME #optional - DB_HOSTNAME=DB_HOSTNAME #optional - DB_USERNAME=DB_USERNAME #optional - DB_PASSWORD=DB_PASSWORD #optional - DB_PORT=DB_PORT #optional volumes: - /path/to/appdata/config:/config ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=librespeed \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD=PASSWORD \\ -e CUSTOM_RESULTS=false `#optional` \\ -e DB_TYPE=sqlite `#optional` \\ -e DB_NAME=DB_NAME `#optional` \\ -e DB_HOSTNAME=DB_HOSTNAME `#optional` \\ -e DB_USERNAME=DB_USERNAME `#optional` \\ -e DB_PASSWORD=DB_PASSWORD `#optional` \\ -e DB_PORT=DB_PORT `#optional` \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/librespeed:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 web gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PASSWORD=PASSWORD Set the password for the results database. CUSTOM_RESULTS=false (optional) set to true to enable custom results page in /config/www/results/index.php . DB_TYPE=sqlite Defaults to sqlite , can also be set to mysql or postgresql . DB_NAME=DB_NAME Database name. Required for mysql and pgsql. DB_HOSTNAME=DB_HOSTNAME Database address. Required for mysql and pgsql. DB_USERNAME=DB_USERNAME Database username. Required for mysql and pgsql. DB_PASSWORD=DB_PASSWORD Database password. Required for mysql and pgsql. DB_PORT=DB_PORT Database port. Required for mysql. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it librespeed /bin/bash To monitor the logs of the container in realtime: docker logs -f librespeed Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' librespeed Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/librespeed:latest Versions 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 01.03.21: - Fix up database settings. Make sure index.html is recreated. 28.02.21: - Added php7-ctype. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 29.04.20: - Add donation links for LibreSpeed to Github sponsor button and container log. 09.01.20: - Initial Release.","title":"librespeed"},{"location":"images/docker-librespeed/#linuxserverlibrespeed","text":"Librespeed is a very lightweight Speedtest implemented in Javascript, using XMLHttpRequest and Web Workers. No Flash, No Java, No Websocket, No Bullshit.","title":"linuxserver/librespeed"},{"location":"images/docker-librespeed/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/librespeed:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-librespeed/#application-setup","text":"Access the speedtest webui at http://SERVERIP . The results database can be accessed at http://SERVERIP/results/stats.php with the password set. The default template used is based on example-singleServer-full.html . However, all templates are provided for reference at /config/www/ . Feel free to customize /config/www/index.html as you like. Delete the file and restart to go back to the image default. You can optionally place customized speedtest.js and speedtest_worker.js files under /config/www and they will supersede the defaults after a container start. Keep in mind that once you do so, they will no longer be updated. You can delete them and recreate the container to go back to the image defaults. If you are setting up a mysql or postgresql database, you first need to import the tables into your database as described at the following link https://github.com/librespeed/speedtest/blob/master/doc.md#creating-the-database To enable a custom results page set the environment variable CUSTOM_RESULTS=true and start (or restart) the container at least once for /config/www/results/index.php to be created and modify this file to your liking.","title":"Application Setup"},{"location":"images/docker-librespeed/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-librespeed/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: librespeed: image: lscr.io/linuxserver/librespeed:latest container_name: librespeed environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD=PASSWORD - CUSTOM_RESULTS=false #optional - DB_TYPE=sqlite #optional - DB_NAME=DB_NAME #optional - DB_HOSTNAME=DB_HOSTNAME #optional - DB_USERNAME=DB_USERNAME #optional - DB_PASSWORD=DB_PASSWORD #optional - DB_PORT=DB_PORT #optional volumes: - /path/to/appdata/config:/config ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-librespeed/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=librespeed \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD=PASSWORD \\ -e CUSTOM_RESULTS=false `#optional` \\ -e DB_TYPE=sqlite `#optional` \\ -e DB_NAME=DB_NAME `#optional` \\ -e DB_HOSTNAME=DB_HOSTNAME `#optional` \\ -e DB_USERNAME=DB_USERNAME `#optional` \\ -e DB_PASSWORD=DB_PASSWORD `#optional` \\ -e DB_PORT=DB_PORT `#optional` \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/librespeed:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-librespeed/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-librespeed/#ports-p","text":"Parameter Function 80 web gui","title":"Ports (-p)"},{"location":"images/docker-librespeed/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PASSWORD=PASSWORD Set the password for the results database. CUSTOM_RESULTS=false (optional) set to true to enable custom results page in /config/www/results/index.php . DB_TYPE=sqlite Defaults to sqlite , can also be set to mysql or postgresql . DB_NAME=DB_NAME Database name. Required for mysql and pgsql. DB_HOSTNAME=DB_HOSTNAME Database address. Required for mysql and pgsql. DB_USERNAME=DB_USERNAME Database username. Required for mysql and pgsql. DB_PASSWORD=DB_PASSWORD Database password. Required for mysql and pgsql. DB_PORT=DB_PORT Database port. Required for mysql.","title":"Environment Variables (-e)"},{"location":"images/docker-librespeed/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-librespeed/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-librespeed/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-librespeed/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-librespeed/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-librespeed/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-librespeed/#support-info","text":"Shell access whilst the container is running: docker exec -it librespeed /bin/bash To monitor the logs of the container in realtime: docker logs -f librespeed Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' librespeed Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/librespeed:latest","title":"Support Info"},{"location":"images/docker-librespeed/#versions","text":"20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 01.03.21: - Fix up database settings. Make sure index.html is recreated. 28.02.21: - Added php7-ctype. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 29.04.20: - Add donation links for LibreSpeed to Github sponsor button and container log. 09.01.20: - Initial Release.","title":"Versions"},{"location":"images/docker-lidarr/","text":"linuxserver/lidarr Lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new tracks from your favorite artists and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/lidarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Lidarr releases. develop \u2705 Develop Lidarr Releases. nightly \u2705 Nightly Lidarr Releases. Application Setup Access the webui at :8686 , for more information check out Lidarr . Special Note: Following our current folder structure will result in an inability to hardlink from your downloads to your Music folder because they are on seperate volumes. To support hardlinking, simply ensure that the Music and downloads data are on a single volume. For example, if you have /mnt/storage/Music and /mnt/storage/downloads/completed/Music, you would want something like /mnt/storage:/media for your volume. Then you can hardlink from /media/downloads/completed to /media/Music. Another item to keep in mind, is that within lidarr itself, you should then map your download client folder to your lidarr folder: Settings -> Download Client -> advanced -> remote path mappings. I input the host of my download client (matches the download client defined) remote path is /downloads/Music (relative to the internal container path) and local path is /media/downloads/completed/Music, assuming you have folders to seperate your downloaded data types. Media folders We have set /music and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: lidarr: image: lscr.io/linuxserver/lidarr:latest container_name: lidarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/music:/music #optional - /path/to/downloads:/downloads #optional ports: - 8686:8686 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=lidarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8686:8686 \\ -v /path/to/appdata/config:/config \\ -v /path/to/music:/music `#optional` \\ -v /path/to/downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/lidarr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8686 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files for Lidarr. /music Music files (See note in Application setup). /downloads Path to your download folder for music (See note in Application setup). Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it lidarr /bin/bash To monitor the logs of the container in realtime: docker logs -f lidarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lidarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/lidarr:latest Versions 06.06.22: - Rebase master branch to Alpine 3.15. 06.05.22: - Rebase master branch to Focal. 06.05.22: - Rebase develop branch to Alpine. 04.02.22: - Rebase nightly branch to Alpine, deprecate nightly-alpine branch. 30.12.21: - Add nightly-alpine branch. 01.08.21: - Add libchromaprint-tools. 11.07.21: - Make the paths clearer to the user. 18.04.21: - Switch latest tag to net core. 25.01.21: - Publish develop tag. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 18.04.20: - Removed /downloads and /music volumes from Dockerfiles. 05.04.20: - Move app to /app. 01.08.19: - Rebase to Linuxserver LTS mono version. 13.06.19: - Add env variable for setting umask. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 08.03.19: - Rebase to Bionic, use proposed endpoint for libchromaprint. 26.01.19: - Add pipeline logic and multi arch. 22.04.18: - Switch to beta builds. 17.03.18: - Add ENV XDG_CONFIG_HOME=\"/config/xdg\" to Dockerfile for signalr fix. 27.02.18: - Use json to query for new version. 23.02.18: - Initial Release.","title":"lidarr"},{"location":"images/docker-lidarr/#linuxserverlidarr","text":"Lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new tracks from your favorite artists and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.","title":"linuxserver/lidarr"},{"location":"images/docker-lidarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/lidarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-lidarr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Lidarr releases. develop \u2705 Develop Lidarr Releases. nightly \u2705 Nightly Lidarr Releases.","title":"Version Tags"},{"location":"images/docker-lidarr/#application-setup","text":"Access the webui at :8686 , for more information check out Lidarr . Special Note: Following our current folder structure will result in an inability to hardlink from your downloads to your Music folder because they are on seperate volumes. To support hardlinking, simply ensure that the Music and downloads data are on a single volume. For example, if you have /mnt/storage/Music and /mnt/storage/downloads/completed/Music, you would want something like /mnt/storage:/media for your volume. Then you can hardlink from /media/downloads/completed to /media/Music. Another item to keep in mind, is that within lidarr itself, you should then map your download client folder to your lidarr folder: Settings -> Download Client -> advanced -> remote path mappings. I input the host of my download client (matches the download client defined) remote path is /downloads/Music (relative to the internal container path) and local path is /media/downloads/completed/Music, assuming you have folders to seperate your downloaded data types.","title":"Application Setup"},{"location":"images/docker-lidarr/#media-folders","text":"We have set /music and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Media folders"},{"location":"images/docker-lidarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-lidarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: lidarr: image: lscr.io/linuxserver/lidarr:latest container_name: lidarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/music:/music #optional - /path/to/downloads:/downloads #optional ports: - 8686:8686 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-lidarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=lidarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8686:8686 \\ -v /path/to/appdata/config:/config \\ -v /path/to/music:/music `#optional` \\ -v /path/to/downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/lidarr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-lidarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-lidarr/#ports-p","text":"Parameter Function 8686 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-lidarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-lidarr/#volume-mappings-v","text":"Volume Function /config Configuration files for Lidarr. /music Music files (See note in Application setup). /downloads Path to your download folder for music (See note in Application setup).","title":"Volume Mappings (-v)"},{"location":"images/docker-lidarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-lidarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-lidarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-lidarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-lidarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-lidarr/#support-info","text":"Shell access whilst the container is running: docker exec -it lidarr /bin/bash To monitor the logs of the container in realtime: docker logs -f lidarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lidarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/lidarr:latest","title":"Support Info"},{"location":"images/docker-lidarr/#versions","text":"06.06.22: - Rebase master branch to Alpine 3.15. 06.05.22: - Rebase master branch to Focal. 06.05.22: - Rebase develop branch to Alpine. 04.02.22: - Rebase nightly branch to Alpine, deprecate nightly-alpine branch. 30.12.21: - Add nightly-alpine branch. 01.08.21: - Add libchromaprint-tools. 11.07.21: - Make the paths clearer to the user. 18.04.21: - Switch latest tag to net core. 25.01.21: - Publish develop tag. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 18.04.20: - Removed /downloads and /music volumes from Dockerfiles. 05.04.20: - Move app to /app. 01.08.19: - Rebase to Linuxserver LTS mono version. 13.06.19: - Add env variable for setting umask. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 08.03.19: - Rebase to Bionic, use proposed endpoint for libchromaprint. 26.01.19: - Add pipeline logic and multi arch. 22.04.18: - Switch to beta builds. 17.03.18: - Add ENV XDG_CONFIG_HOME=\"/config/xdg\" to Dockerfile for signalr fix. 27.02.18: - Use json to query for new version. 23.02.18: - Initial Release.","title":"Versions"},{"location":"images/docker-limnoria/","text":"linuxserver/limnoria Limnoria A robust, full-featured, and user/programmer-friendly Python IRC bot, with many existing plugins. Successor of the well-known Supybot. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/limnoria:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup New Configuration If you do not have an existing config you will need to start the container and then run the following wizard command: docker exec -it -w /config -u abc limnoria limnoria-wizard Existing Configuration If you have an existing config, adjust the directory settings in your conf file as follows: supybot.directories.backup: /config/backup supybot.directories.conf: /config/conf supybot.directories.data: /config/data supybot.directories.data.tmp: /config/data/tmp supybot.directories.data.web: /config/web supybot.directories.log: /config/logs supybot.directories.plugins: /config/plugins NOTE: These are not grouped together in the file. You will need to search your conf file for the variables. Then place your conf file and any of your existing directories in /config and start up the container. Plugin Requirements The container will pip install any requirements.txt it finds in the /config/plugins folder on startup. If you install a plugin using the PluginDownloader that includes a requirements.txt you can execute a shell into the container and then use pip install /config/plugins/ThePlugin/requirements.txt or restart the container and the requirements will be installed. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: limnoria: image: lscr.io/linuxserver/limnoria:latest container_name: limnoria environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - path/to/config:/config ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=limnoria \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -v path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/limnoria:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Port for Limnoria's web interface. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where Limnoria config is stored. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it limnoria /bin/bash To monitor the logs of the container in realtime: docker logs -f limnoria Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' limnoria Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/limnoria:latest Versions 19.09.22: - Rebase to alpine 3.15. 25.05.21: - Install plugin requirements on container init. 17.05.21: - Add linuxserver wheel index. 13.02.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 13.01.20: - Initial Release.","title":"limnoria"},{"location":"images/docker-limnoria/#linuxserverlimnoria","text":"Limnoria A robust, full-featured, and user/programmer-friendly Python IRC bot, with many existing plugins. Successor of the well-known Supybot.","title":"linuxserver/limnoria"},{"location":"images/docker-limnoria/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/limnoria:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-limnoria/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-limnoria/#new-configuration","text":"If you do not have an existing config you will need to start the container and then run the following wizard command: docker exec -it -w /config -u abc limnoria limnoria-wizard","title":"New Configuration"},{"location":"images/docker-limnoria/#existing-configuration","text":"If you have an existing config, adjust the directory settings in your conf file as follows: supybot.directories.backup: /config/backup supybot.directories.conf: /config/conf supybot.directories.data: /config/data supybot.directories.data.tmp: /config/data/tmp supybot.directories.data.web: /config/web supybot.directories.log: /config/logs supybot.directories.plugins: /config/plugins NOTE: These are not grouped together in the file. You will need to search your conf file for the variables. Then place your conf file and any of your existing directories in /config and start up the container.","title":"Existing Configuration"},{"location":"images/docker-limnoria/#plugin-requirements","text":"The container will pip install any requirements.txt it finds in the /config/plugins folder on startup. If you install a plugin using the PluginDownloader that includes a requirements.txt you can execute a shell into the container and then use pip install /config/plugins/ThePlugin/requirements.txt or restart the container and the requirements will be installed.","title":"Plugin Requirements"},{"location":"images/docker-limnoria/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-limnoria/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: limnoria: image: lscr.io/linuxserver/limnoria:latest container_name: limnoria environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - path/to/config:/config ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-limnoria/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=limnoria \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -v path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/limnoria:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-limnoria/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-limnoria/#ports-p","text":"Parameter Function 8080 Port for Limnoria's web interface.","title":"Ports (-p)"},{"location":"images/docker-limnoria/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-limnoria/#volume-mappings-v","text":"Volume Function /config Where Limnoria config is stored.","title":"Volume Mappings (-v)"},{"location":"images/docker-limnoria/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-limnoria/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-limnoria/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-limnoria/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-limnoria/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-limnoria/#support-info","text":"Shell access whilst the container is running: docker exec -it limnoria /bin/bash To monitor the logs of the container in realtime: docker logs -f limnoria Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' limnoria Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/limnoria:latest","title":"Support Info"},{"location":"images/docker-limnoria/#versions","text":"19.09.22: - Rebase to alpine 3.15. 25.05.21: - Install plugin requirements on container init. 17.05.21: - Add linuxserver wheel index. 13.02.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 13.01.20: - Initial Release.","title":"Versions"},{"location":"images/docker-lychee/","text":"linuxserver/lychee Lychee is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.\" UPGRADE WARNING Please note that the v4 upgrade process resets ALL password-protected albums. Any albums that were made public with a password will need to be re-secured. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/lychee:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This image will not work with a prefilled /pictures mount, lychee wants total control over this folder Setup mysql/mariadb and account via the webui, accessible at http://SERVERIP:PORT More info at lychee . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) version: \"3\" services: mariadb: image: lscr.io/linuxserver/mariadb:latest container_name: lychee_mariadb restart: always volumes: - /path/to/mariadb/data:/config environment: - MYSQL_ROOT_PASSWORD=rootpassword - MYSQL_DATABASE=lychee - MYSQL_USER=lychee - MYSQL_PASSWORD=dbpassword - PGID=1000 - PUID=1000 - TZ=Europe/London lychee: image: lscr.io/linuxserver/lychee:latest container_name: lychee restart: always depends_on: - mariadb volumes: - /path/to/config:/config - /path/to/pictures:/pictures environment: - DB_HOST=mariadb - DB_USERNAME=lychee - DB_PASSWORD=dbpassword - DB_DATABASE=lychee - DB_PORT=3306 - PGID=1000 - PUID=1000 - TZ=Europe/London ports: - 80:80 docker cli ( click here for more info ) docker run -d \\ --name=lychee \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DB_HOST=mariadb \\ -e DB_USERNAME=lychee \\ -e DB_PASSWORD=dbpassword \\ -e DB_DATABASE=lychee \\ -p 80:80 \\ -v /path/to/config:/config \\ -v /path/to/pictures:/pictures \\ --restart unless-stopped \\ lscr.io/linuxserver/lychee:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London DB_HOST=mariadb for specifying the database host DB_USERNAME=lychee for specifying the database user DB_PASSWORD=dbpassword for specifying the database password DB_DATABASE=lychee for specifying the database to be used Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /pictures Where lychee will store uploaded data. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it lychee /bin/bash To monitor the logs of the container in realtime: docker logs -f lychee Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lychee Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/lychee:latest Versions 04.12.21: - Rebase to alpine 3.15 with php8. 13.05.21: - Make readme clearer. 18.04.21: - Add php-intl for v4.3. 31.01.21: - Add jpegoptim. 15.01.21: - Rebase to alpine 3.13, add php7-ctype. 10.07.20: - Upgrade to Lychee v4 and rebased to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 23.10.19: - Increase fastcgi timeouts (existing users need to manually update). 19.09.19: - Update project website url. 28.06.19: - Rebasing to alpine 3.10. 05.05.19: - Rebase to alpine 3.9, use new armv7 image format. 21.01.18: - Added ffmpeg for video thumbnail creation, switched to installing zip release instead of source tarball, created small thumbnails folder, switched to dynamic readme. 14.01.19: - Adding pipeline logic and multi arch.. 04.09.18: - Rebase to alpine 3.8, switch to LycheeOrg repository. 08.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 12.02.17: - Initial Release.","title":"lychee"},{"location":"images/docker-lychee/#linuxserverlychee","text":"Lychee is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.\"","title":"linuxserver/lychee"},{"location":"images/docker-lychee/#upgrade-warning","text":"Please note that the v4 upgrade process resets ALL password-protected albums. Any albums that were made public with a password will need to be re-secured.","title":"UPGRADE WARNING"},{"location":"images/docker-lychee/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/lychee:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-lychee/#application-setup","text":"This image will not work with a prefilled /pictures mount, lychee wants total control over this folder Setup mysql/mariadb and account via the webui, accessible at http://SERVERIP:PORT More info at lychee .","title":"Application Setup"},{"location":"images/docker-lychee/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-lychee/#docker-compose-recommended-click-here-for-more-info","text":"version: \"3\" services: mariadb: image: lscr.io/linuxserver/mariadb:latest container_name: lychee_mariadb restart: always volumes: - /path/to/mariadb/data:/config environment: - MYSQL_ROOT_PASSWORD=rootpassword - MYSQL_DATABASE=lychee - MYSQL_USER=lychee - MYSQL_PASSWORD=dbpassword - PGID=1000 - PUID=1000 - TZ=Europe/London lychee: image: lscr.io/linuxserver/lychee:latest container_name: lychee restart: always depends_on: - mariadb volumes: - /path/to/config:/config - /path/to/pictures:/pictures environment: - DB_HOST=mariadb - DB_USERNAME=lychee - DB_PASSWORD=dbpassword - DB_DATABASE=lychee - DB_PORT=3306 - PGID=1000 - PUID=1000 - TZ=Europe/London ports: - 80:80","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-lychee/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=lychee \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DB_HOST=mariadb \\ -e DB_USERNAME=lychee \\ -e DB_PASSWORD=dbpassword \\ -e DB_DATABASE=lychee \\ -p 80:80 \\ -v /path/to/config:/config \\ -v /path/to/pictures:/pictures \\ --restart unless-stopped \\ lscr.io/linuxserver/lychee:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-lychee/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-lychee/#ports-p","text":"Parameter Function 80 http gui","title":"Ports (-p)"},{"location":"images/docker-lychee/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London DB_HOST=mariadb for specifying the database host DB_USERNAME=lychee for specifying the database user DB_PASSWORD=dbpassword for specifying the database password DB_DATABASE=lychee for specifying the database to be used","title":"Environment Variables (-e)"},{"location":"images/docker-lychee/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /pictures Where lychee will store uploaded data.","title":"Volume Mappings (-v)"},{"location":"images/docker-lychee/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-lychee/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-lychee/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-lychee/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-lychee/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-lychee/#support-info","text":"Shell access whilst the container is running: docker exec -it lychee /bin/bash To monitor the logs of the container in realtime: docker logs -f lychee Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lychee Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/lychee:latest","title":"Support Info"},{"location":"images/docker-lychee/#versions","text":"04.12.21: - Rebase to alpine 3.15 with php8. 13.05.21: - Make readme clearer. 18.04.21: - Add php-intl for v4.3. 31.01.21: - Add jpegoptim. 15.01.21: - Rebase to alpine 3.13, add php7-ctype. 10.07.20: - Upgrade to Lychee v4 and rebased to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 23.10.19: - Increase fastcgi timeouts (existing users need to manually update). 19.09.19: - Update project website url. 28.06.19: - Rebasing to alpine 3.10. 05.05.19: - Rebase to alpine 3.9, use new armv7 image format. 21.01.18: - Added ffmpeg for video thumbnail creation, switched to installing zip release instead of source tarball, created small thumbnails folder, switched to dynamic readme. 14.01.19: - Adding pipeline logic and multi arch.. 04.09.18: - Rebase to alpine 3.8, switch to LycheeOrg repository. 08.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 12.02.17: - Initial Release.","title":"Versions"},{"location":"images/docker-mariadb/","text":"linuxserver/mariadb Mariadb is one of the most popular database servers. Made by the original developers of MySQL. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mariadb:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup If you didn't set a password during installation, (see logs for warning) use mysqladmin -u root password to set one at the docker prompt... NOTE changing the MYSQL_ROOT_PASSWORD variable after the container has set up the initial databases has no effect, use the mysqladmin tool to change your mariadb password. NOTE if you want to use (MYSQL_DATABASE MYSQL_USER MYSQL_PASSWORD) all three of these variables need to be set you cannot pick and choose. Unraid users, it is advisable to edit the template/webui after setup and remove reference to this variable. Find custom.cnf in /config for config changes (restart container for them to take effect) , the databases in /config/databases and the log in /config/log/myqsl Loading passwords and users from files The MYSQL_ROOT_PASSWORD MYSQL_DATABASE MYSQL_USER MYSQL_PASSWORD REMOTE_SQL env values can be set in a file: /config/env Using the following format: MYSQL_ROOT_PASSWORD=\"ROOT_ACCESS_PASSWORD\" MYSQL_DATABASE=\"USER_DB_NAME\" MYSQL_USER=\"MYSQL_USER\" MYSQL_PASSWORD=\"DATABASE_PASSWORD\" REMOTE_SQL=\"http://URL1/your.sql,https://URL2/your.sql\" These settings can be mixed and matched with Docker ENV settings as you require, but the settings in the file will always take precedence. Bootstrapping a new instance We support a one time run of custom sql files on init. In order to use this place *.sql files in: /config/initdb.d/ This will have the same effect as setting the REMOTE_SQL environment variable. The sql will only be run on the containers first boot and setup. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: mariadb: image: lscr.io/linuxserver/mariadb:latest container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD - TZ=Europe/London - MYSQL_DATABASE=USER_DB_NAME #optional - MYSQL_USER=MYSQL_USER #optional - MYSQL_PASSWORD=DATABASE_PASSWORD #optional - REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql #optional volumes: - path_to_data:/config ports: - 3306:3306 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=mariadb \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD \\ -e TZ=Europe/London \\ -e MYSQL_DATABASE=USER_DB_NAME `#optional` \\ -e MYSQL_USER=MYSQL_USER `#optional` \\ -e MYSQL_PASSWORD=DATABASE_PASSWORD `#optional` \\ -e REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql `#optional` \\ -p 3306:3306 \\ -v path_to_data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mariadb:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3306 Mariadb listens on this port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD Set this to root password for installation (minimum 4 characters & non-alphanumeric passwords must be properly escaped). TZ=Europe/London Specify a timezone to use EG Europe/London. MYSQL_DATABASE=USER_DB_NAME Specify the name of a database to be created on image startup. MYSQL_USER=MYSQL_USER This user will have superuser access to the database specified by MYSQL_DATABASE (do not use root here). MYSQL_PASSWORD=DATABASE_PASSWORD Set this to the password you want to use for you MYSQL_USER (minimum 4 characters & non-alphanumeric passwords must be properly escaped). REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql Set this to ingest sql files from an http/https endpoint (comma seperated array). Volume Mappings ( -v ) Volume Function /config Contains the db itself and all assorted settings. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it mariadb /bin/bash To monitor the logs of the container in realtime: docker logs -f mariadb Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mariadb Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mariadb:latest Versions 11.10.22: - Rebase master to Alpine 3.16, migrate to s6v3, remove password escape logic which caused problems for a small subset of users. 06.07.21: - Rebase master to alpine. 03.07.21: - Rebase to 3.14. 08.02.21: - Fix new installs. 08.02.21: - Rebase to alpine. Add mariadb-backup. 08.02.21: - Release alpine tag. The alpine release will replace the latest tag in the near future. 27.10.19: - Bump to 10.4, ability use custom sql on initial init ,defining root passwords via file. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 07.03.19: - Add ability to setup a database and default user on first spinup. 26.01.19: - Add pipeline logic and multi arch. 10.09.18: - Rebase to ubuntu bionic and use 10.3 mariadb repository. 09.12.17: - Fix continuation lines. 12.09.17: - Gracefully shut down mariadb. 27.10.16: - Implement linting suggestions on database init script. 11.10.16: - Rebase to ubuntu xenial, add version labelling. 09.03.16: - Update to mariadb 10.1. Change to use custom.cnf over my.cnf in /config. Restructured init files to change config options on startup, rather than in the dockerfile. 26.01.16: - Change user of mysqld_safe script to abc, better unclean shutdown handling on restart. 23.12.15: - Remove autoupdating, between some version updates the container breaks. 12.08.15: - Initial Release.","title":"mariadb"},{"location":"images/docker-mariadb/#linuxservermariadb","text":"Mariadb is one of the most popular database servers. Made by the original developers of MySQL.","title":"linuxserver/mariadb"},{"location":"images/docker-mariadb/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mariadb:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-mariadb/#application-setup","text":"If you didn't set a password during installation, (see logs for warning) use mysqladmin -u root password to set one at the docker prompt... NOTE changing the MYSQL_ROOT_PASSWORD variable after the container has set up the initial databases has no effect, use the mysqladmin tool to change your mariadb password. NOTE if you want to use (MYSQL_DATABASE MYSQL_USER MYSQL_PASSWORD) all three of these variables need to be set you cannot pick and choose. Unraid users, it is advisable to edit the template/webui after setup and remove reference to this variable. Find custom.cnf in /config for config changes (restart container for them to take effect) , the databases in /config/databases and the log in /config/log/myqsl","title":"Application Setup"},{"location":"images/docker-mariadb/#loading-passwords-and-users-from-files","text":"The MYSQL_ROOT_PASSWORD MYSQL_DATABASE MYSQL_USER MYSQL_PASSWORD REMOTE_SQL env values can be set in a file: /config/env Using the following format: MYSQL_ROOT_PASSWORD=\"ROOT_ACCESS_PASSWORD\" MYSQL_DATABASE=\"USER_DB_NAME\" MYSQL_USER=\"MYSQL_USER\" MYSQL_PASSWORD=\"DATABASE_PASSWORD\" REMOTE_SQL=\"http://URL1/your.sql,https://URL2/your.sql\" These settings can be mixed and matched with Docker ENV settings as you require, but the settings in the file will always take precedence.","title":"Loading passwords and users from files"},{"location":"images/docker-mariadb/#bootstrapping-a-new-instance","text":"We support a one time run of custom sql files on init. In order to use this place *.sql files in: /config/initdb.d/ This will have the same effect as setting the REMOTE_SQL environment variable. The sql will only be run on the containers first boot and setup.","title":"Bootstrapping a new instance"},{"location":"images/docker-mariadb/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-mariadb/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: mariadb: image: lscr.io/linuxserver/mariadb:latest container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD - TZ=Europe/London - MYSQL_DATABASE=USER_DB_NAME #optional - MYSQL_USER=MYSQL_USER #optional - MYSQL_PASSWORD=DATABASE_PASSWORD #optional - REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql #optional volumes: - path_to_data:/config ports: - 3306:3306 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-mariadb/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=mariadb \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD \\ -e TZ=Europe/London \\ -e MYSQL_DATABASE=USER_DB_NAME `#optional` \\ -e MYSQL_USER=MYSQL_USER `#optional` \\ -e MYSQL_PASSWORD=DATABASE_PASSWORD `#optional` \\ -e REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql `#optional` \\ -p 3306:3306 \\ -v path_to_data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mariadb:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-mariadb/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-mariadb/#ports-p","text":"Parameter Function 3306 Mariadb listens on this port.","title":"Ports (-p)"},{"location":"images/docker-mariadb/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD Set this to root password for installation (minimum 4 characters & non-alphanumeric passwords must be properly escaped). TZ=Europe/London Specify a timezone to use EG Europe/London. MYSQL_DATABASE=USER_DB_NAME Specify the name of a database to be created on image startup. MYSQL_USER=MYSQL_USER This user will have superuser access to the database specified by MYSQL_DATABASE (do not use root here). MYSQL_PASSWORD=DATABASE_PASSWORD Set this to the password you want to use for you MYSQL_USER (minimum 4 characters & non-alphanumeric passwords must be properly escaped). REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql Set this to ingest sql files from an http/https endpoint (comma seperated array).","title":"Environment Variables (-e)"},{"location":"images/docker-mariadb/#volume-mappings-v","text":"Volume Function /config Contains the db itself and all assorted settings.","title":"Volume Mappings (-v)"},{"location":"images/docker-mariadb/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-mariadb/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-mariadb/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-mariadb/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-mariadb/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-mariadb/#support-info","text":"Shell access whilst the container is running: docker exec -it mariadb /bin/bash To monitor the logs of the container in realtime: docker logs -f mariadb Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mariadb Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mariadb:latest","title":"Support Info"},{"location":"images/docker-mariadb/#versions","text":"11.10.22: - Rebase master to Alpine 3.16, migrate to s6v3, remove password escape logic which caused problems for a small subset of users. 06.07.21: - Rebase master to alpine. 03.07.21: - Rebase to 3.14. 08.02.21: - Fix new installs. 08.02.21: - Rebase to alpine. Add mariadb-backup. 08.02.21: - Release alpine tag. The alpine release will replace the latest tag in the near future. 27.10.19: - Bump to 10.4, ability use custom sql on initial init ,defining root passwords via file. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 07.03.19: - Add ability to setup a database and default user on first spinup. 26.01.19: - Add pipeline logic and multi arch. 10.09.18: - Rebase to ubuntu bionic and use 10.3 mariadb repository. 09.12.17: - Fix continuation lines. 12.09.17: - Gracefully shut down mariadb. 27.10.16: - Implement linting suggestions on database init script. 11.10.16: - Rebase to ubuntu xenial, add version labelling. 09.03.16: - Update to mariadb 10.1. Change to use custom.cnf over my.cnf in /config. Restructured init files to change config options on startup, rather than in the dockerfile. 26.01.16: - Change user of mysqld_safe script to abc, better unclean shutdown handling on restart. 23.12.15: - Remove autoupdating, between some version updates the container breaks. 12.08.15: - Initial Release.","title":"Versions"},{"location":"images/docker-mastodon/","text":"linuxserver/mastodon Mastodon is a free, open-source social network server based on ActivityPub where users can follow friends and discover new ones.. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mastodon:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases. develop \u2705 Pre-releases only . Application Setup To generate keys for SECRET_KEY_BASE & OTP_SECRET run docker run --rm -it -w /app/www --entrypoint rake lscr.io/linuxserver/mastodon secret once for each. To generate keys for VAPID_PRIVATE_KEY & VAPID_PUBLIC_KEY run docker run --rm -it -w /app/www --entrypoint rake lscr.io/linuxserver/mastodon mastodon:webpush:generate_vapid_key To use tootctl you can run something like docker exec -it -w /app/www mastodon bin/tootctl This container requires separate postgres and redis instances to run. We support all of the official environment variables for configuration. In place of adding them all to your run/compose you can use an env file such as this example from the upstream project. For more information check out the mastodon documentation . Strict reverse proxies This image automatically redirects to https with a self-signed certificate. If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: mastodon: image: lscr.io/linuxserver/mastodon:latest container_name: mastodon environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - LOCAL_DOMAIN=example.com - REDIS_HOST=redis - REDIS_PORT=6379 - DB_HOST=db - DB_USER=mastodon - DB_NAME=mastodon - DB_PASS=mastodon - DB_PORT=5432 - ES_ENABLED=false - SECRET_KEY_BASE= - OTP_SECRET= - VAPID_PRIVATE_KEY= - VAPID_PUBLIC_KEY= - SMTP_SERVER=mail.example.com - SMTP_PORT=25 - SMTP_LOGIN= - SMTP_PASSWORD= - SMTP_FROM_ADDRESS=notifications@example.com - S3_ENABLED=false - WEB_DOMAIN=mastodon.example.com #optional - ES_HOST=es #optional - ES_PORT=9200 #optional - ES_USER=elastic #optional - ES_PASS=elastic #optional - S3_BUCKET= #optional - AWS_ACCESS_KEY_ID= #optional - AWS_SECRET_ACCESS_KEY= #optional - S3_ALIAS_HOST= #optional volumes: - /path/to/appdata/config:/config ports: - 80:80 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=mastodon \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e LOCAL_DOMAIN=example.com \\ -e REDIS_HOST=redis \\ -e REDIS_PORT=6379 \\ -e DB_HOST=db \\ -e DB_USER=mastodon \\ -e DB_NAME=mastodon \\ -e DB_PASS=mastodon \\ -e DB_PORT=5432 \\ -e ES_ENABLED=false \\ -e SECRET_KEY_BASE= \\ -e OTP_SECRET= \\ -e VAPID_PRIVATE_KEY= \\ -e VAPID_PUBLIC_KEY= \\ -e SMTP_SERVER=mail.example.com \\ -e SMTP_PORT=25 \\ -e SMTP_LOGIN= \\ -e SMTP_PASSWORD= \\ -e SMTP_FROM_ADDRESS=notifications@example.com \\ -e S3_ENABLED=false \\ -e WEB_DOMAIN=mastodon.example.com `#optional` \\ -e ES_HOST=es `#optional` \\ -e ES_PORT=9200 `#optional` \\ -e ES_USER=elastic `#optional` \\ -e ES_PASS=elastic `#optional` \\ -e S3_BUCKET= `#optional` \\ -e AWS_ACCESS_KEY_ID= `#optional` \\ -e AWS_SECRET_ACCESS_KEY= `#optional` \\ -e S3_ALIAS_HOST= `#optional` \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mastodon:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Port for web frontend 443 Port for web frontend Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York LOCAL_DOMAIN=example.com This is the unique identifier of your server in the network. It cannot be safely changed later. REDIS_HOST=redis Redis server hostname REDIS_PORT=6379 Redis port DB_HOST=db Postgres database hostname DB_USER=mastodon Postgres username DB_NAME=mastodon Postgres db name DB_PASS=mastodon Postgres password DB_PORT=5432 Portgres port ES_ENABLED=false Enable or disable Elasticsearch (requires a separate ES instance) SECRET_KEY_BASE= Browser session secret. Changing it will break all active browser sessions. OTP_SECRET= MFA secret. Changing it will break two-factor authentication. VAPID_PRIVATE_KEY= Push notification private key. Changing it will break push notifications. VAPID_PUBLIC_KEY= Push notification public key. Changing it will break push notifications. SMTP_SERVER=mail.example.com SMTP server for email notifications SMTP_PORT=25 SMTP server port SMTP_LOGIN= SMTP username SMTP_PASSWORD= SMTP password SMTP_FROM_ADDRESS=notifications@example.com From address for emails send from Mastodon S3_ENABLED=false Enable or disable S3 storage of uploaded files WEB_DOMAIN=mastodon.example.com This can be set if you want your server identifier to be different to the subdomain hosting Mastodon. See https://docs.joinmastodon.org/admin/config/#basic ES_HOST=es Elasticsearch server hostname ES_PORT=9200 Elasticsearch port ES_USER=elastic Elasticsearch username ES_PASS=elastic Elasticsearch password S3_BUCKET= S3 bucket hostname AWS_ACCESS_KEY_ID= S3 bucket access key ID AWS_SECRET_ACCESS_KEY= S3 bucket secret access key S3_ALIAS_HOST= Alternate hostname for object fetching if you are front the S3 connections. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it mastodon /bin/bash To monitor the logs of the container in realtime: docker logs -f mastodon Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mastodon Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mastodon:latest Versions 05.11.22: - Initial Release.","title":"mastodon"},{"location":"images/docker-mastodon/#linuxservermastodon","text":"Mastodon is a free, open-source social network server based on ActivityPub where users can follow friends and discover new ones..","title":"linuxserver/mastodon"},{"location":"images/docker-mastodon/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mastodon:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-mastodon/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases. develop \u2705 Pre-releases only .","title":"Version Tags"},{"location":"images/docker-mastodon/#application-setup","text":"To generate keys for SECRET_KEY_BASE & OTP_SECRET run docker run --rm -it -w /app/www --entrypoint rake lscr.io/linuxserver/mastodon secret once for each. To generate keys for VAPID_PRIVATE_KEY & VAPID_PUBLIC_KEY run docker run --rm -it -w /app/www --entrypoint rake lscr.io/linuxserver/mastodon mastodon:webpush:generate_vapid_key To use tootctl you can run something like docker exec -it -w /app/www mastodon bin/tootctl This container requires separate postgres and redis instances to run. We support all of the official environment variables for configuration. In place of adding them all to your run/compose you can use an env file such as this example from the upstream project. For more information check out the mastodon documentation .","title":"Application Setup"},{"location":"images/docker-mastodon/#strict-reverse-proxies","text":"This image automatically redirects to https with a self-signed certificate. If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-mastodon/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-mastodon/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: mastodon: image: lscr.io/linuxserver/mastodon:latest container_name: mastodon environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - LOCAL_DOMAIN=example.com - REDIS_HOST=redis - REDIS_PORT=6379 - DB_HOST=db - DB_USER=mastodon - DB_NAME=mastodon - DB_PASS=mastodon - DB_PORT=5432 - ES_ENABLED=false - SECRET_KEY_BASE= - OTP_SECRET= - VAPID_PRIVATE_KEY= - VAPID_PUBLIC_KEY= - SMTP_SERVER=mail.example.com - SMTP_PORT=25 - SMTP_LOGIN= - SMTP_PASSWORD= - SMTP_FROM_ADDRESS=notifications@example.com - S3_ENABLED=false - WEB_DOMAIN=mastodon.example.com #optional - ES_HOST=es #optional - ES_PORT=9200 #optional - ES_USER=elastic #optional - ES_PASS=elastic #optional - S3_BUCKET= #optional - AWS_ACCESS_KEY_ID= #optional - AWS_SECRET_ACCESS_KEY= #optional - S3_ALIAS_HOST= #optional volumes: - /path/to/appdata/config:/config ports: - 80:80 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-mastodon/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=mastodon \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e LOCAL_DOMAIN=example.com \\ -e REDIS_HOST=redis \\ -e REDIS_PORT=6379 \\ -e DB_HOST=db \\ -e DB_USER=mastodon \\ -e DB_NAME=mastodon \\ -e DB_PASS=mastodon \\ -e DB_PORT=5432 \\ -e ES_ENABLED=false \\ -e SECRET_KEY_BASE= \\ -e OTP_SECRET= \\ -e VAPID_PRIVATE_KEY= \\ -e VAPID_PUBLIC_KEY= \\ -e SMTP_SERVER=mail.example.com \\ -e SMTP_PORT=25 \\ -e SMTP_LOGIN= \\ -e SMTP_PASSWORD= \\ -e SMTP_FROM_ADDRESS=notifications@example.com \\ -e S3_ENABLED=false \\ -e WEB_DOMAIN=mastodon.example.com `#optional` \\ -e ES_HOST=es `#optional` \\ -e ES_PORT=9200 `#optional` \\ -e ES_USER=elastic `#optional` \\ -e ES_PASS=elastic `#optional` \\ -e S3_BUCKET= `#optional` \\ -e AWS_ACCESS_KEY_ID= `#optional` \\ -e AWS_SECRET_ACCESS_KEY= `#optional` \\ -e S3_ALIAS_HOST= `#optional` \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mastodon:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-mastodon/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-mastodon/#ports-p","text":"Parameter Function 80 Port for web frontend 443 Port for web frontend","title":"Ports (-p)"},{"location":"images/docker-mastodon/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York LOCAL_DOMAIN=example.com This is the unique identifier of your server in the network. It cannot be safely changed later. REDIS_HOST=redis Redis server hostname REDIS_PORT=6379 Redis port DB_HOST=db Postgres database hostname DB_USER=mastodon Postgres username DB_NAME=mastodon Postgres db name DB_PASS=mastodon Postgres password DB_PORT=5432 Portgres port ES_ENABLED=false Enable or disable Elasticsearch (requires a separate ES instance) SECRET_KEY_BASE= Browser session secret. Changing it will break all active browser sessions. OTP_SECRET= MFA secret. Changing it will break two-factor authentication. VAPID_PRIVATE_KEY= Push notification private key. Changing it will break push notifications. VAPID_PUBLIC_KEY= Push notification public key. Changing it will break push notifications. SMTP_SERVER=mail.example.com SMTP server for email notifications SMTP_PORT=25 SMTP server port SMTP_LOGIN= SMTP username SMTP_PASSWORD= SMTP password SMTP_FROM_ADDRESS=notifications@example.com From address for emails send from Mastodon S3_ENABLED=false Enable or disable S3 storage of uploaded files WEB_DOMAIN=mastodon.example.com This can be set if you want your server identifier to be different to the subdomain hosting Mastodon. See https://docs.joinmastodon.org/admin/config/#basic ES_HOST=es Elasticsearch server hostname ES_PORT=9200 Elasticsearch port ES_USER=elastic Elasticsearch username ES_PASS=elastic Elasticsearch password S3_BUCKET= S3 bucket hostname AWS_ACCESS_KEY_ID= S3 bucket access key ID AWS_SECRET_ACCESS_KEY= S3 bucket secret access key S3_ALIAS_HOST= Alternate hostname for object fetching if you are front the S3 connections.","title":"Environment Variables (-e)"},{"location":"images/docker-mastodon/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-mastodon/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-mastodon/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-mastodon/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-mastodon/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-mastodon/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-mastodon/#support-info","text":"Shell access whilst the container is running: docker exec -it mastodon /bin/bash To monitor the logs of the container in realtime: docker logs -f mastodon Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mastodon Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mastodon:latest","title":"Support Info"},{"location":"images/docker-mastodon/#versions","text":"05.11.22: - Initial Release.","title":"Versions"},{"location":"images/docker-medusa/","text":"linuxserver/medusa Medusa is an automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/medusa:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Web interface is at :8081 . Set paths for downloads, tv-shows to match docker mappings via the webui, for more information check out Medusa . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: medusa: image: lscr.io/linuxserver/medusa:latest container_name: medusa environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads - :/tv ports: - 8081:8081 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=medusa \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v :/config \\ -v :/downloads \\ -v :/tv \\ --restart unless-stopped \\ lscr.io/linuxserver/medusa:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8081 The port for the Medusa webui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London Volume Mappings ( -v ) Volume Function /config Medusa config /downloads Download location /tv TV Shows location Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it medusa /bin/bash To monitor the logs of the container in realtime: docker logs -f medusa Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' medusa Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/medusa:latest Versions 12.09.22: - Install ffmpeg for postprocessing. 12.08.22: - Bump unrar to 6.1.7. 28.02.22: - Install python3 requirements for app. 19.01.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 22.09.19: - Switch to python3. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Adding multi arch and pipeline logic 16.08.18: - Rebase to alpine 3.8 08.12.17: - Rebase to alpine 3.7 29.11.17: - Add py-gdbm for subtitles support 26.10.17: - Mediainfo moved from testing to community repo 10.10.17: - Use repo version of mediainfo to shorten build time 05.08.17: - Internal git pull instead of at runtime 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5 02.01.17: - Initial Release","title":"medusa"},{"location":"images/docker-medusa/#linuxservermedusa","text":"Medusa is an automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.","title":"linuxserver/medusa"},{"location":"images/docker-medusa/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/medusa:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-medusa/#application-setup","text":"Web interface is at :8081 . Set paths for downloads, tv-shows to match docker mappings via the webui, for more information check out Medusa .","title":"Application Setup"},{"location":"images/docker-medusa/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-medusa/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: medusa: image: lscr.io/linuxserver/medusa:latest container_name: medusa environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads - :/tv ports: - 8081:8081 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-medusa/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=medusa \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v :/config \\ -v :/downloads \\ -v :/tv \\ --restart unless-stopped \\ lscr.io/linuxserver/medusa:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-medusa/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-medusa/#ports-p","text":"Parameter Function 8081 The port for the Medusa webui","title":"Ports (-p)"},{"location":"images/docker-medusa/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-medusa/#volume-mappings-v","text":"Volume Function /config Medusa config /downloads Download location /tv TV Shows location","title":"Volume Mappings (-v)"},{"location":"images/docker-medusa/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-medusa/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-medusa/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-medusa/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-medusa/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-medusa/#support-info","text":"Shell access whilst the container is running: docker exec -it medusa /bin/bash To monitor the logs of the container in realtime: docker logs -f medusa Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' medusa Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/medusa:latest","title":"Support Info"},{"location":"images/docker-medusa/#versions","text":"12.09.22: - Install ffmpeg for postprocessing. 12.08.22: - Bump unrar to 6.1.7. 28.02.22: - Install python3 requirements for app. 19.01.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 22.09.19: - Switch to python3. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Adding multi arch and pipeline logic 16.08.18: - Rebase to alpine 3.8 08.12.17: - Rebase to alpine 3.7 29.11.17: - Add py-gdbm for subtitles support 26.10.17: - Mediainfo moved from testing to community repo 10.10.17: - Use repo version of mediainfo to shorten build time 05.08.17: - Internal git pull instead of at runtime 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5 02.01.17: - Initial Release","title":"Versions"},{"location":"images/docker-minetest/","text":"linuxserver/minetest Minetest (server) is a near-infinite-world block sandbox game and a game engine, inspired by InfiniMiner, Minecraft, and the like. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/minetest:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup You can find the world maps, mods folder and config files in /config/.minetest. If you want to override the advertised port, ensure you add --port in your CLI_ARGS AND ensure the internal port reflects the change, ie; if you set your advertised port to 40000 with --port 40000 then your ports declaration should be 40000:40000/udp Client and server must be the same version, please browse the tags here to pull the appropriate version for your server: https://hub.docker.com/r/linuxserver/minetest/tags Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: minetest: image: lscr.io/linuxserver/minetest:latest container_name: minetest environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CLI_ARGS=\"--gameid minetest --port 30000\" #optional volumes: - /path/to/data:/config/.minetest ports: - 30000:30000/udp restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=minetest \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CLI_ARGS=\"--gameid minetest --port 30000\" `#optional` \\ -p 30000:30000/udp \\ -v /path/to/data:/config/.minetest \\ --restart unless-stopped \\ lscr.io/linuxserver/minetest:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 30000/udp Port Minetest listens on. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CLI_ARGS=\"--gameid minetest --port 30000\" Optionally specify any CLI variables you want to launch the app with Volume Mappings ( -v ) Volume Function /config/.minetest Where minetest stores config files and maps etc. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it minetest /bin/bash To monitor the logs of the container in realtime: docker logs -f minetest Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' minetest Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/minetest:latest Versions 06.08.22: - Update irrlicht deps. 02.05.22: - Allow specifying the advertised port. 17.03.22: - Install forked irrlicht, add zstd. 19.01.22: - Rebasing to alpine 3.15. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 12.07.19: - Bugfix to support multiple CLI variables. 28.06.19: - Rebasing to alpine 3.10. 03.06.19: - Adding custom cli vars to options. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 04.03.19: - Rebase to alpine 3.9 to compile 5.0.0 minetest with new build args. 14.01.19: - Add pipeline logic and multi arch. 08.08.18: - Rebase to alpine 3.8, build from latest release tag instead of master. 03.01.18: - Deprecate cpu_core routine lack of scaling. 08.12.17: - Rebase to alpine 3.7. 30.11.17: - Use cpu core counting routine to speed up build time. 26.05.17: - Rebase to alpine 3.6. 14.02.17: - Rebase to alpine 3.5. 25.11.16: - Rebase to alpine linux, move to main repo. 27.02.16: - Bump to latest version. 19.02.16: - Change port to UDP, thanks to slashopt for pointing this out. 15.02.16: - Make minetest app a service. 01.02.16: - Add lua-socket dependency. 06.11.15: - Initial Release.","title":"minetest"},{"location":"images/docker-minetest/#linuxserverminetest","text":"Minetest (server) is a near-infinite-world block sandbox game and a game engine, inspired by InfiniMiner, Minecraft, and the like.","title":"linuxserver/minetest"},{"location":"images/docker-minetest/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/minetest:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-minetest/#application-setup","text":"You can find the world maps, mods folder and config files in /config/.minetest. If you want to override the advertised port, ensure you add --port in your CLI_ARGS AND ensure the internal port reflects the change, ie; if you set your advertised port to 40000 with --port 40000 then your ports declaration should be 40000:40000/udp Client and server must be the same version, please browse the tags here to pull the appropriate version for your server: https://hub.docker.com/r/linuxserver/minetest/tags","title":"Application Setup"},{"location":"images/docker-minetest/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-minetest/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: minetest: image: lscr.io/linuxserver/minetest:latest container_name: minetest environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CLI_ARGS=\"--gameid minetest --port 30000\" #optional volumes: - /path/to/data:/config/.minetest ports: - 30000:30000/udp restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-minetest/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=minetest \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CLI_ARGS=\"--gameid minetest --port 30000\" `#optional` \\ -p 30000:30000/udp \\ -v /path/to/data:/config/.minetest \\ --restart unless-stopped \\ lscr.io/linuxserver/minetest:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-minetest/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-minetest/#ports-p","text":"Parameter Function 30000/udp Port Minetest listens on.","title":"Ports (-p)"},{"location":"images/docker-minetest/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CLI_ARGS=\"--gameid minetest --port 30000\" Optionally specify any CLI variables you want to launch the app with","title":"Environment Variables (-e)"},{"location":"images/docker-minetest/#volume-mappings-v","text":"Volume Function /config/.minetest Where minetest stores config files and maps etc.","title":"Volume Mappings (-v)"},{"location":"images/docker-minetest/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-minetest/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-minetest/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-minetest/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-minetest/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-minetest/#support-info","text":"Shell access whilst the container is running: docker exec -it minetest /bin/bash To monitor the logs of the container in realtime: docker logs -f minetest Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' minetest Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/minetest:latest","title":"Support Info"},{"location":"images/docker-minetest/#versions","text":"06.08.22: - Update irrlicht deps. 02.05.22: - Allow specifying the advertised port. 17.03.22: - Install forked irrlicht, add zstd. 19.01.22: - Rebasing to alpine 3.15. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 12.07.19: - Bugfix to support multiple CLI variables. 28.06.19: - Rebasing to alpine 3.10. 03.06.19: - Adding custom cli vars to options. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 04.03.19: - Rebase to alpine 3.9 to compile 5.0.0 minetest with new build args. 14.01.19: - Add pipeline logic and multi arch. 08.08.18: - Rebase to alpine 3.8, build from latest release tag instead of master. 03.01.18: - Deprecate cpu_core routine lack of scaling. 08.12.17: - Rebase to alpine 3.7. 30.11.17: - Use cpu core counting routine to speed up build time. 26.05.17: - Rebase to alpine 3.6. 14.02.17: - Rebase to alpine 3.5. 25.11.16: - Rebase to alpine linux, move to main repo. 27.02.16: - Bump to latest version. 19.02.16: - Change port to UDP, thanks to slashopt for pointing this out. 15.02.16: - Make minetest app a service. 01.02.16: - Add lua-socket dependency. 06.11.15: - Initial Release.","title":"Versions"},{"location":"images/docker-minisatip/","text":"linuxserver/minisatip Minisatip is a multi-threaded satip server version 1.2 that runs under Linux and it was tested with DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C, DVB-C2, ATSC and ISDB-T cards. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/minisatip:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Best used in conjunction with tvheadend There is no setup per se, other than adding your cards for passthrough. You can then use your cards as DVB inputs in apps such as tvheadend. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: minisatip: image: lscr.io/linuxserver/minisatip:latest container_name: minisatip environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - RUN_OPTS= volumes: - /path/to/appdata/config:/config ports: - 8875:8875 - 554:554 - 1900:1900/udp devices: - /dev/dvb:/dev/dvb restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=minisatip \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS= \\ -p 8875:8875 \\ -p 554:554 \\ -p 1900:1900/udp \\ -v /path/to/appdata/config:/config \\ --device /dev/dvb:/dev/dvb \\ --restart unless-stopped \\ lscr.io/linuxserver/minisatip:latest Additional runtime parameters In some cases it might be necessary to start minisatip with additional parameters, for example to configure a unicable LNB. Add the parameters you need and restart the container. Be sure to have the right parameters set as adding the wrong once might lead to the container not starting correctly. For a list of minisatip parameters visit Minisatip page. Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8875 Status Page WebUI 554 RTSP Port 1900/udp App Discovery Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. RUN_OPTS= Specify specific run params for minisatip Volume Mappings ( -v ) Volume Function /config Configuration files and minisatip data Device Mappings ( --device ) Parameter Function /dev/dvb For passing through Tv-cards Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it minisatip /bin/bash To monitor the logs of the container in realtime: docker logs -f minisatip Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' minisatip Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/minisatip:latest Versions 12.11.22: - Rebasing to alpine 3.137, upgrading to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 20.02.19: - Fix run options. 11.02.19: - Add pipeline logic and multi arch. 28.08.18: - Rebase to Alpine 3.8. 13.12.17: - Rebase to Alpine 3.7. 28.05.17: - Rebase to Alpine 3.6. 08.02.17: - Rebase to Alpine 3.5 and only compile libs in dvb-apps. 14.10.16: - Add version layer information. 18.09.16: - Add support for Common Interface. 11.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 15.08.16: - Initial Release.","title":"minisatip"},{"location":"images/docker-minisatip/#linuxserverminisatip","text":"Minisatip is a multi-threaded satip server version 1.2 that runs under Linux and it was tested with DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C, DVB-C2, ATSC and ISDB-T cards.","title":"linuxserver/minisatip"},{"location":"images/docker-minisatip/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/minisatip:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-minisatip/#application-setup","text":"Best used in conjunction with tvheadend There is no setup per se, other than adding your cards for passthrough. You can then use your cards as DVB inputs in apps such as tvheadend.","title":"Application Setup"},{"location":"images/docker-minisatip/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-minisatip/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: minisatip: image: lscr.io/linuxserver/minisatip:latest container_name: minisatip environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - RUN_OPTS= volumes: - /path/to/appdata/config:/config ports: - 8875:8875 - 554:554 - 1900:1900/udp devices: - /dev/dvb:/dev/dvb restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-minisatip/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=minisatip \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS= \\ -p 8875:8875 \\ -p 554:554 \\ -p 1900:1900/udp \\ -v /path/to/appdata/config:/config \\ --device /dev/dvb:/dev/dvb \\ --restart unless-stopped \\ lscr.io/linuxserver/minisatip:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-minisatip/#additional-runtime-parameters","text":"In some cases it might be necessary to start minisatip with additional parameters, for example to configure a unicable LNB. Add the parameters you need and restart the container. Be sure to have the right parameters set as adding the wrong once might lead to the container not starting correctly. For a list of minisatip parameters visit Minisatip page.","title":"Additional runtime parameters"},{"location":"images/docker-minisatip/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-minisatip/#ports-p","text":"Parameter Function 8875 Status Page WebUI 554 RTSP Port 1900/udp App Discovery","title":"Ports (-p)"},{"location":"images/docker-minisatip/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. RUN_OPTS= Specify specific run params for minisatip","title":"Environment Variables (-e)"},{"location":"images/docker-minisatip/#volume-mappings-v","text":"Volume Function /config Configuration files and minisatip data","title":"Volume Mappings (-v)"},{"location":"images/docker-minisatip/#device-mappings-device","text":"Parameter Function /dev/dvb For passing through Tv-cards","title":"Device Mappings (--device)"},{"location":"images/docker-minisatip/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-minisatip/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-minisatip/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-minisatip/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-minisatip/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-minisatip/#support-info","text":"Shell access whilst the container is running: docker exec -it minisatip /bin/bash To monitor the logs of the container in realtime: docker logs -f minisatip Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' minisatip Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/minisatip:latest","title":"Support Info"},{"location":"images/docker-minisatip/#versions","text":"12.11.22: - Rebasing to alpine 3.137, upgrading to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 20.02.19: - Fix run options. 11.02.19: - Add pipeline logic and multi arch. 28.08.18: - Rebase to Alpine 3.8. 13.12.17: - Rebase to Alpine 3.7. 28.05.17: - Rebase to Alpine 3.6. 08.02.17: - Rebase to Alpine 3.5 and only compile libs in dvb-apps. 14.10.16: - Add version layer information. 18.09.16: - Add support for Common Interface. 11.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 15.08.16: - Initial Release.","title":"Versions"},{"location":"images/docker-mstream/","text":"linuxserver/mstream mstream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere. There are mobile apps available for both Android and iPhone. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mstream:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at http://:3000 Settings are adjusted through the web ui or via editing of config.json . For more information check out Mstream . IMPORTANT NOTICE: mStream v5 no longer accepts cli arguments for setting the user and password and requires the use of config.json . Therefore, the environment variables USER , PASSWORD and USE_JSON are deprecated. v4's config.json is not compatible with v5. Existing config.json will be renamed to config.json.v4-bak for your reference and a new default config.json will be created upon upgrade from v4 to v5. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: mstream: image: lscr.io/linuxserver/mstream:latest container_name: mstream environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/music:/music ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=mstream \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/data:/config \\ -v /path/to/music:/music \\ --restart unless-stopped \\ lscr.io/linuxserver/mstream:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 The port for the mStream webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London Volume Mappings ( -v ) Volume Function /config mStream config /music Music location Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it mstream /bin/bash To monitor the logs of the container in realtime: docker logs -f mstream Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mstream Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mstream:latest Versions 05.04.22: - Move sync folder to /config . 02.04.22: - Rebase to alpine 3.15. Fix ffmpeg download. 17.05.21: - Deprecating the env vars USER , PASSWORD and USE_JSON as mStream v5 requires the use of config.json . 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 18.05.19: - Inital Release","title":"mstream"},{"location":"images/docker-mstream/#linuxservermstream","text":"mstream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere. There are mobile apps available for both Android and iPhone.","title":"linuxserver/mstream"},{"location":"images/docker-mstream/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mstream:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-mstream/#application-setup","text":"Access the webui at http://:3000 Settings are adjusted through the web ui or via editing of config.json . For more information check out Mstream .","title":"Application Setup"},{"location":"images/docker-mstream/#important-notice","text":"mStream v5 no longer accepts cli arguments for setting the user and password and requires the use of config.json . Therefore, the environment variables USER , PASSWORD and USE_JSON are deprecated. v4's config.json is not compatible with v5. Existing config.json will be renamed to config.json.v4-bak for your reference and a new default config.json will be created upon upgrade from v4 to v5.","title":"IMPORTANT NOTICE:"},{"location":"images/docker-mstream/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-mstream/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: mstream: image: lscr.io/linuxserver/mstream:latest container_name: mstream environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/music:/music ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-mstream/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=mstream \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/data:/config \\ -v /path/to/music:/music \\ --restart unless-stopped \\ lscr.io/linuxserver/mstream:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-mstream/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-mstream/#ports-p","text":"Parameter Function 3000 The port for the mStream webinterface","title":"Ports (-p)"},{"location":"images/docker-mstream/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-mstream/#volume-mappings-v","text":"Volume Function /config mStream config /music Music location","title":"Volume Mappings (-v)"},{"location":"images/docker-mstream/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-mstream/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-mstream/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-mstream/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-mstream/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-mstream/#support-info","text":"Shell access whilst the container is running: docker exec -it mstream /bin/bash To monitor the logs of the container in realtime: docker logs -f mstream Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mstream Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mstream:latest","title":"Support Info"},{"location":"images/docker-mstream/#versions","text":"05.04.22: - Move sync folder to /config . 02.04.22: - Rebase to alpine 3.15. Fix ffmpeg download. 17.05.21: - Deprecating the env vars USER , PASSWORD and USE_JSON as mStream v5 requires the use of config.json . 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 18.05.19: - Inital Release","title":"Versions"},{"location":"images/docker-musicbrainz/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/musicbrainz MusicBrainz is an open music encyclopedia that collects music metadata and makes it available to the public. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/musicbrainz should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: musicbrainz: image: lscr.io/linuxserver/musicbrainz container_name: musicbrainz environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - BRAINZCODE= - WEBADDRESS= - NPROC= #optional volumes: - :/config - :/data ports: - 5000:5000 restart: unless-stopped docker cli docker run -d \\ --name=musicbrainz \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e BRAINZCODE= \\ -e WEBADDRESS= \\ -e NPROC= `#optional` \\ -p 5000:5000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/musicbrainz Parameters Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Parameter Function -p 5000 WebUI -e PUID=1000 for UserID - see below for explanation -e PGID=1000 for GroupID - see below for explanation -e TZ=Europe/London Specify a timezone to use EG Europe/London -e BRAINZCODE= To enter MusicBrainz code. See Setting up the application -e WEBADDRESS= To set ip for host to allow css to render properly, DO NOT ENTER PORT NUMBER. -e NPROC= To set number of proceses, defaults to 5 if unset. -v /config Config files for musicbrainz. -v /data Data files for musicbrainz. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup For all updates you should pull the latest image, clear all files and folders in /config and /data and reinitiate the database import by (re)starting the docker. We do not officially support upgrading this container in place with existing data sets. If you did not set WEBADDRESS env variable, then AFTER iniatilisation is complete you will need to edit the line sub WEB_SERVER { \"localhost:5000\" } in file /config/DBDefs.pm changing localhost to the ip of your host, this is to allow css to display properly You must register here to receive a MusicBrainz code to allow you to receive database updates, it is free. Get Code here . The initial import and setup of the database can take quite a long time, dependant on your download speed etc, be patient and don't restart the container before it's complete. It appears there are issues with unraid and using /mnt/user/cache/appdata instead of /mnt/cache/appdata, use /mnt/cache/appdata. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it musicbrainz /bin/bash To monitor the logs of the container in realtime: docker logs -f musicbrainz container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' musicbrainz image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/musicbrainz Updating Info Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image. Below are the instructions for updating containers: Via Docker Compose Update all images: docker-compose pull or update a single image: docker-compose pull musicbrainz Let compose update all containers as necessary: docker-compose up -d or update a single container: docker-compose up -d musicbrainz You can also remove the old dangling images: docker image prune Via Docker Run Update the image: docker pull lscr.io/linuxserver/musicbrainz Stop the running container: docker stop musicbrainz Delete the container: docker rm musicbrainz Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved) You can also remove the old dangling images: docker image prune Via Watchtower auto-updater (only use if you don't remember the original parameters) Pull the latest image at its tag and replace it with the same env variables in one run: docker run --rm \\ -v /var/run/docker.sock:/var/run/docker.sock \\ containrrr/watchtower \\ --run-once musicbrainz You can also remove the old dangling images: docker image prune Note: We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using Docker Compose . Image Update Notifications - Diun (Docker Image Update Notifier) We recommend Diun for update notifications. Other tools that automatically update containers unattended are not recommended or supported. Building locally If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-musicbrainz.git cd docker-musicbrainz docker build \\ --no-cache \\ --pull \\ -t lscr.io/linuxserver/musicbrainz:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 . Versions 23.02.21: - Deprecate image as no one stepped up to take over as maintainer. 03.10.20: - Rebase to alpine 3.12, add gettext and move to nodejs-current. 17.05.19: - Update DBDefs.pm to schema 25 database. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 02.03.19: - Revert to alpine 3.8 to fix incompatibilities with frontend build tools. 19.02.19: - Multi Arch and add pipeline logic, rebase to Alpine 3.9 22.08.18: - Bump server version 2018-08-14. 30.06.18: - Bump server version 2018-06-30. 01.06.18: - Bump server version 2018-05-30 , simplify sed and use yarn instead of npm. 14.05.18: - Bump server version 2018-05-09. 26.04.18: - Bump server version 2018-04-23. 09.02.18: - Bump server version 2018-02-09. 24.01.18: - Bump server version 2018-01-24. 10.01.18: - Bump server version 2018-01-10. 31.11.17: - Bump server version 2017-12-21. 30.11.17: - Add NPROC variable to allow number of processes to be set. 30.11.17: - Fix linting recommendations. 30.11.17: - Remove socket on startup if exists (thanks wtf911) re . 24.11.17: - Remove catalyst side bar on new installs. 31.10.17: - Bump server version 2017-10-31. 20.09.17: - Bump server version 2017-09-18. 06.09.17: - Bump server version 2017-09-04. 19.07.17: - Bump server version 2017-07-17. 21.06.17: - Bump server version 2017-06-19. 26.05.17: - Fix later build of postgres using /run instead of /var/run. 26.05.17: - Rebase to alpine 3.6. 15.05.17: - Schema 24 update, recommend full rebuild with new config. 15.04.17: - Bump server version 2017-04-10. 04.04.17: - Bump server version 2017-03-27. 15.03.17: - Bump server version 2017-03-13. 04.03.17: - Bump server version and use nginx to serve web pages. 06.02.17: - Rebase to alpine 3.5. 16.12.16: - Rebase to alpine linux, entailing almost complete rewrite. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README, move to main repository. 20.07.16: - Restructure of docker file for clarity, add maxworkers variable in conjunction with starlet, for parallel requests in multi-core setups, thanks to user baoshan. 03.06.16: - Complete rewrite due to schema change. Rebased back to 14.04 direct Using S6 overaly. 21.03.16: - Bump to latest server release. 16.03.16: - Bump to latest server release. 26.02.16: - Bump to latest server release. 08.02.16: - Switch to PPA version for redis. 03.01.16: - Remove d/l of sitemaps file, missing from last 2 db dumps, move fetch of db/dump higher up initialise routine to allow easier resume of broken downloads. 15.12.15: - Per latest musicbrainz blog, switched to production branch,latest stable code is now production branch in place of master. 10.12.15: - Initial release date.","title":"musicbrainz"},{"location":"images/docker-musicbrainz/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-musicbrainz/#linuxservermusicbrainz","text":"MusicBrainz is an open music encyclopedia that collects music metadata and makes it available to the public.","title":"linuxserver/musicbrainz"},{"location":"images/docker-musicbrainz/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/musicbrainz should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-musicbrainz/#usage","text":"Here are some example snippets to help you get started creating a container.","title":"Usage"},{"location":"images/docker-musicbrainz/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: musicbrainz: image: lscr.io/linuxserver/musicbrainz container_name: musicbrainz environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - BRAINZCODE= - WEBADDRESS= - NPROC= #optional volumes: - :/config - :/data ports: - 5000:5000 restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-musicbrainz/#docker-cli","text":"docker run -d \\ --name=musicbrainz \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e BRAINZCODE= \\ -e WEBADDRESS= \\ -e NPROC= `#optional` \\ -p 5000:5000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/musicbrainz","title":"docker cli"},{"location":"images/docker-musicbrainz/#parameters","text":"Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Parameter Function -p 5000 WebUI -e PUID=1000 for UserID - see below for explanation -e PGID=1000 for GroupID - see below for explanation -e TZ=Europe/London Specify a timezone to use EG Europe/London -e BRAINZCODE= To enter MusicBrainz code. See Setting up the application -e WEBADDRESS= To set ip for host to allow css to render properly, DO NOT ENTER PORT NUMBER. -e NPROC= To set number of proceses, defaults to 5 if unset. -v /config Config files for musicbrainz. -v /data Data files for musicbrainz.","title":"Parameters"},{"location":"images/docker-musicbrainz/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-musicbrainz/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-musicbrainz/#user-group-identifiers","text":"When using volumes ( -v flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-musicbrainz/#application-setup","text":"For all updates you should pull the latest image, clear all files and folders in /config and /data and reinitiate the database import by (re)starting the docker. We do not officially support upgrading this container in place with existing data sets. If you did not set WEBADDRESS env variable, then AFTER iniatilisation is complete you will need to edit the line sub WEB_SERVER { \"localhost:5000\" } in file /config/DBDefs.pm changing localhost to the ip of your host, this is to allow css to display properly You must register here to receive a MusicBrainz code to allow you to receive database updates, it is free. Get Code here . The initial import and setup of the database can take quite a long time, dependant on your download speed etc, be patient and don't restart the container before it's complete. It appears there are issues with unraid and using /mnt/user/cache/appdata instead of /mnt/cache/appdata, use /mnt/cache/appdata.","title":"Application Setup"},{"location":"images/docker-musicbrainz/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-musicbrainz/#support-info","text":"Shell access whilst the container is running: docker exec -it musicbrainz /bin/bash To monitor the logs of the container in realtime: docker logs -f musicbrainz container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' musicbrainz image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/musicbrainz","title":"Support Info"},{"location":"images/docker-musicbrainz/#updating-info","text":"Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image. Below are the instructions for updating containers:","title":"Updating Info"},{"location":"images/docker-musicbrainz/#via-docker-compose","text":"Update all images: docker-compose pull or update a single image: docker-compose pull musicbrainz Let compose update all containers as necessary: docker-compose up -d or update a single container: docker-compose up -d musicbrainz You can also remove the old dangling images: docker image prune","title":"Via Docker Compose"},{"location":"images/docker-musicbrainz/#via-docker-run","text":"Update the image: docker pull lscr.io/linuxserver/musicbrainz Stop the running container: docker stop musicbrainz Delete the container: docker rm musicbrainz Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved) You can also remove the old dangling images: docker image prune","title":"Via Docker Run"},{"location":"images/docker-musicbrainz/#via-watchtower-auto-updater-only-use-if-you-dont-remember-the-original-parameters","text":"Pull the latest image at its tag and replace it with the same env variables in one run: docker run --rm \\ -v /var/run/docker.sock:/var/run/docker.sock \\ containrrr/watchtower \\ --run-once musicbrainz You can also remove the old dangling images: docker image prune Note: We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using Docker Compose .","title":"Via Watchtower auto-updater (only use if you don't remember the original parameters)"},{"location":"images/docker-musicbrainz/#image-update-notifications-diun-docker-image-update-notifier","text":"We recommend Diun for update notifications. Other tools that automatically update containers unattended are not recommended or supported.","title":"Image Update Notifications - Diun (Docker Image Update Notifier)"},{"location":"images/docker-musicbrainz/#building-locally","text":"If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-musicbrainz.git cd docker-musicbrainz docker build \\ --no-cache \\ --pull \\ -t lscr.io/linuxserver/musicbrainz:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 .","title":"Building locally"},{"location":"images/docker-musicbrainz/#versions","text":"23.02.21: - Deprecate image as no one stepped up to take over as maintainer. 03.10.20: - Rebase to alpine 3.12, add gettext and move to nodejs-current. 17.05.19: - Update DBDefs.pm to schema 25 database. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 02.03.19: - Revert to alpine 3.8 to fix incompatibilities with frontend build tools. 19.02.19: - Multi Arch and add pipeline logic, rebase to Alpine 3.9 22.08.18: - Bump server version 2018-08-14. 30.06.18: - Bump server version 2018-06-30. 01.06.18: - Bump server version 2018-05-30 , simplify sed and use yarn instead of npm. 14.05.18: - Bump server version 2018-05-09. 26.04.18: - Bump server version 2018-04-23. 09.02.18: - Bump server version 2018-02-09. 24.01.18: - Bump server version 2018-01-24. 10.01.18: - Bump server version 2018-01-10. 31.11.17: - Bump server version 2017-12-21. 30.11.17: - Add NPROC variable to allow number of processes to be set. 30.11.17: - Fix linting recommendations. 30.11.17: - Remove socket on startup if exists (thanks wtf911) re . 24.11.17: - Remove catalyst side bar on new installs. 31.10.17: - Bump server version 2017-10-31. 20.09.17: - Bump server version 2017-09-18. 06.09.17: - Bump server version 2017-09-04. 19.07.17: - Bump server version 2017-07-17. 21.06.17: - Bump server version 2017-06-19. 26.05.17: - Fix later build of postgres using /run instead of /var/run. 26.05.17: - Rebase to alpine 3.6. 15.05.17: - Schema 24 update, recommend full rebuild with new config. 15.04.17: - Bump server version 2017-04-10. 04.04.17: - Bump server version 2017-03-27. 15.03.17: - Bump server version 2017-03-13. 04.03.17: - Bump server version and use nginx to serve web pages. 06.02.17: - Rebase to alpine 3.5. 16.12.16: - Rebase to alpine linux, entailing almost complete rewrite. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README, move to main repository. 20.07.16: - Restructure of docker file for clarity, add maxworkers variable in conjunction with starlet, for parallel requests in multi-core setups, thanks to user baoshan. 03.06.16: - Complete rewrite due to schema change. Rebased back to 14.04 direct Using S6 overaly. 21.03.16: - Bump to latest server release. 16.03.16: - Bump to latest server release. 26.02.16: - Bump to latest server release. 08.02.16: - Switch to PPA version for redis. 03.01.16: - Remove d/l of sitemaps file, missing from last 2 db dumps, move fetch of db/dump higher up initialise routine to allow easier resume of broken downloads. 15.12.15: - Per latest musicbrainz blog, switched to production branch,latest stable code is now production branch in place of master. 10.12.15: - Initial release date.","title":"Versions"},{"location":"images/docker-muximux/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/muximux Muximux is a lightweight portal to view & manage your HTPC apps without having to run anything more than a PHP enabled webserver. With Muximux you don't need to keep multiple tabs open, or bookmark the URL to all of your apps. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/muximux:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Find the web interface at :80 , set apps you wish to use with muximux via the webui. More info:- Muximux Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: muximux: image: lscr.io/linuxserver/muximux:latest container_name: muximux environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=muximux \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/muximux:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where muximux should store its files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it muximux /bin/bash To monitor the logs of the container in realtime: docker logs -f muximux Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' muximux Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/muximux:latest Versions 21.10.22: - Deprecate image. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 13.09.18: - Rebase to alpine 3.8. 09.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 12.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 30.09.16: - Rebase to alpine linux. 09.09.16: - Add badges to README. 22.02.16: - Initial release date.","title":"muximux"},{"location":"images/docker-muximux/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-muximux/#linuxservermuximux","text":"Muximux is a lightweight portal to view & manage your HTPC apps without having to run anything more than a PHP enabled webserver. With Muximux you don't need to keep multiple tabs open, or bookmark the URL to all of your apps.","title":"linuxserver/muximux"},{"location":"images/docker-muximux/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/muximux:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-muximux/#application-setup","text":"Find the web interface at :80 , set apps you wish to use with muximux via the webui. More info:- Muximux","title":"Application Setup"},{"location":"images/docker-muximux/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-muximux/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: muximux: image: lscr.io/linuxserver/muximux:latest container_name: muximux environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-muximux/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=muximux \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/muximux:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-muximux/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-muximux/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-muximux/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-muximux/#volume-mappings-v","text":"Volume Function /config Where muximux should store its files.","title":"Volume Mappings (-v)"},{"location":"images/docker-muximux/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-muximux/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-muximux/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-muximux/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-muximux/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-muximux/#support-info","text":"Shell access whilst the container is running: docker exec -it muximux /bin/bash To monitor the logs of the container in realtime: docker logs -f muximux Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' muximux Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/muximux:latest","title":"Support Info"},{"location":"images/docker-muximux/#versions","text":"21.10.22: - Deprecate image. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 13.09.18: - Rebase to alpine 3.8. 09.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 12.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 30.09.16: - Rebase to alpine linux. 09.09.16: - Add badges to README. 22.02.16: - Initial release date.","title":"Versions"},{"location":"images/docker-mylar/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/mylar Mylar is an automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mylar should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: mylar: image: lscr.io/linuxserver/mylar container_name: mylar environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/comics - :/downloads ports: - 8090:8090 restart: unless-stopped docker cli docker run -d \\ --name=mylar \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 8090:8090 \\ -v :/config \\ -v :/comics \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/mylar Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8090 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation Volume Mappings ( -v ) Volume Function /config Where mylar should store config files. /comics Map to your comics folder. /downloads Map to your downloads folder. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup THIS IMAGE IS DEPRECATED. Please migrate to Mylar3 . The web ui for settings etc, is on :8090 For more detailed setup refer Mylar . Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it mylar /bin/bash To monitor the logs of the container in realtime: docker logs -f mylar Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mylar Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mylar Versions 21.12.20: - Deprecated. Please migrate to Mylar3 . 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 08.05.19: - Re-install requests pip package to downgrade urllib version suitable for mylar. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 06.07.18: - Add html5lib python package. 14.06.18: - Add requests python package. 12.12.17: - Rebase to alpine 3.7. 21.07.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 19.02.17: - Use quiet option for cleaner console log, app logs to file anyways. 07.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 26.01.16: - Initial release.","title":"mylar"},{"location":"images/docker-mylar/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-mylar/#linuxservermylar","text":"Mylar is an automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents.","title":"linuxserver/mylar"},{"location":"images/docker-mylar/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mylar should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-mylar/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-mylar/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: mylar: image: lscr.io/linuxserver/mylar container_name: mylar environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/comics - :/downloads ports: - 8090:8090 restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-mylar/#docker-cli","text":"docker run -d \\ --name=mylar \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 8090:8090 \\ -v :/config \\ -v :/comics \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/mylar","title":"docker cli"},{"location":"images/docker-mylar/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-mylar/#ports-p","text":"Parameter Function 8090 WebUI","title":"Ports (-p)"},{"location":"images/docker-mylar/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation","title":"Environment Variables (-e)"},{"location":"images/docker-mylar/#volume-mappings-v","text":"Volume Function /config Where mylar should store config files. /comics Map to your comics folder. /downloads Map to your downloads folder.","title":"Volume Mappings (-v)"},{"location":"images/docker-mylar/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-mylar/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-mylar/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-mylar/#application-setup","text":"THIS IMAGE IS DEPRECATED. Please migrate to Mylar3 . The web ui for settings etc, is on :8090 For more detailed setup refer Mylar .","title":"Application Setup"},{"location":"images/docker-mylar/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-mylar/#support-info","text":"Shell access whilst the container is running: docker exec -it mylar /bin/bash To monitor the logs of the container in realtime: docker logs -f mylar Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mylar Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mylar","title":"Support Info"},{"location":"images/docker-mylar/#versions","text":"21.12.20: - Deprecated. Please migrate to Mylar3 . 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 08.05.19: - Re-install requests pip package to downgrade urllib version suitable for mylar. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 06.07.18: - Add html5lib python package. 14.06.18: - Add requests python package. 12.12.17: - Rebase to alpine 3.7. 21.07.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 19.02.17: - Use quiet option for cleaner console log, app logs to file anyways. 07.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 26.01.16: - Initial release.","title":"Versions"},{"location":"images/docker-mylar3/","text":"linuxserver/mylar3 Mylar3 is an automated Comic Book downloader (cbr/cbz) for use with NZB and torrents written in python. It supports SABnzbd, NZBGET, and many torrent clients in addition to DDL. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mylar3:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Mylar3 releases nightly \u2705 Commits to Mylar3 python3-dev branch Application Setup The web ui for settings etc, is on http://SERVERIP:8090 For more detailed setup options, refer to Mylar3 . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: mylar3: image: lscr.io/linuxserver/mylar3:latest container_name: mylar3 environment: - PUID=1000 - PGID=1000 volumes: - /path/to/data:/config - /path/to/comics:/comics - /path/to/downloads:/downloads ports: - 8090:8090 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=mylar3 \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 8090:8090 \\ -v /path/to/data:/config \\ -v /path/to/comics:/comics \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/mylar3:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8090 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation Volume Mappings ( -v ) Volume Function /config Where mylar should store config files. /comics Map to your comics folder. /downloads Map to your downloads folder. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it mylar3 /bin/bash To monitor the logs of the container in realtime: docker logs -f mylar3 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mylar3 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mylar3:latest Versions 12.10.22: - Rebase to alpine 3.16 and upgrade to s6v3. 01.02.22: - Rebase to alpine 3.15. 02.11.21: - Rebase to alpine 3.14. Remove pathlib.py . 25.05.21: - Add libwebp support. 17.05.21: - Add linuxserver wheel index. 23.01.21: - Rebasing to alpine 3.13. 03.01.21: - Output mylar log to docker log. 21.12.20: - Release nightly tag based on commits to upstream python3-dev branch. 28.09.20: - Initial release.","title":"mylar3"},{"location":"images/docker-mylar3/#linuxservermylar3","text":"Mylar3 is an automated Comic Book downloader (cbr/cbz) for use with NZB and torrents written in python. It supports SABnzbd, NZBGET, and many torrent clients in addition to DDL.","title":"linuxserver/mylar3"},{"location":"images/docker-mylar3/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mylar3:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-mylar3/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Mylar3 releases nightly \u2705 Commits to Mylar3 python3-dev branch","title":"Version Tags"},{"location":"images/docker-mylar3/#application-setup","text":"The web ui for settings etc, is on http://SERVERIP:8090 For more detailed setup options, refer to Mylar3 .","title":"Application Setup"},{"location":"images/docker-mylar3/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-mylar3/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: mylar3: image: lscr.io/linuxserver/mylar3:latest container_name: mylar3 environment: - PUID=1000 - PGID=1000 volumes: - /path/to/data:/config - /path/to/comics:/comics - /path/to/downloads:/downloads ports: - 8090:8090 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-mylar3/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=mylar3 \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 8090:8090 \\ -v /path/to/data:/config \\ -v /path/to/comics:/comics \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/mylar3:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-mylar3/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-mylar3/#ports-p","text":"Parameter Function 8090 WebUI","title":"Ports (-p)"},{"location":"images/docker-mylar3/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation","title":"Environment Variables (-e)"},{"location":"images/docker-mylar3/#volume-mappings-v","text":"Volume Function /config Where mylar should store config files. /comics Map to your comics folder. /downloads Map to your downloads folder.","title":"Volume Mappings (-v)"},{"location":"images/docker-mylar3/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-mylar3/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-mylar3/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-mylar3/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-mylar3/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-mylar3/#support-info","text":"Shell access whilst the container is running: docker exec -it mylar3 /bin/bash To monitor the logs of the container in realtime: docker logs -f mylar3 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mylar3 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mylar3:latest","title":"Support Info"},{"location":"images/docker-mylar3/#versions","text":"12.10.22: - Rebase to alpine 3.16 and upgrade to s6v3. 01.02.22: - Rebase to alpine 3.15. 02.11.21: - Rebase to alpine 3.14. Remove pathlib.py . 25.05.21: - Add libwebp support. 17.05.21: - Add linuxserver wheel index. 23.01.21: - Rebasing to alpine 3.13. 03.01.21: - Output mylar log to docker log. 21.12.20: - Release nightly tag based on commits to upstream python3-dev branch. 28.09.20: - Initial release.","title":"Versions"},{"location":"images/docker-mysql-workbench/","text":"linuxserver/mysql-workbench MySQL Workbench is a unified visual tool for database architects, developers, and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mysql-workbench:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u274c armhf \u274c Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: mysql-workbench: image: lscr.io/linuxserver/mysql-workbench:latest container_name: mysql-workbench environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 cap_add: - IPC_LOCK restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=mysql-workbench \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --cap-add=\"IPC_LOCK\" \\ --restart unless-stopped \\ lscr.io/linuxserver/mysql-workbench:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Mysql Workbench desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings. Miscellaneous Options Parameter Function --cap-add= Required for keyring functionality Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it mysql-workbench /bin/bash To monitor the logs of the container in realtime: docker logs -f mysql-workbench Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mysql-workbench Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mysql-workbench:latest Versions 15.09.22: - Migrate to s6v3. 26.07.22: - Rebase on jammy. 20.04.21: - Rebase on focal. 18.01.21: - Update libpython dependency. 26.03.20: - Initial release.","title":"mysql-workbench"},{"location":"images/docker-mysql-workbench/#linuxservermysql-workbench","text":"MySQL Workbench is a unified visual tool for database architects, developers, and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more.","title":"linuxserver/mysql-workbench"},{"location":"images/docker-mysql-workbench/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mysql-workbench:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u274c armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-mysql-workbench/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-mysql-workbench/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-mysql-workbench/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: mysql-workbench: image: lscr.io/linuxserver/mysql-workbench:latest container_name: mysql-workbench environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 cap_add: - IPC_LOCK restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-mysql-workbench/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=mysql-workbench \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --cap-add=\"IPC_LOCK\" \\ --restart unless-stopped \\ lscr.io/linuxserver/mysql-workbench:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-mysql-workbench/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-mysql-workbench/#ports-p","text":"Parameter Function 3000 Mysql Workbench desktop gui.","title":"Ports (-p)"},{"location":"images/docker-mysql-workbench/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-mysql-workbench/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings.","title":"Volume Mappings (-v)"},{"location":"images/docker-mysql-workbench/#miscellaneous-options","text":"Parameter Function --cap-add= Required for keyring functionality","title":"Miscellaneous Options"},{"location":"images/docker-mysql-workbench/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-mysql-workbench/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-mysql-workbench/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-mysql-workbench/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-mysql-workbench/#support-info","text":"Shell access whilst the container is running: docker exec -it mysql-workbench /bin/bash To monitor the logs of the container in realtime: docker logs -f mysql-workbench Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mysql-workbench Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mysql-workbench:latest","title":"Support Info"},{"location":"images/docker-mysql-workbench/#versions","text":"15.09.22: - Migrate to s6v3. 26.07.22: - Rebase on jammy. 20.04.21: - Rebase on focal. 18.01.21: - Update libpython dependency. 26.03.20: - Initial release.","title":"Versions"},{"location":"images/docker-nano-discord-bot/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/nano-discord-bot Nano-discord-bot - A bot used to hook into a self hosted Nano RPC endpoint and discord server to Distribute funds from a faucet account. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lsiodev/nano-discord-bot should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=nano-discord-bot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e WALLET_URL=https://wallet.linuxserver.io/#/nano.linuxserver.io/ \\ -e RPC_URL=https://nano.linuxserver.io:7077 \\ -e FAUCET_KEY=XXXXXXXXXXXXX \\ -e DISCORD_KEY=XXXXXXXXXXXXX \\ -e FAUCET_AMOUNT=\"1000\" \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lsiodev/nano-discord-bot docker-compose Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: nano-discord-bot: image: lsiodev/nano-discord-bot container_name: nano-discord-bot environment: - PUID=1000 - PGID=1000 - WALLET_URL=https://wallet.linuxserver.io/#/nano.linuxserver.io/ - RPC_URL=https://nano.linuxserver.io:7077 - FAUCET_KEY=XXXXXXXXXXXXX - DISCORD_KEY=XXXXXXXXXXXXX - FAUCET_AMOUNT=\"1000\" volumes: - /path/to/data:/config restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation WALLET_URL=https://wallet.linuxserver.io/#/nano.linuxserver.io/ Hosted wallet endpoint to use. RPC_URL=https://nano.linuxserver.io:7077 RPC endpoint to publish blocks to and ingest account information. FAUCET_KEY=XXXXXXXXXXXXX The private key for your faucet account. DISCORD_KEY=XXXXXXXXXXXXX Discord api key for the bot. FAUCET_AMOUNT=\"1000\" Amount to distribute to individual Discord users in Nano. Volume Mappings ( -v ) Volume Function /config Database and Radarr configs Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup With the proper environment variables passed to this container it will automatically reach out to your Nano RPC server and Discord Server. More about setting up a hosted Nano network here . Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above. Support Info Shell access whilst the container is running: docker exec -it nano-discord-bot /bin/bash To monitor the logs of the container in realtime: docker logs -f nano-discord-bot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nano-discord-bot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lsiodev/nano-discord-bot Versions 25.05.20: - Initial Release.","title":"nano-discord-bot"},{"location":"images/docker-nano-discord-bot/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-nano-discord-bot/#linuxservernano-discord-bot","text":"Nano-discord-bot - A bot used to hook into a self hosted Nano RPC endpoint and discord server to Distribute funds from a faucet account.","title":"linuxserver/nano-discord-bot"},{"location":"images/docker-nano-discord-bot/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lsiodev/nano-discord-bot should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-nano-discord-bot/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-nano-discord-bot/#docker","text":"docker create \\ --name=nano-discord-bot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e WALLET_URL=https://wallet.linuxserver.io/#/nano.linuxserver.io/ \\ -e RPC_URL=https://nano.linuxserver.io:7077 \\ -e FAUCET_KEY=XXXXXXXXXXXXX \\ -e DISCORD_KEY=XXXXXXXXXXXXX \\ -e FAUCET_AMOUNT=\"1000\" \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lsiodev/nano-discord-bot","title":"docker"},{"location":"images/docker-nano-discord-bot/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: nano-discord-bot: image: lsiodev/nano-discord-bot container_name: nano-discord-bot environment: - PUID=1000 - PGID=1000 - WALLET_URL=https://wallet.linuxserver.io/#/nano.linuxserver.io/ - RPC_URL=https://nano.linuxserver.io:7077 - FAUCET_KEY=XXXXXXXXXXXXX - DISCORD_KEY=XXXXXXXXXXXXX - FAUCET_AMOUNT=\"1000\" volumes: - /path/to/data:/config restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-nano-discord-bot/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nano-discord-bot/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-nano-discord-bot/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation WALLET_URL=https://wallet.linuxserver.io/#/nano.linuxserver.io/ Hosted wallet endpoint to use. RPC_URL=https://nano.linuxserver.io:7077 RPC endpoint to publish blocks to and ingest account information. FAUCET_KEY=XXXXXXXXXXXXX The private key for your faucet account. DISCORD_KEY=XXXXXXXXXXXXX Discord api key for the bot. FAUCET_AMOUNT=\"1000\" Amount to distribute to individual Discord users in Nano.","title":"Environment Variables (-e)"},{"location":"images/docker-nano-discord-bot/#volume-mappings-v","text":"Volume Function /config Database and Radarr configs","title":"Volume Mappings (-v)"},{"location":"images/docker-nano-discord-bot/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nano-discord-bot/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nano-discord-bot/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nano-discord-bot/#application-setup","text":"With the proper environment variables passed to this container it will automatically reach out to your Nano RPC server and Discord Server. More about setting up a hosted Nano network here .","title":"Application Setup"},{"location":"images/docker-nano-discord-bot/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above.","title":"Docker Mods"},{"location":"images/docker-nano-discord-bot/#support-info","text":"Shell access whilst the container is running: docker exec -it nano-discord-bot /bin/bash To monitor the logs of the container in realtime: docker logs -f nano-discord-bot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nano-discord-bot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lsiodev/nano-discord-bot","title":"Support Info"},{"location":"images/docker-nano-discord-bot/#versions","text":"25.05.20: - Initial Release.","title":"Versions"},{"location":"images/docker-nano-wallet/","text":"linuxserver/nano-wallet Nano-wallet is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions. This container is a simple nginx wrapper for the light wallet located here . You will need to pass a valid RPC host when accessing this container. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nano-wallet:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This container requires a Nano RPC endpoint to communicate with whether a public network or your own, see here for more information. Simply access the container at the URL: http://localhost/#/THE_IP_OR_HOSTNAME_OF_RPC_ENDPOINT Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nano-wallet: image: lscr.io/linuxserver/nano-wallet:latest container_name: nano-wallet ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nano-wallet \\ -p 80:80 \\ --restart unless-stopped \\ lscr.io/linuxserver/nano-wallet:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Webserver port Environment Variables ( -e ) Env Function Volume Mappings ( -v ) Volume Function Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nano-wallet /bin/bash To monitor the logs of the container in realtime: docker logs -f nano-wallet Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nano-wallet Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nano-wallet:latest Versions 01.06.20: - Rebasing to alpine 3.12. 23.05.20: - Initial Release.","title":"nano-wallet"},{"location":"images/docker-nano-wallet/#linuxservernano-wallet","text":"Nano-wallet is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions. This container is a simple nginx wrapper for the light wallet located here . You will need to pass a valid RPC host when accessing this container.","title":"linuxserver/nano-wallet"},{"location":"images/docker-nano-wallet/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nano-wallet:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-nano-wallet/#application-setup","text":"This container requires a Nano RPC endpoint to communicate with whether a public network or your own, see here for more information. Simply access the container at the URL: http://localhost/#/THE_IP_OR_HOSTNAME_OF_RPC_ENDPOINT","title":"Application Setup"},{"location":"images/docker-nano-wallet/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nano-wallet/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nano-wallet: image: lscr.io/linuxserver/nano-wallet:latest container_name: nano-wallet ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nano-wallet/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nano-wallet \\ -p 80:80 \\ --restart unless-stopped \\ lscr.io/linuxserver/nano-wallet:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nano-wallet/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nano-wallet/#ports-p","text":"Parameter Function 80 Webserver port","title":"Ports (-p)"},{"location":"images/docker-nano-wallet/#environment-variables-e","text":"Env Function","title":"Environment Variables (-e)"},{"location":"images/docker-nano-wallet/#volume-mappings-v","text":"Volume Function","title":"Volume Mappings (-v)"},{"location":"images/docker-nano-wallet/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nano-wallet/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nano-wallet/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nano-wallet/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nano-wallet/#support-info","text":"Shell access whilst the container is running: docker exec -it nano-wallet /bin/bash To monitor the logs of the container in realtime: docker logs -f nano-wallet Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nano-wallet Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nano-wallet:latest","title":"Support Info"},{"location":"images/docker-nano-wallet/#versions","text":"01.06.20: - Rebasing to alpine 3.12. 23.05.20: - Initial Release.","title":"Versions"},{"location":"images/docker-nano/","text":"linuxserver/nano Nano is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nano:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Nano releases beta \u2705 Beta Nano releases Application Setup Your Genesis account By default this container will launch with a genesis block based on the private key 0000000000000000000000000000000000000000000000000000000000000000 , this should obviously only ever be used for testing purposes. Before you run your node you should use a script baked into this image to determine your private key and required environment variables: docker run --rm --entrypoint /genesis.sh linuxserver/nano Generating Genesis block !!!!!!! ACCOUNT INFO SAVE THIS INFORMATION IT WILL NOT BE SHOWN AGAIN !!!!!!!! Private Key: CD4CD6B1E5523D4B5AEDD2B1E5A447C6C6797E729A531A95F9AD7937FC7CD9EA Public Key: 2D057DF2EB09E918D3F95B5FCA69A5FD3EA406EF7D1810106324CD7A99FAA32D Account: nano_1da7hqsgp4hb55bzkptzsbntdzbyni5gyzar41a88b8fhcezoasfjkgmyk5y !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Container Environment Values: -e LIVE_GENESIS_PUB=2D057DF2EB09E918D3F95B5FCA69A5FD3EA406EF7D1810106324CD7A99FAA32D \\ -e LIVE_GENESIS_ACCOUNT=nano_1da7hqsgp4hb55bzkptzsbntdzbyni5gyzar41a88b8fhcezoasfjkgmyk5y \\ -e LIVE_GENESIS_WORK=7fd88e48684600b7 \\ -e LIVE_GENESIS_SIG=D1DF3A64BB43C131944401632215569A40AAE858ACF6CB59D5C77070E69DBF6435D93807877628A8B142DBF1AC4C562CD2F4CEBEB7D15486BDB7494A6146E007 \\ These environment variables will be used for all of the peers in your payment network, but if you are running what you would consider a public or live network never share your private key even if you have drained the funds from that account it can be potentionally used to create valid forks. Even Better , you should never even trust our Docker image for generating a private key and open block. Do it on an airgapped machine and keep it on a paper wallet. RPC Proxy settings By default this container will enable RPC control and publish a custom service that acts as an RPC firewall giving you the ability to whitelist specific RPC calls and overide/add default values. The default proxy config is stored in /config/rpc-proxy.json : { \"port\":3000, \"httpsport\":3001, \"rpchost\":\"127.0.0.1\", \"rpcport\":7076, \"certfile\":\"/config/ssl/cert.crt\", \"keyfile\":\"/config/ssl/cert.key\", \"whitelist\":[ \"account_info\", \"account_history\", \"block_count\", \"block_info\", \"pending\", \"process\" ], \"overrides\":{ \"account-history\":{ \"count\":\"64\" }, \"pending\":{ \"count\":\"8\" } } } This should be a minimal amount of RPC access needed to run a local light wallet against this endpoint. If you plan on having your network users only run clientside light wallets (local blake2b block generation and block process call publishing) you should publically publish this port for access for both port 7076 and 7077. For functional light wallets on Https endpoints we will generate a self signed cert/key combo but you should add the ones associated with your domain. This will allow yours and other https hosted light wallets to hit your RPC endpoint clientside from the users web browser. Outside of potential https tunneling and actual object parsing (will remove duplicate keys) this is not a conventional API, it simply acts as a firewall and will send and return data just like a local RPC server would. The goal is to be compatible with any existing Nano software if the developers decide to add the ability to connect to alternative network endpoints. Our Proxy has not been audited by any security team and is provided as is, though we make the best effort to keep it simple and secure Node configuration via environment Before you get started please review the configuration docs here We will pass the CLI_OPTIONS to the node, here is a run command example: -e CLI_OPTIONS='--config node.preconfigured_peers=[\"peering.yourhost.com\",\"peering.yourhost2.com\"] \\ --config node.enable_voting=true' There are many options to know here to run an actual live node especially peering and voting, again please review the docs if you plan to run something outside of a local setup. Quickstart Guide Here we are going to cover the bare minimum commands needed to spinup a local payment network and wallet. First spinup your containers: docker run -d \\ --name node \\ -e CLI_OPTIONS='--config node.enable_voting=true' \\ -p 7076:3000 \\ --restart unless-stopped \\ linuxserver/nano docker run -d \\ --name=wallet \\ -p 80:80 \\ --restart unless-stopped \\ linuxserver/nano-wallet Then unlock the Genesis funds on the local node to allow it to confirm transactions: docker exec -it node bash root@f1df092971f0:/# curl -d '{ \"action\": \"wallet_create\" }' localhost:7076 { \"wallet\": \"A3D63F1B28AC68BCD9E0FF74278C7984A36841C803EF1A81DF92BCD6E3BB18F9\" } root@f1df092971f0:/# curl -d '{ \"action\": \"wallet_add\", \"wallet\": \"A3D63F1B28AC68BCD9E0FF74278C7984A36841C803EF1A81DF92BCD6E3BB18F9\", \"key\": \"0000000000000000000000000000000000000000000000000000000000000000\" }' localhost:7076 { \"account\": \"nano_18gmu6engqhgtjnppqam181o5nfhj4sdtgyhy36dan3jr9spt84rzwmktafc\" } Here we are using the default private key of 0000000000000000000000000000000000000000000000000000000000000000 for the image. Navigate to http://localhost/#/localhost and enter this key. You should be greeted by the genesis account wallet with 340.28 Million Nano. From here you can generate new wallets from the home screen and send/receive funds on your local network. Now you will be running an insecure centralized network with a single voting representative and a zero security private key using the commands above. To spinup a standard private or even public network you should read up on Nano's documentation HERE and continue reading the network design section below. Network design There are 4 main concepts to grasp from a network standpoint as far as types of endpoints. Before we get started here is a basic network diagram: Principle nodes and voting representatives Principle nodes are network representatives with the ability to vote due to having a certain threshold of funds unlocked on that node or pointed to that unlocked address. These nodes should be as airgapped as possible while still being an active 24/7 peer of the network. From a tecnical perspective this is a node with an account private key that either has the funds it needs itself or enough users have pointed their accounts to it as a representative. In a live and secure configuration to protect the funds of this account you would use an inactive private key account with the funds in it and locally sign a change of representative block to point to the always online representative. These nodes should never process external RPC calls even on a local network, the same rules go for any node with a local unlocked wallet. Keep in mind the key to the security of the network is that 51% of the funds are pointed to trusted representatives that will generally not argue about chain forks. In most deployments the best bet is to heavily centralize your voting nodes, this is unless you are intentionally trying to build a distributed ledger and security model like the main Nano live net. Achieving that will be a long and difficult task. Network peers To a normal user simply transacting on the network using off the shelf tools like a web wallet and web based block explorers is generally all that is required. They get a number in a ledger somewhere and are able to locally sign and publish blocks using their private key using your published RPC endpoints. For advanced users and just to generally make the network more robust, network operators should promote people running their own nodes. Using this image a network peer simply needs to run a docker run command with your pre-configured variables. IE given the generation example from above in the Your Genesis account section: docker create \\ --name=nano \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PEER_HOST=peering.mydomain.com \\ -e LIVE_GENESIS_PUB=2D057DF2EB09E918D3F95B5FCA69A5FD3EA406EF7D1810106324CD7A99FAA32D \\ -e LIVE_GENESIS_ACCOUNT=nano_1da7hqsgp4hb55bzkptzsbntdzbyni5gyzar41a88b8fhcezoasfjkgmyk5y \\ -e LIVE_GENESIS_WORK=7fd88e48684600b7 \\ -e LIVE_GENESIS_SIG=D1DF3A64BB43C131944401632215569A40AAE858ACF6CB59D5C77070E69DBF6435D93807877628A8B142DBF1AC4C562CD2F4CEBEB7D15486BDB7494A6146E007 \\ -p 8075:8075 \\ -p 7076:3000 \\ -p 7077:3001 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ linuxserver/nano When the container spins up it will reach out to the node to bootstrap it's local ledger from peering.mydomain.com . This node once fully synced will be able to run local RPC commands to plug into a wallet and default Nano node wallet commands for automated pocketing of transactions etc. It will also get a list of other peers on the network from it's initial network peering and start participating in your distributed cryptocurrency network. Public RPC endpoints The key to users going to a webpage and managing the funds on your network is the ability to get blockchain information and publish new blocks to theirs. As mentioned earlier we bundle a basic firewall with a core set of RPC functions whitelisted that should be safe to expose publically. From a network design perspective these nodes should be purely what you would consider client peers and never have any wallets registered or private keys stored on them. Also for redundancy optmimally these peers should be run in a cluster behind a load balancer. For standard nodes you are building out a large P2P network, but in the case of the RPC endpoint and specifically the URL the end user is going to pass when accessing their wallet it is up to you to make that resilient. Clientside javascript wallet Currently we publish a pure javascript clientside wallet located here: https://github.com/linuxserver/nano-wallet It is designed to be run 100% clientside in any web browser and use public RPC endpoints to hook into any network and conduct transactions by locally signing then publishing the result. This can be hosted locally with any simple webserver and pointed to a locally run peer, but for full functionality we reccomend providing a public Https URL with these files along with plugging in legitamite SSL certificates into your RPC endpoints running on 7077. Running a node on the LinuxServer network We maintain our own network which users can get funds to transact on from our Discord server. If you would like to run a node on our network here is our Docker run command: docker create \\ --name=lsio-node \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PEER_HOST=peering.linuxserver.io \\ -e LIVE_GENESIS_PUB=79F2E157B5667F1C8B6CCB6DF691DAC032B85DEC39E231D29976DCED05F5B1BE \\ -e LIVE_GENESIS_ACCOUNT=nano_1yhkw7ducsmz5k7pskufytaxoi3kq3gyrgh489bbkxpwxn4zdefyn4rmrrkk \\ -e LIVE_GENESIS_WORK=c51204c6b69384cb \\ -e LIVE_GENESIS_SIG=90DDE7B4DC038811180FF5DDE8594F1774542A7AADE3DB71A57AA38A5AED42672E1E8D7ACFAC315BDB0EB5DCB542C610B9C49B2560AE575073855259AF065509 \\ -p 8075:8075 \\ -p 7076:3000 \\ -p 7077:3001 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ linuxserver/nano Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nano: image: lscr.io/linuxserver/nano:latest container_name: nano environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PEER_HOST=localhost #optional - LIVE_GENESIS_PUB=GENESIS_PUBLIC #optional - LIVE_GENESIS_ACCOUNT=nano_xxxxxx #optional - LIVE_GENESIS_WORK=WORK_FOR_BLOCK #optional - LIVE_GENESIS_SIG=BLOCK_SIGNATURE #optional - CLI_OPTIONS=--config node.enable_voting=true #optional - LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z #optional volumes: - /path/to/data:/config ports: - 8075:8075 - 7076:3000 - 7077:3001 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nano \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PEER_HOST=localhost `#optional` \\ -e LIVE_GENESIS_PUB=GENESIS_PUBLIC `#optional` \\ -e LIVE_GENESIS_ACCOUNT=nano_xxxxxx `#optional` \\ -e LIVE_GENESIS_WORK=WORK_FOR_BLOCK `#optional` \\ -e LIVE_GENESIS_SIG=BLOCK_SIGNATURE `#optional` \\ -e CLI_OPTIONS=--config node.enable_voting=true `#optional` \\ -e LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z `#optional` \\ -p 8075:8075 \\ -p 7076:3000 \\ -p 7077:3001 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/nano:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8075 Nano communication port 3000 RPC interface filtered through a proxy 3001 Https RPC interface filtered through a proxy Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PEER_HOST=localhost Default peer host (can be overidden with an array by command line options) LIVE_GENESIS_PUB=GENESIS_PUBLIC Genesis block public key LIVE_GENESIS_ACCOUNT=nano_xxxxxx Genesis block account LIVE_GENESIS_WORK=WORK_FOR_BLOCK Genesis block proof of work LIVE_GENESIS_SIG=BLOCK_SIGNATURE Genesis block signature CLI_OPTIONS=--config node.enable_voting=true Node run command cli args LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z HTTP/HTTPS endpoint to download a 7z file with the data.ldb to bootstrap to this node Volume Mappings ( -v ) Volume Function /config Main storage for config and blockchain Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nano /bin/bash To monitor the logs of the container in realtime: docker logs -f nano Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nano Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nano:latest Versions 02.06.20: - Rebase to Alpine 3.12. 28.05.20: - Add beta tag. 17.05.20: - Initial Release.","title":"nano"},{"location":"images/docker-nano/#linuxservernano","text":"Nano is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions.","title":"linuxserver/nano"},{"location":"images/docker-nano/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nano:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-nano/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Nano releases beta \u2705 Beta Nano releases","title":"Version Tags"},{"location":"images/docker-nano/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-nano/#your-genesis-account","text":"By default this container will launch with a genesis block based on the private key 0000000000000000000000000000000000000000000000000000000000000000 , this should obviously only ever be used for testing purposes. Before you run your node you should use a script baked into this image to determine your private key and required environment variables: docker run --rm --entrypoint /genesis.sh linuxserver/nano Generating Genesis block !!!!!!! ACCOUNT INFO SAVE THIS INFORMATION IT WILL NOT BE SHOWN AGAIN !!!!!!!! Private Key: CD4CD6B1E5523D4B5AEDD2B1E5A447C6C6797E729A531A95F9AD7937FC7CD9EA Public Key: 2D057DF2EB09E918D3F95B5FCA69A5FD3EA406EF7D1810106324CD7A99FAA32D Account: nano_1da7hqsgp4hb55bzkptzsbntdzbyni5gyzar41a88b8fhcezoasfjkgmyk5y !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Container Environment Values: -e LIVE_GENESIS_PUB=2D057DF2EB09E918D3F95B5FCA69A5FD3EA406EF7D1810106324CD7A99FAA32D \\ -e LIVE_GENESIS_ACCOUNT=nano_1da7hqsgp4hb55bzkptzsbntdzbyni5gyzar41a88b8fhcezoasfjkgmyk5y \\ -e LIVE_GENESIS_WORK=7fd88e48684600b7 \\ -e LIVE_GENESIS_SIG=D1DF3A64BB43C131944401632215569A40AAE858ACF6CB59D5C77070E69DBF6435D93807877628A8B142DBF1AC4C562CD2F4CEBEB7D15486BDB7494A6146E007 \\ These environment variables will be used for all of the peers in your payment network, but if you are running what you would consider a public or live network never share your private key even if you have drained the funds from that account it can be potentionally used to create valid forks. Even Better , you should never even trust our Docker image for generating a private key and open block. Do it on an airgapped machine and keep it on a paper wallet.","title":"Your Genesis account"},{"location":"images/docker-nano/#rpc-proxy-settings","text":"By default this container will enable RPC control and publish a custom service that acts as an RPC firewall giving you the ability to whitelist specific RPC calls and overide/add default values. The default proxy config is stored in /config/rpc-proxy.json : { \"port\":3000, \"httpsport\":3001, \"rpchost\":\"127.0.0.1\", \"rpcport\":7076, \"certfile\":\"/config/ssl/cert.crt\", \"keyfile\":\"/config/ssl/cert.key\", \"whitelist\":[ \"account_info\", \"account_history\", \"block_count\", \"block_info\", \"pending\", \"process\" ], \"overrides\":{ \"account-history\":{ \"count\":\"64\" }, \"pending\":{ \"count\":\"8\" } } } This should be a minimal amount of RPC access needed to run a local light wallet against this endpoint. If you plan on having your network users only run clientside light wallets (local blake2b block generation and block process call publishing) you should publically publish this port for access for both port 7076 and 7077. For functional light wallets on Https endpoints we will generate a self signed cert/key combo but you should add the ones associated with your domain. This will allow yours and other https hosted light wallets to hit your RPC endpoint clientside from the users web browser. Outside of potential https tunneling and actual object parsing (will remove duplicate keys) this is not a conventional API, it simply acts as a firewall and will send and return data just like a local RPC server would. The goal is to be compatible with any existing Nano software if the developers decide to add the ability to connect to alternative network endpoints. Our Proxy has not been audited by any security team and is provided as is, though we make the best effort to keep it simple and secure","title":"RPC Proxy settings"},{"location":"images/docker-nano/#node-configuration-via-environment","text":"Before you get started please review the configuration docs here We will pass the CLI_OPTIONS to the node, here is a run command example: -e CLI_OPTIONS='--config node.preconfigured_peers=[\"peering.yourhost.com\",\"peering.yourhost2.com\"] \\ --config node.enable_voting=true' There are many options to know here to run an actual live node especially peering and voting, again please review the docs if you plan to run something outside of a local setup.","title":"Node configuration via environment"},{"location":"images/docker-nano/#quickstart-guide","text":"Here we are going to cover the bare minimum commands needed to spinup a local payment network and wallet. First spinup your containers: docker run -d \\ --name node \\ -e CLI_OPTIONS='--config node.enable_voting=true' \\ -p 7076:3000 \\ --restart unless-stopped \\ linuxserver/nano docker run -d \\ --name=wallet \\ -p 80:80 \\ --restart unless-stopped \\ linuxserver/nano-wallet Then unlock the Genesis funds on the local node to allow it to confirm transactions: docker exec -it node bash root@f1df092971f0:/# curl -d '{ \"action\": \"wallet_create\" }' localhost:7076 { \"wallet\": \"A3D63F1B28AC68BCD9E0FF74278C7984A36841C803EF1A81DF92BCD6E3BB18F9\" } root@f1df092971f0:/# curl -d '{ \"action\": \"wallet_add\", \"wallet\": \"A3D63F1B28AC68BCD9E0FF74278C7984A36841C803EF1A81DF92BCD6E3BB18F9\", \"key\": \"0000000000000000000000000000000000000000000000000000000000000000\" }' localhost:7076 { \"account\": \"nano_18gmu6engqhgtjnppqam181o5nfhj4sdtgyhy36dan3jr9spt84rzwmktafc\" } Here we are using the default private key of 0000000000000000000000000000000000000000000000000000000000000000 for the image. Navigate to http://localhost/#/localhost and enter this key. You should be greeted by the genesis account wallet with 340.28 Million Nano. From here you can generate new wallets from the home screen and send/receive funds on your local network. Now you will be running an insecure centralized network with a single voting representative and a zero security private key using the commands above. To spinup a standard private or even public network you should read up on Nano's documentation HERE and continue reading the network design section below.","title":"Quickstart Guide"},{"location":"images/docker-nano/#network-design","text":"There are 4 main concepts to grasp from a network standpoint as far as types of endpoints. Before we get started here is a basic network diagram:","title":"Network design"},{"location":"images/docker-nano/#principle-nodes-and-voting-representatives","text":"Principle nodes are network representatives with the ability to vote due to having a certain threshold of funds unlocked on that node or pointed to that unlocked address. These nodes should be as airgapped as possible while still being an active 24/7 peer of the network. From a tecnical perspective this is a node with an account private key that either has the funds it needs itself or enough users have pointed their accounts to it as a representative. In a live and secure configuration to protect the funds of this account you would use an inactive private key account with the funds in it and locally sign a change of representative block to point to the always online representative. These nodes should never process external RPC calls even on a local network, the same rules go for any node with a local unlocked wallet. Keep in mind the key to the security of the network is that 51% of the funds are pointed to trusted representatives that will generally not argue about chain forks. In most deployments the best bet is to heavily centralize your voting nodes, this is unless you are intentionally trying to build a distributed ledger and security model like the main Nano live net. Achieving that will be a long and difficult task.","title":"Principle nodes and voting representatives"},{"location":"images/docker-nano/#network-peers","text":"To a normal user simply transacting on the network using off the shelf tools like a web wallet and web based block explorers is generally all that is required. They get a number in a ledger somewhere and are able to locally sign and publish blocks using their private key using your published RPC endpoints. For advanced users and just to generally make the network more robust, network operators should promote people running their own nodes. Using this image a network peer simply needs to run a docker run command with your pre-configured variables. IE given the generation example from above in the Your Genesis account section: docker create \\ --name=nano \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PEER_HOST=peering.mydomain.com \\ -e LIVE_GENESIS_PUB=2D057DF2EB09E918D3F95B5FCA69A5FD3EA406EF7D1810106324CD7A99FAA32D \\ -e LIVE_GENESIS_ACCOUNT=nano_1da7hqsgp4hb55bzkptzsbntdzbyni5gyzar41a88b8fhcezoasfjkgmyk5y \\ -e LIVE_GENESIS_WORK=7fd88e48684600b7 \\ -e LIVE_GENESIS_SIG=D1DF3A64BB43C131944401632215569A40AAE858ACF6CB59D5C77070E69DBF6435D93807877628A8B142DBF1AC4C562CD2F4CEBEB7D15486BDB7494A6146E007 \\ -p 8075:8075 \\ -p 7076:3000 \\ -p 7077:3001 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ linuxserver/nano When the container spins up it will reach out to the node to bootstrap it's local ledger from peering.mydomain.com . This node once fully synced will be able to run local RPC commands to plug into a wallet and default Nano node wallet commands for automated pocketing of transactions etc. It will also get a list of other peers on the network from it's initial network peering and start participating in your distributed cryptocurrency network.","title":"Network peers"},{"location":"images/docker-nano/#public-rpc-endpoints","text":"The key to users going to a webpage and managing the funds on your network is the ability to get blockchain information and publish new blocks to theirs. As mentioned earlier we bundle a basic firewall with a core set of RPC functions whitelisted that should be safe to expose publically. From a network design perspective these nodes should be purely what you would consider client peers and never have any wallets registered or private keys stored on them. Also for redundancy optmimally these peers should be run in a cluster behind a load balancer. For standard nodes you are building out a large P2P network, but in the case of the RPC endpoint and specifically the URL the end user is going to pass when accessing their wallet it is up to you to make that resilient.","title":"Public RPC endpoints"},{"location":"images/docker-nano/#clientside-javascript-wallet","text":"Currently we publish a pure javascript clientside wallet located here: https://github.com/linuxserver/nano-wallet It is designed to be run 100% clientside in any web browser and use public RPC endpoints to hook into any network and conduct transactions by locally signing then publishing the result. This can be hosted locally with any simple webserver and pointed to a locally run peer, but for full functionality we reccomend providing a public Https URL with these files along with plugging in legitamite SSL certificates into your RPC endpoints running on 7077.","title":"Clientside javascript wallet"},{"location":"images/docker-nano/#running-a-node-on-the-linuxserver-network","text":"We maintain our own network which users can get funds to transact on from our Discord server. If you would like to run a node on our network here is our Docker run command: docker create \\ --name=lsio-node \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PEER_HOST=peering.linuxserver.io \\ -e LIVE_GENESIS_PUB=79F2E157B5667F1C8B6CCB6DF691DAC032B85DEC39E231D29976DCED05F5B1BE \\ -e LIVE_GENESIS_ACCOUNT=nano_1yhkw7ducsmz5k7pskufytaxoi3kq3gyrgh489bbkxpwxn4zdefyn4rmrrkk \\ -e LIVE_GENESIS_WORK=c51204c6b69384cb \\ -e LIVE_GENESIS_SIG=90DDE7B4DC038811180FF5DDE8594F1774542A7AADE3DB71A57AA38A5AED42672E1E8D7ACFAC315BDB0EB5DCB542C610B9C49B2560AE575073855259AF065509 \\ -p 8075:8075 \\ -p 7076:3000 \\ -p 7077:3001 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ linuxserver/nano","title":"Running a node on the LinuxServer network"},{"location":"images/docker-nano/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nano/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nano: image: lscr.io/linuxserver/nano:latest container_name: nano environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PEER_HOST=localhost #optional - LIVE_GENESIS_PUB=GENESIS_PUBLIC #optional - LIVE_GENESIS_ACCOUNT=nano_xxxxxx #optional - LIVE_GENESIS_WORK=WORK_FOR_BLOCK #optional - LIVE_GENESIS_SIG=BLOCK_SIGNATURE #optional - CLI_OPTIONS=--config node.enable_voting=true #optional - LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z #optional volumes: - /path/to/data:/config ports: - 8075:8075 - 7076:3000 - 7077:3001 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nano/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nano \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PEER_HOST=localhost `#optional` \\ -e LIVE_GENESIS_PUB=GENESIS_PUBLIC `#optional` \\ -e LIVE_GENESIS_ACCOUNT=nano_xxxxxx `#optional` \\ -e LIVE_GENESIS_WORK=WORK_FOR_BLOCK `#optional` \\ -e LIVE_GENESIS_SIG=BLOCK_SIGNATURE `#optional` \\ -e CLI_OPTIONS=--config node.enable_voting=true `#optional` \\ -e LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z `#optional` \\ -p 8075:8075 \\ -p 7076:3000 \\ -p 7077:3001 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/nano:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nano/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nano/#ports-p","text":"Parameter Function 8075 Nano communication port 3000 RPC interface filtered through a proxy 3001 Https RPC interface filtered through a proxy","title":"Ports (-p)"},{"location":"images/docker-nano/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PEER_HOST=localhost Default peer host (can be overidden with an array by command line options) LIVE_GENESIS_PUB=GENESIS_PUBLIC Genesis block public key LIVE_GENESIS_ACCOUNT=nano_xxxxxx Genesis block account LIVE_GENESIS_WORK=WORK_FOR_BLOCK Genesis block proof of work LIVE_GENESIS_SIG=BLOCK_SIGNATURE Genesis block signature CLI_OPTIONS=--config node.enable_voting=true Node run command cli args LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z HTTP/HTTPS endpoint to download a 7z file with the data.ldb to bootstrap to this node","title":"Environment Variables (-e)"},{"location":"images/docker-nano/#volume-mappings-v","text":"Volume Function /config Main storage for config and blockchain","title":"Volume Mappings (-v)"},{"location":"images/docker-nano/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nano/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nano/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nano/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nano/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nano/#support-info","text":"Shell access whilst the container is running: docker exec -it nano /bin/bash To monitor the logs of the container in realtime: docker logs -f nano Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nano Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nano:latest","title":"Support Info"},{"location":"images/docker-nano/#versions","text":"02.06.20: - Rebase to Alpine 3.12. 28.05.20: - Add beta tag. 17.05.20: - Initial Release.","title":"Versions"},{"location":"images/docker-netbootxyz/","text":"linuxserver/netbootxyz Netbootxyz is a way to PXE boot various operating system installers or utilities from one place within the BIOS without the need of having to go retrieve the media to run the tool. iPXE is used to provide a user friendly menu from within the BIOS that lets you easily choose the operating system you want along with any specific types of versions or bootable flags. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/netbootxyz:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Web application for full self hosting tftp \u2705 TFTP server only with NETBOOT.XYZ boot files Application Setup To use this image you need an existing DHCP server where you can set this TFTP server as your DHCP boot destination. This image does not contain a DHCP server nor do we aim to support one in the future. This is simply a TFTP server hosting the latest IPXE kernel builds from netboot.xyz . If you are interested in their project and lack the ability to setup a DHCP server to boot this payload they also have USB stick images you can use available on their downloads page . Router Setup Examples PFSense Services -> DHCP Server Set both the option for \"TFTP Server\" and the options under the Advanced \"Network Booting\" section. * check enable * Next server- IP used for TFTP Server * Default BIOS file name- netboot.xyz.kpxe * UEFI 32 bit file name- netboot.xyz.efi * UEFI 64 bit file name- netboot.xyz.efi OPNsense Services -> DHCP Server Under the Advanced \"Network Booting\" section. * check enable * Next server- IP of docker host * Default BIOS file name- netboot.xyz.kpxe * UEFI 32 bit file name- netboot.xyz.efi * UEFI 64 bit file name- netboot.xyz.efi Unifi Security Gateway (with the controller) Networks -> LAN (or the network you want to boot from) -> ADVANCED DHCP OPTIONS * tick Enable network boot * Server- YOURSERVERIP * Filename- netboot.xyz.kpxe EdgeOS/VyOS Connect via SSH configure set service dhcp-server use-dnsmasq enable set service dns forwarding options \"dhcp-match=set:bios,60,PXEClient:Arch:00000\" set service dns forwarding options \"dhcp-boot=tag:bios,netboot.xyz.kpxe,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi32,60,PXEClient:Arch:00002\" set service dns forwarding options \"dhcp-boot=tag:efi32,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi32-1,60,PXEClient:Arch:00006\" set service dns forwarding options \"dhcp-boot=tag:efi32-1,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi64,60,PXEClient:Arch:00007\" set service dns forwarding options \"dhcp-boot=tag:efi64,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi64-1,60,PXEClient:Arch:00008\" set service dns forwarding options \"dhcp-boot=tag:efi64-1,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi64-2,60,PXEClient:Arch:00009\" set service dns forwarding options \"dhcp-boot=tag:efi64-2,netboot.xyz.efi,,SERVERIP\" commit; save DD-WRT Administration -> Services -> Additional DNSMasq Options Set the following lines: dhcp-match=set:bios,60,PXEClient:Arch:00000 dhcp-boot=tag:bios,netboot.xyz.kpxe,,YOURSERVERIP dhcp-match=set:efi32,60,PXEClient:Arch:00002 dhcp-boot=tag:efi32,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi32-1,60,PXEClient:Arch:00006 dhcp-boot=tag:efi32-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64,60,PXEClient:Arch:00007 dhcp-boot=tag:efi64,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-1,60,PXEClient:Arch:00008 dhcp-boot=tag:efi64-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-2,60,PXEClient:Arch:00009 dhcp-boot=tag:efi64-2,netboot.xyz.efi,,YOURSERVERIP Tomato Advanced -> DHCP/DNS -> Dnsmasq Custom configuration Set the following lines: dhcp-match=set:bios,60,PXEClient:Arch:00000 dhcp-boot=tag:bios,netboot.xyz.kpxe,,YOURSERVERIP dhcp-match=set:efi32,60,PXEClient:Arch:00002 dhcp-boot=tag:efi32,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi32-1,60,PXEClient:Arch:00006 dhcp-boot=tag:efi32-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64,60,PXEClient:Arch:00007 dhcp-boot=tag:efi64,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-1,60,PXEClient:Arch:00008 dhcp-boot=tag:efi64-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-2,60,PXEClient:Arch:00009 dhcp-boot=tag:efi64-2,netboot.xyz.efi,,YOURSERVERIP OpenWRT uci set dhcp.@dnsmasq[0].dhcp_match=set:bios,60,PXEClient:Arch:00000 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:bios,netboot.xyz.kpxe,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi32,60,PXEClient:Arch:00002 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi32,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi32-1,60,PXEClient:Arch:00006 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi32-1,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi64,60,PXEClient:Arch:00007 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi64,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi64-1,60,PXEClient:Arch:00008 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi64-1,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi64-2,60,PXEClient:Arch:00009 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi64-2,netboot.xyz.efi,,YOURSERVERIP uci commit /etc/init.d/dnsmasq restart Microsoft Server DHCP Run the DHCP program Under Scope/Scope Options check option 066 and enter the FQDN or IP of your TFTP boot server check option 067 and enter one of the following bootfile names: Default BIOS file name- netboot.xyz.kpxe UEFI 32 bit file name- netboot.xyz.efi UEFI 64 bit file name- netboot.xyz.efi Anything else from a router standpoint is a crapshoot for supporting Dnsmasq options or proprietary PXE boot options, check Google for support (try your exact router model number with 'pxe boot') or look into setting up your own DHCP server in Linux. This image also contains netboot.xyz.efi which can be used to boot using UEFI network boot. The UEFI boot and menu will have limited functionality if you choose to use it. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: netbootxyz: image: lscr.io/linuxserver/netbootxyz:latest container_name: netbootxyz environment: - PUID=1000 - PGID=1000 - MENU_VERSION=1.9.9 #optional - PORT_RANGE=30000:30010 #optional - SUBFOLDER=/ #optional volumes: - /path/to/config:/config - /path/to/assets:/assets #optional ports: - 3000:3000 - 69:69/udp - 8080:80 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=netbootxyz \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MENU_VERSION=1.9.9 `#optional` \\ -e PORT_RANGE=30000:30010 `#optional` \\ -e SUBFOLDER=/ `#optional` \\ -p 3000:3000 \\ -p 69:69/udp \\ -p 8080:80 `#optional` \\ -v /path/to/config:/config \\ -v /path/to/assets:/assets `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/netbootxyz:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Web configuration interface. 69/udp TFTP Port. 80 NGINX server for hosting assets. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation MENU_VERSION=1.9.9 Specify a specific version of boot files you want to use from NETBOOT.XYZ (unset pulls latest) PORT_RANGE=30000:30010 Specify the port range tftp will use for data transfers (see Wikipedia) SUBFOLDER=/ Specify a sobfolder if running this behind a reverse proxy (IE /proxy/) Volume Mappings ( -v ) Volume Function /config Storage for boot menu files and web application config /assets Storage for NETBOOT.XYZ bootable assets (live CDs and other files) Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it netbootxyz /bin/bash To monitor the logs of the container in realtime: docker logs -f netbootxyz Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' netbootxyz Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/netbootxyz:latest Versions 12.10.22: - Rebasing to Alpine 3.16, migrate to s6v3. 29.04.21: - Rebasing to alpine 3.13, add SUBFOLDER env variable. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 13.12.19: - Swapping latest tag over to webapp stack for management. 10.12.19: - Adding tftp branch to provide tftp only option to latest users. 22.10.19: - Initial release.","title":"netbootxyz"},{"location":"images/docker-netbootxyz/#linuxservernetbootxyz","text":"Netbootxyz is a way to PXE boot various operating system installers or utilities from one place within the BIOS without the need of having to go retrieve the media to run the tool. iPXE is used to provide a user friendly menu from within the BIOS that lets you easily choose the operating system you want along with any specific types of versions or bootable flags.","title":"linuxserver/netbootxyz"},{"location":"images/docker-netbootxyz/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/netbootxyz:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-netbootxyz/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Web application for full self hosting tftp \u2705 TFTP server only with NETBOOT.XYZ boot files","title":"Version Tags"},{"location":"images/docker-netbootxyz/#application-setup","text":"To use this image you need an existing DHCP server where you can set this TFTP server as your DHCP boot destination. This image does not contain a DHCP server nor do we aim to support one in the future. This is simply a TFTP server hosting the latest IPXE kernel builds from netboot.xyz . If you are interested in their project and lack the ability to setup a DHCP server to boot this payload they also have USB stick images you can use available on their downloads page .","title":"Application Setup"},{"location":"images/docker-netbootxyz/#router-setup-examples","text":"","title":"Router Setup Examples"},{"location":"images/docker-netbootxyz/#pfsense","text":"Services -> DHCP Server Set both the option for \"TFTP Server\" and the options under the Advanced \"Network Booting\" section. * check enable * Next server- IP used for TFTP Server * Default BIOS file name- netboot.xyz.kpxe * UEFI 32 bit file name- netboot.xyz.efi * UEFI 64 bit file name- netboot.xyz.efi","title":"PFSense"},{"location":"images/docker-netbootxyz/#opnsense","text":"Services -> DHCP Server Under the Advanced \"Network Booting\" section. * check enable * Next server- IP of docker host * Default BIOS file name- netboot.xyz.kpxe * UEFI 32 bit file name- netboot.xyz.efi * UEFI 64 bit file name- netboot.xyz.efi","title":"OPNsense"},{"location":"images/docker-netbootxyz/#unifi-security-gateway-with-the-controller","text":"Networks -> LAN (or the network you want to boot from) -> ADVANCED DHCP OPTIONS * tick Enable network boot * Server- YOURSERVERIP * Filename- netboot.xyz.kpxe","title":"Unifi Security Gateway (with the controller)"},{"location":"images/docker-netbootxyz/#edgeosvyos","text":"Connect via SSH configure set service dhcp-server use-dnsmasq enable set service dns forwarding options \"dhcp-match=set:bios,60,PXEClient:Arch:00000\" set service dns forwarding options \"dhcp-boot=tag:bios,netboot.xyz.kpxe,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi32,60,PXEClient:Arch:00002\" set service dns forwarding options \"dhcp-boot=tag:efi32,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi32-1,60,PXEClient:Arch:00006\" set service dns forwarding options \"dhcp-boot=tag:efi32-1,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi64,60,PXEClient:Arch:00007\" set service dns forwarding options \"dhcp-boot=tag:efi64,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi64-1,60,PXEClient:Arch:00008\" set service dns forwarding options \"dhcp-boot=tag:efi64-1,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi64-2,60,PXEClient:Arch:00009\" set service dns forwarding options \"dhcp-boot=tag:efi64-2,netboot.xyz.efi,,SERVERIP\" commit; save","title":"EdgeOS/VyOS"},{"location":"images/docker-netbootxyz/#dd-wrt","text":"Administration -> Services -> Additional DNSMasq Options Set the following lines: dhcp-match=set:bios,60,PXEClient:Arch:00000 dhcp-boot=tag:bios,netboot.xyz.kpxe,,YOURSERVERIP dhcp-match=set:efi32,60,PXEClient:Arch:00002 dhcp-boot=tag:efi32,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi32-1,60,PXEClient:Arch:00006 dhcp-boot=tag:efi32-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64,60,PXEClient:Arch:00007 dhcp-boot=tag:efi64,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-1,60,PXEClient:Arch:00008 dhcp-boot=tag:efi64-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-2,60,PXEClient:Arch:00009 dhcp-boot=tag:efi64-2,netboot.xyz.efi,,YOURSERVERIP","title":"DD-WRT"},{"location":"images/docker-netbootxyz/#tomato","text":"Advanced -> DHCP/DNS -> Dnsmasq Custom configuration Set the following lines: dhcp-match=set:bios,60,PXEClient:Arch:00000 dhcp-boot=tag:bios,netboot.xyz.kpxe,,YOURSERVERIP dhcp-match=set:efi32,60,PXEClient:Arch:00002 dhcp-boot=tag:efi32,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi32-1,60,PXEClient:Arch:00006 dhcp-boot=tag:efi32-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64,60,PXEClient:Arch:00007 dhcp-boot=tag:efi64,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-1,60,PXEClient:Arch:00008 dhcp-boot=tag:efi64-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-2,60,PXEClient:Arch:00009 dhcp-boot=tag:efi64-2,netboot.xyz.efi,,YOURSERVERIP","title":"Tomato"},{"location":"images/docker-netbootxyz/#openwrt","text":"uci set dhcp.@dnsmasq[0].dhcp_match=set:bios,60,PXEClient:Arch:00000 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:bios,netboot.xyz.kpxe,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi32,60,PXEClient:Arch:00002 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi32,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi32-1,60,PXEClient:Arch:00006 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi32-1,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi64,60,PXEClient:Arch:00007 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi64,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi64-1,60,PXEClient:Arch:00008 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi64-1,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi64-2,60,PXEClient:Arch:00009 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi64-2,netboot.xyz.efi,,YOURSERVERIP uci commit /etc/init.d/dnsmasq restart","title":"OpenWRT"},{"location":"images/docker-netbootxyz/#microsoft-server-dhcp","text":"Run the DHCP program Under Scope/Scope Options check option 066 and enter the FQDN or IP of your TFTP boot server check option 067 and enter one of the following bootfile names: Default BIOS file name- netboot.xyz.kpxe UEFI 32 bit file name- netboot.xyz.efi UEFI 64 bit file name- netboot.xyz.efi Anything else from a router standpoint is a crapshoot for supporting Dnsmasq options or proprietary PXE boot options, check Google for support (try your exact router model number with 'pxe boot') or look into setting up your own DHCP server in Linux. This image also contains netboot.xyz.efi which can be used to boot using UEFI network boot. The UEFI boot and menu will have limited functionality if you choose to use it.","title":"Microsoft Server DHCP"},{"location":"images/docker-netbootxyz/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-netbootxyz/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: netbootxyz: image: lscr.io/linuxserver/netbootxyz:latest container_name: netbootxyz environment: - PUID=1000 - PGID=1000 - MENU_VERSION=1.9.9 #optional - PORT_RANGE=30000:30010 #optional - SUBFOLDER=/ #optional volumes: - /path/to/config:/config - /path/to/assets:/assets #optional ports: - 3000:3000 - 69:69/udp - 8080:80 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-netbootxyz/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=netbootxyz \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MENU_VERSION=1.9.9 `#optional` \\ -e PORT_RANGE=30000:30010 `#optional` \\ -e SUBFOLDER=/ `#optional` \\ -p 3000:3000 \\ -p 69:69/udp \\ -p 8080:80 `#optional` \\ -v /path/to/config:/config \\ -v /path/to/assets:/assets `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/netbootxyz:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-netbootxyz/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-netbootxyz/#ports-p","text":"Parameter Function 3000 Web configuration interface. 69/udp TFTP Port. 80 NGINX server for hosting assets.","title":"Ports (-p)"},{"location":"images/docker-netbootxyz/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation MENU_VERSION=1.9.9 Specify a specific version of boot files you want to use from NETBOOT.XYZ (unset pulls latest) PORT_RANGE=30000:30010 Specify the port range tftp will use for data transfers (see Wikipedia) SUBFOLDER=/ Specify a sobfolder if running this behind a reverse proxy (IE /proxy/)","title":"Environment Variables (-e)"},{"location":"images/docker-netbootxyz/#volume-mappings-v","text":"Volume Function /config Storage for boot menu files and web application config /assets Storage for NETBOOT.XYZ bootable assets (live CDs and other files)","title":"Volume Mappings (-v)"},{"location":"images/docker-netbootxyz/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-netbootxyz/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-netbootxyz/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-netbootxyz/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-netbootxyz/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-netbootxyz/#support-info","text":"Shell access whilst the container is running: docker exec -it netbootxyz /bin/bash To monitor the logs of the container in realtime: docker logs -f netbootxyz Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' netbootxyz Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/netbootxyz:latest","title":"Support Info"},{"location":"images/docker-netbootxyz/#versions","text":"12.10.22: - Rebasing to Alpine 3.16, migrate to s6v3. 29.04.21: - Rebasing to alpine 3.13, add SUBFOLDER env variable. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 13.12.19: - Swapping latest tag over to webapp stack for management. 10.12.19: - Adding tftp branch to provide tftp only option to latest users. 22.10.19: - Initial release.","title":"Versions"},{"location":"images/docker-netbox/","text":"linuxserver/netbox Netbox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers. It is intended to function as a domain-specific source of truth for network operations. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/netbox:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Netbox requires a postgres database and a redis instance. Access the WebUI at :8000. For more information, check out NetBox . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: netbox: image: lscr.io/linuxserver/netbox:latest container_name: netbox environment: - PUID=1000 - PGID=1000 - TZ= - SUPERUSER_EMAIL= - SUPERUSER_PASSWORD= - ALLOWED_HOST= - DB_NAME= - DB_USER= - DB_PASSWORD= - DB_HOST= - DB_PORT= - REDIS_HOST= - REDIS_PORT= - REDIS_PASSWORD= - REDIS_DB_TASK= - REDIS_DB_CACHE= - BASE_PATH= #optional - REMOTE_AUTH_ENABLED= #optional - REMOTE_AUTH_BACKEND= #optional - REMOTE_AUTH_HEADER= #optional - REMOTE_AUTH_AUTO_CREATE_USER= #optional - REMOTE_AUTH_DEFAULT_GROUPS= #optional - REMOTE_AUTH_DEFAULT_PERMISSIONS= #optional volumes: - :/config ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=netbox \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ= \\ -e SUPERUSER_EMAIL= \\ -e SUPERUSER_PASSWORD= \\ -e ALLOWED_HOST= \\ -e DB_NAME= \\ -e DB_USER= \\ -e DB_PASSWORD= \\ -e DB_HOST= \\ -e DB_PORT= \\ -e REDIS_HOST= \\ -e REDIS_PORT= \\ -e REDIS_PASSWORD= \\ -e REDIS_DB_TASK= \\ -e REDIS_DB_CACHE= \\ -e BASE_PATH= `#optional` \\ -e REMOTE_AUTH_ENABLED= `#optional` \\ -e REMOTE_AUTH_BACKEND= `#optional` \\ -e REMOTE_AUTH_HEADER= `#optional` \\ -e REMOTE_AUTH_AUTO_CREATE_USER= `#optional` \\ -e REMOTE_AUTH_DEFAULT_GROUPS= `#optional` \\ -e REMOTE_AUTH_DEFAULT_PERMISSIONS= `#optional` \\ -p 8000:8000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/netbox:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 will map the container's port 8000 to port 8000 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ= Timezone (i.e., America/New_York) SUPERUSER_EMAIL= Email address for admin account SUPERUSER_PASSWORD= Password for admin account ALLOWED_HOST= The hostname you will use to access the app (i.e., netbox.example.com) DB_NAME= Database name (default: netbox) DB_USER= Database user DB_PASSWORD= Database password DB_HOST= Database host (default: postgres) DB_PORT= Database port (defaul: 5432) REDIS_HOST= Redis host (default: redis) REDIS_PORT= Redis port number (default: 6379) REDIS_PASSWORD= Redis password (default: none) REDIS_DB_TASK= Redis database ID for tasks (default: 0) REDIS_DB_CACHE= Redis database ID for caching (default: 1) BASE_PATH= The path you will use to access the app (i.e., /netbox, optional, default: none) REMOTE_AUTH_ENABLED= Enable remote authentication (optional, default: False) REMOTE_AUTH_BACKEND= Python path to the custom Django authentication backend to use for external user authentication (optional, default: netbox.authentication.RemoteUserBackend) REMOTE_AUTH_HEADER= Name of the HTTP header which informs NetBox of the currently authenticated user. (optional, default: HTTP_REMOTE_USER) REMOTE_AUTH_AUTO_CREATE_USER= If true, NetBox will automatically create local accounts for users authenticated via a remote service (optional, default: False) REMOTE_AUTH_DEFAULT_GROUPS= The list of groups to assign a new user account when created using remote authentication (optional, default: []) REMOTE_AUTH_DEFAULT_PERMISSIONS= A mapping of permissions to assign a new user account when created using remote authentication (optional, default: {}) Volume Mappings ( -v ) Volume Function /config config directory volume mapping Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it netbox /bin/bash To monitor the logs of the container in realtime: docker logs -f netbox Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' netbox Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/netbox:latest Versions 02.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 01.08.22: - Remove py3-pillow, add tiff to fix deps. 26.07.22: - Add py3-pillow package back on arm to fix build issue. 10.12.21: - Remove py3-pillow package to fix dependency issue with 3.2.0. 10.12.21: - Rebase to Alpine 3.15. 26.04.21: - Added Redis database environment variables. 03.02.21: - Added remote authentication environment variables. 02.01.21: - Added BASE_PATH environment variable. 23.08.20: - Initial Release.","title":"netbox"},{"location":"images/docker-netbox/#linuxservernetbox","text":"Netbox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers. It is intended to function as a domain-specific source of truth for network operations.","title":"linuxserver/netbox"},{"location":"images/docker-netbox/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/netbox:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-netbox/#application-setup","text":"Netbox requires a postgres database and a redis instance. Access the WebUI at :8000. For more information, check out NetBox .","title":"Application Setup"},{"location":"images/docker-netbox/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-netbox/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: netbox: image: lscr.io/linuxserver/netbox:latest container_name: netbox environment: - PUID=1000 - PGID=1000 - TZ= - SUPERUSER_EMAIL= - SUPERUSER_PASSWORD= - ALLOWED_HOST= - DB_NAME= - DB_USER= - DB_PASSWORD= - DB_HOST= - DB_PORT= - REDIS_HOST= - REDIS_PORT= - REDIS_PASSWORD= - REDIS_DB_TASK= - REDIS_DB_CACHE= - BASE_PATH= #optional - REMOTE_AUTH_ENABLED= #optional - REMOTE_AUTH_BACKEND= #optional - REMOTE_AUTH_HEADER= #optional - REMOTE_AUTH_AUTO_CREATE_USER= #optional - REMOTE_AUTH_DEFAULT_GROUPS= #optional - REMOTE_AUTH_DEFAULT_PERMISSIONS= #optional volumes: - :/config ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-netbox/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=netbox \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ= \\ -e SUPERUSER_EMAIL= \\ -e SUPERUSER_PASSWORD= \\ -e ALLOWED_HOST= \\ -e DB_NAME= \\ -e DB_USER= \\ -e DB_PASSWORD= \\ -e DB_HOST= \\ -e DB_PORT= \\ -e REDIS_HOST= \\ -e REDIS_PORT= \\ -e REDIS_PASSWORD= \\ -e REDIS_DB_TASK= \\ -e REDIS_DB_CACHE= \\ -e BASE_PATH= `#optional` \\ -e REMOTE_AUTH_ENABLED= `#optional` \\ -e REMOTE_AUTH_BACKEND= `#optional` \\ -e REMOTE_AUTH_HEADER= `#optional` \\ -e REMOTE_AUTH_AUTO_CREATE_USER= `#optional` \\ -e REMOTE_AUTH_DEFAULT_GROUPS= `#optional` \\ -e REMOTE_AUTH_DEFAULT_PERMISSIONS= `#optional` \\ -p 8000:8000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/netbox:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-netbox/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-netbox/#ports-p","text":"Parameter Function 8000 will map the container's port 8000 to port 8000 on the host","title":"Ports (-p)"},{"location":"images/docker-netbox/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ= Timezone (i.e., America/New_York) SUPERUSER_EMAIL= Email address for admin account SUPERUSER_PASSWORD= Password for admin account ALLOWED_HOST= The hostname you will use to access the app (i.e., netbox.example.com) DB_NAME= Database name (default: netbox) DB_USER= Database user DB_PASSWORD= Database password DB_HOST= Database host (default: postgres) DB_PORT= Database port (defaul: 5432) REDIS_HOST= Redis host (default: redis) REDIS_PORT= Redis port number (default: 6379) REDIS_PASSWORD= Redis password (default: none) REDIS_DB_TASK= Redis database ID for tasks (default: 0) REDIS_DB_CACHE= Redis database ID for caching (default: 1) BASE_PATH= The path you will use to access the app (i.e., /netbox, optional, default: none) REMOTE_AUTH_ENABLED= Enable remote authentication (optional, default: False) REMOTE_AUTH_BACKEND= Python path to the custom Django authentication backend to use for external user authentication (optional, default: netbox.authentication.RemoteUserBackend) REMOTE_AUTH_HEADER= Name of the HTTP header which informs NetBox of the currently authenticated user. (optional, default: HTTP_REMOTE_USER) REMOTE_AUTH_AUTO_CREATE_USER= If true, NetBox will automatically create local accounts for users authenticated via a remote service (optional, default: False) REMOTE_AUTH_DEFAULT_GROUPS= The list of groups to assign a new user account when created using remote authentication (optional, default: []) REMOTE_AUTH_DEFAULT_PERMISSIONS= A mapping of permissions to assign a new user account when created using remote authentication (optional, default: {})","title":"Environment Variables (-e)"},{"location":"images/docker-netbox/#volume-mappings-v","text":"Volume Function /config config directory volume mapping","title":"Volume Mappings (-v)"},{"location":"images/docker-netbox/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-netbox/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-netbox/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-netbox/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-netbox/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-netbox/#support-info","text":"Shell access whilst the container is running: docker exec -it netbox /bin/bash To monitor the logs of the container in realtime: docker logs -f netbox Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' netbox Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/netbox:latest","title":"Support Info"},{"location":"images/docker-netbox/#versions","text":"02.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 01.08.22: - Remove py3-pillow, add tiff to fix deps. 26.07.22: - Add py3-pillow package back on arm to fix build issue. 10.12.21: - Remove py3-pillow package to fix dependency issue with 3.2.0. 10.12.21: - Rebase to Alpine 3.15. 26.04.21: - Added Redis database environment variables. 03.02.21: - Added remote authentication environment variables. 02.01.21: - Added BASE_PATH environment variable. 23.08.20: - Initial Release.","title":"Versions"},{"location":"images/docker-nextcloud/","text":"linuxserver/nextcloud Nextcloud gives you access to all your files wherever you are. Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nextcloud:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Nextcloud releases Application Setup Access the webui at https://:443 , for more information check out Nextcloud . Docker image update and recreation of container alone won't update nextcloud version. In order to update nextcloud version, you have two options, firstly make sure you are using the latest docker image,then either Perform the in app gui update. Use the CLI version by running docker exec -it nextcloud updater.phar (Both of these are described here ) Note: Both occ and updater.phar can be run without prepending with sudo -u abc php or sudo -u www-data php If you are not customizing our default nginx configuration you will need to remove the file: /config/nginx/site-confs/default.conf Then restart the container to replace it with the latest one. Collaborative Editing Nextcloud's built-in collaborative editing packages (Collabora/CODE and OnlyOffice) only work on x86_64 systems with glibc, and therefore they are not compatible with our images. You should create separate containers for them and set them up in Nextcloud with their respective connector addons. If (auto) installed, those built-in packages may cause instability and should be removed. Strict reverse proxies This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nextcloud: image: lscr.io/linuxserver/nextcloud:latest container_name: nextcloud environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata:/config - /path/to/data:/data ports: - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nextcloud \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 443:443 \\ -v /path/to/appdata:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/nextcloud:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 443 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Nextcloud configs. /data Your personal data. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nextcloud /bin/bash To monitor the logs of the container in realtime: docker logs -f nextcloud Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nextcloud Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nextcloud:latest Versions 10.10.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 30.09.22: - Disabled output_buffering as per [nextcloud docs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html 21.05.22: - Update version check endpoint. 28.04.22: - Increase OPCache interned strings buffered setting to 16. 14.04.22: - Nginx default site config updated for v23 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). Fix LDAP connection. 11.09.21: - Rebasing to alpine 3.14 21.03.21: - Publish php8 tag for testing. 25.02.21: - Nginx default site config updated for v21 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 21.01.21: - Fix php iconv (was breaking the mail addon). If installed, attempt to remove broken CODE Server app during startup. 20.01.21: - Increase php fcgi timeout to prevent 504 Gateway timeout errors (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 16.01.21: - Rebasing to alpine 3.13. Users with issues on 32-bit arm, see this article . 12.08.20: - Various updates to default site config, including added support for webfinger (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 03.06.20: - Rebasing to alpine 3.12 03.06.20: - Add php7-bcmath and php7-fileinfo 31.05.20: - Add aliases for occ and updater.phar 31.03.20: - Allow crontab to be user customized, fix logrotate. 17.01.20: - Updated php.ini defaults and site config, including an optional HSTS directive (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 19.12.19: - Rebasing to alpine 3.11. 18.11.19: - Nginx default site config updated for v17 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 28.10.19: - Change cronjob to run every 5 minutes. 24.10.19: - Nginx default site config updated due to CVE-2019-11043 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 14.07.19: - Download nextcloud during build time. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 27.02.19: - Updating base nginx config to sync up with v15 requirements. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 25.01.19: - Add php7-phar for occ upgrades. 05.09.18: - Rebase to alpine 3.8. 11.06.18: - Use latest rather than specific version for initial install. 26.04.18: - Bump default install to 13.0.1. 06.02.18: - Bump default install to 13.0.0. 26.01.18: - Rebase to alpine 3.7, bump default install to 12.0.5. 12.12.17: - Bump default install to 12.0.4, fix continuation lines. 15.10.17: - Sed php.ini for opcache requirements in newer nextcloud versions. 20.09.17: - Bump default install to 12.0.3. 19.08.17: - Bump default install to 12.0.2. 25.05.17: - Rebase to alpine 3.6. 22.05.17: - Update to nextcloud 12.0, adding required dependecies and note about commenting out SAMEORIGIN; line. 03.05.17: - Use community repo of memcache. 07.03.17: - Release into main repository and upgrade to php7 and Alpine 3.5.","title":"nextcloud"},{"location":"images/docker-nextcloud/#linuxservernextcloud","text":"Nextcloud gives you access to all your files wherever you are. Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home.","title":"linuxserver/nextcloud"},{"location":"images/docker-nextcloud/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nextcloud:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-nextcloud/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Nextcloud releases","title":"Version Tags"},{"location":"images/docker-nextcloud/#application-setup","text":"Access the webui at https://:443 , for more information check out Nextcloud . Docker image update and recreation of container alone won't update nextcloud version. In order to update nextcloud version, you have two options, firstly make sure you are using the latest docker image,then either Perform the in app gui update. Use the CLI version by running docker exec -it nextcloud updater.phar (Both of these are described here ) Note: Both occ and updater.phar can be run without prepending with sudo -u abc php or sudo -u www-data php If you are not customizing our default nginx configuration you will need to remove the file: /config/nginx/site-confs/default.conf Then restart the container to replace it with the latest one.","title":"Application Setup"},{"location":"images/docker-nextcloud/#collaborative-editing","text":"Nextcloud's built-in collaborative editing packages (Collabora/CODE and OnlyOffice) only work on x86_64 systems with glibc, and therefore they are not compatible with our images. You should create separate containers for them and set them up in Nextcloud with their respective connector addons. If (auto) installed, those built-in packages may cause instability and should be removed.","title":"Collaborative Editing"},{"location":"images/docker-nextcloud/#strict-reverse-proxies","text":"This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-nextcloud/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nextcloud/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nextcloud: image: lscr.io/linuxserver/nextcloud:latest container_name: nextcloud environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata:/config - /path/to/data:/data ports: - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nextcloud/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nextcloud \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 443:443 \\ -v /path/to/appdata:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/nextcloud:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nextcloud/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nextcloud/#ports-p","text":"Parameter Function 443 WebUI","title":"Ports (-p)"},{"location":"images/docker-nextcloud/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-nextcloud/#volume-mappings-v","text":"Volume Function /config Nextcloud configs. /data Your personal data.","title":"Volume Mappings (-v)"},{"location":"images/docker-nextcloud/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nextcloud/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nextcloud/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nextcloud/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nextcloud/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nextcloud/#support-info","text":"Shell access whilst the container is running: docker exec -it nextcloud /bin/bash To monitor the logs of the container in realtime: docker logs -f nextcloud Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nextcloud Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nextcloud:latest","title":"Support Info"},{"location":"images/docker-nextcloud/#versions","text":"10.10.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 30.09.22: - Disabled output_buffering as per [nextcloud docs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html 21.05.22: - Update version check endpoint. 28.04.22: - Increase OPCache interned strings buffered setting to 16. 14.04.22: - Nginx default site config updated for v23 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). Fix LDAP connection. 11.09.21: - Rebasing to alpine 3.14 21.03.21: - Publish php8 tag for testing. 25.02.21: - Nginx default site config updated for v21 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 21.01.21: - Fix php iconv (was breaking the mail addon). If installed, attempt to remove broken CODE Server app during startup. 20.01.21: - Increase php fcgi timeout to prevent 504 Gateway timeout errors (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 16.01.21: - Rebasing to alpine 3.13. Users with issues on 32-bit arm, see this article . 12.08.20: - Various updates to default site config, including added support for webfinger (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 03.06.20: - Rebasing to alpine 3.12 03.06.20: - Add php7-bcmath and php7-fileinfo 31.05.20: - Add aliases for occ and updater.phar 31.03.20: - Allow crontab to be user customized, fix logrotate. 17.01.20: - Updated php.ini defaults and site config, including an optional HSTS directive (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 19.12.19: - Rebasing to alpine 3.11. 18.11.19: - Nginx default site config updated for v17 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 28.10.19: - Change cronjob to run every 5 minutes. 24.10.19: - Nginx default site config updated due to CVE-2019-11043 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 14.07.19: - Download nextcloud during build time. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 27.02.19: - Updating base nginx config to sync up with v15 requirements. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 25.01.19: - Add php7-phar for occ upgrades. 05.09.18: - Rebase to alpine 3.8. 11.06.18: - Use latest rather than specific version for initial install. 26.04.18: - Bump default install to 13.0.1. 06.02.18: - Bump default install to 13.0.0. 26.01.18: - Rebase to alpine 3.7, bump default install to 12.0.5. 12.12.17: - Bump default install to 12.0.4, fix continuation lines. 15.10.17: - Sed php.ini for opcache requirements in newer nextcloud versions. 20.09.17: - Bump default install to 12.0.3. 19.08.17: - Bump default install to 12.0.2. 25.05.17: - Rebase to alpine 3.6. 22.05.17: - Update to nextcloud 12.0, adding required dependecies and note about commenting out SAMEORIGIN; line. 03.05.17: - Use community repo of memcache. 07.03.17: - Release into main repository and upgrade to php7 and Alpine 3.5.","title":"Versions"},{"location":"images/docker-nginx/","text":"linuxserver/nginx Nginx is a simple webserver with php support. The config files reside in /config for easy user customization. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nginx:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Add your web files to /config/www for hosting. Modify the nginx, php and site config files under /config as needed Protip: This container is best combined with a sql server, e.g. mariadb Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nginx: image: lscr.io/linuxserver/nginx:latest container_name: nginx environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nginx \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/nginx:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http 443 https Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Contains your www content and all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nginx /bin/bash To monitor the logs of the container in realtime: docker logs -f nginx Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nginx Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nginx:latest Versions 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 22.05.22: - Install nginx version from 3.14. 01.07.21: - Rebasing to alpine 3.14. 24.06.21: - Update default nginx conf folder. 12.04.21: - Add php7-gmp and php7-pecl-mailparse. 13.02.21: - Remove php7-pecl-imagick (it now installs the full imagemagick with too much crud). Users can install it via this docker mod . 09.02.21: - Rebasing to alpine 3.13. Add nginx mods brotli and dav-ext. Remove nginx mods lua and lua-upstream (due to regression over the last couple of years). 08.09.20: - Add php7-xsl. 01.06.20: - Rebasing to alpine 3.12. 18.04.20: - Fix unwanted shutdown of the container. 11.03.20: - Add php7-sodium. 18.02.20: - Add geoip2, suppress lua warning. 19.12.19: - Rebasing to alpine 3.11. 18.12.19: - Add php7-imap and php7-pecl-apcu. 13.11.19: - Add php7-pdo_odbc. 24.10.19: - Add php7-pecl-imagick. 06.08.19: - Add php7-bcmath, ph7-pear, php7-xmlrpc and php7-ftp. 02.08.19: - Add php7-ldap. 28.06.19: - Rebasing to alpine 3.10. 08.05.19: - Remove default.conf when nginx is upgraded in downstream image. 30.04.19: - Add php-redis. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 02.03.19: - Add php intl and posix modules. 28.02.19: - Add php7-opcache, remove memcached service due to issues on aarch64 (let us know if you need to enable it). 22.02.19: - Rebasing to alpine 3.9. 18.11.18: - Attempt to upgrade packages during build. 28.09.18: - Multi-arch image. 17.08.18: - Rebase to alpine 3.8, inherit nginx.conf from nginx baseimage. 11.05.18: - Add php pgsql support. 19.04.18: - Bind memcached to localhost only, add php7-sqlite3. 05.01.18: - Rebase to alpine 3.7. 08.11.17: - Add php7 soap module. 31.10.17: - Add php7 exif and xmlreader modules. 30.09.17: - Copy additional root files into image. 24.09.17: - Add memcached service. 31.08.17: - Add php7-phar. 14.07.17: - Enable modules dynamically in nginx.conf. 22.06.17: - Add various nginx modules and enable all modules in the default nginx.conf. 05.06.17: - Add php7-bz2. 25.05.17: - Rebase to alpine 3.6. 18.04.17: - Add php7-sockets. 27.02.17: - Rebase to alpine 3.5, update to nginx 1.10.2 and php7. 14.10.16: - Add version layer information. 10.09.16: - Add badges to README. 05.12.15: - Intial Release.","title":"nginx"},{"location":"images/docker-nginx/#linuxservernginx","text":"Nginx is a simple webserver with php support. The config files reside in /config for easy user customization.","title":"linuxserver/nginx"},{"location":"images/docker-nginx/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nginx:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-nginx/#application-setup","text":"Add your web files to /config/www for hosting. Modify the nginx, php and site config files under /config as needed Protip: This container is best combined with a sql server, e.g. mariadb","title":"Application Setup"},{"location":"images/docker-nginx/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nginx/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nginx: image: lscr.io/linuxserver/nginx:latest container_name: nginx environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nginx/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nginx \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/nginx:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nginx/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nginx/#ports-p","text":"Parameter Function 80 http 443 https","title":"Ports (-p)"},{"location":"images/docker-nginx/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-nginx/#volume-mappings-v","text":"Volume Function /config Contains your www content and all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-nginx/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nginx/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nginx/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nginx/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nginx/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nginx/#support-info","text":"Shell access whilst the container is running: docker exec -it nginx /bin/bash To monitor the logs of the container in realtime: docker logs -f nginx Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nginx Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nginx:latest","title":"Support Info"},{"location":"images/docker-nginx/#versions","text":"20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 22.05.22: - Install nginx version from 3.14. 01.07.21: - Rebasing to alpine 3.14. 24.06.21: - Update default nginx conf folder. 12.04.21: - Add php7-gmp and php7-pecl-mailparse. 13.02.21: - Remove php7-pecl-imagick (it now installs the full imagemagick with too much crud). Users can install it via this docker mod . 09.02.21: - Rebasing to alpine 3.13. Add nginx mods brotli and dav-ext. Remove nginx mods lua and lua-upstream (due to regression over the last couple of years). 08.09.20: - Add php7-xsl. 01.06.20: - Rebasing to alpine 3.12. 18.04.20: - Fix unwanted shutdown of the container. 11.03.20: - Add php7-sodium. 18.02.20: - Add geoip2, suppress lua warning. 19.12.19: - Rebasing to alpine 3.11. 18.12.19: - Add php7-imap and php7-pecl-apcu. 13.11.19: - Add php7-pdo_odbc. 24.10.19: - Add php7-pecl-imagick. 06.08.19: - Add php7-bcmath, ph7-pear, php7-xmlrpc and php7-ftp. 02.08.19: - Add php7-ldap. 28.06.19: - Rebasing to alpine 3.10. 08.05.19: - Remove default.conf when nginx is upgraded in downstream image. 30.04.19: - Add php-redis. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 02.03.19: - Add php intl and posix modules. 28.02.19: - Add php7-opcache, remove memcached service due to issues on aarch64 (let us know if you need to enable it). 22.02.19: - Rebasing to alpine 3.9. 18.11.18: - Attempt to upgrade packages during build. 28.09.18: - Multi-arch image. 17.08.18: - Rebase to alpine 3.8, inherit nginx.conf from nginx baseimage. 11.05.18: - Add php pgsql support. 19.04.18: - Bind memcached to localhost only, add php7-sqlite3. 05.01.18: - Rebase to alpine 3.7. 08.11.17: - Add php7 soap module. 31.10.17: - Add php7 exif and xmlreader modules. 30.09.17: - Copy additional root files into image. 24.09.17: - Add memcached service. 31.08.17: - Add php7-phar. 14.07.17: - Enable modules dynamically in nginx.conf. 22.06.17: - Add various nginx modules and enable all modules in the default nginx.conf. 05.06.17: - Add php7-bz2. 25.05.17: - Rebase to alpine 3.6. 18.04.17: - Add php7-sockets. 27.02.17: - Rebase to alpine 3.5, update to nginx 1.10.2 and php7. 14.10.16: - Add version layer information. 10.09.16: - Add badges to README. 05.12.15: - Intial Release.","title":"Versions"},{"location":"images/docker-ngircd/","text":"linuxserver/ngircd Ngircd is a free, portable and lightweight Internet Relay Chat server for small or private networks, developed under the GNU General Public License (GPL). It is easy to configure, can cope with dynamic IP addresses, and supports IPv6, SSL-protected connections as well as PAM for authentication. It is written from scratch and not based on the original IRCd. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ngircd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup To setup ngircd you will need to edit /config/ngircd.conf which is created the first time the container is run, edit the file and restart the container to implement any config changes. For information see the ngircd site here. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: ngircd: image: lscr.io/linuxserver/ngircd:latest container_name: ngircd environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/ngircd/config:/config ports: - 6667:6667 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=ngircd \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6667:6667 \\ -v /path/to/ngircd/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ngircd:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 6667 ngircd port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London Volume Mappings ( -v ) Volume Function /config Where ngircd.conf is stored Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it ngircd /bin/bash To monitor the logs of the container in realtime: docker logs -f ngircd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ngircd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ngircd:latest Versions 11.10.22: - Rebasing to alpine 3.16, migrate to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 04.07.19: - Initial release.","title":"ngircd"},{"location":"images/docker-ngircd/#linuxserverngircd","text":"Ngircd is a free, portable and lightweight Internet Relay Chat server for small or private networks, developed under the GNU General Public License (GPL). It is easy to configure, can cope with dynamic IP addresses, and supports IPv6, SSL-protected connections as well as PAM for authentication. It is written from scratch and not based on the original IRCd.","title":"linuxserver/ngircd"},{"location":"images/docker-ngircd/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ngircd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-ngircd/#application-setup","text":"To setup ngircd you will need to edit /config/ngircd.conf which is created the first time the container is run, edit the file and restart the container to implement any config changes. For information see the ngircd site here.","title":"Application Setup"},{"location":"images/docker-ngircd/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-ngircd/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: ngircd: image: lscr.io/linuxserver/ngircd:latest container_name: ngircd environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/ngircd/config:/config ports: - 6667:6667 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-ngircd/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=ngircd \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6667:6667 \\ -v /path/to/ngircd/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ngircd:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-ngircd/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-ngircd/#ports-p","text":"Parameter Function 6667 ngircd port","title":"Ports (-p)"},{"location":"images/docker-ngircd/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-ngircd/#volume-mappings-v","text":"Volume Function /config Where ngircd.conf is stored","title":"Volume Mappings (-v)"},{"location":"images/docker-ngircd/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-ngircd/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-ngircd/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-ngircd/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-ngircd/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-ngircd/#support-info","text":"Shell access whilst the container is running: docker exec -it ngircd /bin/bash To monitor the logs of the container in realtime: docker logs -f ngircd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ngircd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ngircd:latest","title":"Support Info"},{"location":"images/docker-ngircd/#versions","text":"11.10.22: - Rebasing to alpine 3.16, migrate to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 04.07.19: - Initial release.","title":"Versions"},{"location":"images/docker-nntp2nntp/","text":"linuxserver/nntp2nntp Nntp2nntp proxy allow you to use your NNTP Account from multiple systems, each with own user name and password. It fully supports SSL and you can also limit the access to proxy with SSL certificates. nntp2nntp proxy is very simple and pretty fast. Warning Whilst we know of no nntp2nntp security issues the upstream code for this project has received no changes since 06.08.15 and is likely abandoned permanently. For this reason we strongly recommend you do not make this application public facing and if you must do so other layers of security and SSL should be considered an absolute bare minimum requirement. We see this proxy being used primarily on a LAN so that all the users NNTP applications can share a common set of internal credentials allowing for central managment of the upstream account e.g change provider, server, thread limits for all applications with one global config change. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nntp2nntp:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Edit sample config file config/nntp2nntp.conf with upstream provider details and rename the local users. New user passwords can be created by running the password hash generator docker exec -it nntp2nntp /usr/bin/nntp2nntp.py pass entering the desired password and copying the resulting string to the relevant user line in /config/nntp2nntp.conf Example with a user called Dave and with a password of password Dave = 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nntp2nntp: image: lscr.io/linuxserver/nntp2nntp:latest container_name: nntp2nntp environment: - PUID=1000 - PGID=1000 - PUID= - PGID= - TZ=Europe/London volumes: - :/config ports: - 1563:1563 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nntp2nntp \\ -e PUID=1000 \\ -e PGID=1000 \\ -e PUID= \\ -e PGID= \\ -e TZ=Europe/London \\ -p 1563:1563 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/nntp2nntp:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 1563 will map the container's port 1563 to port 1563 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation PUID= specify your UID PGID= specify your GID TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config this will store config on the docker host Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nntp2nntp /bin/bash To monitor the logs of the container in realtime: docker logs -f nntp2nntp Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nntp2nntp Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nntp2nntp:latest Versions 10.10.22: - Rebase to Alpine 3.15. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.04.19: - Multiarch builds and build from Github fork. 15.05.18: - Initial Release.","title":"nntp2nntp"},{"location":"images/docker-nntp2nntp/#linuxservernntp2nntp","text":"Nntp2nntp proxy allow you to use your NNTP Account from multiple systems, each with own user name and password. It fully supports SSL and you can also limit the access to proxy with SSL certificates. nntp2nntp proxy is very simple and pretty fast.","title":"linuxserver/nntp2nntp"},{"location":"images/docker-nntp2nntp/#warning","text":"Whilst we know of no nntp2nntp security issues the upstream code for this project has received no changes since 06.08.15 and is likely abandoned permanently. For this reason we strongly recommend you do not make this application public facing and if you must do so other layers of security and SSL should be considered an absolute bare minimum requirement. We see this proxy being used primarily on a LAN so that all the users NNTP applications can share a common set of internal credentials allowing for central managment of the upstream account e.g change provider, server, thread limits for all applications with one global config change.","title":"Warning"},{"location":"images/docker-nntp2nntp/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nntp2nntp:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-nntp2nntp/#application-setup","text":"Edit sample config file config/nntp2nntp.conf with upstream provider details and rename the local users. New user passwords can be created by running the password hash generator docker exec -it nntp2nntp /usr/bin/nntp2nntp.py pass entering the desired password and copying the resulting string to the relevant user line in /config/nntp2nntp.conf Example with a user called Dave and with a password of password Dave = 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8","title":"Application Setup"},{"location":"images/docker-nntp2nntp/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nntp2nntp/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nntp2nntp: image: lscr.io/linuxserver/nntp2nntp:latest container_name: nntp2nntp environment: - PUID=1000 - PGID=1000 - PUID= - PGID= - TZ=Europe/London volumes: - :/config ports: - 1563:1563 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nntp2nntp/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nntp2nntp \\ -e PUID=1000 \\ -e PGID=1000 \\ -e PUID= \\ -e PGID= \\ -e TZ=Europe/London \\ -p 1563:1563 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/nntp2nntp:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nntp2nntp/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nntp2nntp/#ports-p","text":"Parameter Function 1563 will map the container's port 1563 to port 1563 on the host","title":"Ports (-p)"},{"location":"images/docker-nntp2nntp/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation PUID= specify your UID PGID= specify your GID TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-nntp2nntp/#volume-mappings-v","text":"Volume Function /config this will store config on the docker host","title":"Volume Mappings (-v)"},{"location":"images/docker-nntp2nntp/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nntp2nntp/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nntp2nntp/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nntp2nntp/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nntp2nntp/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nntp2nntp/#support-info","text":"Shell access whilst the container is running: docker exec -it nntp2nntp /bin/bash To monitor the logs of the container in realtime: docker logs -f nntp2nntp Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nntp2nntp Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nntp2nntp:latest","title":"Support Info"},{"location":"images/docker-nntp2nntp/#versions","text":"10.10.22: - Rebase to Alpine 3.15. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.04.19: - Multiarch builds and build from Github fork. 15.05.18: - Initial Release.","title":"Versions"},{"location":"images/docker-nzbget/","text":"linuxserver/nzbget Nzbget is a usenet downloader, written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nzbget:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable nzbget releases testing \u2705 nzbget pre-releases Application Setup Webui can be found at :6789 and the default login details (change ASAP) are login:nzbget, password:tegbzn6789 To allow scheduling, from the webui set the time correction value in settings/logging. To change umask settings. scroll to bottom, set umask like this (example shown for unraid) You can add an additional mount point for intermediate unpacking folder with:- -v :/intermediate for example, and changing the setting for InterDir in the PATHS tab of settings to /intermediate Media folders We have set /downloads as a optional path , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nzbget: image: lscr.io/linuxserver/nzbget:latest container_name: nzbget environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - NZBGET_USER=nzbget #optional - NZBGET_PASS=tegbzn6789 #optional volumes: - /path/to/data:/config - /path/to/downloads:/downloads #optional ports: - 6789:6789 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nzbget \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e NZBGET_USER=nzbget `#optional` \\ -e NZBGET_PASS=tegbzn6789 `#optional` \\ -p 6789:6789 \\ -v /path/to/data:/config \\ -v /path/to/downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/nzbget:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 6789 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. NZBGET_USER=nzbget Specify the user for web authentication. NZBGET_PASS=tegbzn6789 Specify the password for web authentication. Volume Mappings ( -v ) Volume Function /config NZBGet App data. /downloads Location of downloads on disk. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nzbget /bin/bash To monitor the logs of the container in realtime: docker logs -f nzbget Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nzbget Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nzbget:latest Versions 27.11.22: - Advanced notice: This image will be deprecated on 2022-12-31. Please consider switching to SABnzbd https://github.com/linuxserver/docker-sabnzbd 13.11.22: - Rebase master to 3.16, migrate to s6v3. 12.08.22: - Bump unrar to 6.1.7. 22.02.22: - Rebase to alpine 3.15, add six and python 7zip tools, allow env variables for credentials. 04.07.21: - Rebase to alpine 3.14. 28.05.21: - Add linuxserver wheel index. 23.01.21: - Rebasing to alpine 3.13. 26.10.20: - Fix python dependencies. 24.08.20: - Fix ignored umask environment variable. 08.06.20: - Symlink python3 bin to python. 01.06.20: - Rebasing to alpine 3.12. Removing python2. 13.05.20: - Add rarfile python package (for DeepUnrar). 01.01.20: - Add python3 alongside python2 during transition. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 13.06.19: - Add apprise, chardet & pynzbget packages. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 25.02.19: - Rebasing to alpine 3.9. 20.01.19: - Add pipeline logic and multi arch, build from source. 21.08.18: - Rebase to alpine 3.8. 20.02.18: - Add note about supplemental mount point for intermediate unpacking. 13.12.17: - Rebase to alpine 3.7. 02.09.17: - Place app in subfolder rather than /app. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Rebase to alpine 3.6. 20.04.17: - Add testing branch. 06.02.17: - Rebase to alpine 3.5. 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README, perms fix on /app to allow updates. 19.08.16: - Rebase to alpine linux. 18.08.15: - Now useing latest version of unrar beta and implements the universal installer method.","title":"nzbget"},{"location":"images/docker-nzbget/#linuxservernzbget","text":"Nzbget is a usenet downloader, written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources.","title":"linuxserver/nzbget"},{"location":"images/docker-nzbget/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nzbget:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-nzbget/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable nzbget releases testing \u2705 nzbget pre-releases","title":"Version Tags"},{"location":"images/docker-nzbget/#application-setup","text":"Webui can be found at :6789 and the default login details (change ASAP) are login:nzbget, password:tegbzn6789 To allow scheduling, from the webui set the time correction value in settings/logging. To change umask settings. scroll to bottom, set umask like this (example shown for unraid) You can add an additional mount point for intermediate unpacking folder with:- -v :/intermediate for example, and changing the setting for InterDir in the PATHS tab of settings to /intermediate","title":"Application Setup"},{"location":"images/docker-nzbget/#media-folders","text":"We have set /downloads as a optional path , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Media folders"},{"location":"images/docker-nzbget/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nzbget/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nzbget: image: lscr.io/linuxserver/nzbget:latest container_name: nzbget environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - NZBGET_USER=nzbget #optional - NZBGET_PASS=tegbzn6789 #optional volumes: - /path/to/data:/config - /path/to/downloads:/downloads #optional ports: - 6789:6789 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nzbget/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nzbget \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e NZBGET_USER=nzbget `#optional` \\ -e NZBGET_PASS=tegbzn6789 `#optional` \\ -p 6789:6789 \\ -v /path/to/data:/config \\ -v /path/to/downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/nzbget:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nzbget/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nzbget/#ports-p","text":"Parameter Function 6789 WebUI","title":"Ports (-p)"},{"location":"images/docker-nzbget/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. NZBGET_USER=nzbget Specify the user for web authentication. NZBGET_PASS=tegbzn6789 Specify the password for web authentication.","title":"Environment Variables (-e)"},{"location":"images/docker-nzbget/#volume-mappings-v","text":"Volume Function /config NZBGet App data. /downloads Location of downloads on disk.","title":"Volume Mappings (-v)"},{"location":"images/docker-nzbget/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nzbget/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nzbget/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nzbget/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nzbget/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nzbget/#support-info","text":"Shell access whilst the container is running: docker exec -it nzbget /bin/bash To monitor the logs of the container in realtime: docker logs -f nzbget Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nzbget Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nzbget:latest","title":"Support Info"},{"location":"images/docker-nzbget/#versions","text":"27.11.22: - Advanced notice: This image will be deprecated on 2022-12-31. Please consider switching to SABnzbd https://github.com/linuxserver/docker-sabnzbd 13.11.22: - Rebase master to 3.16, migrate to s6v3. 12.08.22: - Bump unrar to 6.1.7. 22.02.22: - Rebase to alpine 3.15, add six and python 7zip tools, allow env variables for credentials. 04.07.21: - Rebase to alpine 3.14. 28.05.21: - Add linuxserver wheel index. 23.01.21: - Rebasing to alpine 3.13. 26.10.20: - Fix python dependencies. 24.08.20: - Fix ignored umask environment variable. 08.06.20: - Symlink python3 bin to python. 01.06.20: - Rebasing to alpine 3.12. Removing python2. 13.05.20: - Add rarfile python package (for DeepUnrar). 01.01.20: - Add python3 alongside python2 during transition. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 13.06.19: - Add apprise, chardet & pynzbget packages. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 25.02.19: - Rebasing to alpine 3.9. 20.01.19: - Add pipeline logic and multi arch, build from source. 21.08.18: - Rebase to alpine 3.8. 20.02.18: - Add note about supplemental mount point for intermediate unpacking. 13.12.17: - Rebase to alpine 3.7. 02.09.17: - Place app in subfolder rather than /app. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Rebase to alpine 3.6. 20.04.17: - Add testing branch. 06.02.17: - Rebase to alpine 3.5. 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README, perms fix on /app to allow updates. 19.08.16: - Rebase to alpine linux. 18.08.15: - Now useing latest version of unrar beta and implements the universal installer method.","title":"Versions"},{"location":"images/docker-nzbhydra2/","text":"linuxserver/nzbhydra2 Nzbhydra2 is a meta search application for NZB indexers, the \"spiritual successor\" to NZBmegasearcH, and an evolution of the original application NZBHydra . It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. NOTE: The last version that supports migration is linuxserver/nzbhydra2:v2.10.2-ls49 Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nzbhydra2:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases dev \u2705 Prereleases from their GitHub Application Setup The web interface is at :5076 , to set up indexers and connections to your nzb download applications. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nzbhydra2: image: lscr.io/linuxserver/nzbhydra2:latest container_name: nzbhydra2 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /nzb/download:/downloads ports: - 5076:5076 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nzbhydra2 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5076:5076 \\ -v /path/to/data:/config \\ -v /nzb/download:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/nzbhydra2:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5076 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where nzbhydra2 should store config files. /downloads NZB download folder. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nzbhydra2 /bin/bash To monitor the logs of the container in realtime: docker logs -f nzbhydra2 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nzbhydra2 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nzbhydra2:latest Versions 10.12.22: - Bump master JRE to v17. Default mapIpToHost to false. 11.09.22: - Migrate to s6v3. 03.05.22: - Rebase to Jammy. 18.04.22: - Rebase to Alpine 3.15. 01.05.20: - Reorganize container, Relocate app to /app/nzbhydra2/bin, Create /app/nzbhydra2/package_info, Use nzbhydra2wrapperPy3.py from zip. 14.04.20: - Correct Name, Hydra2 -> NZBHydra2. 08.01.20: - Switch to python3. 05.01.20: - Add dev tag for prereleases. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch. 18.08.18: - Bump java version to 10, (bionic currently refers to it as version 11). 10.08.18: - Rebase to ubuntu bionic. 15.04.18: - Change to port 5076 in the Dockerfile. 11.01.18: - Initial Release.","title":"nzbhydra2"},{"location":"images/docker-nzbhydra2/#linuxservernzbhydra2","text":"Nzbhydra2 is a meta search application for NZB indexers, the \"spiritual successor\" to NZBmegasearcH, and an evolution of the original application NZBHydra . It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. NOTE: The last version that supports migration is linuxserver/nzbhydra2:v2.10.2-ls49","title":"linuxserver/nzbhydra2"},{"location":"images/docker-nzbhydra2/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nzbhydra2:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-nzbhydra2/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases dev \u2705 Prereleases from their GitHub","title":"Version Tags"},{"location":"images/docker-nzbhydra2/#application-setup","text":"The web interface is at :5076 , to set up indexers and connections to your nzb download applications.","title":"Application Setup"},{"location":"images/docker-nzbhydra2/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nzbhydra2/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nzbhydra2: image: lscr.io/linuxserver/nzbhydra2:latest container_name: nzbhydra2 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /nzb/download:/downloads ports: - 5076:5076 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nzbhydra2/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nzbhydra2 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5076:5076 \\ -v /path/to/data:/config \\ -v /nzb/download:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/nzbhydra2:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nzbhydra2/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nzbhydra2/#ports-p","text":"Parameter Function 5076 WebUI","title":"Ports (-p)"},{"location":"images/docker-nzbhydra2/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-nzbhydra2/#volume-mappings-v","text":"Volume Function /config Where nzbhydra2 should store config files. /downloads NZB download folder.","title":"Volume Mappings (-v)"},{"location":"images/docker-nzbhydra2/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nzbhydra2/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nzbhydra2/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nzbhydra2/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nzbhydra2/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nzbhydra2/#support-info","text":"Shell access whilst the container is running: docker exec -it nzbhydra2 /bin/bash To monitor the logs of the container in realtime: docker logs -f nzbhydra2 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nzbhydra2 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nzbhydra2:latest","title":"Support Info"},{"location":"images/docker-nzbhydra2/#versions","text":"10.12.22: - Bump master JRE to v17. Default mapIpToHost to false. 11.09.22: - Migrate to s6v3. 03.05.22: - Rebase to Jammy. 18.04.22: - Rebase to Alpine 3.15. 01.05.20: - Reorganize container, Relocate app to /app/nzbhydra2/bin, Create /app/nzbhydra2/package_info, Use nzbhydra2wrapperPy3.py from zip. 14.04.20: - Correct Name, Hydra2 -> NZBHydra2. 08.01.20: - Switch to python3. 05.01.20: - Add dev tag for prereleases. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch. 18.08.18: - Bump java version to 10, (bionic currently refers to it as version 11). 10.08.18: - Rebase to ubuntu bionic. 15.04.18: - Change to port 5076 in the Dockerfile. 11.01.18: - Initial Release.","title":"Versions"},{"location":"images/docker-ombi/","text":"linuxserver/ombi Ombi allows you to host your own Plex Request and user management system. If you are sharing your Plex server with other users, allow them to request new content using an easy to manage interface! Manage all your requests for Movies and TV with ease, leave notes for the user and get notification when a user requests something. Allow your users to post issues against their requests so you know there is a problem with the audio etc. Even automatically send them weekly newsletters of new content that has been added to your Plex server! Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ombi:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Ombi releases development \u2705 Releases from the develop branch of Ombi Application Setup Access the webui at :3579 . Follow the setup wizard on initial install. Then configure the required services. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: ombi: image: lscr.io/linuxserver/ombi:latest container_name: ombi environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - BASE_URL=/ombi #optional volumes: - /path/to/appdata/config:/config ports: - 3579:3579 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=ombi \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e BASE_URL=/ombi `#optional` \\ -p 3579:3579 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ombi:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3579 web gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London BASE_URL=/ombi Subfolder can optionally be defined as an env variable for reverse proxies. Keep in mind that once this value is defined, the gui setting for base url no longer works. To use the gui setting, remove this env variable. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it ombi /bin/bash To monitor the logs of the container in realtime: docker logs -f ombi Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ombi Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ombi:latest Versions 11.09.22: - Migrate to s6v3. 01.05.22: - Rebase to Jammy. 26.04.21: - Update tarball name, allow for v4 builds in stable. 18.01.21: - Update upstream repo. Deprecate v4-preview tag, which is merged to development tag upstream. 14.04.20: - Add Ombi donate links. 10.05.19: - Added an optional env variable for base url setting. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Clarify info on tags and development builds. 25.01.19: - Add info on tags and development builds. 09.01.19: - Switch to multi-arch builds and add aarch64 image. 11.03.18: - Add HOME env to Dockerfile. 05.03.18: - Switch to Ombi v3 stable based on .net core. 26.01.18: - Fix continuation lines. 16.04.17: - Switch to using inhouse mono baseimage. 17.02.17: - Initial Release.","title":"ombi"},{"location":"images/docker-ombi/#linuxserverombi","text":"Ombi allows you to host your own Plex Request and user management system. If you are sharing your Plex server with other users, allow them to request new content using an easy to manage interface! Manage all your requests for Movies and TV with ease, leave notes for the user and get notification when a user requests something. Allow your users to post issues against their requests so you know there is a problem with the audio etc. Even automatically send them weekly newsletters of new content that has been added to your Plex server!","title":"linuxserver/ombi"},{"location":"images/docker-ombi/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ombi:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-ombi/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Ombi releases development \u2705 Releases from the develop branch of Ombi","title":"Version Tags"},{"location":"images/docker-ombi/#application-setup","text":"Access the webui at :3579 . Follow the setup wizard on initial install. Then configure the required services.","title":"Application Setup"},{"location":"images/docker-ombi/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-ombi/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: ombi: image: lscr.io/linuxserver/ombi:latest container_name: ombi environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - BASE_URL=/ombi #optional volumes: - /path/to/appdata/config:/config ports: - 3579:3579 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-ombi/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=ombi \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e BASE_URL=/ombi `#optional` \\ -p 3579:3579 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ombi:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-ombi/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-ombi/#ports-p","text":"Parameter Function 3579 web gui","title":"Ports (-p)"},{"location":"images/docker-ombi/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London BASE_URL=/ombi Subfolder can optionally be defined as an env variable for reverse proxies. Keep in mind that once this value is defined, the gui setting for base url no longer works. To use the gui setting, remove this env variable.","title":"Environment Variables (-e)"},{"location":"images/docker-ombi/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-ombi/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-ombi/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-ombi/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-ombi/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-ombi/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-ombi/#support-info","text":"Shell access whilst the container is running: docker exec -it ombi /bin/bash To monitor the logs of the container in realtime: docker logs -f ombi Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ombi Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ombi:latest","title":"Support Info"},{"location":"images/docker-ombi/#versions","text":"11.09.22: - Migrate to s6v3. 01.05.22: - Rebase to Jammy. 26.04.21: - Update tarball name, allow for v4 builds in stable. 18.01.21: - Update upstream repo. Deprecate v4-preview tag, which is merged to development tag upstream. 14.04.20: - Add Ombi donate links. 10.05.19: - Added an optional env variable for base url setting. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Clarify info on tags and development builds. 25.01.19: - Add info on tags and development builds. 09.01.19: - Switch to multi-arch builds and add aarch64 image. 11.03.18: - Add HOME env to Dockerfile. 05.03.18: - Switch to Ombi v3 stable based on .net core. 26.01.18: - Fix continuation lines. 16.04.17: - Switch to using inhouse mono baseimage. 17.02.17: - Initial Release.","title":"Versions"},{"location":"images/docker-openssh-server/","text":"linuxserver/openssh-server Openssh-server is a sandboxed environment that allows ssh access without giving keys to the entire server. Giving ssh access via private key often means giving full access to the server. This container creates a limited and sandboxed environment that others can ssh into. The users only have access to the folders mapped and the processes running inside this container. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/openssh-server:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup If PUBLIC_KEY or PUBLIC_KEY_FILE , or PUBLIC_KEY_DIR variables are set, the specified keys will automatically be added to authorized_keys . If not, the keys can manually be added to /config/.ssh/authorized_keys and the container should be restarted. Removing PUBLIC_KEY or PUBLIC_KEY_FILE variables from docker run environment variables will not remove the keys from authorized_keys . PUBLIC_KEY_FILE and PUBLIC_KEY_DIR can be used with docker secrets. We provide the ability to set and allow password based access via the PASSWORD_ACCESS and USER_PASSWORD variables, though we as an organization discourage using password auth for public facing ssh endpoints. Connect to server via ssh -i /path/to/private/key -p PORT USER_NAME@SERVERIP Setting SUDO_ACCESS to true by itself will allow passwordless sudo. USER_PASSWORD and USER_PASSWORD_FILE allow setting an optional sudo password. The users only have access to the folders mapped and the processes running inside this container. Add any volume mappings you like for the users to have access to. To install packages or services for users to access, use the LinuxServer container customization methods described in this blog article . Sample use case is when a server admin would like to have automated incoming backups from a remote server to the local server, but they might not want all the other admins of the remote server to have full access to the local server. This container can be set up with a mounted folder for incoming backups, and rsync installed via LinuxServer container customization described above, so that the incoming backups can proceed, but remote server and its admins' access would be limited to the backup folder. It is also possible to run multiple copies of this container with different ports mapped, different folders mounted and access to different private keys for compartmentalized access. TIPS You can volume map your own text file to /etc/motd to override the message displayed upon connection. You can optionally set the docker argument hostname Key Generation This container has a helper script to generate an ssh private/public key. In order to generate a key please run: docker run --rm -it --entrypoint /keygen.sh linuxserver/openssh-server Then simply follow the prompts. The keys generated by this script are only displayed on your console output, so make sure to save them somewhere after generation. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: openssh-server: image: lscr.io/linuxserver/openssh-server:latest container_name: openssh-server hostname: openssh-server #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PUBLIC_KEY=yourpublickey #optional - PUBLIC_KEY_FILE=/path/to/file #optional - PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys #optional - PUBLIC_KEY_URL=https://github.com/username.keys #optional - SUDO_ACCESS=false #optional - PASSWORD_ACCESS=false #optional - USER_PASSWORD=password #optional - USER_PASSWORD_FILE=/path/to/file #optional - USER_NAME=linuxserver.io #optional volumes: - /path/to/appdata/config:/config ports: - 2222:2222 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=openssh-server \\ --hostname=openssh-server `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PUBLIC_KEY=yourpublickey `#optional` \\ -e PUBLIC_KEY_FILE=/path/to/file `#optional` \\ -e PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys `#optional` \\ -e PUBLIC_KEY_URL=https://github.com/username.keys `#optional` \\ -e SUDO_ACCESS=false `#optional` \\ -e PASSWORD_ACCESS=false `#optional` \\ -e USER_PASSWORD=password `#optional` \\ -e USER_PASSWORD_FILE=/path/to/file `#optional` \\ -e USER_NAME=linuxserver.io `#optional` \\ -p 2222:2222 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/openssh-server:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 2222 ssh port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PUBLIC_KEY=yourpublickey Optional ssh public key, which will automatically be added to authorized_keys. PUBLIC_KEY_FILE=/path/to/file Optionally specify a file containing the public key (works with docker secrets). PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys Optionally specify a directory containing the public keys (works with docker secrets). PUBLIC_KEY_URL=https://github.com/username.keys Optionally specify a URL containing the public key. SUDO_ACCESS=false Set to true to allow linuxserver.io , the ssh user, sudo access. Without USER_PASSWORD set, this will allow passwordless sudo access. PASSWORD_ACCESS=false Set to true to allow user/password ssh access. You will want to set USER_PASSWORD or USER_PASSWORD_FILE as well. USER_PASSWORD=password Optionally set a sudo password for linuxserver.io , the ssh user. If this or USER_PASSWORD_FILE are not set but SUDO_ACCESS is set to true, the user will have passwordless sudo access. USER_PASSWORD_FILE=/path/to/file Optionally specify a file that contains the password. This setting supersedes the USER_PASSWORD option (works with docker secrets). USER_NAME=linuxserver.io Optionally specify a user name (Default: linuxserver.io ) Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function --hostname= Optionally the hostname can be defined. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it openssh-server /bin/bash To monitor the logs of the container in realtime: docker logs -f openssh-server Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' openssh-server Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/openssh-server:latest Versions 18.10.22: - Fix wrong behavior of password/passwordless sudo 11.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 15.09.22: - add netcat-openbsd with support for proxies. 18.07.22: - Fix service perms to comply with upgrade to s6 v3. 16.04.22: - Rebase to alpine 3.15. 16.11.21: - Add PUBLIC_KEY_URL option 28.06.21: - Rebasing to alpine 3.14. Add support for PAM. 10.02.21: - Rebasing to alpine 3.13. Add openssh-client for scp. 21.10.20: - Implement s6-log for openssh, which adds local timestamps to logs and can be used with a log parser like fail2ban. 20.10.20: - Set umask for sftp. 01.06.20: - Rebasing to alpine 3.12. 18.01.20: - Add key generation script. 13.01.20: - Add openssh-sftp-server. 19.12.19: - Rebasing to alpine 3.11. 17.10.19: - Initial Release.","title":"openssh-server"},{"location":"images/docker-openssh-server/#linuxserveropenssh-server","text":"Openssh-server is a sandboxed environment that allows ssh access without giving keys to the entire server. Giving ssh access via private key often means giving full access to the server. This container creates a limited and sandboxed environment that others can ssh into. The users only have access to the folders mapped and the processes running inside this container.","title":"linuxserver/openssh-server"},{"location":"images/docker-openssh-server/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/openssh-server:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-openssh-server/#application-setup","text":"If PUBLIC_KEY or PUBLIC_KEY_FILE , or PUBLIC_KEY_DIR variables are set, the specified keys will automatically be added to authorized_keys . If not, the keys can manually be added to /config/.ssh/authorized_keys and the container should be restarted. Removing PUBLIC_KEY or PUBLIC_KEY_FILE variables from docker run environment variables will not remove the keys from authorized_keys . PUBLIC_KEY_FILE and PUBLIC_KEY_DIR can be used with docker secrets. We provide the ability to set and allow password based access via the PASSWORD_ACCESS and USER_PASSWORD variables, though we as an organization discourage using password auth for public facing ssh endpoints. Connect to server via ssh -i /path/to/private/key -p PORT USER_NAME@SERVERIP Setting SUDO_ACCESS to true by itself will allow passwordless sudo. USER_PASSWORD and USER_PASSWORD_FILE allow setting an optional sudo password. The users only have access to the folders mapped and the processes running inside this container. Add any volume mappings you like for the users to have access to. To install packages or services for users to access, use the LinuxServer container customization methods described in this blog article . Sample use case is when a server admin would like to have automated incoming backups from a remote server to the local server, but they might not want all the other admins of the remote server to have full access to the local server. This container can be set up with a mounted folder for incoming backups, and rsync installed via LinuxServer container customization described above, so that the incoming backups can proceed, but remote server and its admins' access would be limited to the backup folder. It is also possible to run multiple copies of this container with different ports mapped, different folders mounted and access to different private keys for compartmentalized access.","title":"Application Setup"},{"location":"images/docker-openssh-server/#tips","text":"You can volume map your own text file to /etc/motd to override the message displayed upon connection. You can optionally set the docker argument hostname","title":"TIPS"},{"location":"images/docker-openssh-server/#key-generation","text":"This container has a helper script to generate an ssh private/public key. In order to generate a key please run: docker run --rm -it --entrypoint /keygen.sh linuxserver/openssh-server Then simply follow the prompts. The keys generated by this script are only displayed on your console output, so make sure to save them somewhere after generation.","title":"Key Generation"},{"location":"images/docker-openssh-server/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-openssh-server/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: openssh-server: image: lscr.io/linuxserver/openssh-server:latest container_name: openssh-server hostname: openssh-server #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PUBLIC_KEY=yourpublickey #optional - PUBLIC_KEY_FILE=/path/to/file #optional - PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys #optional - PUBLIC_KEY_URL=https://github.com/username.keys #optional - SUDO_ACCESS=false #optional - PASSWORD_ACCESS=false #optional - USER_PASSWORD=password #optional - USER_PASSWORD_FILE=/path/to/file #optional - USER_NAME=linuxserver.io #optional volumes: - /path/to/appdata/config:/config ports: - 2222:2222 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-openssh-server/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=openssh-server \\ --hostname=openssh-server `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PUBLIC_KEY=yourpublickey `#optional` \\ -e PUBLIC_KEY_FILE=/path/to/file `#optional` \\ -e PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys `#optional` \\ -e PUBLIC_KEY_URL=https://github.com/username.keys `#optional` \\ -e SUDO_ACCESS=false `#optional` \\ -e PASSWORD_ACCESS=false `#optional` \\ -e USER_PASSWORD=password `#optional` \\ -e USER_PASSWORD_FILE=/path/to/file `#optional` \\ -e USER_NAME=linuxserver.io `#optional` \\ -p 2222:2222 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/openssh-server:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-openssh-server/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-openssh-server/#ports-p","text":"Parameter Function 2222 ssh port","title":"Ports (-p)"},{"location":"images/docker-openssh-server/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PUBLIC_KEY=yourpublickey Optional ssh public key, which will automatically be added to authorized_keys. PUBLIC_KEY_FILE=/path/to/file Optionally specify a file containing the public key (works with docker secrets). PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys Optionally specify a directory containing the public keys (works with docker secrets). PUBLIC_KEY_URL=https://github.com/username.keys Optionally specify a URL containing the public key. SUDO_ACCESS=false Set to true to allow linuxserver.io , the ssh user, sudo access. Without USER_PASSWORD set, this will allow passwordless sudo access. PASSWORD_ACCESS=false Set to true to allow user/password ssh access. You will want to set USER_PASSWORD or USER_PASSWORD_FILE as well. USER_PASSWORD=password Optionally set a sudo password for linuxserver.io , the ssh user. If this or USER_PASSWORD_FILE are not set but SUDO_ACCESS is set to true, the user will have passwordless sudo access. USER_PASSWORD_FILE=/path/to/file Optionally specify a file that contains the password. This setting supersedes the USER_PASSWORD option (works with docker secrets). USER_NAME=linuxserver.io Optionally specify a user name (Default: linuxserver.io )","title":"Environment Variables (-e)"},{"location":"images/docker-openssh-server/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-openssh-server/#miscellaneous-options","text":"Parameter Function --hostname= Optionally the hostname can be defined.","title":"Miscellaneous Options"},{"location":"images/docker-openssh-server/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-openssh-server/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-openssh-server/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-openssh-server/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-openssh-server/#support-info","text":"Shell access whilst the container is running: docker exec -it openssh-server /bin/bash To monitor the logs of the container in realtime: docker logs -f openssh-server Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' openssh-server Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/openssh-server:latest","title":"Support Info"},{"location":"images/docker-openssh-server/#versions","text":"18.10.22: - Fix wrong behavior of password/passwordless sudo 11.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 15.09.22: - add netcat-openbsd with support for proxies. 18.07.22: - Fix service perms to comply with upgrade to s6 v3. 16.04.22: - Rebase to alpine 3.15. 16.11.21: - Add PUBLIC_KEY_URL option 28.06.21: - Rebasing to alpine 3.14. Add support for PAM. 10.02.21: - Rebasing to alpine 3.13. Add openssh-client for scp. 21.10.20: - Implement s6-log for openssh, which adds local timestamps to logs and can be used with a log parser like fail2ban. 20.10.20: - Set umask for sftp. 01.06.20: - Rebasing to alpine 3.12. 18.01.20: - Add key generation script. 13.01.20: - Add openssh-sftp-server. 19.12.19: - Rebasing to alpine 3.11. 17.10.19: - Initial Release.","title":"Versions"},{"location":"images/docker-openvpn-as/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our wireguard image instead for vpn: https://github.com/linuxserver/docker-wireguard linuxserver/openvpn-as Openvpn-as is a full featured secure network tunneling VPN software solution that integrates OpenVPN server capabilities, enterprise management capabilities, simplified OpenVPN Connect UI, and OpenVPN Client software packages that accommodate Windows, MAC, Linux, Android, and iOS environments. OpenVPN Access Server supports a wide range of configurations, including secure and granular remote access to internal network and/ or private cloud network resources and applications with fine-grained access control. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/openvpn-as should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 latest Version Tags This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest DEPRECATED, no longer updated - Stable releases based on ubuntu bionic xenial DEPRECATED, no longer updated - Stable releases based on ubuntu xenial Application Setup The admin interface is available at https://DOCKER-HOST-IP:943/admin (assuming bridge mode) with a default user/password of admin/password During first login, make sure that the \"Authentication\" in the webui is set to \"Local\" instead of \"PAM\". Then set up the user accounts with their passwords (user accounts created under PAM do not survive container update or recreation). The \"admin\" account is a system (PAM) account and after container update or recreation, its password reverts back to the default. It is highly recommended to block this user's access for security reasons: 1) Create another user and set as an admin, 2) Log in as the new user, 3) Delete the \"admin\" user in the gui, 4) Modify the as.conf file under config/etc and replace the line boot_pam_users.0=admin with ~~ #boot_pam_users.0=admin ~~ boot_pam_users.0=kjhvkhv (this only has to be done once and will survive container recreation) * IMPORTANT NOTE: Commenting out the first pam user in as.conf creates issues in 2.7.5. To make it work while still blocking pam user access, uncomment that line and change admin to a random nonexistent user as described above. To ensure your devices can connect to your VPN properly, goto Configuration -> Network Settings -> and change the \"Hostname or IP Address\" section to either your domain name or public ip address. Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: openvpn-as: image: lscr.io/linuxserver/openvpn-as container_name: openvpn-as cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - INTERFACE=eth0 #optional volumes: - :/config ports: - 943:943 - 9443:9443 - 1194:1194/udp restart: unless-stopped docker cli docker run -d \\ --name=openvpn-as \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e INTERFACE=eth0 `#optional` \\ -p 943:943 \\ -p 9443:9443 \\ -p 1194:1194/udp \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/openvpn-as Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 943 Admin GUI port. 9443 TCP port. 1194/udp UDP port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. INTERFACE=eth0 With bridge networking, leave it as eth0 (or don't include at all), if host or macvlan, set it to your host's network interface, found by running ifconfig Volume Mappings ( -v ) Volume Function /config Where openvpn-as should store configuration files. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it openvpn-as /bin/bash To monitor the logs of the container in realtime: docker logs -f openvpn-as Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' openvpn-as Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/openvpn-as Versions 15.06.20: - Deprecate. 15.06.20: - Add fixes for 2.9.0. 04.11.20: - xenial tag is deprecated and there will be no further releases for that tag. 22.06.20: - Added Support for persistent Customization Folders. 26.03.20: - Switch to using the openvpn-as repo for packages. 29.08.19: - Update Application Setup instructions in readme to fix 2.7.5 login issue for existing users. 27.08.19: - Add new clients package to install and upgrade process. 22.08.19: - Prevent auto-start of openvpn after first time install, before configuration is completed. 25.07.19: - Create a xenial branch/tag and rebase master/latest to bionic. 07.04.19: - Fix first time config. 03.04.19: - Big rewrite of the install and update logic of openvpn-as to fix breaking changes (should fix updating from 2.6.1 to 2.7.3), added mysql-client for cluster support. 14.03.19: - Update deb package URL. 21.02.19: - Rebase to xenial due to incompatibility issues on some older host OSes. 12.02.19: - Rename github repo to match the docker hub repo and container name. 07.02.19: - Add pipeline logic and multi arch. 31.01.19: - Add port mappings to docker create sample in readme. 26.01.19: - Removed privileged and host networking requirements, added cap-add=NET_ADMIN requirement instead. INTERFACE no longer needs to be defined as in bridge mode, it will use the container's eth0 interface by default. 19.12.18: - Bump to version 2.6.1. 10.07.18: - Bump to version 2.5.2. 23.03.18: - Bump to version 2.5. 14.12.17: - Consolidate layers and fix continuation lines. 25.10.17: - Bump to version 2.1.12. 18.08.17: - Switch default authentication method to local, update readme on how to deactivate the admin user. 31.07.17: - Fix updates of existing openvpn-as installs. 07.07.17: - Bump to version 2.1.9. 31.10.16: - Bump to version 2.1.4. 14.10.16: - Add version layer information. 13.09.16: - Rebuild due to push error to hub on last build. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 01.08.16: - Rebase to xenial. 18.09.15: - Initial Release.","title":"openvpn-as"},{"location":"images/docker-openvpn-as/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our wireguard image instead for vpn: https://github.com/linuxserver/docker-wireguard","title":"DEPRECATION NOTICE"},{"location":"images/docker-openvpn-as/#linuxserveropenvpn-as","text":"Openvpn-as is a full featured secure network tunneling VPN software solution that integrates OpenVPN server capabilities, enterprise management capabilities, simplified OpenVPN Connect UI, and OpenVPN Client software packages that accommodate Windows, MAC, Linux, Android, and iOS environments. OpenVPN Access Server supports a wide range of configurations, including secure and granular remote access to internal network and/ or private cloud network resources and applications with fine-grained access control.","title":"linuxserver/openvpn-as"},{"location":"images/docker-openvpn-as/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/openvpn-as should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 latest","title":"Supported Architectures"},{"location":"images/docker-openvpn-as/#version-tags","text":"This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest DEPRECATED, no longer updated - Stable releases based on ubuntu bionic xenial DEPRECATED, no longer updated - Stable releases based on ubuntu xenial","title":"Version Tags"},{"location":"images/docker-openvpn-as/#application-setup","text":"The admin interface is available at https://DOCKER-HOST-IP:943/admin (assuming bridge mode) with a default user/password of admin/password During first login, make sure that the \"Authentication\" in the webui is set to \"Local\" instead of \"PAM\". Then set up the user accounts with their passwords (user accounts created under PAM do not survive container update or recreation). The \"admin\" account is a system (PAM) account and after container update or recreation, its password reverts back to the default. It is highly recommended to block this user's access for security reasons: 1) Create another user and set as an admin, 2) Log in as the new user, 3) Delete the \"admin\" user in the gui, 4) Modify the as.conf file under config/etc and replace the line boot_pam_users.0=admin with ~~ #boot_pam_users.0=admin ~~ boot_pam_users.0=kjhvkhv (this only has to be done once and will survive container recreation) * IMPORTANT NOTE: Commenting out the first pam user in as.conf creates issues in 2.7.5. To make it work while still blocking pam user access, uncomment that line and change admin to a random nonexistent user as described above. To ensure your devices can connect to your VPN properly, goto Configuration -> Network Settings -> and change the \"Hostname or IP Address\" section to either your domain name or public ip address.","title":"Application Setup"},{"location":"images/docker-openvpn-as/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-openvpn-as/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: openvpn-as: image: lscr.io/linuxserver/openvpn-as container_name: openvpn-as cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - INTERFACE=eth0 #optional volumes: - :/config ports: - 943:943 - 9443:9443 - 1194:1194/udp restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-openvpn-as/#docker-cli","text":"docker run -d \\ --name=openvpn-as \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e INTERFACE=eth0 `#optional` \\ -p 943:943 \\ -p 9443:9443 \\ -p 1194:1194/udp \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/openvpn-as","title":"docker cli"},{"location":"images/docker-openvpn-as/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-openvpn-as/#ports-p","text":"Parameter Function 943 Admin GUI port. 9443 TCP port. 1194/udp UDP port.","title":"Ports (-p)"},{"location":"images/docker-openvpn-as/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. INTERFACE=eth0 With bridge networking, leave it as eth0 (or don't include at all), if host or macvlan, set it to your host's network interface, found by running ifconfig","title":"Environment Variables (-e)"},{"location":"images/docker-openvpn-as/#volume-mappings-v","text":"Volume Function /config Where openvpn-as should store configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-openvpn-as/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-openvpn-as/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-openvpn-as/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-openvpn-as/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-openvpn-as/#support-info","text":"Shell access whilst the container is running: docker exec -it openvpn-as /bin/bash To monitor the logs of the container in realtime: docker logs -f openvpn-as Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' openvpn-as Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/openvpn-as","title":"Support Info"},{"location":"images/docker-openvpn-as/#versions","text":"15.06.20: - Deprecate. 15.06.20: - Add fixes for 2.9.0. 04.11.20: - xenial tag is deprecated and there will be no further releases for that tag. 22.06.20: - Added Support for persistent Customization Folders. 26.03.20: - Switch to using the openvpn-as repo for packages. 29.08.19: - Update Application Setup instructions in readme to fix 2.7.5 login issue for existing users. 27.08.19: - Add new clients package to install and upgrade process. 22.08.19: - Prevent auto-start of openvpn after first time install, before configuration is completed. 25.07.19: - Create a xenial branch/tag and rebase master/latest to bionic. 07.04.19: - Fix first time config. 03.04.19: - Big rewrite of the install and update logic of openvpn-as to fix breaking changes (should fix updating from 2.6.1 to 2.7.3), added mysql-client for cluster support. 14.03.19: - Update deb package URL. 21.02.19: - Rebase to xenial due to incompatibility issues on some older host OSes. 12.02.19: - Rename github repo to match the docker hub repo and container name. 07.02.19: - Add pipeline logic and multi arch. 31.01.19: - Add port mappings to docker create sample in readme. 26.01.19: - Removed privileged and host networking requirements, added cap-add=NET_ADMIN requirement instead. INTERFACE no longer needs to be defined as in bridge mode, it will use the container's eth0 interface by default. 19.12.18: - Bump to version 2.6.1. 10.07.18: - Bump to version 2.5.2. 23.03.18: - Bump to version 2.5. 14.12.17: - Consolidate layers and fix continuation lines. 25.10.17: - Bump to version 2.1.12. 18.08.17: - Switch default authentication method to local, update readme on how to deactivate the admin user. 31.07.17: - Fix updates of existing openvpn-as installs. 07.07.17: - Bump to version 2.1.9. 31.10.16: - Bump to version 2.1.4. 14.10.16: - Add version layer information. 13.09.16: - Rebuild due to push error to hub on last build. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 01.08.16: - Rebase to xenial. 18.09.15: - Initial Release.","title":"Versions"},{"location":"images/docker-openvscode-server/","text":"linuxserver/openvscode-server Openvscode-server provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/openvscode-server:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases insiders \u2705 Insiders releases Application Setup If CONNECTION_TOKEN or CONNECTION_SECRET env vars are set, you can access the webui at http://:3000/?tkn=supersecrettoken (replace supersecrettoken with the value set). If not, you can access the webui at http://:3000 . For github integration, drop your ssh key in to /config/.ssh . Then open a terminal from the top menu and set your github username and email via the following commands git config --global user.name \"username\" git config --global user.email \"email address\" When reverse proxied through SWAG, custom services running on specific ports inside openvscode-server can be accessed at https://PORT.openvscode-server.domain.com very much like how code-server's port proxy function is handled. For that, a wildcard CNAME *.openvscode-server.domain.com needs to be created and the SWAG cert needs to cover those subdomains. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: openvscode-server: image: lscr.io/linuxserver/openvscode-server:latest container_name: openvscode-server environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONNECTION_TOKEN= #optional - CONNECTION_SECRET= #optional - SUDO_PASSWORD=password #optional - SUDO_PASSWORD_HASH= #optional volumes: - /path/to/appdata/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=openvscode-server \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONNECTION_TOKEN= `#optional` \\ -e CONNECTION_SECRET= `#optional` \\ -e SUDO_PASSWORD=password `#optional` \\ -e SUDO_PASSWORD_HASH= `#optional` \\ -p 3000:3000 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/openvscode-server:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Web UI port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use. CONNECTION_TOKEN= Optional security token for accessing the Web UI (ie. supersecrettoken ). CONNECTION_SECRET= Optional path to a file inside the container that contains the security token for accessing the Web UI (ie. /path/to/file ). Overrides CONNECTION_TOKEN . SUDO_PASSWORD=password If this optional variable is set, user will have sudo access in the openvscode-server terminal with the specified password. SUDO_PASSWORD_HASH= Optionally set sudo password via hash (takes priority over SUDO_PASSWORD var). Format is $type$salt$hashed . Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it openvscode-server /bin/bash To monitor the logs of the container in realtime: docker logs -f openvscode-server Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' openvscode-server Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/openvscode-server:latest Versions 29.09.22: - Rebase to jammy, switch to s6v3. Fix chown logic to skip /config/workspace contents. 12.02.22: - Update install-extension helper to compensate for upstream changes. 04.02.22: - Update binary for 1.64.0+. Allow for no token set when both toekn env vars are unset. Add libsecret for keytar. 29.12.21: - Add install-extension as a helper for mods to install extensions. 10.12.21: - Update deprecated connectionToken arg. 30.11.21: - Fix app folder permissions, add the optional sudo password vars. 29.11.21: - Create .profile and .bashrc for the user. 29.11.21: - Release insiders tag. 28.11.21: - Initial Release.","title":"openvscode-server"},{"location":"images/docker-openvscode-server/#linuxserveropenvscode-server","text":"Openvscode-server provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser.","title":"linuxserver/openvscode-server"},{"location":"images/docker-openvscode-server/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/openvscode-server:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-openvscode-server/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases insiders \u2705 Insiders releases","title":"Version Tags"},{"location":"images/docker-openvscode-server/#application-setup","text":"If CONNECTION_TOKEN or CONNECTION_SECRET env vars are set, you can access the webui at http://:3000/?tkn=supersecrettoken (replace supersecrettoken with the value set). If not, you can access the webui at http://:3000 . For github integration, drop your ssh key in to /config/.ssh . Then open a terminal from the top menu and set your github username and email via the following commands git config --global user.name \"username\" git config --global user.email \"email address\" When reverse proxied through SWAG, custom services running on specific ports inside openvscode-server can be accessed at https://PORT.openvscode-server.domain.com very much like how code-server's port proxy function is handled. For that, a wildcard CNAME *.openvscode-server.domain.com needs to be created and the SWAG cert needs to cover those subdomains.","title":"Application Setup"},{"location":"images/docker-openvscode-server/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-openvscode-server/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: openvscode-server: image: lscr.io/linuxserver/openvscode-server:latest container_name: openvscode-server environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONNECTION_TOKEN= #optional - CONNECTION_SECRET= #optional - SUDO_PASSWORD=password #optional - SUDO_PASSWORD_HASH= #optional volumes: - /path/to/appdata/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-openvscode-server/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=openvscode-server \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONNECTION_TOKEN= `#optional` \\ -e CONNECTION_SECRET= `#optional` \\ -e SUDO_PASSWORD=password `#optional` \\ -e SUDO_PASSWORD_HASH= `#optional` \\ -p 3000:3000 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/openvscode-server:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-openvscode-server/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-openvscode-server/#ports-p","text":"Parameter Function 3000 Web UI port.","title":"Ports (-p)"},{"location":"images/docker-openvscode-server/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use. CONNECTION_TOKEN= Optional security token for accessing the Web UI (ie. supersecrettoken ). CONNECTION_SECRET= Optional path to a file inside the container that contains the security token for accessing the Web UI (ie. /path/to/file ). Overrides CONNECTION_TOKEN . SUDO_PASSWORD=password If this optional variable is set, user will have sudo access in the openvscode-server terminal with the specified password. SUDO_PASSWORD_HASH= Optionally set sudo password via hash (takes priority over SUDO_PASSWORD var). Format is $type$salt$hashed .","title":"Environment Variables (-e)"},{"location":"images/docker-openvscode-server/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-openvscode-server/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-openvscode-server/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-openvscode-server/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-openvscode-server/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-openvscode-server/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-openvscode-server/#support-info","text":"Shell access whilst the container is running: docker exec -it openvscode-server /bin/bash To monitor the logs of the container in realtime: docker logs -f openvscode-server Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' openvscode-server Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/openvscode-server:latest","title":"Support Info"},{"location":"images/docker-openvscode-server/#versions","text":"29.09.22: - Rebase to jammy, switch to s6v3. Fix chown logic to skip /config/workspace contents. 12.02.22: - Update install-extension helper to compensate for upstream changes. 04.02.22: - Update binary for 1.64.0+. Allow for no token set when both toekn env vars are unset. Add libsecret for keytar. 29.12.21: - Add install-extension as a helper for mods to install extensions. 10.12.21: - Update deprecated connectionToken arg. 30.11.21: - Fix app folder permissions, add the optional sudo password vars. 29.11.21: - Create .profile and .bashrc for the user. 29.11.21: - Release insiders tag. 28.11.21: - Initial Release.","title":"Versions"},{"location":"images/docker-organizr/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Please use the official image at https://hub.docker.com/r/organizr/organizr linuxserver/organizr Organizr is a HTPC/Homelab Services Organizer - Written in PHP Do you have quite a bit of services running on your computer or server? Do you have a lot of bookmarks or have to memorize a bunch of ip's and ports? Well, Organizr is here to help with that. Organizr allows you to setup \"Tabs\" that will be loaded all in one webpage. You can then work on your server with ease. You can even open up two tabs side by side. Want to give users access to some Tabs? No problem, just enable user support and have them make an account. Want guests to be able to visit too? Enable Guest support for those tabs. For more information on Organizr and information on how to use it visit their site at https://github.com/causefx/Organizr Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/organizr should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: organizr: image: linuxserver/organizr container_name: organizr environment: - PUID=1000 - PGID=1000 - TZ= volumes: - :/config ports: - 9983:80 restart: unless-stopped docker cli docker run -d \\ --name=organizr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ= \\ -p 9983:80 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/organizr Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 will map the container's port 80 to port 9983 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ= for specifying your timezone Volume Mappings ( -v ) Volume Function /config this is where your user data and logs will live Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup Dead simple to get running, create the container as instructed and start it. When up and running, load the site. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it organizr /bin/bash To monitor the logs of the container in realtime: docker logs -f organizr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' organizr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/organizr Versions 18.04.19: - Fix new install not working. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 26.02.19: - Upgrade packages during install to prevent mismatch with baseimage. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Fix permissions on new app location 31.12.18: - Moved to pipeline building from v1-master branch 05.09.18: - Rebase to Alpine 3.8 10.01.18: - Rebase to Alpine 3.7 25.05.17: - Rebase to Alpine 3.6 02.05.17: - Added php7-curl package 12.04.17: - Added php7-ldap package 10.03.18: - Initial Release.","title":"organizr"},{"location":"images/docker-organizr/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. Please use the official image at https://hub.docker.com/r/organizr/organizr","title":"DEPRECATION NOTICE"},{"location":"images/docker-organizr/#linuxserverorganizr","text":"Organizr is a HTPC/Homelab Services Organizer - Written in PHP Do you have quite a bit of services running on your computer or server? Do you have a lot of bookmarks or have to memorize a bunch of ip's and ports? Well, Organizr is here to help with that. Organizr allows you to setup \"Tabs\" that will be loaded all in one webpage. You can then work on your server with ease. You can even open up two tabs side by side. Want to give users access to some Tabs? No problem, just enable user support and have them make an account. Want guests to be able to visit too? Enable Guest support for those tabs. For more information on Organizr and information on how to use it visit their site at https://github.com/causefx/Organizr","title":"linuxserver/organizr"},{"location":"images/docker-organizr/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/organizr should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-organizr/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-organizr/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: organizr: image: linuxserver/organizr container_name: organizr environment: - PUID=1000 - PGID=1000 - TZ= volumes: - :/config ports: - 9983:80 restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-organizr/#docker-cli","text":"docker run -d \\ --name=organizr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ= \\ -p 9983:80 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/organizr","title":"docker cli"},{"location":"images/docker-organizr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-organizr/#ports-p","text":"Parameter Function 80 will map the container's port 80 to port 9983 on the host","title":"Ports (-p)"},{"location":"images/docker-organizr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ= for specifying your timezone","title":"Environment Variables (-e)"},{"location":"images/docker-organizr/#volume-mappings-v","text":"Volume Function /config this is where your user data and logs will live","title":"Volume Mappings (-v)"},{"location":"images/docker-organizr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-organizr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-organizr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-organizr/#application-setup","text":"Dead simple to get running, create the container as instructed and start it. When up and running, load the site.","title":"Application Setup"},{"location":"images/docker-organizr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-organizr/#support-info","text":"Shell access whilst the container is running: docker exec -it organizr /bin/bash To monitor the logs of the container in realtime: docker logs -f organizr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' organizr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/organizr","title":"Support Info"},{"location":"images/docker-organizr/#versions","text":"18.04.19: - Fix new install not working. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 26.02.19: - Upgrade packages during install to prevent mismatch with baseimage. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Fix permissions on new app location 31.12.18: - Moved to pipeline building from v1-master branch 05.09.18: - Rebase to Alpine 3.8 10.01.18: - Rebase to Alpine 3.7 25.05.17: - Rebase to Alpine 3.6 02.05.17: - Added php7-curl package 12.04.17: - Added php7-ldap package 10.03.18: - Initial Release.","title":"Versions"},{"location":"images/docker-oscam/","text":"linuxserver/oscam Oscam is an Open Source Conditional Access Module software used for descrambling DVB transmissions using smart cards. It's both a server and a client. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/oscam:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup To set up oscam there are numerous guides on the internet. There are too many scenarios to make a quick guide. The web interface is at port 8888. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: oscam: image: lscr.io/linuxserver/oscam:latest container_name: oscam environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 8888:8888 devices: - /dev/ttyUSB0:/dev/ttyUSB0 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=oscam \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8888:8888 \\ -v /path/to/data:/config \\ --device /dev/ttyUSB0:/dev/ttyUSB0 \\ --restart unless-stopped \\ lscr.io/linuxserver/oscam:latest Passing through Smart Card Readers If you want to pass through a smart card reader, you need to specify the reader with the --device= tag. The method used depends on how the reader is recognized. The first is /dev/ttyUSBX. To find the correct device, connect the reader and run dmesg | tail on the host. In the output you will find /dev/ttyUSBX, where X is the number of the device. If this is the first reader you connect to your host, it will be /dev/ttyUSB0. If you add one more it will be /dev/ttyUSB1. If there are no /dev/ttyUSBX device in dmesg | tail , you have to use the USB bus path. It will look similar to the below. /dev/bus/usb/001/001 The important parts are the two numbers in the end. The first one is the Bus number, the second is the Device number. To find the Bus and Device number you have to run lsusb on the host, then find your USB device in the list and note the Bus and Device numbers. Here is an example of how to find the Bus and Device. The output of the lsusb command is below. Bus 002 Device 005: ID 076b:6622 OmniKey AG CardMan 6121 The first number, the Bus, is 002. The second number, the Device, is 005. This will look like below in the --device= tag. --device=/dev/bus/usb/002/005 If you have multiple smart card readers, you add one --device= tag for each reader. Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8888 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where oscam should store config files and logs. Device Mappings ( --device ) Parameter Function /dev/ttyUSB0 For passing through smart card readers. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it oscam /bin/bash To monitor the logs of the container in realtime: docker logs -f oscam Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' oscam Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/oscam:latest Versions 03.11.22: - Rebasing to alpine 3.16 and s6v3. Update pcsd driver link. 13.02.22: - Rebasing to alpine 3.15. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 29.04.19: - Add revision check, so pipeline can build new revisions. 28.04.19: - Switch back to streamboard svn to fix version not showing in UI. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 19.02.19: - Add pipeline logic and multi arch, rebase to Alpine 3.8. 03.01.18: - Deprecate cpu_core routine lack of scaling. 13.12.17: - Rebase to alpine 3.7. 19.10.17: - Add ccid package for usb card readers. 17.10.17: - Switch to using bzr for source code, streamboard awol. 28.05.17: - Rebase to alpine 3.6. 09.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 02.10.16: - Add info on passing through devices to README. 25.09.16: - Initial release.","title":"oscam"},{"location":"images/docker-oscam/#linuxserveroscam","text":"Oscam is an Open Source Conditional Access Module software used for descrambling DVB transmissions using smart cards. It's both a server and a client.","title":"linuxserver/oscam"},{"location":"images/docker-oscam/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/oscam:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-oscam/#application-setup","text":"To set up oscam there are numerous guides on the internet. There are too many scenarios to make a quick guide. The web interface is at port 8888.","title":"Application Setup"},{"location":"images/docker-oscam/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-oscam/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: oscam: image: lscr.io/linuxserver/oscam:latest container_name: oscam environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 8888:8888 devices: - /dev/ttyUSB0:/dev/ttyUSB0 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-oscam/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=oscam \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8888:8888 \\ -v /path/to/data:/config \\ --device /dev/ttyUSB0:/dev/ttyUSB0 \\ --restart unless-stopped \\ lscr.io/linuxserver/oscam:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-oscam/#passing-through-smart-card-readers","text":"If you want to pass through a smart card reader, you need to specify the reader with the --device= tag. The method used depends on how the reader is recognized. The first is /dev/ttyUSBX. To find the correct device, connect the reader and run dmesg | tail on the host. In the output you will find /dev/ttyUSBX, where X is the number of the device. If this is the first reader you connect to your host, it will be /dev/ttyUSB0. If you add one more it will be /dev/ttyUSB1. If there are no /dev/ttyUSBX device in dmesg | tail , you have to use the USB bus path. It will look similar to the below. /dev/bus/usb/001/001 The important parts are the two numbers in the end. The first one is the Bus number, the second is the Device number. To find the Bus and Device number you have to run lsusb on the host, then find your USB device in the list and note the Bus and Device numbers. Here is an example of how to find the Bus and Device. The output of the lsusb command is below. Bus 002 Device 005: ID 076b:6622 OmniKey AG CardMan 6121 The first number, the Bus, is 002. The second number, the Device, is 005. This will look like below in the --device= tag. --device=/dev/bus/usb/002/005 If you have multiple smart card readers, you add one --device= tag for each reader.","title":"Passing through Smart Card Readers"},{"location":"images/docker-oscam/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-oscam/#ports-p","text":"Parameter Function 8888 WebUI","title":"Ports (-p)"},{"location":"images/docker-oscam/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-oscam/#volume-mappings-v","text":"Volume Function /config Where oscam should store config files and logs.","title":"Volume Mappings (-v)"},{"location":"images/docker-oscam/#device-mappings-device","text":"Parameter Function /dev/ttyUSB0 For passing through smart card readers.","title":"Device Mappings (--device)"},{"location":"images/docker-oscam/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-oscam/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-oscam/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-oscam/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-oscam/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-oscam/#support-info","text":"Shell access whilst the container is running: docker exec -it oscam /bin/bash To monitor the logs of the container in realtime: docker logs -f oscam Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' oscam Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/oscam:latest","title":"Support Info"},{"location":"images/docker-oscam/#versions","text":"03.11.22: - Rebasing to alpine 3.16 and s6v3. Update pcsd driver link. 13.02.22: - Rebasing to alpine 3.15. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 29.04.19: - Add revision check, so pipeline can build new revisions. 28.04.19: - Switch back to streamboard svn to fix version not showing in UI. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 19.02.19: - Add pipeline logic and multi arch, rebase to Alpine 3.8. 03.01.18: - Deprecate cpu_core routine lack of scaling. 13.12.17: - Rebase to alpine 3.7. 19.10.17: - Add ccid package for usb card readers. 17.10.17: - Switch to using bzr for source code, streamboard awol. 28.05.17: - Rebase to alpine 3.6. 09.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 02.10.16: - Add info on passing through devices to README. 25.09.16: - Initial release.","title":"Versions"},{"location":"images/docker-overseerr/","text":"linuxserver/overseerr Overseerr is a request management and media discovery tool built to work with your existing Plex ecosystem. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/overseerr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from GitHub develop \u2705 Development releases from commits in upstream develop branch Application Setup Access the webui at :5055 , for more information check out Overseerr . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: overseerr: image: lscr.io/linuxserver/overseerr:latest container_name: overseerr environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata/config:/config ports: - 5055:5055 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=overseerr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -p 5055:5055 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/overseerr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5055 Port for Overseerr's web interface. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it overseerr /bin/bash To monitor the logs of the container in realtime: docker logs -f overseerr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' overseerr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/overseerr:latest Versions 27.10.22: - Rebase main to 3.16, migrate to s6v3. 20.08.22: - Don't install cypress. 01.04.22: - Rebase main branch to Alpine 3.15. 27.01.22: - Rebase develop branch to Alpine 3.15. 04.01.22: - Remove cached files. 10.10.21: - Add additional post-build cleanup. 19.09.21: - Rebase to alpine 3.14. Update code formatting. Increase js mem limit. 05.04.21: - Initial Release.","title":"overseerr"},{"location":"images/docker-overseerr/#linuxserveroverseerr","text":"Overseerr is a request management and media discovery tool built to work with your existing Plex ecosystem.","title":"linuxserver/overseerr"},{"location":"images/docker-overseerr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/overseerr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-overseerr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from GitHub develop \u2705 Development releases from commits in upstream develop branch","title":"Version Tags"},{"location":"images/docker-overseerr/#application-setup","text":"Access the webui at :5055 , for more information check out Overseerr .","title":"Application Setup"},{"location":"images/docker-overseerr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-overseerr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: overseerr: image: lscr.io/linuxserver/overseerr:latest container_name: overseerr environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata/config:/config ports: - 5055:5055 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-overseerr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=overseerr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -p 5055:5055 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/overseerr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-overseerr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-overseerr/#ports-p","text":"Parameter Function 5055 Port for Overseerr's web interface.","title":"Ports (-p)"},{"location":"images/docker-overseerr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York","title":"Environment Variables (-e)"},{"location":"images/docker-overseerr/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-overseerr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-overseerr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-overseerr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-overseerr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-overseerr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-overseerr/#support-info","text":"Shell access whilst the container is running: docker exec -it overseerr /bin/bash To monitor the logs of the container in realtime: docker logs -f overseerr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' overseerr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/overseerr:latest","title":"Support Info"},{"location":"images/docker-overseerr/#versions","text":"27.10.22: - Rebase main to 3.16, migrate to s6v3. 20.08.22: - Don't install cypress. 01.04.22: - Rebase main branch to Alpine 3.15. 27.01.22: - Rebase develop branch to Alpine 3.15. 04.01.22: - Remove cached files. 10.10.21: - Add additional post-build cleanup. 19.09.21: - Rebase to alpine 3.14. Update code formatting. Increase js mem limit. 05.04.21: - Initial Release.","title":"Versions"},{"location":"images/docker-paperless-ng/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend switching to the new official container: https://github.com/paperless-ngx/paperless-ngx linuxserver/paperless-ng Paperless-ng is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\" Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/paperless-ng:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Default login is admin:admin via the webui, accessible at http://SERVERIP:PORT More info at paperless-ng . For convenience this container provides an alias to perform administration management commands. Available administration commands are documented upstream here and can be accessed with this container thus: docker exec -it manage . For example, docker exec -it paperless manage document_retagger -tT . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: paperless-ng: image: lscr.io/linuxserver/paperless-ng:latest container_name: paperless-ng environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - REDIS_URL= #optional volumes: - :/config - :/data ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=paperless-ng \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e REDIS_URL= `#optional` \\ -p 8000:8000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/paperless-ng:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 http gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York REDIS_URL= Specify an external redis instance to use. Can optionally include a port ( redis:6379 ) and/or db ( redis/foo ). If left blank or not included, will use a built-in redis instance. If changed after initial setup will also require manual modification of /config/settings.py Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /data Storage location for all paperless-ng data files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it paperless-ng /bin/bash To monitor the logs of the container in realtime: docker logs -f paperless-ng Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' paperless-ng Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/paperless-ng:latest Versions 05.09.22: - Deprecate. 30.11.21: - Added in jbig2enc. 07.10.21: - Fixed variable that determins if we should run redis locally. 01.10.21: - Replaced uwsgi with gunicorn due to websocket issues. 24.07.21: - Fixed directory config files (sqlite db) is all stored. 23.07.21: - Fixed initial user creation. 10.07.21: - Initial Release.","title":"paperless-ng"},{"location":"images/docker-paperless-ng/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend switching to the new official container: https://github.com/paperless-ngx/paperless-ngx","title":"DEPRECATION NOTICE"},{"location":"images/docker-paperless-ng/#linuxserverpaperless-ng","text":"Paperless-ng is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\"","title":"linuxserver/paperless-ng"},{"location":"images/docker-paperless-ng/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/paperless-ng:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-paperless-ng/#application-setup","text":"Default login is admin:admin via the webui, accessible at http://SERVERIP:PORT More info at paperless-ng . For convenience this container provides an alias to perform administration management commands. Available administration commands are documented upstream here and can be accessed with this container thus: docker exec -it manage . For example, docker exec -it paperless manage document_retagger -tT .","title":"Application Setup"},{"location":"images/docker-paperless-ng/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-paperless-ng/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: paperless-ng: image: lscr.io/linuxserver/paperless-ng:latest container_name: paperless-ng environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - REDIS_URL= #optional volumes: - :/config - :/data ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-paperless-ng/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=paperless-ng \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e REDIS_URL= `#optional` \\ -p 8000:8000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/paperless-ng:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-paperless-ng/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-paperless-ng/#ports-p","text":"Parameter Function 8000 http gui","title":"Ports (-p)"},{"location":"images/docker-paperless-ng/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York REDIS_URL= Specify an external redis instance to use. Can optionally include a port ( redis:6379 ) and/or db ( redis/foo ). If left blank or not included, will use a built-in redis instance. If changed after initial setup will also require manual modification of /config/settings.py","title":"Environment Variables (-e)"},{"location":"images/docker-paperless-ng/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /data Storage location for all paperless-ng data files.","title":"Volume Mappings (-v)"},{"location":"images/docker-paperless-ng/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-paperless-ng/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-paperless-ng/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-paperless-ng/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-paperless-ng/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-paperless-ng/#support-info","text":"Shell access whilst the container is running: docker exec -it paperless-ng /bin/bash To monitor the logs of the container in realtime: docker logs -f paperless-ng Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' paperless-ng Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/paperless-ng:latest","title":"Support Info"},{"location":"images/docker-paperless-ng/#versions","text":"05.09.22: - Deprecate. 30.11.21: - Added in jbig2enc. 07.10.21: - Fixed variable that determins if we should run redis locally. 01.10.21: - Replaced uwsgi with gunicorn due to websocket issues. 24.07.21: - Fixed directory config files (sqlite db) is all stored. 23.07.21: - Fixed initial user creation. 10.07.21: - Initial Release.","title":"Versions"},{"location":"images/docker-paperless-ngx/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend switching to the new official container: https://github.com/paperless-ngx/paperless-ngx linuxserver/paperless-ngx Paperless-ngx is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\" Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/paperless-ngx:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Default login is admin:admin via the webui, accessible at http://SERVERIP:PORT More info at paperless-ngx . For convenience this container provides an alias to perform administration management commands. Available administration commands are documented upstream here and can be accessed with this container thus: docker exec -it manage . For example, docker exec -it paperless manage document_retagger -tT . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: paperless-ngx: image: lscr.io/linuxserver/paperless-ngx:latest container_name: paperless-ngx environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - REDIS_URL= #optional volumes: - /path/to/appdata/config:/config - /path/to/appdata/data:/data ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=paperless-ngx \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e REDIS_URL= `#optional` \\ -p 8000:8000 \\ -v /path/to/appdata/config:/config \\ -v /path/to/appdata/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/paperless-ngx:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 http gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York REDIS_URL= Specify an external redis instance to use. Can optionally include a port ( redis:6379 ) and/or db ( redis/foo ). If left blank or not included, will use a built-in redis instance. If changed after initial setup will also require manual modification of /config/settings.py Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /data Storage location for all paperless-ngx data files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it paperless-ngx /bin/bash To monitor the logs of the container in realtime: docker logs -f paperless-ngx Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' paperless-ngx Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/paperless-ngx:latest Versions 05.09.22: - Deprecate. 16.05.22: - Add correct libqpdf.so to arm builds. 14.05.22: - Fine tune disabling of redis. 12.05.22: - Move migrations to after multilangocr mod. Fix disabling of redis. Add missing dep for postgresql. 12.05.22: - Utilize lsio wheel for pikepdf. 11.05.22: - Update upstream artifact name and utilize lsio wheels for scipy and scikit-learn. 05.05.22: - Add runtime dependencies libxslt1.1 for armhf 30.04.22: - Add runtime dependencies lizbar and poppler-utils 27.04.22: - Add build-dependencies for arm32 builds. 11.04.22: - Replaced uwsgi with gunicorn due to websocket issues. 11.03.22: - Initial Release.","title":"paperless-ngx"},{"location":"images/docker-paperless-ngx/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend switching to the new official container: https://github.com/paperless-ngx/paperless-ngx","title":"DEPRECATION NOTICE"},{"location":"images/docker-paperless-ngx/#linuxserverpaperless-ngx","text":"Paperless-ngx is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\"","title":"linuxserver/paperless-ngx"},{"location":"images/docker-paperless-ngx/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/paperless-ngx:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-paperless-ngx/#application-setup","text":"Default login is admin:admin via the webui, accessible at http://SERVERIP:PORT More info at paperless-ngx . For convenience this container provides an alias to perform administration management commands. Available administration commands are documented upstream here and can be accessed with this container thus: docker exec -it manage . For example, docker exec -it paperless manage document_retagger -tT .","title":"Application Setup"},{"location":"images/docker-paperless-ngx/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-paperless-ngx/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: paperless-ngx: image: lscr.io/linuxserver/paperless-ngx:latest container_name: paperless-ngx environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - REDIS_URL= #optional volumes: - /path/to/appdata/config:/config - /path/to/appdata/data:/data ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-paperless-ngx/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=paperless-ngx \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e REDIS_URL= `#optional` \\ -p 8000:8000 \\ -v /path/to/appdata/config:/config \\ -v /path/to/appdata/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/paperless-ngx:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-paperless-ngx/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-paperless-ngx/#ports-p","text":"Parameter Function 8000 http gui","title":"Ports (-p)"},{"location":"images/docker-paperless-ngx/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York REDIS_URL= Specify an external redis instance to use. Can optionally include a port ( redis:6379 ) and/or db ( redis/foo ). If left blank or not included, will use a built-in redis instance. If changed after initial setup will also require manual modification of /config/settings.py","title":"Environment Variables (-e)"},{"location":"images/docker-paperless-ngx/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /data Storage location for all paperless-ngx data files.","title":"Volume Mappings (-v)"},{"location":"images/docker-paperless-ngx/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-paperless-ngx/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-paperless-ngx/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-paperless-ngx/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-paperless-ngx/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-paperless-ngx/#support-info","text":"Shell access whilst the container is running: docker exec -it paperless-ngx /bin/bash To monitor the logs of the container in realtime: docker logs -f paperless-ngx Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' paperless-ngx Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/paperless-ngx:latest","title":"Support Info"},{"location":"images/docker-paperless-ngx/#versions","text":"05.09.22: - Deprecate. 16.05.22: - Add correct libqpdf.so to arm builds. 14.05.22: - Fine tune disabling of redis. 12.05.22: - Move migrations to after multilangocr mod. Fix disabling of redis. Add missing dep for postgresql. 12.05.22: - Utilize lsio wheel for pikepdf. 11.05.22: - Update upstream artifact name and utilize lsio wheels for scipy and scikit-learn. 05.05.22: - Add runtime dependencies libxslt1.1 for armhf 30.04.22: - Add runtime dependencies lizbar and poppler-utils 27.04.22: - Add build-dependencies for arm32 builds. 11.04.22: - Replaced uwsgi with gunicorn due to websocket issues. 11.03.22: - Initial Release.","title":"Versions"},{"location":"images/docker-papermerge/","text":"linuxserver/papermerge Papermerge is an open source document management system (DMS) primarily designed for archiving and retrieving your digital documents. Instead of having piles of paper documents all over your desk, office or drawers - you can quickly scan them and configure your scanner to directly upload to Papermerge DMS.\" Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/papermerge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Default login is admin:admin via the webui, accessible at http://SERVERIP:PORT More info at papermerge . If you need non-English OCR language support, you can use this mod . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: papermerge: image: lscr.io/linuxserver/papermerge:latest container_name: papermerge environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - REDIS_URL= #optional volumes: - :/config - :/data ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=papermerge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e REDIS_URL= `#optional` \\ -p 8000:8000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/papermerge:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 http gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York REDIS_URL= Specify an external redis instance to use. Can optionally include a port ( redis:6379 ) and/or db ( redis/foo ). If left blank or not included, will use a built-in redis instance. If changed after initial setup will also require manual modification of /config/settings.py Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /data Storage location for all papermerge data files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it papermerge /bin/bash To monitor the logs of the container in realtime: docker logs -f papermerge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' papermerge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/papermerge:latest Versions 15.07.22: - Don't install development python packages 13.04.21: - Handle upstream stapler change 13.03.21: - Fixed mglib dependency per issue 32 25.02.21: - Updated dependencies for v2 07.02.21: - Support external MySQL/PSQL DBs. 01.02.21: - Add redis. 09.12.20: - Fix locales. 08.08.20: - Initial Release.","title":"papermerge"},{"location":"images/docker-papermerge/#linuxserverpapermerge","text":"Papermerge is an open source document management system (DMS) primarily designed for archiving and retrieving your digital documents. Instead of having piles of paper documents all over your desk, office or drawers - you can quickly scan them and configure your scanner to directly upload to Papermerge DMS.\"","title":"linuxserver/papermerge"},{"location":"images/docker-papermerge/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/papermerge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-papermerge/#application-setup","text":"Default login is admin:admin via the webui, accessible at http://SERVERIP:PORT More info at papermerge . If you need non-English OCR language support, you can use this mod .","title":"Application Setup"},{"location":"images/docker-papermerge/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-papermerge/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: papermerge: image: lscr.io/linuxserver/papermerge:latest container_name: papermerge environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - REDIS_URL= #optional volumes: - :/config - :/data ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-papermerge/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=papermerge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e REDIS_URL= `#optional` \\ -p 8000:8000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/papermerge:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-papermerge/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-papermerge/#ports-p","text":"Parameter Function 8000 http gui","title":"Ports (-p)"},{"location":"images/docker-papermerge/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York REDIS_URL= Specify an external redis instance to use. Can optionally include a port ( redis:6379 ) and/or db ( redis/foo ). If left blank or not included, will use a built-in redis instance. If changed after initial setup will also require manual modification of /config/settings.py","title":"Environment Variables (-e)"},{"location":"images/docker-papermerge/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /data Storage location for all papermerge data files.","title":"Volume Mappings (-v)"},{"location":"images/docker-papermerge/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-papermerge/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-papermerge/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-papermerge/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-papermerge/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-papermerge/#support-info","text":"Shell access whilst the container is running: docker exec -it papermerge /bin/bash To monitor the logs of the container in realtime: docker logs -f papermerge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' papermerge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/papermerge:latest","title":"Support Info"},{"location":"images/docker-papermerge/#versions","text":"15.07.22: - Don't install development python packages 13.04.21: - Handle upstream stapler change 13.03.21: - Fixed mglib dependency per issue 32 25.02.21: - Updated dependencies for v2 07.02.21: - Support external MySQL/PSQL DBs. 01.02.21: - Add redis. 09.12.20: - Fix locales. 08.08.20: - Initial Release.","title":"Versions"},{"location":"images/docker-photoshow/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/photoshow Photoshow is gallery software at its easiest, it doesn't even require a database. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/photoshow:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup On first run create an admin account, any folder and its subfolders that you map to /Pictures will be presented as a webgallery. Config settings are persistent and stored as a subfolder of the /Thumbs mapping. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: photoshow: image: lscr.io/linuxserver/photoshow:latest container_name: photoshow environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/Pictures:ro - :/Thumbs ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=photoshow \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ -v :/Pictures:ro \\ -v :/Thumbs \\ --restart unless-stopped \\ lscr.io/linuxserver/photoshow:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Stores config and logs for nginx base. /Pictures:ro Your local folder of photos you wish to share. /Thumbs Local folder to store thumbnails of your images. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it photoshow /bin/bash To monitor the logs of the container in realtime: docker logs -f photoshow Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' photoshow Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/photoshow:latest Versions 14.10.22: - Deprecate image. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 23.09.19: - Adding PHP-Exif for image metadata and processing. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 05.09.18: - Rebase to alpine 3.8. 07.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 14.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 30.09.16: - Rebase to alpine linux. 11.09.16: - Add layer badges to README. 21.08.15: - Use patched keybaord js from fork of photoshow. 21.08.15: - Initial Release.","title":"photoshow"},{"location":"images/docker-photoshow/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-photoshow/#linuxserverphotoshow","text":"Photoshow is gallery software at its easiest, it doesn't even require a database.","title":"linuxserver/photoshow"},{"location":"images/docker-photoshow/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/photoshow:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-photoshow/#application-setup","text":"On first run create an admin account, any folder and its subfolders that you map to /Pictures will be presented as a webgallery. Config settings are persistent and stored as a subfolder of the /Thumbs mapping.","title":"Application Setup"},{"location":"images/docker-photoshow/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-photoshow/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: photoshow: image: lscr.io/linuxserver/photoshow:latest container_name: photoshow environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/Pictures:ro - :/Thumbs ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-photoshow/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=photoshow \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ -v :/Pictures:ro \\ -v :/Thumbs \\ --restart unless-stopped \\ lscr.io/linuxserver/photoshow:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-photoshow/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-photoshow/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-photoshow/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-photoshow/#volume-mappings-v","text":"Volume Function /config Stores config and logs for nginx base. /Pictures:ro Your local folder of photos you wish to share. /Thumbs Local folder to store thumbnails of your images.","title":"Volume Mappings (-v)"},{"location":"images/docker-photoshow/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-photoshow/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-photoshow/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-photoshow/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-photoshow/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-photoshow/#support-info","text":"Shell access whilst the container is running: docker exec -it photoshow /bin/bash To monitor the logs of the container in realtime: docker logs -f photoshow Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' photoshow Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/photoshow:latest","title":"Support Info"},{"location":"images/docker-photoshow/#versions","text":"14.10.22: - Deprecate image. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 23.09.19: - Adding PHP-Exif for image metadata and processing. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 05.09.18: - Rebase to alpine 3.8. 07.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 14.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 30.09.16: - Rebase to alpine linux. 11.09.16: - Add layer badges to README. 21.08.15: - Use patched keybaord js from fork of photoshow. 21.08.15: - Initial Release.","title":"Versions"},{"location":"images/docker-phpmyadmin/","text":"linuxserver/phpmyadmin Phpmyadmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL and MariaDB. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/phpmyadmin:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This image uses nginx, in contrast to the official images which offer fpm-only or Apache variants. We support all of the official environment variables for configuration as well as directly editing the config files. For more information check out the phpmyadmin documentation . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: phpmyadmin: image: lscr.io/linuxserver/phpmyadmin:latest container_name: phpmyadmin environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - PMA_ARBITRARY=1 #optional - PMA_ABSOLUTE_URI=https://phpmyadmin.example.com #optional volumes: - /path/to/appdata/config:/config ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=phpmyadmin \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e PMA_ARBITRARY=1 `#optional` \\ -e PMA_ABSOLUTE_URI=https://phpmyadmin.example.com `#optional` \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/phpmyadmin:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Port for web frontend Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York PMA_ARBITRARY=1 Set to 1 to allow you to connect to any server. Setting to 0 will only allow you to connect to specified hosts (See Application Setup) PMA_ABSOLUTE_URI=https://phpmyadmin.example.com Set the URL you will use to access the web frontend Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it phpmyadmin /bin/bash To monitor the logs of the container in realtime: docker logs -f phpmyadmin Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' phpmyadmin Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/phpmyadmin:latest Versions 18.11.22: - Rebasing to Alpine 3.16, migrate to s6v3. 20.08.22: - Rebasing to Alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 23.01.22: - Pin versions to 5.x.x. 14.06.21: - Initial Release.","title":"phpmyadmin"},{"location":"images/docker-phpmyadmin/#linuxserverphpmyadmin","text":"Phpmyadmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL and MariaDB.","title":"linuxserver/phpmyadmin"},{"location":"images/docker-phpmyadmin/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/phpmyadmin:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-phpmyadmin/#application-setup","text":"This image uses nginx, in contrast to the official images which offer fpm-only or Apache variants. We support all of the official environment variables for configuration as well as directly editing the config files. For more information check out the phpmyadmin documentation .","title":"Application Setup"},{"location":"images/docker-phpmyadmin/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-phpmyadmin/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: phpmyadmin: image: lscr.io/linuxserver/phpmyadmin:latest container_name: phpmyadmin environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - PMA_ARBITRARY=1 #optional - PMA_ABSOLUTE_URI=https://phpmyadmin.example.com #optional volumes: - /path/to/appdata/config:/config ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-phpmyadmin/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=phpmyadmin \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e PMA_ARBITRARY=1 `#optional` \\ -e PMA_ABSOLUTE_URI=https://phpmyadmin.example.com `#optional` \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/phpmyadmin:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-phpmyadmin/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-phpmyadmin/#ports-p","text":"Parameter Function 80 Port for web frontend","title":"Ports (-p)"},{"location":"images/docker-phpmyadmin/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York PMA_ARBITRARY=1 Set to 1 to allow you to connect to any server. Setting to 0 will only allow you to connect to specified hosts (See Application Setup) PMA_ABSOLUTE_URI=https://phpmyadmin.example.com Set the URL you will use to access the web frontend","title":"Environment Variables (-e)"},{"location":"images/docker-phpmyadmin/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-phpmyadmin/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-phpmyadmin/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-phpmyadmin/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-phpmyadmin/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-phpmyadmin/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-phpmyadmin/#support-info","text":"Shell access whilst the container is running: docker exec -it phpmyadmin /bin/bash To monitor the logs of the container in realtime: docker logs -f phpmyadmin Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' phpmyadmin Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/phpmyadmin:latest","title":"Support Info"},{"location":"images/docker-phpmyadmin/#versions","text":"18.11.22: - Rebasing to Alpine 3.16, migrate to s6v3. 20.08.22: - Rebasing to Alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 23.01.22: - Pin versions to 5.x.x. 14.06.21: - Initial Release.","title":"Versions"},{"location":"images/docker-pidgin/","text":"linuxserver/pidgin Pidgin is a chat program which lets you log into accounts on multiple chat networks simultaneously. This means that you can be chatting with friends on XMPP and sitting in an IRC channel at the same time. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pidgin:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true This Pidgin installation comes with default chat plugins plus a series of third party ones. Please note that the third party plugins for the most part are not simply plug and play, you will need to reference their documentation and possibly generate oauth tokens along with other workarounds . Third party plugins are always in a state of constant development do not expect every single native feature to work flawlessly. To ease integration with some third party plugins we include Firefox in this image to allow you to fill out captchas or pre-auth before loading your credentials into the program, simply right click the desktop to launch it. Bonjour- Default XMPP style plugin Discord- Provided by purple-discord Facebook- Provided by purple-facebook Gadu-Gadu- Default libgadu plugin Google Talk- Provided by purple-hangouts GroupWise- Default GroupWise plugin Hangouts- Provided by purple-hangouts ICQ (WIM)- Provided by icyque IRC- Default IRC plugin Instagram- Provided by purple-instagram Office Comminicator (SIPE)- Provided by SIPE Project Rocket.chat- Provided by purple-rocketchat SIMPLE- Default plugin Skype (HTTP)- Provided by skype4pidgin Slack- Provided by slack-libpurple Telegram- Provided by telegram-purple XMPP- Default XMPP plugin Zephyr- Default project Athena plugin Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pidgin: image: lscr.io/linuxserver/pidgin:latest container_name: pidgin security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pidgin \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/pidgin:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Pidgin desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores local files and settings Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pidgin /bin/bash To monitor the logs of the container in realtime: docker logs -f pidgin Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pidgin Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pidgin:latest Versions 21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 15.02.22: - Add build deps for discord. 23.12.21: - Rebase to Alpine 3.15. 26.09.21: - Rebase to Alpine 3.14. 14.05.21: - Initial release.","title":"pidgin"},{"location":"images/docker-pidgin/#linuxserverpidgin","text":"Pidgin is a chat program which lets you log into accounts on multiple chat networks simultaneously. This means that you can be chatting with friends on XMPP and sitting in an IRC channel at the same time.","title":"linuxserver/pidgin"},{"location":"images/docker-pidgin/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pidgin:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-pidgin/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true This Pidgin installation comes with default chat plugins plus a series of third party ones. Please note that the third party plugins for the most part are not simply plug and play, you will need to reference their documentation and possibly generate oauth tokens along with other workarounds . Third party plugins are always in a state of constant development do not expect every single native feature to work flawlessly. To ease integration with some third party plugins we include Firefox in this image to allow you to fill out captchas or pre-auth before loading your credentials into the program, simply right click the desktop to launch it. Bonjour- Default XMPP style plugin Discord- Provided by purple-discord Facebook- Provided by purple-facebook Gadu-Gadu- Default libgadu plugin Google Talk- Provided by purple-hangouts GroupWise- Default GroupWise plugin Hangouts- Provided by purple-hangouts ICQ (WIM)- Provided by icyque IRC- Default IRC plugin Instagram- Provided by purple-instagram Office Comminicator (SIPE)- Provided by SIPE Project Rocket.chat- Provided by purple-rocketchat SIMPLE- Default plugin Skype (HTTP)- Provided by skype4pidgin Slack- Provided by slack-libpurple Telegram- Provided by telegram-purple XMPP- Default XMPP plugin Zephyr- Default project Athena plugin","title":"Application Setup"},{"location":"images/docker-pidgin/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pidgin/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pidgin: image: lscr.io/linuxserver/pidgin:latest container_name: pidgin security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pidgin/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pidgin \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/pidgin:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-pidgin/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pidgin/#ports-p","text":"Parameter Function 3000 Pidgin desktop gui.","title":"Ports (-p)"},{"location":"images/docker-pidgin/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-pidgin/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores local files and settings","title":"Volume Mappings (-v)"},{"location":"images/docker-pidgin/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-pidgin/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pidgin/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pidgin/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pidgin/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pidgin/#support-info","text":"Shell access whilst the container is running: docker exec -it pidgin /bin/bash To monitor the logs of the container in realtime: docker logs -f pidgin Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pidgin Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pidgin:latest","title":"Support Info"},{"location":"images/docker-pidgin/#versions","text":"21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 15.02.22: - Add build deps for discord. 23.12.21: - Rebase to Alpine 3.15. 26.09.21: - Rebase to Alpine 3.14. 14.05.21: - Initial release.","title":"Versions"},{"location":"images/docker-piwigo/","text":"linuxserver/piwigo Piwigo is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/piwigo:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup You must create a user and database for piwigo to use in a mysql/mariadb server. Self-signed keys are generated the first time you run the container and can be found in /config/keys , if needed, you can replace them with your own. The easiest way to edit the configuration file is to enable local files editor from the plugins page and use it to configure email settings etc.\" Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: piwigo: image: lscr.io/linuxserver/piwigo:latest container_name: piwigo environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/appdata/gallery:/gallery ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=piwigo \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ -v /path/to/appdata/gallery:/gallery \\ --restart unless-stopped \\ lscr.io/linuxserver/piwigo:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. /gallery Image storage for Piwigo Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it piwigo /bin/bash To monitor the logs of the container in realtime: docker logs -f piwigo Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' piwigo Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/piwigo:latest Versions 08.11.22: - Rebase to Alpine 3.16, migrate to s6v3. Move application install to /app/www/public, add migration for existing users. Container updates should now update the application correctly. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 29.06.21: - Rebase to 3.14, Add php7-zip package 20.05.21: - Create separate volume for image data 23.01.21: - Rebasing to alpine 3.13. 12.12.20: - Increased upload_max_filesize in php.ini 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 12.06.19: - Add ffmpeg and other deps as needed by popular plugins. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.03.19: - Add php-ctype & php-curl. 22.02.19: - Rebasing to alpine 3.9, add php-ldap. 28.01.19: - Rebase to alpine linux 3.8 , add pipeline logic and multi arch. 25.01.18: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 20.04.17: - Add php7-exif package, thanks iiska 23.02.17: - Rebase to alpine linux 3.5 and nginx. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 29.08.15: - Initial Release.","title":"piwigo"},{"location":"images/docker-piwigo/#linuxserverpiwigo","text":"Piwigo is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures.","title":"linuxserver/piwigo"},{"location":"images/docker-piwigo/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/piwigo:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-piwigo/#application-setup","text":"You must create a user and database for piwigo to use in a mysql/mariadb server. Self-signed keys are generated the first time you run the container and can be found in /config/keys , if needed, you can replace them with your own. The easiest way to edit the configuration file is to enable local files editor from the plugins page and use it to configure email settings etc.\"","title":"Application Setup"},{"location":"images/docker-piwigo/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-piwigo/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: piwigo: image: lscr.io/linuxserver/piwigo:latest container_name: piwigo environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/appdata/gallery:/gallery ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-piwigo/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=piwigo \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ -v /path/to/appdata/gallery:/gallery \\ --restart unless-stopped \\ lscr.io/linuxserver/piwigo:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-piwigo/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-piwigo/#ports-p","text":"Parameter Function 80 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-piwigo/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-piwigo/#volume-mappings-v","text":"Volume Function /config Configuration files. /gallery Image storage for Piwigo","title":"Volume Mappings (-v)"},{"location":"images/docker-piwigo/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-piwigo/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-piwigo/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-piwigo/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-piwigo/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-piwigo/#support-info","text":"Shell access whilst the container is running: docker exec -it piwigo /bin/bash To monitor the logs of the container in realtime: docker logs -f piwigo Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' piwigo Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/piwigo:latest","title":"Support Info"},{"location":"images/docker-piwigo/#versions","text":"08.11.22: - Rebase to Alpine 3.16, migrate to s6v3. Move application install to /app/www/public, add migration for existing users. Container updates should now update the application correctly. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 29.06.21: - Rebase to 3.14, Add php7-zip package 20.05.21: - Create separate volume for image data 23.01.21: - Rebasing to alpine 3.13. 12.12.20: - Increased upload_max_filesize in php.ini 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 12.06.19: - Add ffmpeg and other deps as needed by popular plugins. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.03.19: - Add php-ctype & php-curl. 22.02.19: - Rebasing to alpine 3.9, add php-ldap. 28.01.19: - Rebase to alpine linux 3.8 , add pipeline logic and multi arch. 25.01.18: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 20.04.17: - Add php7-exif package, thanks iiska 23.02.17: - Rebase to alpine linux 3.5 and nginx. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 29.08.15: - Initial Release.","title":"Versions"},{"location":"images/docker-pixapop/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/pixapop Pixapop is an open-source single page application to view your photos in the easiest way possible. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pixapop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Any photos included in /photos will be presented as galleries split by month. Config settings are persistent and stored into /config. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pixapop: image: lscr.io/linuxserver/pixapop:latest container_name: pixapop environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - APP_USERNAME=admin #optional - APP_PASSWORD=admin #optional volumes: - /path/to/config:/config - /path/to/photos:/photos ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pixapop \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e APP_USERNAME=admin `#optional` \\ -e APP_PASSWORD=admin `#optional` \\ -p 80:80 \\ -v /path/to/config:/config \\ -v /path/to/photos:/photos \\ --restart unless-stopped \\ lscr.io/linuxserver/pixapop:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. APP_USERNAME=admin Specify a username to enable authentication. APP_PASSWORD=admin Specify a password to enable authentication. Volume Mappings ( -v ) Volume Function /config Stores config and logs for nginx base. /photos Your local folder of photos. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pixapop /bin/bash To monitor the logs of the container in realtime: docker logs -f pixapop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pixapop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pixapop:latest Versions 14.10.22 - Deprecate image. 17.12.20 - Move image to main linuxserver repo, add notice to container log 18.03.19 - Update build dependencies 18.03.19 - Add build dependencies 17.03.19 - Initial release","title":"pixapop"},{"location":"images/docker-pixapop/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-pixapop/#linuxserverpixapop","text":"Pixapop is an open-source single page application to view your photos in the easiest way possible.","title":"linuxserver/pixapop"},{"location":"images/docker-pixapop/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pixapop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-pixapop/#application-setup","text":"Any photos included in /photos will be presented as galleries split by month. Config settings are persistent and stored into /config.","title":"Application Setup"},{"location":"images/docker-pixapop/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pixapop/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pixapop: image: lscr.io/linuxserver/pixapop:latest container_name: pixapop environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - APP_USERNAME=admin #optional - APP_PASSWORD=admin #optional volumes: - /path/to/config:/config - /path/to/photos:/photos ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pixapop/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pixapop \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e APP_USERNAME=admin `#optional` \\ -e APP_PASSWORD=admin `#optional` \\ -p 80:80 \\ -v /path/to/config:/config \\ -v /path/to/photos:/photos \\ --restart unless-stopped \\ lscr.io/linuxserver/pixapop:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-pixapop/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pixapop/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-pixapop/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. APP_USERNAME=admin Specify a username to enable authentication. APP_PASSWORD=admin Specify a password to enable authentication.","title":"Environment Variables (-e)"},{"location":"images/docker-pixapop/#volume-mappings-v","text":"Volume Function /config Stores config and logs for nginx base. /photos Your local folder of photos.","title":"Volume Mappings (-v)"},{"location":"images/docker-pixapop/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-pixapop/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pixapop/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pixapop/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pixapop/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pixapop/#support-info","text":"Shell access whilst the container is running: docker exec -it pixapop /bin/bash To monitor the logs of the container in realtime: docker logs -f pixapop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pixapop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pixapop:latest","title":"Support Info"},{"location":"images/docker-pixapop/#versions","text":"14.10.22 - Deprecate image. 17.12.20 - Move image to main linuxserver repo, add notice to container log 18.03.19 - Update build dependencies 18.03.19 - Add build dependencies 17.03.19 - Initial release","title":"Versions"},{"location":"images/docker-plex-meta-manager/","text":"linuxserver/plex-meta-manager Plex-meta-manager is a Python 3 script that can be continuously run using YAML configuration files to update on a schedule the metadata of the movies, shows, and collections in your libraries as well as automatically build collections based on various methods all detailed in the wiki. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/plex-meta-manager:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases. develop \u2705 Latest commits from the develop branch Application Setup There is a walkthrough available to help get you up and running. This image supports all of the environment variables listed here and all commandline arguments. To perform a one-time run use docker run (or docker-compose run ) with the --rm and -e PMM_RUN=True arguments. This will cause the container to process your config immediately instead of waiting for the scheduled time, and delete the old container after completion. For more information see the official wiki . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: plex-meta-manager: image: lscr.io/linuxserver/plex-meta-manager:latest container_name: plex-meta-manager environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PMM_CONFIG=/config/config.yml #optional - PMM_TIME=03:00 #optional - PMM_RUN=False #optional - PMM_TEST=False #optional - PMM_NO_MISSING=False #optional volumes: - /path/to/appdata/config:/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=plex-meta-manager \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PMM_CONFIG=/config/config.yml `#optional` \\ -e PMM_TIME=03:00 `#optional` \\ -e PMM_RUN=False `#optional` \\ -e PMM_TEST=False `#optional` \\ -e PMM_NO_MISSING=False `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/plex-meta-manager:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. PMM_CONFIG=/config/config.yml Specify a custom config file to use. PMM_TIME=03:00 Comma-separated list of times to update each day. Format: HH:MM . PMM_RUN=False Set to True to run without the scheduler. PMM_TEST=False Set to True to run in debug mode with only collections that have test: true . PMM_NO_MISSING=False Set to True to run without any of the missing movie/show functions. Volume Mappings ( -v ) Volume Function /config Local path for plex-meta-manager config files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it plex-meta-manager /bin/bash To monitor the logs of the container in realtime: docker logs -f plex-meta-manager Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' plex-meta-manager Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/plex-meta-manager:latest Versions 11.12.22: - Rebase master to Alpine 3.17. 08.11.22: - Add develop branch. 25.10.22: - Support commandline args and relative paths. 03.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 30.01.22: - Initial Release.","title":"plex-meta-manager"},{"location":"images/docker-plex-meta-manager/#linuxserverplex-meta-manager","text":"Plex-meta-manager is a Python 3 script that can be continuously run using YAML configuration files to update on a schedule the metadata of the movies, shows, and collections in your libraries as well as automatically build collections based on various methods all detailed in the wiki.","title":"linuxserver/plex-meta-manager"},{"location":"images/docker-plex-meta-manager/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/plex-meta-manager:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-plex-meta-manager/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases. develop \u2705 Latest commits from the develop branch","title":"Version Tags"},{"location":"images/docker-plex-meta-manager/#application-setup","text":"There is a walkthrough available to help get you up and running. This image supports all of the environment variables listed here and all commandline arguments. To perform a one-time run use docker run (or docker-compose run ) with the --rm and -e PMM_RUN=True arguments. This will cause the container to process your config immediately instead of waiting for the scheduled time, and delete the old container after completion. For more information see the official wiki .","title":"Application Setup"},{"location":"images/docker-plex-meta-manager/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-plex-meta-manager/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: plex-meta-manager: image: lscr.io/linuxserver/plex-meta-manager:latest container_name: plex-meta-manager environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PMM_CONFIG=/config/config.yml #optional - PMM_TIME=03:00 #optional - PMM_RUN=False #optional - PMM_TEST=False #optional - PMM_NO_MISSING=False #optional volumes: - /path/to/appdata/config:/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-plex-meta-manager/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=plex-meta-manager \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PMM_CONFIG=/config/config.yml `#optional` \\ -e PMM_TIME=03:00 `#optional` \\ -e PMM_RUN=False `#optional` \\ -e PMM_TEST=False `#optional` \\ -e PMM_NO_MISSING=False `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/plex-meta-manager:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-plex-meta-manager/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-plex-meta-manager/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-plex-meta-manager/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. PMM_CONFIG=/config/config.yml Specify a custom config file to use. PMM_TIME=03:00 Comma-separated list of times to update each day. Format: HH:MM . PMM_RUN=False Set to True to run without the scheduler. PMM_TEST=False Set to True to run in debug mode with only collections that have test: true . PMM_NO_MISSING=False Set to True to run without any of the missing movie/show functions.","title":"Environment Variables (-e)"},{"location":"images/docker-plex-meta-manager/#volume-mappings-v","text":"Volume Function /config Local path for plex-meta-manager config files.","title":"Volume Mappings (-v)"},{"location":"images/docker-plex-meta-manager/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-plex-meta-manager/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-plex-meta-manager/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-plex-meta-manager/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-plex-meta-manager/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-plex-meta-manager/#support-info","text":"Shell access whilst the container is running: docker exec -it plex-meta-manager /bin/bash To monitor the logs of the container in realtime: docker logs -f plex-meta-manager Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' plex-meta-manager Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/plex-meta-manager:latest","title":"Support Info"},{"location":"images/docker-plex-meta-manager/#versions","text":"11.12.22: - Rebase master to Alpine 3.17. 08.11.22: - Add develop branch. 25.10.22: - Support commandline args and relative paths. 03.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 30.01.22: - Initial Release.","title":"Versions"},{"location":"images/docker-plex/","text":"linuxserver/plex Plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. has always been a top priority. Straightforward design and bulk actions mean getting things done faster. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/plex:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases with Focal baseimage bionic \u2705 DEPRECATED - Stable releases with Bionic baseimage Application Setup Webui can be found at :32400/web Note about updates, if there is no value set for the VERSION variable, then no updates will take place. For new users, no updates will take place on the first run of the container as there is no preferences file to read your token from, to update restart the Docker container after logging in through the webui Valid settings for VERSION are:- IMPORTANT NOTE:- YOU CANNOT UPDATE TO A PLEXPASS ONLY (BETA) VERSION IF YOU ARE NOT LOGGED IN WITH A PLEXPASS ACCOUNT docker : Let Docker handle the Plex Version, we keep our Dockerhub Endpoint up to date with the latest public builds. This is the same as leaving this setting out of your create command. latest : will update plex to the latest version available that you are entitled to. public : will update plexpass users to the latest public version, useful for plexpass users that don't want to be on the bleeding edge but still want the latest public updates. : will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to install, note you cannot use this to access plexpass versions if you do not have plexpass. Hardware Acceleration Intel Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the plex docker. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: plex: image: lscr.io/linuxserver/plex:latest container_name: plex network_mode: host environment: - PUID=1000 - PGID=1000 - VERSION=docker - PLEX_CLAIM= #optional volumes: - /path/to/library:/config - /path/to/tvseries:/tv - /path/to/movies:/movies restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=plex \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e VERSION=docker \\ -e PLEX_CLAIM= `#optional` \\ -v /path/to/library:/config \\ -v /path/to/tvseries:/tv \\ -v /path/to/movies:/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/plex:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Networking ( --net ) Parameter Function --net=host Use Host Networking Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation VERSION=docker Set whether to update plex or not - see Application Setup section. PLEX_CLAIM= Optionally you can obtain a claim token from https://plex.tv/claim and input here. Keep in mind that the claim tokens expire within 4 minutes. Volume Mappings ( -v ) Volume Function /config Plex library location. This can grow very large, 50gb+ is likely for a large collection. /tv Media goes here. Add as many as needed e.g. /movies , /tv , etc. /movies Media goes here. Add as many as needed e.g. /movies , /tv , etc. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Optional Parameters If you want to run the container in bridge network mode (instead of the recommended host network mode) you will need to specify ports. The official documentation for ports lists 32400 as the only required port. The rest of the ports are optionally used for specific purposes listed in the documentation. If you have not already claimed your server (first time setup) you need to set PLEX_CLAIM to claim a server set up with bridge networking. -p 32400:32400 \\ -p 1900:1900/udp \\ -p 3005:3005 \\ -p 5353:5353/udp \\ -p 8324:8324 \\ -p 32410:32410/udp \\ -p 32412:32412/udp \\ -p 32413:32413/udp \\ -p 32414:32414/udp \\ -p 32469:32469 The application accepts a series of environment variables to further customize itself on boot: Parameter Function --device=/dev/dri:/dev/dri Add this option to your run command if you plan on using Quicksync hardware acceleration - see Application Setup section. --device=/dev/dvb:/dev/dvb Add this option to your run command if you plan on using dvb devices. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it plex /bin/bash To monitor the logs of the container in realtime: docker logs -f plex Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' plex Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/plex:latest Versions 16.10.22: - Rebase to jammy. Update to s6v3. Remove opencl packages (bundled with plex). 18.07.22: - Pin all opencl related driver packages. 16.05.22: - Pin opencl version. 04.03.22: - Increase verbosity of video device permissions fix, attempt to fix missing group rw. 25.12.21: - Install Intel drivers from the official repo. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 10.12.20: - Add latest Intel Compute packages from github repo for opencl support on latest gen igpu. 23.11.20: - Add Bionic branch make Focal default. 03.05.20: - Update exposed ports and example docs for bridge mode. 23.03.20: - Remove udev hack (no longer needed), suppress uuid error in log during first start. 04.12.19: - Add variable for setting PLEX_CLAIM. Remove /transcode volume mapping as it is now set via plex gui and defaults to a location under /config . 06.08.19: - Add variable for setting UMASK. 10.07.19: - Fix permissions for tuner (/dev/dvb) devices. 20.05.19: - Bugfix do not allow Root group for Intel QuickSync ownership rules. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.03.19: - Fix update logic for VERSION=public . 14.03.19: - Switch to new api endpoints, enable beta (plex pass) updates for armhf and aarch64. 15.02.19: - Clean up plex pid after unclean stop. 11.02.19: - Fix nvidia variables, add device variables. 16.01.19: - Add pipeline logic, multi arch, and HW transcoding configuration; remove avahi service. 07.09.18: - Rebase to ubuntu bionic, add udev package. 09.12.17: - Fix continuation lines. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Add unrar package as per requests, for subzero plugin. 11.01.17: - Use Plex environment variables from pms docker, change abc home folder to /app to alleviate usermod chowning library 03.01.17: - Use case insensitive version variable matching rather than export and make lowercase. 17.10.16: - Allow use of uppercase version variable 01.10.16: - Add TZ info to README. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 22.08.16: - Rebased to xenial and s6 overlay 07.04.16: - removed /transcode volume support (upstream Plex change) and modified PlexPass download method to prevent unauthorised usage of paid PMS 24.09.15: - added optional support for volume transcoding (/transcode), and various typo fixes. 17.09.15: - Changed to run chmod only once 19.09.15: - Plex updated their download servers from http to https 28.08.15: - Removed plexpass from routine, and now uses VERSION as a combination fix. 18.07.15: - Moved autoupdate to be hosted by linuxserver.io and implemented bugfix thanks to ljm42. 09.07.15: - Now with ability to pick static version number. 08.07.15: - Now with autoupdates. (Hosted by fanart.tv) 03.07.15: - Fixed a mistake that allowed plex to run as user plex rather than abc (99:100). Thanks to double16 for spotting this.","title":"plex"},{"location":"images/docker-plex/#linuxserverplex","text":"Plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. has always been a top priority. Straightforward design and bulk actions mean getting things done faster.","title":"linuxserver/plex"},{"location":"images/docker-plex/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/plex:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-plex/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases with Focal baseimage bionic \u2705 DEPRECATED - Stable releases with Bionic baseimage","title":"Version Tags"},{"location":"images/docker-plex/#application-setup","text":"Webui can be found at :32400/web Note about updates, if there is no value set for the VERSION variable, then no updates will take place. For new users, no updates will take place on the first run of the container as there is no preferences file to read your token from, to update restart the Docker container after logging in through the webui Valid settings for VERSION are:- IMPORTANT NOTE:- YOU CANNOT UPDATE TO A PLEXPASS ONLY (BETA) VERSION IF YOU ARE NOT LOGGED IN WITH A PLEXPASS ACCOUNT docker : Let Docker handle the Plex Version, we keep our Dockerhub Endpoint up to date with the latest public builds. This is the same as leaving this setting out of your create command. latest : will update plex to the latest version available that you are entitled to. public : will update plexpass users to the latest public version, useful for plexpass users that don't want to be on the bleeding edge but still want the latest public updates. : will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to install, note you cannot use this to access plexpass versions if you do not have plexpass.","title":"Application Setup"},{"location":"images/docker-plex/#hardware-acceleration","text":"","title":"Hardware Acceleration"},{"location":"images/docker-plex/#intel","text":"Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel"},{"location":"images/docker-plex/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the plex docker.","title":"Nvidia"},{"location":"images/docker-plex/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-plex/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: plex: image: lscr.io/linuxserver/plex:latest container_name: plex network_mode: host environment: - PUID=1000 - PGID=1000 - VERSION=docker - PLEX_CLAIM= #optional volumes: - /path/to/library:/config - /path/to/tvseries:/tv - /path/to/movies:/movies restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-plex/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=plex \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e VERSION=docker \\ -e PLEX_CLAIM= `#optional` \\ -v /path/to/library:/config \\ -v /path/to/tvseries:/tv \\ -v /path/to/movies:/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/plex:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-plex/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-plex/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-plex/#networking-net","text":"Parameter Function --net=host Use Host Networking","title":"Networking (--net)"},{"location":"images/docker-plex/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation VERSION=docker Set whether to update plex or not - see Application Setup section. PLEX_CLAIM= Optionally you can obtain a claim token from https://plex.tv/claim and input here. Keep in mind that the claim tokens expire within 4 minutes.","title":"Environment Variables (-e)"},{"location":"images/docker-plex/#volume-mappings-v","text":"Volume Function /config Plex library location. This can grow very large, 50gb+ is likely for a large collection. /tv Media goes here. Add as many as needed e.g. /movies , /tv , etc. /movies Media goes here. Add as many as needed e.g. /movies , /tv , etc.","title":"Volume Mappings (-v)"},{"location":"images/docker-plex/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-plex/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-plex/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-plex/#optional-parameters","text":"If you want to run the container in bridge network mode (instead of the recommended host network mode) you will need to specify ports. The official documentation for ports lists 32400 as the only required port. The rest of the ports are optionally used for specific purposes listed in the documentation. If you have not already claimed your server (first time setup) you need to set PLEX_CLAIM to claim a server set up with bridge networking. -p 32400:32400 \\ -p 1900:1900/udp \\ -p 3005:3005 \\ -p 5353:5353/udp \\ -p 8324:8324 \\ -p 32410:32410/udp \\ -p 32412:32412/udp \\ -p 32413:32413/udp \\ -p 32414:32414/udp \\ -p 32469:32469 The application accepts a series of environment variables to further customize itself on boot: Parameter Function --device=/dev/dri:/dev/dri Add this option to your run command if you plan on using Quicksync hardware acceleration - see Application Setup section. --device=/dev/dvb:/dev/dvb Add this option to your run command if you plan on using dvb devices.","title":"Optional Parameters"},{"location":"images/docker-plex/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-plex/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-plex/#support-info","text":"Shell access whilst the container is running: docker exec -it plex /bin/bash To monitor the logs of the container in realtime: docker logs -f plex Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' plex Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/plex:latest","title":"Support Info"},{"location":"images/docker-plex/#versions","text":"16.10.22: - Rebase to jammy. Update to s6v3. Remove opencl packages (bundled with plex). 18.07.22: - Pin all opencl related driver packages. 16.05.22: - Pin opencl version. 04.03.22: - Increase verbosity of video device permissions fix, attempt to fix missing group rw. 25.12.21: - Install Intel drivers from the official repo. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 10.12.20: - Add latest Intel Compute packages from github repo for opencl support on latest gen igpu. 23.11.20: - Add Bionic branch make Focal default. 03.05.20: - Update exposed ports and example docs for bridge mode. 23.03.20: - Remove udev hack (no longer needed), suppress uuid error in log during first start. 04.12.19: - Add variable for setting PLEX_CLAIM. Remove /transcode volume mapping as it is now set via plex gui and defaults to a location under /config . 06.08.19: - Add variable for setting UMASK. 10.07.19: - Fix permissions for tuner (/dev/dvb) devices. 20.05.19: - Bugfix do not allow Root group for Intel QuickSync ownership rules. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.03.19: - Fix update logic for VERSION=public . 14.03.19: - Switch to new api endpoints, enable beta (plex pass) updates for armhf and aarch64. 15.02.19: - Clean up plex pid after unclean stop. 11.02.19: - Fix nvidia variables, add device variables. 16.01.19: - Add pipeline logic, multi arch, and HW transcoding configuration; remove avahi service. 07.09.18: - Rebase to ubuntu bionic, add udev package. 09.12.17: - Fix continuation lines. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Add unrar package as per requests, for subzero plugin. 11.01.17: - Use Plex environment variables from pms docker, change abc home folder to /app to alleviate usermod chowning library 03.01.17: - Use case insensitive version variable matching rather than export and make lowercase. 17.10.16: - Allow use of uppercase version variable 01.10.16: - Add TZ info to README. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 22.08.16: - Rebased to xenial and s6 overlay 07.04.16: - removed /transcode volume support (upstream Plex change) and modified PlexPass download method to prevent unauthorised usage of paid PMS 24.09.15: - added optional support for volume transcoding (/transcode), and various typo fixes. 17.09.15: - Changed to run chmod only once 19.09.15: - Plex updated their download servers from http to https 28.08.15: - Removed plexpass from routine, and now uses VERSION as a combination fix. 18.07.15: - Moved autoupdate to be hosted by linuxserver.io and implemented bugfix thanks to ljm42. 09.07.15: - Now with ability to pick static version number. 08.07.15: - Now with autoupdates. (Hosted by fanart.tv) 03.07.15: - Fixed a mistake that allowed plex to run as user plex rather than abc (99:100). Thanks to double16 for spotting this.","title":"Versions"},{"location":"images/docker-projectsend/","text":"linuxserver/projectsend Projectsend is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. Secure, private and easy. No more depending on external services or e-mail to send those files. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/projectsend:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup IMPORTANT This image no longer supports MSSQL since being migrated to PHP7, if you want MSSQL support please use the tag linuxserver/projectsend:r1053-ls27 Requires a user and database in either mysql or mariadb. To use translations, follow the instructions here . The necessary paths are symlinked under /config/translations (note that the \"templates\" paths don't need lang subdirectories). More info at ProjectSend . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: projectsend: image: lscr.io/linuxserver/projectsend:latest container_name: projectsend environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MAX_UPLOAD=5000 volumes: - :/config - :/data ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=projectsend \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MAX_UPLOAD=5000 \\ -p 80:80 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/projectsend:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. MAX_UPLOAD=5000 To set maximum upload size (in MB), default if unset is 5000. Volume Mappings ( -v ) Volume Function /config Where to store projectsend config files. /data Where to store files to share. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it projectsend /bin/bash To monitor the logs of the container in realtime: docker logs -f projectsend Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' projectsend Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/projectsend:latest Versions 23.08.22: - Add translation support 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 24.06.21: - Rebasing to alpine 3.14, switch to nginx 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 31.12.19: - Rebase to Alpine 3.11 and upgrade to PHP7. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch. 11.06.17: - Fetch version from github. 09.12.17: - Rebase to alpine 3.7. 13.06.17: - Initial Release.","title":"projectsend"},{"location":"images/docker-projectsend/#linuxserverprojectsend","text":"Projectsend is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. Secure, private and easy. No more depending on external services or e-mail to send those files.","title":"linuxserver/projectsend"},{"location":"images/docker-projectsend/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/projectsend:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-projectsend/#application-setup","text":"IMPORTANT This image no longer supports MSSQL since being migrated to PHP7, if you want MSSQL support please use the tag linuxserver/projectsend:r1053-ls27 Requires a user and database in either mysql or mariadb. To use translations, follow the instructions here . The necessary paths are symlinked under /config/translations (note that the \"templates\" paths don't need lang subdirectories). More info at ProjectSend .","title":"Application Setup"},{"location":"images/docker-projectsend/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-projectsend/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: projectsend: image: lscr.io/linuxserver/projectsend:latest container_name: projectsend environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MAX_UPLOAD=5000 volumes: - :/config - :/data ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-projectsend/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=projectsend \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MAX_UPLOAD=5000 \\ -p 80:80 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/projectsend:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-projectsend/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-projectsend/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-projectsend/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. MAX_UPLOAD=5000 To set maximum upload size (in MB), default if unset is 5000.","title":"Environment Variables (-e)"},{"location":"images/docker-projectsend/#volume-mappings-v","text":"Volume Function /config Where to store projectsend config files. /data Where to store files to share.","title":"Volume Mappings (-v)"},{"location":"images/docker-projectsend/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-projectsend/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-projectsend/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-projectsend/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-projectsend/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-projectsend/#support-info","text":"Shell access whilst the container is running: docker exec -it projectsend /bin/bash To monitor the logs of the container in realtime: docker logs -f projectsend Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' projectsend Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/projectsend:latest","title":"Support Info"},{"location":"images/docker-projectsend/#versions","text":"23.08.22: - Add translation support 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 24.06.21: - Rebasing to alpine 3.14, switch to nginx 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 31.12.19: - Rebase to Alpine 3.11 and upgrade to PHP7. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch. 11.06.17: - Fetch version from github. 09.12.17: - Rebase to alpine 3.7. 13.06.17: - Initial Release.","title":"Versions"},{"location":"images/docker-prowlarr/","text":"linuxserver/prowlarr Prowlarr is a indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Sonarr, Radarr, Lidarr, and Readarr offering complete management of your indexers with no per app Indexer setup required (we do it all). Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/prowlarr:develop should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u274c develop \u2705 Prowlarr releases from their develop branch nightly \u2705 Prowlarr releases from their nightly branch Application Setup Access the webui at :9696 , for more information check out Prowlarr . Setup info can be found here . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: prowlarr: image: lscr.io/linuxserver/prowlarr:develop container_name: prowlarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 9696:9696 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=prowlarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9696:9696 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/prowlarr:develop Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 9696 The port for the Prowlarr webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Prowlarr Volume Mappings ( -v ) Volume Function /config Database and Prowlarr configs Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it prowlarr /bin/bash To monitor the logs of the container in realtime: docker logs -f prowlarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' prowlarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/prowlarr:develop Versions 06.06.21: - Initial realease.","title":"prowlarr"},{"location":"images/docker-prowlarr/#linuxserverprowlarr","text":"Prowlarr is a indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Sonarr, Radarr, Lidarr, and Readarr offering complete management of your indexers with no per app Indexer setup required (we do it all).","title":"linuxserver/prowlarr"},{"location":"images/docker-prowlarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/prowlarr:develop should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-prowlarr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u274c develop \u2705 Prowlarr releases from their develop branch nightly \u2705 Prowlarr releases from their nightly branch","title":"Version Tags"},{"location":"images/docker-prowlarr/#application-setup","text":"Access the webui at :9696 , for more information check out Prowlarr . Setup info can be found here .","title":"Application Setup"},{"location":"images/docker-prowlarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-prowlarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: prowlarr: image: lscr.io/linuxserver/prowlarr:develop container_name: prowlarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 9696:9696 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-prowlarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=prowlarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9696:9696 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/prowlarr:develop","title":"docker cli (click here for more info)"},{"location":"images/docker-prowlarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-prowlarr/#ports-p","text":"Parameter Function 9696 The port for the Prowlarr webinterface","title":"Ports (-p)"},{"location":"images/docker-prowlarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Prowlarr","title":"Environment Variables (-e)"},{"location":"images/docker-prowlarr/#volume-mappings-v","text":"Volume Function /config Database and Prowlarr configs","title":"Volume Mappings (-v)"},{"location":"images/docker-prowlarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-prowlarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-prowlarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-prowlarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-prowlarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-prowlarr/#support-info","text":"Shell access whilst the container is running: docker exec -it prowlarr /bin/bash To monitor the logs of the container in realtime: docker logs -f prowlarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' prowlarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/prowlarr:develop","title":"Support Info"},{"location":"images/docker-prowlarr/#versions","text":"06.06.21: - Initial realease.","title":"Versions"},{"location":"images/docker-pwndrop/","text":"linuxserver/pwndrop Pwndrop is a self-deployable file hosting service for sending out red teaming payloads or securely sharing your private files over HTTP and WebDAV. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pwndrop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the web gui at http://:8080/pwndrop (replace /pwndrop with your SECRET_PATH if you set one). Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pwndrop: image: lscr.io/linuxserver/pwndrop:latest container_name: pwndrop environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SECRET_PATH=/pwndrop #optional volumes: - /path/to/appdata:/config ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pwndrop \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SECRET_PATH=/pwndrop `#optional` \\ -p 8080:8080 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/pwndrop:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 web gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SECRET_PATH=/pwndrop Secret path for admin access. Defaults to /pwndrop . This parameter only takes effect during initial install; it can later be changed in the web gui. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration and data. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pwndrop /bin/bash To monitor the logs of the container in realtime: docker logs -f pwndrop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pwndrop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pwndrop:latest Versions 19.09.22: - Rebasing to alpine 3.15. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 17.04.20: - Initial Release.","title":"pwndrop"},{"location":"images/docker-pwndrop/#linuxserverpwndrop","text":"Pwndrop is a self-deployable file hosting service for sending out red teaming payloads or securely sharing your private files over HTTP and WebDAV.","title":"linuxserver/pwndrop"},{"location":"images/docker-pwndrop/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pwndrop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-pwndrop/#application-setup","text":"Access the web gui at http://:8080/pwndrop (replace /pwndrop with your SECRET_PATH if you set one).","title":"Application Setup"},{"location":"images/docker-pwndrop/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pwndrop/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pwndrop: image: lscr.io/linuxserver/pwndrop:latest container_name: pwndrop environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SECRET_PATH=/pwndrop #optional volumes: - /path/to/appdata:/config ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pwndrop/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pwndrop \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SECRET_PATH=/pwndrop `#optional` \\ -p 8080:8080 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/pwndrop:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-pwndrop/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pwndrop/#ports-p","text":"Parameter Function 8080 web gui","title":"Ports (-p)"},{"location":"images/docker-pwndrop/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SECRET_PATH=/pwndrop Secret path for admin access. Defaults to /pwndrop . This parameter only takes effect during initial install; it can later be changed in the web gui.","title":"Environment Variables (-e)"},{"location":"images/docker-pwndrop/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration and data.","title":"Volume Mappings (-v)"},{"location":"images/docker-pwndrop/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-pwndrop/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pwndrop/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pwndrop/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pwndrop/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pwndrop/#support-info","text":"Shell access whilst the container is running: docker exec -it pwndrop /bin/bash To monitor the logs of the container in realtime: docker logs -f pwndrop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pwndrop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pwndrop:latest","title":"Support Info"},{"location":"images/docker-pwndrop/#versions","text":"19.09.22: - Rebasing to alpine 3.15. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 17.04.20: - Initial Release.","title":"Versions"},{"location":"images/docker-pydio-cells/","text":"linuxserver/pydio-cells Pydio-cells is the nextgen file sharing platform for organizations. It is a full rewrite of the Pydio project using the Go language following a micro-service architecture. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pydio-cells:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup You must first create a mysql database for Pydio Cells. Using our mariadb image is recommended. Then access the web gui setup wizard at https://SERVER_IP:8080 if accessing locally (must set SERVER_IP env var), or at https://pydio-cells.domain.com if reverse proxying. Strict reverse proxies This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pydio-cells: image: lscr.io/linuxserver/pydio-cells:latest container_name: pydio-cells hostname: pydio-cells environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - EXTERNALURL=yourdomain.url - SERVER_IP=0.0.0.0 #optional volumes: - /path/to/appdata/config:/config ports: - 8080:8080 - 33060:33060 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pydio-cells \\ --hostname=pydio-cells \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e EXTERNALURL=yourdomain.url \\ -e SERVER_IP=0.0.0.0 `#optional` \\ -p 8080:8080 \\ -p 33060:33060 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/pydio-cells:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Http port 33060 gRPC port (required for CellsSync). Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. EXTERNALURL=yourdomain.url The external url you would like to use to access Pydio Cells (Can be https://domain.url or https://IP:PORT). SERVER_IP=0.0.0.0 Enter the LAN IP of the docker server. Required for local access by IP, added to self signed cert as SAN (not required if accessing only through reverse proxy). Volume Mappings ( -v ) Volume Function /config All the config files reside here. Miscellaneous Options Parameter Function --hostname= Pydio Cells uses the hostname to verify local files. This setting is required and should not be changed after it has been set. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pydio-cells /bin/bash To monitor the logs of the container in realtime: docker logs -f pydio-cells Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pydio-cells Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pydio-cells:latest Versions 01.12.22: - Rebasing to alpine 3.17. Adding multi-arch support. Updating cli arguments for v4 compatibility. 19.10.22: - Rebasing to alpine 3.16. Upgrading to s6v3. Updating build instructions for v4. 19.09.22: - Rebasing to alpine 3.15. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 18.04.20: - Switch to https as default (only affects new installs). Add self signed cert, add SERVER_IP var for adding to cert as SAN. Add optional gRPC port mapping for CellsSync. 17.04.20: - Update compile options, previous release was broken for new installs. 19.12.19: - Rebasing to alpine 3.11. 12.12.19: - Initial Release","title":"pydio-cells"},{"location":"images/docker-pydio-cells/#linuxserverpydio-cells","text":"Pydio-cells is the nextgen file sharing platform for organizations. It is a full rewrite of the Pydio project using the Go language following a micro-service architecture.","title":"linuxserver/pydio-cells"},{"location":"images/docker-pydio-cells/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pydio-cells:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-pydio-cells/#application-setup","text":"You must first create a mysql database for Pydio Cells. Using our mariadb image is recommended. Then access the web gui setup wizard at https://SERVER_IP:8080 if accessing locally (must set SERVER_IP env var), or at https://pydio-cells.domain.com if reverse proxying.","title":"Application Setup"},{"location":"images/docker-pydio-cells/#strict-reverse-proxies","text":"This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-pydio-cells/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pydio-cells/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pydio-cells: image: lscr.io/linuxserver/pydio-cells:latest container_name: pydio-cells hostname: pydio-cells environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - EXTERNALURL=yourdomain.url - SERVER_IP=0.0.0.0 #optional volumes: - /path/to/appdata/config:/config ports: - 8080:8080 - 33060:33060 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pydio-cells/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pydio-cells \\ --hostname=pydio-cells \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e EXTERNALURL=yourdomain.url \\ -e SERVER_IP=0.0.0.0 `#optional` \\ -p 8080:8080 \\ -p 33060:33060 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/pydio-cells:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-pydio-cells/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pydio-cells/#ports-p","text":"Parameter Function 8080 Http port 33060 gRPC port (required for CellsSync).","title":"Ports (-p)"},{"location":"images/docker-pydio-cells/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. EXTERNALURL=yourdomain.url The external url you would like to use to access Pydio Cells (Can be https://domain.url or https://IP:PORT). SERVER_IP=0.0.0.0 Enter the LAN IP of the docker server. Required for local access by IP, added to self signed cert as SAN (not required if accessing only through reverse proxy).","title":"Environment Variables (-e)"},{"location":"images/docker-pydio-cells/#volume-mappings-v","text":"Volume Function /config All the config files reside here.","title":"Volume Mappings (-v)"},{"location":"images/docker-pydio-cells/#miscellaneous-options","text":"Parameter Function --hostname= Pydio Cells uses the hostname to verify local files. This setting is required and should not be changed after it has been set.","title":"Miscellaneous Options"},{"location":"images/docker-pydio-cells/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pydio-cells/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pydio-cells/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pydio-cells/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pydio-cells/#support-info","text":"Shell access whilst the container is running: docker exec -it pydio-cells /bin/bash To monitor the logs of the container in realtime: docker logs -f pydio-cells Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pydio-cells Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pydio-cells:latest","title":"Support Info"},{"location":"images/docker-pydio-cells/#versions","text":"01.12.22: - Rebasing to alpine 3.17. Adding multi-arch support. Updating cli arguments for v4 compatibility. 19.10.22: - Rebasing to alpine 3.16. Upgrading to s6v3. Updating build instructions for v4. 19.09.22: - Rebasing to alpine 3.15. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 18.04.20: - Switch to https as default (only affects new installs). Add self signed cert, add SERVER_IP var for adding to cert as SAN. Add optional gRPC port mapping for CellsSync. 17.04.20: - Update compile options, previous release was broken for new installs. 19.12.19: - Rebasing to alpine 3.11. 12.12.19: - Initial Release","title":"Versions"},{"location":"images/docker-pydio/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/pydio Pydio (formerly AjaXplorer) is a mature open source software solution for file sharing and synchronization. With intuitive user interfaces (web / mobile / desktop), Pydio provides enterprise-grade features to gain back control and privacy of your data: user directory connectors, legacy filesystems drivers, comprehensive admin interface, and much more. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pydio should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: pydio: image: lscr.io/linuxserver/pydio container_name: pydio environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/data ports: - 443:443 restart: unless-stopped docker cli docker run -d \\ --name=pydio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 443:443 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/pydio Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 443 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where pydio should store it's configuration files. /data Where pydio should store uploaded files. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup THIS IMAGE IS DEPRECATED. You can switch to Pydio Cells instead. You must create a user and database for pydio to use in a mysql/mariadb or postgresql server. You can use sqlite with no further config needed, but this should only be considered for testing purposes. In the setup page for database, use the ip address rather than hostname... Self-signed keys are generated the first time you run the container and can be found in /config/keys , if needed, you can replace them with your own. For public link sharing to function correctly be sure to change the Detected Server Url to the URL of your pydio instance in the setup wizard. For email settings edit the file /config/ssmtp.conf and restart the container. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pydio /bin/bash To monitor the logs of the container in realtime: docker logs -f pydio Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pydio Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pydio Versions 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch, rebase to alpine 3.8. 12.01.18: - Rebase to alpine linux 3.7. 28.10.17: - php7-ssh2 moved from testing to community repo. 25.05.17: - Rebase to alpine linux 3.6. 17.05.17: - Make default install pydio 8. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 28.02.17: - Modify sed for data path. 18.02.17: - Rebase to alpine linux 3.5. 05.11.16: - Pinned at latest sourceforge download version, in lieu of a full rewrite. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 08.09.15: - Initial Release.","title":"pydio"},{"location":"images/docker-pydio/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-pydio/#linuxserverpydio","text":"Pydio (formerly AjaXplorer) is a mature open source software solution for file sharing and synchronization. With intuitive user interfaces (web / mobile / desktop), Pydio provides enterprise-grade features to gain back control and privacy of your data: user directory connectors, legacy filesystems drivers, comprehensive admin interface, and much more.","title":"linuxserver/pydio"},{"location":"images/docker-pydio/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pydio should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-pydio/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-pydio/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: pydio: image: lscr.io/linuxserver/pydio container_name: pydio environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/data ports: - 443:443 restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-pydio/#docker-cli","text":"docker run -d \\ --name=pydio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 443:443 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/pydio","title":"docker cli"},{"location":"images/docker-pydio/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pydio/#ports-p","text":"Parameter Function 443 WebUI","title":"Ports (-p)"},{"location":"images/docker-pydio/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-pydio/#volume-mappings-v","text":"Volume Function /config Where pydio should store it's configuration files. /data Where pydio should store uploaded files.","title":"Volume Mappings (-v)"},{"location":"images/docker-pydio/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pydio/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pydio/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pydio/#application-setup","text":"THIS IMAGE IS DEPRECATED. You can switch to Pydio Cells instead. You must create a user and database for pydio to use in a mysql/mariadb or postgresql server. You can use sqlite with no further config needed, but this should only be considered for testing purposes. In the setup page for database, use the ip address rather than hostname... Self-signed keys are generated the first time you run the container and can be found in /config/keys , if needed, you can replace them with your own. For public link sharing to function correctly be sure to change the Detected Server Url to the URL of your pydio instance in the setup wizard. For email settings edit the file /config/ssmtp.conf and restart the container.","title":"Application Setup"},{"location":"images/docker-pydio/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pydio/#support-info","text":"Shell access whilst the container is running: docker exec -it pydio /bin/bash To monitor the logs of the container in realtime: docker logs -f pydio Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pydio Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pydio","title":"Support Info"},{"location":"images/docker-pydio/#versions","text":"23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch, rebase to alpine 3.8. 12.01.18: - Rebase to alpine linux 3.7. 28.10.17: - php7-ssh2 moved from testing to community repo. 25.05.17: - Rebase to alpine linux 3.6. 17.05.17: - Make default install pydio 8. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 28.02.17: - Modify sed for data path. 18.02.17: - Rebase to alpine linux 3.5. 05.11.16: - Pinned at latest sourceforge download version, in lieu of a full rewrite. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 08.09.15: - Initial Release.","title":"Versions"},{"location":"images/docker-pyload-ng/","text":"linuxserver/pyload-ng pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pyload-ng:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from pyLoad Next develop \u2705 Releases from pyload Next develop branch Application Setup Access the web interface at http://your-ip:8000 the default login is: username - pyload password - pyload For general usage please see the pyLoad wiki here . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pyload-ng: image: lscr.io/linuxserver/pyload-ng:latest container_name: pyload-ng environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/downloads:/downloads ports: - 8000:8000 - 9666:9666 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pyload-ng \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8000:8000 \\ -p 9666:9666 `#optional` \\ -v /path/to/appdata/config:/config \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/pyload-ng:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 Allows HTTP access to the application 9666 Click'n'Load port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config pyLoad Configuration and files database /downloads Destination of pyLoad downloads Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pyload-ng /bin/bash To monitor the logs of the container in realtime: docker logs -f pyload-ng Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pyload-ng Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pyload-ng:latest Versions 02.02.22: - Add ffmpeg for the Youtube plugin. 24.01.22: - Replace unrar with p7zip. 24.01.22: - Initial release.","title":"pyload-ng"},{"location":"images/docker-pyload-ng/#linuxserverpyload-ng","text":"pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web.","title":"linuxserver/pyload-ng"},{"location":"images/docker-pyload-ng/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pyload-ng:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-pyload-ng/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from pyLoad Next develop \u2705 Releases from pyload Next develop branch","title":"Version Tags"},{"location":"images/docker-pyload-ng/#application-setup","text":"Access the web interface at http://your-ip:8000 the default login is: username - pyload password - pyload For general usage please see the pyLoad wiki here .","title":"Application Setup"},{"location":"images/docker-pyload-ng/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pyload-ng/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pyload-ng: image: lscr.io/linuxserver/pyload-ng:latest container_name: pyload-ng environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/downloads:/downloads ports: - 8000:8000 - 9666:9666 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pyload-ng/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pyload-ng \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8000:8000 \\ -p 9666:9666 `#optional` \\ -v /path/to/appdata/config:/config \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/pyload-ng:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-pyload-ng/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pyload-ng/#ports-p","text":"Parameter Function 8000 Allows HTTP access to the application 9666 Click'n'Load port.","title":"Ports (-p)"},{"location":"images/docker-pyload-ng/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-pyload-ng/#volume-mappings-v","text":"Volume Function /config pyLoad Configuration and files database /downloads Destination of pyLoad downloads","title":"Volume Mappings (-v)"},{"location":"images/docker-pyload-ng/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-pyload-ng/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pyload-ng/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pyload-ng/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pyload-ng/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pyload-ng/#support-info","text":"Shell access whilst the container is running: docker exec -it pyload-ng /bin/bash To monitor the logs of the container in realtime: docker logs -f pyload-ng Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pyload-ng Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pyload-ng:latest","title":"Support Info"},{"location":"images/docker-pyload-ng/#versions","text":"02.02.22: - Add ffmpeg for the Youtube plugin. 24.01.22: - Replace unrar with p7zip. 24.01.22: - Initial release.","title":"Versions"},{"location":"images/docker-pyload/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our new pyload-ng image instead: https://github.com/linuxserver/docker-pyload-ng/ linuxserver/pyload Pyload is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pyload should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Version Tags This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest Stable releases from Pyload ng Development releases from Pyload-ng (currently alpha) Application Setup Access the web interface at http://your-ip:8000 the default login is: username - admin password - password For the ng tag, the default user/pass are pyload/pyload . For general usage please see the pyLoad wiki here . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pyload: image: lscr.io/linuxserver/pyload container_name: pyload environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/pyload/config:/config - /path/to/downloads:/downloads ports: - 8000:8000 - 7227:7227 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pyload \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8000:8000 \\ -p 7227:7227 `#optional` \\ -v /path/to/pyload/config:/config \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/pyload Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 Allows HTTP access to the application 7227 pyLoad control port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config pyLoad Configuration and files database /downloads Destination of pyLoad downloads Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pyload /bin/bash To monitor the logs of the container in realtime: docker logs -f pyload Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pyload Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pyload Versions 25.01.22: - Deprecate. 23.02.21: - Add Python plugin passlib . 16.02.21: - Publish ng tag for pyload-ng (currently alpha). 04.11.20: - Rebase to alpine 3.11. 18.10.20: - Chown app folder to fix plugin updater. 18.07.19: - Add ffmpeg for plugins the do video processing. 28.06.19: - Rebasing to alpine 3.10. 08.06.19: - Initial release.","title":"pyload"},{"location":"images/docker-pyload/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our new pyload-ng image instead: https://github.com/linuxserver/docker-pyload-ng/","title":"DEPRECATION NOTICE"},{"location":"images/docker-pyload/#linuxserverpyload","text":"Pyload is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web.","title":"linuxserver/pyload"},{"location":"images/docker-pyload/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pyload should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-pyload/#version-tags","text":"This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest Stable releases from Pyload ng Development releases from Pyload-ng (currently alpha)","title":"Version Tags"},{"location":"images/docker-pyload/#application-setup","text":"Access the web interface at http://your-ip:8000 the default login is: username - admin password - password For the ng tag, the default user/pass are pyload/pyload . For general usage please see the pyLoad wiki here .","title":"Application Setup"},{"location":"images/docker-pyload/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pyload/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pyload: image: lscr.io/linuxserver/pyload container_name: pyload environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/pyload/config:/config - /path/to/downloads:/downloads ports: - 8000:8000 - 7227:7227 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pyload/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pyload \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8000:8000 \\ -p 7227:7227 `#optional` \\ -v /path/to/pyload/config:/config \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/pyload","title":"docker cli (click here for more info)"},{"location":"images/docker-pyload/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pyload/#ports-p","text":"Parameter Function 8000 Allows HTTP access to the application 7227 pyLoad control port","title":"Ports (-p)"},{"location":"images/docker-pyload/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-pyload/#volume-mappings-v","text":"Volume Function /config pyLoad Configuration and files database /downloads Destination of pyLoad downloads","title":"Volume Mappings (-v)"},{"location":"images/docker-pyload/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-pyload/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pyload/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pyload/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pyload/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pyload/#support-info","text":"Shell access whilst the container is running: docker exec -it pyload /bin/bash To monitor the logs of the container in realtime: docker logs -f pyload Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pyload Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pyload","title":"Support Info"},{"location":"images/docker-pyload/#versions","text":"25.01.22: - Deprecate. 23.02.21: - Add Python plugin passlib . 16.02.21: - Publish ng tag for pyload-ng (currently alpha). 04.11.20: - Rebase to alpine 3.11. 18.10.20: - Chown app folder to fix plugin updater. 18.07.19: - Add ffmpeg for plugins the do video processing. 28.06.19: - Rebasing to alpine 3.10. 08.06.19: - Initial release.","title":"Versions"},{"location":"images/docker-pylon/","text":"linuxserver/pylon Pylon is a web based integrated development environment built with Node.js as a backend and with a supercharged JavaScript/HTML5 frontend, licensed under GPL version 3. This project originates from Cloud9 v2 project. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pylon:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at http://your-ip:3131, more information here . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pylon: image: lscr.io/linuxserver/pylon:latest container_name: pylon environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - GITURL=https://github.com/linuxserver/docker-pylon.git #optional - PYUSER=myuser #optional - PYPASS=mypass #optional volumes: - :/code #optional ports: - 3131:3131 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pylon \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e GITURL=https://github.com/linuxserver/docker-pylon.git `#optional` \\ -e PYUSER=myuser `#optional` \\ -e PYPASS=mypass `#optional` \\ -p 3131:3131 \\ -v :/code `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/pylon:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3131 The port for the Pylon web interface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London GITURL=https://github.com/linuxserver/docker-pylon.git Specify a git repo to checkout on first startup PYUSER=myuser Specify a basic auth user. PYPASS=mypass Specify a basic auth password. Volume Mappings ( -v ) Volume Function /code Optionally if you want the bind mount your own code and have changes survive container upgrades. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pylon /bin/bash To monitor the logs of the container in realtime: docker logs -f pylon Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pylon Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pylon:latest Versions 19.01.22: - Rebasing to alpine 3.15. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 19.09.19: - Initial Release.","title":"pylon"},{"location":"images/docker-pylon/#linuxserverpylon","text":"Pylon is a web based integrated development environment built with Node.js as a backend and with a supercharged JavaScript/HTML5 frontend, licensed under GPL version 3. This project originates from Cloud9 v2 project.","title":"linuxserver/pylon"},{"location":"images/docker-pylon/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pylon:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-pylon/#application-setup","text":"Access the webui at http://your-ip:3131, more information here .","title":"Application Setup"},{"location":"images/docker-pylon/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pylon/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pylon: image: lscr.io/linuxserver/pylon:latest container_name: pylon environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - GITURL=https://github.com/linuxserver/docker-pylon.git #optional - PYUSER=myuser #optional - PYPASS=mypass #optional volumes: - :/code #optional ports: - 3131:3131 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pylon/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pylon \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e GITURL=https://github.com/linuxserver/docker-pylon.git `#optional` \\ -e PYUSER=myuser `#optional` \\ -e PYPASS=mypass `#optional` \\ -p 3131:3131 \\ -v :/code `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/pylon:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-pylon/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pylon/#ports-p","text":"Parameter Function 3131 The port for the Pylon web interface","title":"Ports (-p)"},{"location":"images/docker-pylon/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London GITURL=https://github.com/linuxserver/docker-pylon.git Specify a git repo to checkout on first startup PYUSER=myuser Specify a basic auth user. PYPASS=mypass Specify a basic auth password.","title":"Environment Variables (-e)"},{"location":"images/docker-pylon/#volume-mappings-v","text":"Volume Function /code Optionally if you want the bind mount your own code and have changes survive container upgrades.","title":"Volume Mappings (-v)"},{"location":"images/docker-pylon/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-pylon/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pylon/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pylon/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pylon/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pylon/#support-info","text":"Shell access whilst the container is running: docker exec -it pylon /bin/bash To monitor the logs of the container in realtime: docker logs -f pylon Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pylon Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pylon:latest","title":"Support Info"},{"location":"images/docker-pylon/#versions","text":"19.01.22: - Rebasing to alpine 3.15. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 19.09.19: - Initial Release.","title":"Versions"},{"location":"images/docker-qbittorrent/","text":"linuxserver/qbittorrent The Qbittorrent project aims to provide an open-source software alternative to \u00b5Torrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/qbittorrent:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable qbittorrent releases libtorrentv1 \u2705 Static qbittorrent builds using libtorrent v1 Application Setup The webui is at :8080 and the default username/password is admin/adminadmin . Change username/password via the webui in the webui section of settings. WEBUI_PORT variable Due to issues with CSRF and port mapping, should you require to alter the port for the webui you need to change both sides of the -p 8080 switch AND set the WEBUI_PORT variable to the new port. For example, to set the port to 8090 you need to set -p 8090:8090 and -e WEBUI_PORT=8090 This should alleviate the \"white screen\" issue. If you have no webui , check the file /config/qBittorrent/qBittorrent.conf edit or add the following lines WebUI\\Address=* WebUI\\ServerDomains=* If you are running a very old (3.x) kernel you may run into this issue which can be worked around using this method Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - WEBUI_PORT=8080 volumes: - /path/to/appdata/config:/config - /path/to/downloads:/downloads ports: - 8080:8080 - 6881:6881 - 6881:6881/udp restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=qbittorrent \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e WEBUI_PORT=8080 \\ -p 8080:8080 \\ -p 6881:6881 \\ -p 6881:6881/udp \\ -v /path/to/appdata/config:/config \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/qbittorrent:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 WebUI 6881 tcp connection port 6881/udp udp connection port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London WEBUI_PORT=8080 for changing the port of the webui, see below for explanation Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /downloads Location of downloads on disk. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it qbittorrent /bin/bash To monitor the logs of the container in realtime: docker logs -f qbittorrent Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' qbittorrent Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/qbittorrent:latest Versions 29.11.22: - Add openssl1.1-compat for qbittorrent-cli. 31.10.22: - Add libtorrentv1 branch. 31.08.22: - Rebase to Alpine Edge again to follow latest releases. 12.08.22: - Bump unrar to 6.1.7. 16.06.22: - Rebase to Alpine 3.16 from edge. 25.05.22: - Fetch qbitorrent-cli from upstream repo. 02.03.22: - Add unrar, 7zip, and qbitorrent-cli. 01.03.22: - Add python for search plugin support. 23.02.22: - Rebase to Alpine Edge, install from Alpine repos. 19.02.22: - Add jq to build-stage 07.01.22: - Rebase to Alpine, build from source. 06.01.22: - Deprecate unstable branch. 10.02.21: - Rebase to focal. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 12.11.20: - Stop creating /config/data directory on startup 03.04.20: - Fix adding search engine plugin 02.08.19: - Add qbitorrent-cli for processing scripts. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 14.01.19: - Rebase to Ubuntu, add multi arch and pipeline logic. 25.09.18: - Use buildstage type build, bump qbitorrent to 4.1.3. 14.08.18: - Rebase to alpine 3.8, bump libtorrent to 1.1.9 and qbitorrent to 4.1.2. 08.06.18: - Bump qbitorrent to 4.1.1. 26.04.18: - Bump libtorrent to 1.1.7. 02.03.18: - Bump qbitorrent to 4.0.4 and libtorrent to 1.1.6. 02.01.18: - Deprecate cpu_core routine lack of scaling. 19.12.17: - Update to v4.0.3. 09.02.17: - Rebase to alpine 3.7 01.12.17: - Update to v4.0.2. 27.11.17: - Update to v4 and use cpu_core routine to speed up builds. 16.09.17: - Bump to 3.3.16, Add WEBUI_PORT variable and notes to README to allow changing port of webui. 01.08.17: - Initial Release. 12.02.18: - Initial Release.","title":"qbittorrent"},{"location":"images/docker-qbittorrent/#linuxserverqbittorrent","text":"The Qbittorrent project aims to provide an open-source software alternative to \u00b5Torrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.","title":"linuxserver/qbittorrent"},{"location":"images/docker-qbittorrent/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/qbittorrent:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-qbittorrent/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable qbittorrent releases libtorrentv1 \u2705 Static qbittorrent builds using libtorrent v1","title":"Version Tags"},{"location":"images/docker-qbittorrent/#application-setup","text":"The webui is at :8080 and the default username/password is admin/adminadmin . Change username/password via the webui in the webui section of settings.","title":"Application Setup"},{"location":"images/docker-qbittorrent/#webui_port-variable","text":"Due to issues with CSRF and port mapping, should you require to alter the port for the webui you need to change both sides of the -p 8080 switch AND set the WEBUI_PORT variable to the new port. For example, to set the port to 8090 you need to set -p 8090:8090 and -e WEBUI_PORT=8090 This should alleviate the \"white screen\" issue. If you have no webui , check the file /config/qBittorrent/qBittorrent.conf edit or add the following lines WebUI\\Address=* WebUI\\ServerDomains=* If you are running a very old (3.x) kernel you may run into this issue which can be worked around using this method","title":"WEBUI_PORT variable"},{"location":"images/docker-qbittorrent/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-qbittorrent/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - WEBUI_PORT=8080 volumes: - /path/to/appdata/config:/config - /path/to/downloads:/downloads ports: - 8080:8080 - 6881:6881 - 6881:6881/udp restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-qbittorrent/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=qbittorrent \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e WEBUI_PORT=8080 \\ -p 8080:8080 \\ -p 6881:6881 \\ -p 6881:6881/udp \\ -v /path/to/appdata/config:/config \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/qbittorrent:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-qbittorrent/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-qbittorrent/#ports-p","text":"Parameter Function 8080 WebUI 6881 tcp connection port 6881/udp udp connection port","title":"Ports (-p)"},{"location":"images/docker-qbittorrent/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London WEBUI_PORT=8080 for changing the port of the webui, see below for explanation","title":"Environment Variables (-e)"},{"location":"images/docker-qbittorrent/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /downloads Location of downloads on disk.","title":"Volume Mappings (-v)"},{"location":"images/docker-qbittorrent/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-qbittorrent/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-qbittorrent/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-qbittorrent/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-qbittorrent/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-qbittorrent/#support-info","text":"Shell access whilst the container is running: docker exec -it qbittorrent /bin/bash To monitor the logs of the container in realtime: docker logs -f qbittorrent Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' qbittorrent Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/qbittorrent:latest","title":"Support Info"},{"location":"images/docker-qbittorrent/#versions","text":"29.11.22: - Add openssl1.1-compat for qbittorrent-cli. 31.10.22: - Add libtorrentv1 branch. 31.08.22: - Rebase to Alpine Edge again to follow latest releases. 12.08.22: - Bump unrar to 6.1.7. 16.06.22: - Rebase to Alpine 3.16 from edge. 25.05.22: - Fetch qbitorrent-cli from upstream repo. 02.03.22: - Add unrar, 7zip, and qbitorrent-cli. 01.03.22: - Add python for search plugin support. 23.02.22: - Rebase to Alpine Edge, install from Alpine repos. 19.02.22: - Add jq to build-stage 07.01.22: - Rebase to Alpine, build from source. 06.01.22: - Deprecate unstable branch. 10.02.21: - Rebase to focal. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 12.11.20: - Stop creating /config/data directory on startup 03.04.20: - Fix adding search engine plugin 02.08.19: - Add qbitorrent-cli for processing scripts. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 14.01.19: - Rebase to Ubuntu, add multi arch and pipeline logic. 25.09.18: - Use buildstage type build, bump qbitorrent to 4.1.3. 14.08.18: - Rebase to alpine 3.8, bump libtorrent to 1.1.9 and qbitorrent to 4.1.2. 08.06.18: - Bump qbitorrent to 4.1.1. 26.04.18: - Bump libtorrent to 1.1.7. 02.03.18: - Bump qbitorrent to 4.0.4 and libtorrent to 1.1.6. 02.01.18: - Deprecate cpu_core routine lack of scaling. 19.12.17: - Update to v4.0.3. 09.02.17: - Rebase to alpine 3.7 01.12.17: - Update to v4.0.2. 27.11.17: - Update to v4 and use cpu_core routine to speed up builds. 16.09.17: - Bump to 3.3.16, Add WEBUI_PORT variable and notes to README to allow changing port of webui. 01.08.17: - Initial Release. 12.02.18: - Initial Release.","title":"Versions"},{"location":"images/docker-qdirstat/","text":"linuxserver/qdirstat QDirStat Qt-based directory statistics: KDirStat without any KDE -- from the author of the original KDirStat. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/qdirstat:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: qdirstat: image: lscr.io/linuxserver/qdirstat:latest container_name: qdirstat environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=qdirstat \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/qdirstat:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 QdirStat desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores qdirstat settings and scans. /data Data you want to analyze disk usage information of. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it qdirstat /bin/bash To monitor the logs of the container in realtime: docker logs -f qdirstat Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' qdirstat Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/qdirstat:latest Versions 06.04.22: - Add xfce terminal. 13.01.22: - Compile from source. 11.01.22: - Initial release.","title":"qdirstat"},{"location":"images/docker-qdirstat/#linuxserverqdirstat","text":"QDirStat Qt-based directory statistics: KDirStat without any KDE -- from the author of the original KDirStat.","title":"linuxserver/qdirstat"},{"location":"images/docker-qdirstat/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/qdirstat:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-qdirstat/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-qdirstat/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-qdirstat/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: qdirstat: image: lscr.io/linuxserver/qdirstat:latest container_name: qdirstat environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-qdirstat/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=qdirstat \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/qdirstat:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-qdirstat/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-qdirstat/#ports-p","text":"Parameter Function 3000 QdirStat desktop gui.","title":"Ports (-p)"},{"location":"images/docker-qdirstat/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-qdirstat/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores qdirstat settings and scans. /data Data you want to analyze disk usage information of.","title":"Volume Mappings (-v)"},{"location":"images/docker-qdirstat/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-qdirstat/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-qdirstat/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-qdirstat/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-qdirstat/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-qdirstat/#support-info","text":"Shell access whilst the container is running: docker exec -it qdirstat /bin/bash To monitor the logs of the container in realtime: docker logs -f qdirstat Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' qdirstat Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/qdirstat:latest","title":"Support Info"},{"location":"images/docker-qdirstat/#versions","text":"06.04.22: - Add xfce terminal. 13.01.22: - Compile from source. 11.01.22: - Initial release.","title":"Versions"},{"location":"images/docker-quassel-core/","text":"linuxserver/quassel-core Quassel-core is a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core. This container handles the IRC connection (quasselcore) and requires a desktop client (quasselclient) to be used and configured. It is designed to be always on and will keep your identity present in IRC even when your clients cannot be online. Backlog (history) is downloaded by your client upon reconnection allowing infinite scrollback through time. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/quassel-core:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Quassel wiki: quassel A great place to host a quassel instance is a VPS, such as DigitalOcean . For $5 a month you can have a 24/7 IRC connection and be up and running in under 55 seconds (or so they claim). Once you have the container running, fire up a quassel desktop client and connect to your new core instance using your droplets public IP address and the port you specified in your docker run command default: 4242 . Create an admin user, select SQLite as your storage backend (Quassel limitation). Setup your real name and nick, then press Save & Connect . You're now connected to IRC. Let's add you to our IRC #linuxserver.io room on Freenode. Click 'File' > 'Networks' > 'Configure Networks' > 'Add' (under Networks section, not Servers) > 'Use preset' > Select 'Freenode' and then configure your identity using the tabs in the 'Network details' section. Once connected to Freenode, click #join and enter #linuxserver.io . That's it, you're done. Stateless usage To use Quassel in stateless mode, where it needs to be configured through environment arguments, run it with the --config-from-environment RUN_OPTS environment setting. Env Usage DB_BACKEND SQLite or PostgreSQL DB_PGSQL_USERNAME PostgreSQL User DB_PGSQL_PASSWORD PostgreSQL Password DB_PGSQL_HOSTNAME PostgreSQL Host DB_PGSQL_PORT PostgreSQL Port AUTH_AUTHENTICATOR Database or LDAP AUTH_LDAP_HOSTNAME LDAP Host AUTH_LDAP_PORT LDAP Port AUTH_LDAP_BIND_DN LDAP Bind Domain AUTH_LDAP_BIND_PASSWORD LDAP Password AUTH_LDAP_FILTER LDAP Authentication Filters AUTH_LDAP_UID_ATTRIBUTE LDAP UID Additionally you have RUN_OPTS that can be used to customize pathing and behvior. Option Example --strict-ident strictly bool --strict-ident --ident-daemon strictly bool --ident-daemon --ident-port --ident-port \"10113\" --ident-listen --ident-listen \"::,0.0.0.0\" --ssl-cert --ssl-cert /config/keys/cert.crt --ssl-key --ssl-key /config/keys/cert.key --require-ssl strictly bool --require-ssl Minimal example with SQLite: docker create \\ --name=quassel-core \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS='--config-from-environment' \\ -e DB_BACKEND=SQLite \\ -e AUTH_AUTHENTICATOR=Database \\ -p 4242:4242 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/quassel-core Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: quassel-core: image: lscr.io/linuxserver/quassel-core:latest container_name: quassel-core environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - RUN_OPTS=--config-from-environment #optional volumes: - :/config ports: - 4242:4242 - 113:10113 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=quassel-core \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS=--config-from-environment `#optional` \\ -p 4242:4242 \\ -p 113:10113 `#optional` \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/quassel-core:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4242 The port quassel-core listens for connections on. 10113 Optional Ident Port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. RUN_OPTS=--config-from-environment Custom CLI options for Quassel Volume Mappings ( -v ) Volume Function /config Database and quassel-core configuration storage. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it quassel-core /bin/bash To monitor the logs of the container in realtime: docker logs -f quassel-core Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' quassel-core Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/quassel-core:latest Versions 03.01.22: - Rebase to alpine 3.15. Add new build deps and apply other fixes for 0.14. 07.08.21: - Fixing incorrect database password variable operator. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 20.03.19: - Make stateless operation an option, with input from one of the quassel team. 26.01.19: - Add pipeline logic and multi arch. 08.01.19: - Rebase to Ubuntu Bionic and upgrade to Quassel 0.13.0 See here. . 30.07.18: - Rebase to alpine:3.8 and use buildstage. 03.01.18: - Deprecate cpu_core routine lack of scaling. 09.12.17: - Rebase to alpine:3.7. 26.11.17: - Use cpu core counting routine to speed up build time. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 27.05.17: - Rebase to alpine:3.6. 13.05.17: - Switch to git source. 28.12.16: - Rebase to alpine:3.5. 23.11.16: - Rebase to alpine:edge. 23.09.16: - Use QT5 dependencies (thanks bauerj). 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 10.08.16: - Rebase to xenial. 14.10.15: - Removed the webui, turned out to be to unstable for most usecases. 01.09.15: - Fixed mistake in README. 30.07.15: - Switched to internal baseimage, and fixed a bug with updating the webinterface. 06.07.15: - Enabled BLOWFISH encryption and added a (optional) webinterface, for the times you dont have access to your client.","title":"quassel-core"},{"location":"images/docker-quassel-core/#linuxserverquassel-core","text":"Quassel-core is a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core. This container handles the IRC connection (quasselcore) and requires a desktop client (quasselclient) to be used and configured. It is designed to be always on and will keep your identity present in IRC even when your clients cannot be online. Backlog (history) is downloaded by your client upon reconnection allowing infinite scrollback through time.","title":"linuxserver/quassel-core"},{"location":"images/docker-quassel-core/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/quassel-core:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-quassel-core/#application-setup","text":"Quassel wiki: quassel A great place to host a quassel instance is a VPS, such as DigitalOcean . For $5 a month you can have a 24/7 IRC connection and be up and running in under 55 seconds (or so they claim). Once you have the container running, fire up a quassel desktop client and connect to your new core instance using your droplets public IP address and the port you specified in your docker run command default: 4242 . Create an admin user, select SQLite as your storage backend (Quassel limitation). Setup your real name and nick, then press Save & Connect . You're now connected to IRC. Let's add you to our IRC #linuxserver.io room on Freenode. Click 'File' > 'Networks' > 'Configure Networks' > 'Add' (under Networks section, not Servers) > 'Use preset' > Select 'Freenode' and then configure your identity using the tabs in the 'Network details' section. Once connected to Freenode, click #join and enter #linuxserver.io . That's it, you're done.","title":"Application Setup"},{"location":"images/docker-quassel-core/#stateless-usage","text":"To use Quassel in stateless mode, where it needs to be configured through environment arguments, run it with the --config-from-environment RUN_OPTS environment setting. Env Usage DB_BACKEND SQLite or PostgreSQL DB_PGSQL_USERNAME PostgreSQL User DB_PGSQL_PASSWORD PostgreSQL Password DB_PGSQL_HOSTNAME PostgreSQL Host DB_PGSQL_PORT PostgreSQL Port AUTH_AUTHENTICATOR Database or LDAP AUTH_LDAP_HOSTNAME LDAP Host AUTH_LDAP_PORT LDAP Port AUTH_LDAP_BIND_DN LDAP Bind Domain AUTH_LDAP_BIND_PASSWORD LDAP Password AUTH_LDAP_FILTER LDAP Authentication Filters AUTH_LDAP_UID_ATTRIBUTE LDAP UID Additionally you have RUN_OPTS that can be used to customize pathing and behvior. Option Example --strict-ident strictly bool --strict-ident --ident-daemon strictly bool --ident-daemon --ident-port --ident-port \"10113\" --ident-listen --ident-listen \"::,0.0.0.0\" --ssl-cert --ssl-cert /config/keys/cert.crt --ssl-key --ssl-key /config/keys/cert.key --require-ssl strictly bool --require-ssl Minimal example with SQLite: docker create \\ --name=quassel-core \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS='--config-from-environment' \\ -e DB_BACKEND=SQLite \\ -e AUTH_AUTHENTICATOR=Database \\ -p 4242:4242 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/quassel-core","title":"Stateless usage"},{"location":"images/docker-quassel-core/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-quassel-core/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: quassel-core: image: lscr.io/linuxserver/quassel-core:latest container_name: quassel-core environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - RUN_OPTS=--config-from-environment #optional volumes: - :/config ports: - 4242:4242 - 113:10113 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-quassel-core/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=quassel-core \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS=--config-from-environment `#optional` \\ -p 4242:4242 \\ -p 113:10113 `#optional` \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/quassel-core:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-quassel-core/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-quassel-core/#ports-p","text":"Parameter Function 4242 The port quassel-core listens for connections on. 10113 Optional Ident Port","title":"Ports (-p)"},{"location":"images/docker-quassel-core/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. RUN_OPTS=--config-from-environment Custom CLI options for Quassel","title":"Environment Variables (-e)"},{"location":"images/docker-quassel-core/#volume-mappings-v","text":"Volume Function /config Database and quassel-core configuration storage.","title":"Volume Mappings (-v)"},{"location":"images/docker-quassel-core/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-quassel-core/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-quassel-core/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-quassel-core/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-quassel-core/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-quassel-core/#support-info","text":"Shell access whilst the container is running: docker exec -it quassel-core /bin/bash To monitor the logs of the container in realtime: docker logs -f quassel-core Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' quassel-core Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/quassel-core:latest","title":"Support Info"},{"location":"images/docker-quassel-core/#versions","text":"03.01.22: - Rebase to alpine 3.15. Add new build deps and apply other fixes for 0.14. 07.08.21: - Fixing incorrect database password variable operator. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 20.03.19: - Make stateless operation an option, with input from one of the quassel team. 26.01.19: - Add pipeline logic and multi arch. 08.01.19: - Rebase to Ubuntu Bionic and upgrade to Quassel 0.13.0 See here. . 30.07.18: - Rebase to alpine:3.8 and use buildstage. 03.01.18: - Deprecate cpu_core routine lack of scaling. 09.12.17: - Rebase to alpine:3.7. 26.11.17: - Use cpu core counting routine to speed up build time. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 27.05.17: - Rebase to alpine:3.6. 13.05.17: - Switch to git source. 28.12.16: - Rebase to alpine:3.5. 23.11.16: - Rebase to alpine:edge. 23.09.16: - Use QT5 dependencies (thanks bauerj). 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 10.08.16: - Rebase to xenial. 14.10.15: - Removed the webui, turned out to be to unstable for most usecases. 01.09.15: - Fixed mistake in README. 30.07.15: - Switched to internal baseimage, and fixed a bug with updating the webinterface. 06.07.15: - Enabled BLOWFISH encryption and added a (optional) webinterface, for the times you dont have access to your client.","title":"Versions"},{"location":"images/docker-quassel-web/","text":"linuxserver/quassel-web Quassel-web is a web client for Quassel. Note that a Quassel-Core instance is required, we have a container available here. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/quassel-web:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup By default this container webui will be available on https://$SERVER_IP:64443 . To setup this container you can either use the envrionment variables we recommend or manually setup the configuration file by leaving out the QUASSEL_CORE environment variable among others. The configuration file using this method can be found at: /config/settings-user.js Strict reverse proxies This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: quassel-web: image: lscr.io/linuxserver/quassel-web:latest container_name: quassel-web environment: - PUID=1000 - PGID=1000 - QUASSEL_CORE=192.168.1.10 - QUASSEL_PORT=4242 - URL_BASE=/quassel #optional volumes: - /path/to/data:/config ports: - 64443:64443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=quassel-web \\ -e PUID=1000 \\ -e PGID=1000 \\ -e QUASSEL_CORE=192.168.1.10 \\ -e QUASSEL_PORT=4242 \\ -e URL_BASE=/quassel `#optional` \\ -p 64443:64443 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/quassel-web:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 64443 Quassel-web https webui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation QUASSEL_CORE=192.168.1.10 specify the URL or IP address of your Quassel Core instance QUASSEL_PORT=4242 specify the port of your Quassel Core instance URL_BASE=/quassel Specify a url-base in reverse proxy setups ie. /quassel Volume Mappings ( -v ) Volume Function /config this will store config on the docker host Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it quassel-web /bin/bash To monitor the logs of the container in realtime: docker logs -f quassel-web Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' quassel-web Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/quassel-web:latest Versions 12.02.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 18.05.19: - Reconfigure environmental variable setup. 28.04.19: - Initial Release.","title":"quassel-web"},{"location":"images/docker-quassel-web/#linuxserverquassel-web","text":"Quassel-web is a web client for Quassel. Note that a Quassel-Core instance is required, we have a container available here.","title":"linuxserver/quassel-web"},{"location":"images/docker-quassel-web/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/quassel-web:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-quassel-web/#application-setup","text":"By default this container webui will be available on https://$SERVER_IP:64443 . To setup this container you can either use the envrionment variables we recommend or manually setup the configuration file by leaving out the QUASSEL_CORE environment variable among others. The configuration file using this method can be found at: /config/settings-user.js","title":"Application Setup"},{"location":"images/docker-quassel-web/#strict-reverse-proxies","text":"This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-quassel-web/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-quassel-web/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: quassel-web: image: lscr.io/linuxserver/quassel-web:latest container_name: quassel-web environment: - PUID=1000 - PGID=1000 - QUASSEL_CORE=192.168.1.10 - QUASSEL_PORT=4242 - URL_BASE=/quassel #optional volumes: - /path/to/data:/config ports: - 64443:64443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-quassel-web/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=quassel-web \\ -e PUID=1000 \\ -e PGID=1000 \\ -e QUASSEL_CORE=192.168.1.10 \\ -e QUASSEL_PORT=4242 \\ -e URL_BASE=/quassel `#optional` \\ -p 64443:64443 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/quassel-web:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-quassel-web/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-quassel-web/#ports-p","text":"Parameter Function 64443 Quassel-web https webui","title":"Ports (-p)"},{"location":"images/docker-quassel-web/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation QUASSEL_CORE=192.168.1.10 specify the URL or IP address of your Quassel Core instance QUASSEL_PORT=4242 specify the port of your Quassel Core instance URL_BASE=/quassel Specify a url-base in reverse proxy setups ie. /quassel","title":"Environment Variables (-e)"},{"location":"images/docker-quassel-web/#volume-mappings-v","text":"Volume Function /config this will store config on the docker host","title":"Volume Mappings (-v)"},{"location":"images/docker-quassel-web/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-quassel-web/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-quassel-web/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-quassel-web/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-quassel-web/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-quassel-web/#support-info","text":"Shell access whilst the container is running: docker exec -it quassel-web /bin/bash To monitor the logs of the container in realtime: docker logs -f quassel-web Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' quassel-web Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/quassel-web:latest","title":"Support Info"},{"location":"images/docker-quassel-web/#versions","text":"12.02.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 18.05.19: - Reconfigure environmental variable setup. 28.04.19: - Initial Release.","title":"Versions"},{"location":"images/docker-radarr/","text":"linuxserver/radarr Radarr - A fork of Sonarr to work with movies \u00e0 la Couchpotato. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/radarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Radarr releases develop \u2705 Radarr releases from their develop branch nightly \u2705 Radarr releases from their nightly branch Application Setup Access the webui at :7878 , for more information check out Radarr . Media folders We have set /movies and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: radarr: image: lscr.io/linuxserver/radarr:latest container_name: radarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/movies:/movies #optional - /path/to/downloadclient-downloads:/downloads #optional ports: - 7878:7878 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=radarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 7878:7878 \\ -v /path/to/data:/config \\ -v /path/to/movies:/movies `#optional` \\ -v /path/to/downloadclient-downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/radarr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 7878 The port for the Radarr webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Radarr Volume Mappings ( -v ) Volume Function /config Database and Radarr configs /movies Location of Movie library on disk (See note in Application setup) /downloads Location of download managers output directory (See note in Application setup) Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it radarr /bin/bash To monitor the logs of the container in realtime: docker logs -f radarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' radarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/radarr:latest Versions 06.06.22: - Rebase master branch to Alpine 3.15. 20.02.22: - Rebase develop branch to Alpine. 04.02.22: - Rebase nightly branch to Alpine and deprecate nightly-alpine branch. 27.12.21: - Add nightly-alpine branch. 17.10.21: - Remove UMASK_SET . 08.05.21: - Make the paths clearer to the user 17.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 11.30.20: - Publish develop tag. 11.28.20: - Switch to v3 .NET CORE builds (no more mono, 5.14 tag is deprecated). Rebase to Focal (for issues on arm32v7, see here ). 05.04.20: - Move app to /app. 01.08.19: - Rebase to Linuxserver LTS mono version. 13.06.19: - Add env variable for setting umask. 10.05.19: - Rebase to Bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 09.09.18: - Add pipeline build process. 24.02.18: - Add nightly branch. 06.02.18: - Radarr repo changed owner. 15.12.17: - Fix continuation lines. 17.04.17: - Switch to using inhouse mono baseimage, adds python also. 13.04.17: - Switch to official mono repository. 10.01.17: - Initial Release.","title":"radarr"},{"location":"images/docker-radarr/#linuxserverradarr","text":"Radarr - A fork of Sonarr to work with movies \u00e0 la Couchpotato.","title":"linuxserver/radarr"},{"location":"images/docker-radarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/radarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-radarr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Radarr releases develop \u2705 Radarr releases from their develop branch nightly \u2705 Radarr releases from their nightly branch","title":"Version Tags"},{"location":"images/docker-radarr/#application-setup","text":"Access the webui at :7878 , for more information check out Radarr .","title":"Application Setup"},{"location":"images/docker-radarr/#media-folders","text":"We have set /movies and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Media folders"},{"location":"images/docker-radarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-radarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: radarr: image: lscr.io/linuxserver/radarr:latest container_name: radarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/movies:/movies #optional - /path/to/downloadclient-downloads:/downloads #optional ports: - 7878:7878 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-radarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=radarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 7878:7878 \\ -v /path/to/data:/config \\ -v /path/to/movies:/movies `#optional` \\ -v /path/to/downloadclient-downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/radarr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-radarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-radarr/#ports-p","text":"Parameter Function 7878 The port for the Radarr webinterface","title":"Ports (-p)"},{"location":"images/docker-radarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Radarr","title":"Environment Variables (-e)"},{"location":"images/docker-radarr/#volume-mappings-v","text":"Volume Function /config Database and Radarr configs /movies Location of Movie library on disk (See note in Application setup) /downloads Location of download managers output directory (See note in Application setup)","title":"Volume Mappings (-v)"},{"location":"images/docker-radarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-radarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-radarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-radarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-radarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-radarr/#support-info","text":"Shell access whilst the container is running: docker exec -it radarr /bin/bash To monitor the logs of the container in realtime: docker logs -f radarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' radarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/radarr:latest","title":"Support Info"},{"location":"images/docker-radarr/#versions","text":"06.06.22: - Rebase master branch to Alpine 3.15. 20.02.22: - Rebase develop branch to Alpine. 04.02.22: - Rebase nightly branch to Alpine and deprecate nightly-alpine branch. 27.12.21: - Add nightly-alpine branch. 17.10.21: - Remove UMASK_SET . 08.05.21: - Make the paths clearer to the user 17.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 11.30.20: - Publish develop tag. 11.28.20: - Switch to v3 .NET CORE builds (no more mono, 5.14 tag is deprecated). Rebase to Focal (for issues on arm32v7, see here ). 05.04.20: - Move app to /app. 01.08.19: - Rebase to Linuxserver LTS mono version. 13.06.19: - Add env variable for setting umask. 10.05.19: - Rebase to Bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 09.09.18: - Add pipeline build process. 24.02.18: - Add nightly branch. 06.02.18: - Radarr repo changed owner. 15.12.17: - Fix continuation lines. 17.04.17: - Switch to using inhouse mono baseimage, adds python also. 13.04.17: - Switch to official mono repository. 10.01.17: - Initial Release.","title":"Versions"},{"location":"images/docker-raneto/","text":"linuxserver/raneto Raneto - is an open source Knowledgebase platform that uses static Markdown files to power your Knowledgebase. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/raneto:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at http:// :3000 The default username and password is admin/password This application can only be configured through file storage the web interface is only for editing Markdown files. You need to understand the following paths and the role they play for the application: /config/config.default.js - Main configuration file to setup your user, site name, etc. /config/content - All of your Markdown files go here more info . /config/images - This folder will serve content on http:// :3000/images/ .png you can put anything in here but it is specifically for image files so you can embed them in your Markdown files without using external hosting. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: raneto: image: lscr.io/linuxserver/raneto:latest container_name: raneto environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=raneto \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/raneto:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 The port for the Raneto web interface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Raneto config and Markdown files Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it raneto /bin/bash To monitor the logs of the container in realtime: docker logs -f raneto Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' raneto Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/raneto:latest Versions 10.08.22: - Rebasing to alpine 3.15. 23.01.21: - Rebasing to alpine 3.13. 02.06.20: - Rebasing to alpine 3.11. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 01.06.19: - Initial Release.","title":"raneto"},{"location":"images/docker-raneto/#linuxserverraneto","text":"Raneto - is an open source Knowledgebase platform that uses static Markdown files to power your Knowledgebase.","title":"linuxserver/raneto"},{"location":"images/docker-raneto/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/raneto:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-raneto/#application-setup","text":"Access the webui at http:// :3000 The default username and password is admin/password This application can only be configured through file storage the web interface is only for editing Markdown files. You need to understand the following paths and the role they play for the application: /config/config.default.js - Main configuration file to setup your user, site name, etc. /config/content - All of your Markdown files go here more info . /config/images - This folder will serve content on http:// :3000/images/ .png you can put anything in here but it is specifically for image files so you can embed them in your Markdown files without using external hosting.","title":"Application Setup"},{"location":"images/docker-raneto/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-raneto/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: raneto: image: lscr.io/linuxserver/raneto:latest container_name: raneto environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-raneto/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=raneto \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/raneto:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-raneto/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-raneto/#ports-p","text":"Parameter Function 3000 The port for the Raneto web interface","title":"Ports (-p)"},{"location":"images/docker-raneto/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-raneto/#volume-mappings-v","text":"Volume Function /config Raneto config and Markdown files","title":"Volume Mappings (-v)"},{"location":"images/docker-raneto/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-raneto/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-raneto/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-raneto/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-raneto/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-raneto/#support-info","text":"Shell access whilst the container is running: docker exec -it raneto /bin/bash To monitor the logs of the container in realtime: docker logs -f raneto Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' raneto Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/raneto:latest","title":"Support Info"},{"location":"images/docker-raneto/#versions","text":"10.08.22: - Rebasing to alpine 3.15. 23.01.21: - Rebasing to alpine 3.13. 02.06.20: - Rebasing to alpine 3.11. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 01.06.19: - Initial Release.","title":"Versions"},{"location":"images/docker-rdesktop/","text":"linuxserver/rdesktop Rdesktop - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/rdesktop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 XFCE Alpine ubuntu-xfce \u2705 XFCE Ubuntu fedora-xfce \u2705 XFCE Fedora arch-xfce \u2705 XFCE Arch alpine-kde \u2705 KDE Alpine ubuntu-kde \u2705 KDE Ubuntu fedora-kde \u2705 KDE Fedora arch-kde \u2705 KDE Arch alpine-mate \u2705 MATE Alpine ubuntu-mate \u2705 MATE Ubuntu fedora-mate \u2705 MATE Fedora arch-mate \u2705 MATE Arch alpine-i3 \u2705 i3 Alpine ubuntu-i3 \u2705 i3 Ubuntu fedora-i3 \u2705 i3 Fedora arch-i3 \u2705 i3 Arch alpine-openbox \u2705 Openbox Alpine ubuntu-openbox \u2705 Openbox Ubuntu fedora-openbox \u2705 Openbox Fedora arch-openbox \u2705 Openbox Arch alpine-icewm \u2705 IceWM Alpine ubuntu-icewm \u2705 IceWM Ubuntu fedora-icewm \u2705 IceWM Fedora arch-icewm \u2705 IceWM Arch Application Setup The Default USERNAME and PASSWORD is: abc/abc Unlike our other containers these Desktops are not designed to be upgraded by Docker, you will keep your home directoy but anything you installed system level will be lost if you upgrade an existing container. To keep packages up to date instead use Ubuntu's own apt, Alpine's apk, Fedora's dnf, or Arch's pacman program You will need a Remote Desktop client to access this container Wikipedia List , by default it listens on 3389, but you can change that port to whatever you wish on the host side IE 3390:3389 . The first thing you should do when you login to the container is to change the abc users password by issuing the passwd command. Modern GUI desktop apps (including some flavors terminals) have issues with the latest Docker and syscall compatibility, you can use Docker with the --security-opt seccomp=unconfined setting to allow these syscalls or try podman as they have updated their codebase to support them If you ever lose your password you can always reset it by execing into the container as root: docker exec -it rdesktop passwd abc By default we perform all logic for the abc user and we reccomend using that user only in the container, but new users can be added as long as there is a startwm.sh executable script in their home directory. All of these containers are configured with passwordless sudo, we make no efforts to secure or harden these containers and we do not reccomend ever publishing their ports to the public Internet. Hardware Acceleration (Ubuntu Container Only) Many desktop application will need access to a GPU to function properly and even some Desktop Environments have compisitor effects that will not function without a GPU. This is not a hard requirement and all base images will function without a video device mounted into the container. Intel/ATI/AMD To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container. Arm Devices Best effort is made to install tools to allow mounting in /dev/dri on Arm devices. In most cases if /dev/dri exists on the host it should just work. If running a Raspberry Pi 4 be sure to enable dtoverlay=vc4-fkms-v3d in your usercfg.txt. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: rdesktop: image: lscr.io/linuxserver/rdesktop:latest container_name: rdesktop security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /var/run/docker.sock:/var/run/docker.sock #optional - /path/to/data:/config #optional ports: - 3389:3389 devices: - /dev/dri:/dev/dri #optional shm_size: \"1gb\" #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=rdesktop \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3389:3389 \\ -v /var/run/docker.sock:/var/run/docker.sock `#optional` \\ -v /path/to/data:/config `#optional` \\ --device /dev/dri:/dev/dri `#optional` \\ --shm-size=\"1gb\" `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/rdesktop:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3389 RDP access port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /var/run/docker.sock Docker Socket on the system, if you want to use Docker in the container /config abc users home directory Device Mappings ( --device ) Parameter Function /dev/dri Add this for GL support (Linux hosts only) Miscellaneous Options Parameter Function --shm-size= We set this to 1 gig to prevent modern web browsers from crashing --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it rdesktop /bin/bash To monitor the logs of the container in realtime: docker logs -f rdesktop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' rdesktop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/rdesktop:latest Versions 27.10.22: - Rebase all Ubuntu images to Jammy 22.04. 26.10.22: - Rebase Alpine xfce to 3.16, migrate to s6v3. 05.03.22: - Organize tags differently to run Ubuntu at latest LTS, make Alpine latest, add docs about GPU accel. 05.05.21: - Reduce default packages to their flavor specific basics. 05.04.21: - Add Alpine flavor. 06.04.20: - Start PulseAudio in images to support audio 28.02.20: - Initial Releases","title":"rdesktop"},{"location":"images/docker-rdesktop/#linuxserverrdesktop","text":"Rdesktop - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP.","title":"linuxserver/rdesktop"},{"location":"images/docker-rdesktop/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/rdesktop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-rdesktop/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 XFCE Alpine ubuntu-xfce \u2705 XFCE Ubuntu fedora-xfce \u2705 XFCE Fedora arch-xfce \u2705 XFCE Arch alpine-kde \u2705 KDE Alpine ubuntu-kde \u2705 KDE Ubuntu fedora-kde \u2705 KDE Fedora arch-kde \u2705 KDE Arch alpine-mate \u2705 MATE Alpine ubuntu-mate \u2705 MATE Ubuntu fedora-mate \u2705 MATE Fedora arch-mate \u2705 MATE Arch alpine-i3 \u2705 i3 Alpine ubuntu-i3 \u2705 i3 Ubuntu fedora-i3 \u2705 i3 Fedora arch-i3 \u2705 i3 Arch alpine-openbox \u2705 Openbox Alpine ubuntu-openbox \u2705 Openbox Ubuntu fedora-openbox \u2705 Openbox Fedora arch-openbox \u2705 Openbox Arch alpine-icewm \u2705 IceWM Alpine ubuntu-icewm \u2705 IceWM Ubuntu fedora-icewm \u2705 IceWM Fedora arch-icewm \u2705 IceWM Arch","title":"Version Tags"},{"location":"images/docker-rdesktop/#application-setup","text":"The Default USERNAME and PASSWORD is: abc/abc Unlike our other containers these Desktops are not designed to be upgraded by Docker, you will keep your home directoy but anything you installed system level will be lost if you upgrade an existing container. To keep packages up to date instead use Ubuntu's own apt, Alpine's apk, Fedora's dnf, or Arch's pacman program You will need a Remote Desktop client to access this container Wikipedia List , by default it listens on 3389, but you can change that port to whatever you wish on the host side IE 3390:3389 . The first thing you should do when you login to the container is to change the abc users password by issuing the passwd command. Modern GUI desktop apps (including some flavors terminals) have issues with the latest Docker and syscall compatibility, you can use Docker with the --security-opt seccomp=unconfined setting to allow these syscalls or try podman as they have updated their codebase to support them If you ever lose your password you can always reset it by execing into the container as root: docker exec -it rdesktop passwd abc By default we perform all logic for the abc user and we reccomend using that user only in the container, but new users can be added as long as there is a startwm.sh executable script in their home directory. All of these containers are configured with passwordless sudo, we make no efforts to secure or harden these containers and we do not reccomend ever publishing their ports to the public Internet.","title":"Application Setup"},{"location":"images/docker-rdesktop/#hardware-acceleration-ubuntu-container-only","text":"Many desktop application will need access to a GPU to function properly and even some Desktop Environments have compisitor effects that will not function without a GPU. This is not a hard requirement and all base images will function without a video device mounted into the container.","title":"Hardware Acceleration (Ubuntu Container Only)"},{"location":"images/docker-rdesktop/#intelatiamd","text":"To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel/ATI/AMD"},{"location":"images/docker-rdesktop/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container.","title":"Nvidia"},{"location":"images/docker-rdesktop/#arm-devices","text":"Best effort is made to install tools to allow mounting in /dev/dri on Arm devices. In most cases if /dev/dri exists on the host it should just work. If running a Raspberry Pi 4 be sure to enable dtoverlay=vc4-fkms-v3d in your usercfg.txt.","title":"Arm Devices"},{"location":"images/docker-rdesktop/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-rdesktop/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: rdesktop: image: lscr.io/linuxserver/rdesktop:latest container_name: rdesktop security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /var/run/docker.sock:/var/run/docker.sock #optional - /path/to/data:/config #optional ports: - 3389:3389 devices: - /dev/dri:/dev/dri #optional shm_size: \"1gb\" #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-rdesktop/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=rdesktop \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3389:3389 \\ -v /var/run/docker.sock:/var/run/docker.sock `#optional` \\ -v /path/to/data:/config `#optional` \\ --device /dev/dri:/dev/dri `#optional` \\ --shm-size=\"1gb\" `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/rdesktop:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-rdesktop/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-rdesktop/#ports-p","text":"Parameter Function 3389 RDP access port","title":"Ports (-p)"},{"location":"images/docker-rdesktop/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-rdesktop/#volume-mappings-v","text":"Volume Function /var/run/docker.sock Docker Socket on the system, if you want to use Docker in the container /config abc users home directory","title":"Volume Mappings (-v)"},{"location":"images/docker-rdesktop/#device-mappings-device","text":"Parameter Function /dev/dri Add this for GL support (Linux hosts only)","title":"Device Mappings (--device)"},{"location":"images/docker-rdesktop/#miscellaneous-options","text":"Parameter Function --shm-size= We set this to 1 gig to prevent modern web browsers from crashing --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker","title":"Miscellaneous Options"},{"location":"images/docker-rdesktop/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-rdesktop/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-rdesktop/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-rdesktop/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-rdesktop/#support-info","text":"Shell access whilst the container is running: docker exec -it rdesktop /bin/bash To monitor the logs of the container in realtime: docker logs -f rdesktop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' rdesktop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/rdesktop:latest","title":"Support Info"},{"location":"images/docker-rdesktop/#versions","text":"27.10.22: - Rebase all Ubuntu images to Jammy 22.04. 26.10.22: - Rebase Alpine xfce to 3.16, migrate to s6v3. 05.03.22: - Organize tags differently to run Ubuntu at latest LTS, make Alpine latest, add docs about GPU accel. 05.05.21: - Reduce default packages to their flavor specific basics. 05.04.21: - Add Alpine flavor. 06.04.20: - Start PulseAudio in images to support audio 28.02.20: - Initial Releases","title":"Versions"},{"location":"images/docker-readarr/","text":"linuxserver/readarr Readarr - Book Manager and Automation (Sonarr for Ebooks) Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/readarr:nightly should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u274c nightly \u2705 Nightly Readarr releases Application Setup Access the webui at :8787 , for more information check out Readarr . Media folders We have set /books and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: readarr: image: lscr.io/linuxserver/readarr:nightly container_name: readarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/books:/books #optional - /path/to/downloadclient-downloads:/downloads #optional ports: - 8787:8787 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=readarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8787:8787 \\ -v /path/to/data:/config \\ -v /path/to/books:/books `#optional` \\ -v /path/to/downloadclient-downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/readarr:nightly Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8787 The port for the Readarr webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Readarr Volume Mappings ( -v ) Volume Function /config Database and Readarr configs /books Location of Book library on disk (See note in Application setup) /downloads Location of download managers output directory (See note in Application setup) Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it readarr /bin/bash To monitor the logs of the container in realtime: docker logs -f readarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' readarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/readarr:nightly Versions 21.01.22: - Remove chromaprint as it's no longer a required dependency. 01.01.22: - Add chromaprint for audio fingerprinting. 28.07.21: - Initial Release.","title":"readarr"},{"location":"images/docker-readarr/#linuxserverreadarr","text":"Readarr - Book Manager and Automation (Sonarr for Ebooks)","title":"linuxserver/readarr"},{"location":"images/docker-readarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/readarr:nightly should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-readarr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u274c nightly \u2705 Nightly Readarr releases","title":"Version Tags"},{"location":"images/docker-readarr/#application-setup","text":"Access the webui at :8787 , for more information check out Readarr .","title":"Application Setup"},{"location":"images/docker-readarr/#media-folders","text":"We have set /books and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Media folders"},{"location":"images/docker-readarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-readarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: readarr: image: lscr.io/linuxserver/readarr:nightly container_name: readarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/books:/books #optional - /path/to/downloadclient-downloads:/downloads #optional ports: - 8787:8787 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-readarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=readarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8787:8787 \\ -v /path/to/data:/config \\ -v /path/to/books:/books `#optional` \\ -v /path/to/downloadclient-downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/readarr:nightly","title":"docker cli (click here for more info)"},{"location":"images/docker-readarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-readarr/#ports-p","text":"Parameter Function 8787 The port for the Readarr webinterface","title":"Ports (-p)"},{"location":"images/docker-readarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Readarr","title":"Environment Variables (-e)"},{"location":"images/docker-readarr/#volume-mappings-v","text":"Volume Function /config Database and Readarr configs /books Location of Book library on disk (See note in Application setup) /downloads Location of download managers output directory (See note in Application setup)","title":"Volume Mappings (-v)"},{"location":"images/docker-readarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-readarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-readarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-readarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-readarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-readarr/#support-info","text":"Shell access whilst the container is running: docker exec -it readarr /bin/bash To monitor the logs of the container in realtime: docker logs -f readarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' readarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/readarr:nightly","title":"Support Info"},{"location":"images/docker-readarr/#versions","text":"21.01.22: - Remove chromaprint as it's no longer a required dependency. 01.01.22: - Add chromaprint for audio fingerprinting. 28.07.21: - Initial Release.","title":"Versions"},{"location":"images/docker-readme-sync/","text":"Contact information:- Type Address/Details Discord Discord Forum Linuserver.io forum IRC freenode at #linuxserver.io more information at:- IRC Podcast Covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation! Linuxserver.io Podcast The LinuxServer.io team brings you another image release featuring :- regular and timely application updates easy user mappings custom base image with s6 overlay weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth security updates lsiodev/readme-sync Utility to copy README.md from a given github.com repository to a given dockerhub.com repository. Usage docker run --rm=true \\ -e DOCKERHUB_USERNAME= \\ -e DOCKERHUB_PASSWORD= \\ -e GIT_REPOSITORY= \\ -e DOCKER_REPOSITORY= \\ -e GIT_BRANCH= \\ lsiodev/readme-sync bash -c 'node sync' Parameters The parameters are split into two halves, separated by a colon, the left hand side representing the host and the right the container side. For example with a port -p external:internal - what this shows is the port mapping from internal to external of the container. So -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 http://192.168.x.x:8080 would show you what's running INSIDE the container on port 80. Parameter Function -e DOCKERHUB_USERNAME your dockerhub username -e DOCKERHUB_PASSWORD your dockerhub password -e GIT_REPOSITORY github repository, i.e. linuxserver/docker-readme-sync -e DOCKER_REPOSITORY dockerhub repository, i.e. lsiodev/docker-readme-sync -e GIT_BRANCH github repository branch, optional (default: master) It is based on alpine and is not meant to run as a service. The sync is performed and the command exits. Versions Date Changes 13.01.21 Use ghcr baseimages. Fall back to external folder for readme lite. 28.07.20 Rebase to alpine 3.12. 20.08.18 Rebase to alpine 3.8. 28.02.18 convert repo to use node.js implementation. 17.11.17 add github branch support. 16.10.16 merge ruby app. 11.10.16 Initial development release.","title":"readme-sync"},{"location":"images/docker-readme-sync/#contact-information-","text":"Type Address/Details Discord Discord Forum Linuserver.io forum IRC freenode at #linuxserver.io more information at:- IRC Podcast Covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation! Linuxserver.io Podcast The LinuxServer.io team brings you another image release featuring :- regular and timely application updates easy user mappings custom base image with s6 overlay weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth security updates","title":"Contact information:-"},{"location":"images/docker-readme-sync/#lsiodevreadme-sync","text":"Utility to copy README.md from a given github.com repository to a given dockerhub.com repository.","title":"lsiodev/readme-sync"},{"location":"images/docker-readme-sync/#usage","text":"docker run --rm=true \\ -e DOCKERHUB_USERNAME= \\ -e DOCKERHUB_PASSWORD= \\ -e GIT_REPOSITORY= \\ -e DOCKER_REPOSITORY= \\ -e GIT_BRANCH= \\ lsiodev/readme-sync bash -c 'node sync'","title":"Usage"},{"location":"images/docker-readme-sync/#parameters","text":"The parameters are split into two halves, separated by a colon, the left hand side representing the host and the right the container side. For example with a port -p external:internal - what this shows is the port mapping from internal to external of the container. So -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 http://192.168.x.x:8080 would show you what's running INSIDE the container on port 80. Parameter Function -e DOCKERHUB_USERNAME your dockerhub username -e DOCKERHUB_PASSWORD your dockerhub password -e GIT_REPOSITORY github repository, i.e. linuxserver/docker-readme-sync -e DOCKER_REPOSITORY dockerhub repository, i.e. lsiodev/docker-readme-sync -e GIT_BRANCH github repository branch, optional (default: master) It is based on alpine and is not meant to run as a service. The sync is performed and the command exits.","title":"Parameters"},{"location":"images/docker-readme-sync/#versions","text":"Date Changes 13.01.21 Use ghcr baseimages. Fall back to external folder for readme lite. 28.07.20 Rebase to alpine 3.12. 20.08.18 Rebase to alpine 3.8. 28.02.18 convert repo to use node.js implementation. 17.11.17 add github branch support. 16.10.16 merge ruby app. 11.10.16 Initial development release.","title":"Versions"},{"location":"images/docker-remmina/","text":"linuxserver/remmina Remmina is a remote desktop client written in GTK, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large or tiny screens. Remmina supports multiple network protocols, in an integrated and consistent user interface. Currently RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC are supported. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/remmina:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: remmina: image: lscr.io/linuxserver/remmina:latest container_name: remmina environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=remmina \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/remmina:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Remmina desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it remmina /bin/bash To monitor the logs of the container in realtime: docker logs -f remmina Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' remmina Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/remmina:latest Versions 16.12.22: - Rebase to Jammy. Drop nx, xdmcp plugins due to lack of packages. Add Kiosk, Secret, x2go plugins. 19.06.22: - Rebase to Focal. Drop Telepathy plugin due to lack of packages. 27.03.20: - Initial release.","title":"remmina"},{"location":"images/docker-remmina/#linuxserverremmina","text":"Remmina is a remote desktop client written in GTK, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large or tiny screens. Remmina supports multiple network protocols, in an integrated and consistent user interface. Currently RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC are supported.","title":"linuxserver/remmina"},{"location":"images/docker-remmina/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/remmina:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-remmina/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-remmina/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-remmina/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: remmina: image: lscr.io/linuxserver/remmina:latest container_name: remmina environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-remmina/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=remmina \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/remmina:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-remmina/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-remmina/#ports-p","text":"Parameter Function 3000 Remmina desktop gui.","title":"Ports (-p)"},{"location":"images/docker-remmina/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-remmina/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings.","title":"Volume Mappings (-v)"},{"location":"images/docker-remmina/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-remmina/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-remmina/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-remmina/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-remmina/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-remmina/#support-info","text":"Shell access whilst the container is running: docker exec -it remmina /bin/bash To monitor the logs of the container in realtime: docker logs -f remmina Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' remmina Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/remmina:latest","title":"Support Info"},{"location":"images/docker-remmina/#versions","text":"16.12.22: - Rebase to Jammy. Drop nx, xdmcp plugins due to lack of packages. Add Kiosk, Secret, x2go plugins. 19.06.22: - Rebase to Focal. Drop Telepathy plugin due to lack of packages. 27.03.20: - Initial release.","title":"Versions"},{"location":"images/docker-requestrr/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. The upstream dev has ended development. linuxserver/requestrr Requestrr is a chatbot used to simplify using services like Sonarr/Radarr/Ombi via the use of chat. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/requestrr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at :4545 , for more information check out Requestrr . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: requestrr: image: lscr.io/linuxserver/requestrr:latest container_name: requestrr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 4545:4545 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=requestrr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 4545:4545 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/requestrr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4545 web gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it requestrr /bin/bash To monitor the logs of the container in realtime: docker logs -f requestrr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' requestrr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/requestrr:latest Versions 20.12.21: - Deprecate. 27.09.21: - Allow app to write to tmp folder. 21.02.21: - Initial Release.","title":"requestrr"},{"location":"images/docker-requestrr/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. The upstream dev has ended development.","title":"DEPRECATION NOTICE"},{"location":"images/docker-requestrr/#linuxserverrequestrr","text":"Requestrr is a chatbot used to simplify using services like Sonarr/Radarr/Ombi via the use of chat.","title":"linuxserver/requestrr"},{"location":"images/docker-requestrr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/requestrr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-requestrr/#application-setup","text":"Access the webui at :4545 , for more information check out Requestrr .","title":"Application Setup"},{"location":"images/docker-requestrr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-requestrr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: requestrr: image: lscr.io/linuxserver/requestrr:latest container_name: requestrr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 4545:4545 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-requestrr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=requestrr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 4545:4545 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/requestrr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-requestrr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-requestrr/#ports-p","text":"Parameter Function 4545 web gui","title":"Ports (-p)"},{"location":"images/docker-requestrr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-requestrr/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-requestrr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-requestrr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-requestrr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-requestrr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-requestrr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-requestrr/#support-info","text":"Shell access whilst the container is running: docker exec -it requestrr /bin/bash To monitor the logs of the container in realtime: docker logs -f requestrr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' requestrr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/requestrr:latest","title":"Support Info"},{"location":"images/docker-requestrr/#versions","text":"20.12.21: - Deprecate. 27.09.21: - Allow app to write to tmp folder. 21.02.21: - Initial Release.","title":"Versions"},{"location":"images/docker-resilio-sync/","text":"linuxserver/resilio-sync Resilio-sync (formerly BitTorrent Sync) uses the BitTorrent protocol to sync files and folders between all of your devices. There are both free and paid versions, this container supports both. There is an official sync image but we created this one as it supports user mapping to simplify permissions for volumes. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/resilio-sync:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Webui is at :8888 , for account creation and configuration. More info on setup at Resilio Sync Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: resilio-sync: image: lscr.io/linuxserver/resilio-sync:latest container_name: resilio-sync environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/downloads:/downloads - /path/to/data:/sync ports: - 8888:8888 - 55555:55555 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=resilio-sync \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8888:8888 \\ -p 55555:55555 \\ -v /path/to/config:/config \\ -v /path/to/downloads:/downloads \\ -v /path/to/data:/sync \\ --restart unless-stopped \\ lscr.io/linuxserver/resilio-sync:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8888 WebUI 55555 Sync Port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where resilio-sync should store its config file. /downloads Folder for downloads/cache. /sync Sync folders root. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it resilio-sync /bin/bash To monitor the logs of the container in realtime: docker logs -f resilio-sync Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' resilio-sync Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/resilio-sync:latest Versions 14.12.22: - Rebase to Jammy, migrate to s6v3. 03.10.21: - Use upstream apt repo to install. Rebase to focal. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Rebase to bionic, add pipeline logic and multi arch. 05.02.18: - Add downloads volume mount. 28.01.18: - Add /sync to dir whitelist. 26.01.18: - Use variable for arch to bring in line with armhf arch repo. 15.12.17: - Fix continuation lines. 02.06.17: - Rebase to ubuntu xenial, alpine linux no longer works with resilio. 22.05.17: - Add variable for user defined umask. 14.05.17: - Use fixed version instead of latest, while 2.5.0 is broken on non glibc (alpine). 08.02.17: - Rebase to alpine 3.5. 02.11.16: - Initial Release.","title":"resilio-sync"},{"location":"images/docker-resilio-sync/#linuxserverresilio-sync","text":"Resilio-sync (formerly BitTorrent Sync) uses the BitTorrent protocol to sync files and folders between all of your devices. There are both free and paid versions, this container supports both. There is an official sync image but we created this one as it supports user mapping to simplify permissions for volumes.","title":"linuxserver/resilio-sync"},{"location":"images/docker-resilio-sync/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/resilio-sync:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-resilio-sync/#application-setup","text":"Webui is at :8888 , for account creation and configuration. More info on setup at Resilio Sync","title":"Application Setup"},{"location":"images/docker-resilio-sync/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-resilio-sync/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: resilio-sync: image: lscr.io/linuxserver/resilio-sync:latest container_name: resilio-sync environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/downloads:/downloads - /path/to/data:/sync ports: - 8888:8888 - 55555:55555 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-resilio-sync/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=resilio-sync \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8888:8888 \\ -p 55555:55555 \\ -v /path/to/config:/config \\ -v /path/to/downloads:/downloads \\ -v /path/to/data:/sync \\ --restart unless-stopped \\ lscr.io/linuxserver/resilio-sync:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-resilio-sync/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-resilio-sync/#ports-p","text":"Parameter Function 8888 WebUI 55555 Sync Port.","title":"Ports (-p)"},{"location":"images/docker-resilio-sync/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-resilio-sync/#volume-mappings-v","text":"Volume Function /config Where resilio-sync should store its config file. /downloads Folder for downloads/cache. /sync Sync folders root.","title":"Volume Mappings (-v)"},{"location":"images/docker-resilio-sync/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-resilio-sync/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-resilio-sync/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-resilio-sync/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-resilio-sync/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-resilio-sync/#support-info","text":"Shell access whilst the container is running: docker exec -it resilio-sync /bin/bash To monitor the logs of the container in realtime: docker logs -f resilio-sync Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' resilio-sync Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/resilio-sync:latest","title":"Support Info"},{"location":"images/docker-resilio-sync/#versions","text":"14.12.22: - Rebase to Jammy, migrate to s6v3. 03.10.21: - Use upstream apt repo to install. Rebase to focal. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Rebase to bionic, add pipeline logic and multi arch. 05.02.18: - Add downloads volume mount. 28.01.18: - Add /sync to dir whitelist. 26.01.18: - Use variable for arch to bring in line with armhf arch repo. 15.12.17: - Fix continuation lines. 02.06.17: - Rebase to ubuntu xenial, alpine linux no longer works with resilio. 22.05.17: - Add variable for user defined umask. 14.05.17: - Use fixed version instead of latest, while 2.5.0 is broken on non glibc (alpine). 08.02.17: - Rebase to alpine 3.5. 02.11.16: - Initial Release.","title":"Versions"},{"location":"images/docker-rsnapshot/","text":"linuxserver/rsnapshot Rsnapshot is a filesystem snapshot utility based on rsync. rsnapshot makes it easy to make periodic snapshots of local machines, and remote machines over ssh. The code makes extensive use of hard links whenever possible, to greatly reduce the disk space required.\" Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/rsnapshot:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup IMPORTANT NOTES: After starting the container you will need to edit /config/rsnapshot.conf . SNAPSHOT ROOT DIRECTORY rsnapshot is configured to backup data to the /.snapshots volume by default. This can be changed in the config, but be sure you mount a volume to the container to match. BACKUP LEVELS / INTERVALS rsnapshot retains backups based on configurations in this section. Please see the rsnapshot readme for more information. BACKUP POINTS rsnapshot is configured to backup data from the /data volume by default. This can be changed in the config, but be sure you mount a volume to the container to match. cron You will then need to edit /config/crontabs/root to set cron jobs to run rsnapshot. By default no cron jobs are enabled. Examples are includes based on information from the rsnapshot readme . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: rsnapshot: image: lscr.io/linuxserver/rsnapshot:latest container_name: rsnapshot environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata:/config - /path/to/snapshots:/.snapshots #optional - /path/to/data:/data #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=rsnapshot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -v /path/to/appdata:/config \\ -v /path/to/snapshots:/.snapshots `#optional` \\ -v /path/to/data:/data `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/rsnapshot:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /.snapshots Storage location for all snapshots. /data Storage location for data to be backed up. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it rsnapshot /bin/bash To monitor the logs of the container in realtime: docker logs -f rsnapshot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' rsnapshot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/rsnapshot:latest Versions 15.12.22: - Rebase to alpine 3.17. 11.10.22: - Rebase to alpine 3.16, migrate to s6v3. 10.10.21: - Rebase to alpine 3.14. 20.08.20: - Initial Release.","title":"rsnapshot"},{"location":"images/docker-rsnapshot/#linuxserverrsnapshot","text":"Rsnapshot is a filesystem snapshot utility based on rsync. rsnapshot makes it easy to make periodic snapshots of local machines, and remote machines over ssh. The code makes extensive use of hard links whenever possible, to greatly reduce the disk space required.\"","title":"linuxserver/rsnapshot"},{"location":"images/docker-rsnapshot/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/rsnapshot:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-rsnapshot/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-rsnapshot/#important-notes","text":"After starting the container you will need to edit /config/rsnapshot.conf .","title":"IMPORTANT NOTES:"},{"location":"images/docker-rsnapshot/#snapshot-root-directory","text":"rsnapshot is configured to backup data to the /.snapshots volume by default. This can be changed in the config, but be sure you mount a volume to the container to match.","title":"SNAPSHOT ROOT DIRECTORY"},{"location":"images/docker-rsnapshot/#backup-levels-intervals","text":"rsnapshot retains backups based on configurations in this section. Please see the rsnapshot readme for more information.","title":"BACKUP LEVELS / INTERVALS"},{"location":"images/docker-rsnapshot/#backup-points","text":"rsnapshot is configured to backup data from the /data volume by default. This can be changed in the config, but be sure you mount a volume to the container to match.","title":"BACKUP POINTS"},{"location":"images/docker-rsnapshot/#cron","text":"You will then need to edit /config/crontabs/root to set cron jobs to run rsnapshot. By default no cron jobs are enabled. Examples are includes based on information from the rsnapshot readme .","title":"cron"},{"location":"images/docker-rsnapshot/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-rsnapshot/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: rsnapshot: image: lscr.io/linuxserver/rsnapshot:latest container_name: rsnapshot environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata:/config - /path/to/snapshots:/.snapshots #optional - /path/to/data:/data #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-rsnapshot/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=rsnapshot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -v /path/to/appdata:/config \\ -v /path/to/snapshots:/.snapshots `#optional` \\ -v /path/to/data:/data `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/rsnapshot:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-rsnapshot/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-rsnapshot/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-rsnapshot/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York","title":"Environment Variables (-e)"},{"location":"images/docker-rsnapshot/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /.snapshots Storage location for all snapshots. /data Storage location for data to be backed up.","title":"Volume Mappings (-v)"},{"location":"images/docker-rsnapshot/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-rsnapshot/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-rsnapshot/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-rsnapshot/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-rsnapshot/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-rsnapshot/#support-info","text":"Shell access whilst the container is running: docker exec -it rsnapshot /bin/bash To monitor the logs of the container in realtime: docker logs -f rsnapshot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' rsnapshot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/rsnapshot:latest","title":"Support Info"},{"location":"images/docker-rsnapshot/#versions","text":"15.12.22: - Rebase to alpine 3.17. 11.10.22: - Rebase to alpine 3.16, migrate to s6v3. 10.10.21: - Rebase to alpine 3.14. 20.08.20: - Initial Release.","title":"Versions"},{"location":"images/docker-rutorrent/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/rutorrent Rutorrent is a popular rtorrent client with a webui for ease of use. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/rutorrent should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: rutorrent: image: lscr.io/linuxserver/rutorrent container_name: rutorrent environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/downloads ports: - 80:80 - 5000:5000 - 51413:51413 - 6881:6881/udp restart: unless-stopped docker cli docker run -d \\ --name=rutorrent \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 80:80 \\ -p 5000:5000 \\ -p 51413:51413 \\ -p 6881:6881/udp \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/rutorrent Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 ruTorrent Web UI 5000 scgi port 51413 Bit-torrent port 6881/udp Bit-torrent port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation Volume Mappings ( -v ) Volume Function /config where ruTorrent should store it's config files /downloads path to your downloads folder Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup THIS IMAGE IS DEPRECATED. Please migrate to crazy-max's image . Webui can be found at :80 , configuration files for rtorrent are in /config/rtorrent, php in config/php and for the webui in /config/rutorrent/settings. Settings, changed by the user through the \"Settings\" panel in ruTorrent, are valid until rtorrent restart. After which all settings will be set according to the rtorrent config file (/config/rtorrent/rtorrent.rc),this is a limitation of the actual apps themselves. Important note for unraid users or those running services such as a webserver on port 80, change port 80 assignment ** It should also be noted that this container when run will create subfolders ,completed, incoming and watched in the /downloads volume.** The Port Assignments and configuration folder structure has been changed from the previous ubuntu based versions of this container and we recommend a clean install Umask can be set in the /config/rtorrent/rtorrent.rc file by changing value in system.umask.set If you are seeing this error Caught internal_error: 'DhtRouter::get_tracker did not actually insert tracker.'. , a possible fix is to disable dht in /config/rtorrent/rtorrent.rc by changing the following values. dht.mode.set = disable protocol.pex.set = no If after updating you see an error about connecting to rtorrent in the webui, remove or comment out these lines in /config/rtorrent/rtorrent.rc ,whatever value is set, yes or no. Just setting them to no will still cause the error.. trackers.use_udp.set = yes protocol.pex.set = no To add plugins, create a plugins folder in your /config directory and add your plugin folders. Ensure proper user and group ownership is set once you add the directories. To add themes, create a themes folder in your /config directory and add your theme folders. Ensure proper user and group ownership is set once you add the directories. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it rutorrent /bin/bash To monitor the logs of the container in realtime: docker logs -f rutorrent Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' rutorrent Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/rutorrent Versions 25.03.22: - Deprecated. Please migrate to crazy-max's image . 02.06.20: - Rebasing to alpine 3.12. 29.02.20: - Update readme for pex/dht. 28.06.19: - Rebasing to alpine 3.10. 20.05.19: - Shift to building from official releases instead of commits. 13.05.19: - Add libffi and openssl. 07.05.19: - Add cloudscraper pip package. 11.04.19: - Fix warnings in webui by adding python3, procps and pip packages. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 03.11.18: - Add pipeline and multi arch logic to repo. 27.08.18: - Add bind tools package. 22.08.18: - Rebase to alpine 3.8. 08.12.17: - Rebase to alpine 3.7, add sox package. 28.10.17: - Mediainfo moved from testing to community repo. 09.10.17: - Use repo version of mediainfo to shorten build time. 28.05.17: - Fix permissions on secondary temp folder of nginx. 26.05.17: - Rebase to alpine 3.6. 03.05.17: - Fix log permissions. 18.03.17: - Note in readme about disabling dht in some circumstances. 24.02.17: - Patch a source file to quash rss https bug. 29.01.17: - Rebase to alpine 3.5. 20.11.16: - Add php7-mbstring package, bump mediainfo to 0.7.90. 14.10.16: - Add version layer information. 04.10.16: - Remove redundant sessions folder. 30.09.16: - Fix umask. 21.09.16: - Bump mediainfo, reorg dockerfile, add full wget package. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README, bump mediainfo version to 0.7.87. 07.08.16: - Perms fix on nginx tmp folder, also exposed php.ini for editing by use in /config/php. 26.07.16: - Rebase to alpine. 08.03.16: - Initial Release.","title":"rutorrent"},{"location":"images/docker-rutorrent/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-rutorrent/#linuxserverrutorrent","text":"Rutorrent is a popular rtorrent client with a webui for ease of use.","title":"linuxserver/rutorrent"},{"location":"images/docker-rutorrent/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/rutorrent should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-rutorrent/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-rutorrent/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: rutorrent: image: lscr.io/linuxserver/rutorrent container_name: rutorrent environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/downloads ports: - 80:80 - 5000:5000 - 51413:51413 - 6881:6881/udp restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-rutorrent/#docker-cli","text":"docker run -d \\ --name=rutorrent \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 80:80 \\ -p 5000:5000 \\ -p 51413:51413 \\ -p 6881:6881/udp \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/rutorrent","title":"docker cli"},{"location":"images/docker-rutorrent/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-rutorrent/#ports-p","text":"Parameter Function 80 ruTorrent Web UI 5000 scgi port 51413 Bit-torrent port 6881/udp Bit-torrent port","title":"Ports (-p)"},{"location":"images/docker-rutorrent/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation","title":"Environment Variables (-e)"},{"location":"images/docker-rutorrent/#volume-mappings-v","text":"Volume Function /config where ruTorrent should store it's config files /downloads path to your downloads folder","title":"Volume Mappings (-v)"},{"location":"images/docker-rutorrent/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-rutorrent/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-rutorrent/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-rutorrent/#application-setup","text":"THIS IMAGE IS DEPRECATED. Please migrate to crazy-max's image . Webui can be found at :80 , configuration files for rtorrent are in /config/rtorrent, php in config/php and for the webui in /config/rutorrent/settings. Settings, changed by the user through the \"Settings\" panel in ruTorrent, are valid until rtorrent restart. After which all settings will be set according to the rtorrent config file (/config/rtorrent/rtorrent.rc),this is a limitation of the actual apps themselves. Important note for unraid users or those running services such as a webserver on port 80, change port 80 assignment ** It should also be noted that this container when run will create subfolders ,completed, incoming and watched in the /downloads volume.** The Port Assignments and configuration folder structure has been changed from the previous ubuntu based versions of this container and we recommend a clean install Umask can be set in the /config/rtorrent/rtorrent.rc file by changing value in system.umask.set If you are seeing this error Caught internal_error: 'DhtRouter::get_tracker did not actually insert tracker.'. , a possible fix is to disable dht in /config/rtorrent/rtorrent.rc by changing the following values. dht.mode.set = disable protocol.pex.set = no If after updating you see an error about connecting to rtorrent in the webui, remove or comment out these lines in /config/rtorrent/rtorrent.rc ,whatever value is set, yes or no. Just setting them to no will still cause the error.. trackers.use_udp.set = yes protocol.pex.set = no To add plugins, create a plugins folder in your /config directory and add your plugin folders. Ensure proper user and group ownership is set once you add the directories. To add themes, create a themes folder in your /config directory and add your theme folders. Ensure proper user and group ownership is set once you add the directories.","title":"Application Setup"},{"location":"images/docker-rutorrent/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-rutorrent/#support-info","text":"Shell access whilst the container is running: docker exec -it rutorrent /bin/bash To monitor the logs of the container in realtime: docker logs -f rutorrent Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' rutorrent Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/rutorrent","title":"Support Info"},{"location":"images/docker-rutorrent/#versions","text":"25.03.22: - Deprecated. Please migrate to crazy-max's image . 02.06.20: - Rebasing to alpine 3.12. 29.02.20: - Update readme for pex/dht. 28.06.19: - Rebasing to alpine 3.10. 20.05.19: - Shift to building from official releases instead of commits. 13.05.19: - Add libffi and openssl. 07.05.19: - Add cloudscraper pip package. 11.04.19: - Fix warnings in webui by adding python3, procps and pip packages. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 03.11.18: - Add pipeline and multi arch logic to repo. 27.08.18: - Add bind tools package. 22.08.18: - Rebase to alpine 3.8. 08.12.17: - Rebase to alpine 3.7, add sox package. 28.10.17: - Mediainfo moved from testing to community repo. 09.10.17: - Use repo version of mediainfo to shorten build time. 28.05.17: - Fix permissions on secondary temp folder of nginx. 26.05.17: - Rebase to alpine 3.6. 03.05.17: - Fix log permissions. 18.03.17: - Note in readme about disabling dht in some circumstances. 24.02.17: - Patch a source file to quash rss https bug. 29.01.17: - Rebase to alpine 3.5. 20.11.16: - Add php7-mbstring package, bump mediainfo to 0.7.90. 14.10.16: - Add version layer information. 04.10.16: - Remove redundant sessions folder. 30.09.16: - Fix umask. 21.09.16: - Bump mediainfo, reorg dockerfile, add full wget package. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README, bump mediainfo version to 0.7.87. 07.08.16: - Perms fix on nginx tmp folder, also exposed php.ini for editing by use in /config/php. 26.07.16: - Rebase to alpine. 08.03.16: - Initial Release.","title":"Versions"},{"location":"images/docker-sabnzbd/","text":"linuxserver/sabnzbd Sabnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sabnzbd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable SABnzbd releases unstable \u2705 Pre-releases from the develop branch nightly \u2705 Latest commits from the develop branch Application Setup Initial setup is done from the http port. See the SABnzbd wiki for more information. nzb-notify nzb-notify is included with this image as a convenience script. To use it set the Scripts folder in the Folder settings to /app/nzbnotify and then configure it under Notifications. See nzb-notify for more information. Download folders In Sabnzbd gui settings, under Folders , make sure to set the Completed Download Folder as /downloads and the Temporary Download Folder as /incomplete-downloads We have set /incomplete-downloads and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: sabnzbd: image: lscr.io/linuxserver/sabnzbd:latest container_name: sabnzbd environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/downloads:/downloads #optional - /path/to/incomplete/downloads:/incomplete-downloads #optional ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=sabnzbd \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -v /path/to/data:/config \\ -v /path/to/downloads:/downloads `#optional` \\ -v /path/to/incomplete/downloads:/incomplete-downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/sabnzbd:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 HTTP port for the WebUI. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Local path for sabnzbd config files. /downloads Local path for finished downloads. /incomplete-downloads Local path for incomplete-downloads. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it sabnzbd /bin/bash To monitor the logs of the container in realtime: docker logs -f sabnzbd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sabnzbd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sabnzbd:latest Versions 03.10.22: - Rebase master branch to Alpine 3.16, migrate to s6v3. 12.08.22: - Bump unrar to 6.1.7. 31.07.22: - Add nightly tag. 10.03.22: - Add nzb-notify. 22.02.22: - Rebase master branch to Alpine, build unrar from source, deprecate Alpine branch. 25.01.22: - Rebase Unstable branch to Alpine. 13.01.22: - Add alpine branch 08.08.21: - Bump to focal, dont enforce binding to ipv4 port 8080 24.07.21: - Add python3-setuptools. 14.05.21: - Use linuxserver.io wheel index for pip packages. 12.02.21: - Clean up rust/cargo and pip cache. 17.08.20: - Run from source with python3 instead of ppa, remove python2 completely, symlink python to python3 . 02.01.20: - Add python3 on top of python2 to image during transition. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 25.02.19: - Rebase to Bionic, add python deps for scripts. 26.01.19: - Add pipeline logic and multi arch. 13.12.17: - Fix continuation lines. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 10.04.17: - Bump to 2.0 Release. 25.02.17: - Switch to nobetas repo for master/latest branch and add unstable branch. 08.02.17: - Add pythonioenconding=utf8 as env. 15.09.16: - Compile par2 multicore as per latest info sabnzbd git readme . 11.09.16: - Bump to release of 1.10. 09.09.16: - Rebase back to xenial, issues with alpine version of python and 1.10 branch of sab. 28.08.16: - Rebase to alpine, using git version of sab. 17.03.16: - Bump to install 1.0 final at startup. 14.03.16: - Refresh image to pick up latest RC. 23.01.15: - Refresh image. 14.12.15: - Refresh image to pick up latest beta. 21.08.15: - Initial Release.","title":"sabnzbd"},{"location":"images/docker-sabnzbd/#linuxserversabnzbd","text":"Sabnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction.","title":"linuxserver/sabnzbd"},{"location":"images/docker-sabnzbd/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sabnzbd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-sabnzbd/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable SABnzbd releases unstable \u2705 Pre-releases from the develop branch nightly \u2705 Latest commits from the develop branch","title":"Version Tags"},{"location":"images/docker-sabnzbd/#application-setup","text":"Initial setup is done from the http port. See the SABnzbd wiki for more information.","title":"Application Setup"},{"location":"images/docker-sabnzbd/#nzb-notify","text":"nzb-notify is included with this image as a convenience script. To use it set the Scripts folder in the Folder settings to /app/nzbnotify and then configure it under Notifications. See nzb-notify for more information.","title":"nzb-notify"},{"location":"images/docker-sabnzbd/#download-folders","text":"In Sabnzbd gui settings, under Folders , make sure to set the Completed Download Folder as /downloads and the Temporary Download Folder as /incomplete-downloads We have set /incomplete-downloads and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Download folders"},{"location":"images/docker-sabnzbd/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-sabnzbd/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: sabnzbd: image: lscr.io/linuxserver/sabnzbd:latest container_name: sabnzbd environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/downloads:/downloads #optional - /path/to/incomplete/downloads:/incomplete-downloads #optional ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-sabnzbd/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=sabnzbd \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -v /path/to/data:/config \\ -v /path/to/downloads:/downloads `#optional` \\ -v /path/to/incomplete/downloads:/incomplete-downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/sabnzbd:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-sabnzbd/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-sabnzbd/#ports-p","text":"Parameter Function 8080 HTTP port for the WebUI.","title":"Ports (-p)"},{"location":"images/docker-sabnzbd/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-sabnzbd/#volume-mappings-v","text":"Volume Function /config Local path for sabnzbd config files. /downloads Local path for finished downloads. /incomplete-downloads Local path for incomplete-downloads.","title":"Volume Mappings (-v)"},{"location":"images/docker-sabnzbd/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-sabnzbd/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-sabnzbd/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-sabnzbd/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-sabnzbd/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-sabnzbd/#support-info","text":"Shell access whilst the container is running: docker exec -it sabnzbd /bin/bash To monitor the logs of the container in realtime: docker logs -f sabnzbd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sabnzbd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sabnzbd:latest","title":"Support Info"},{"location":"images/docker-sabnzbd/#versions","text":"03.10.22: - Rebase master branch to Alpine 3.16, migrate to s6v3. 12.08.22: - Bump unrar to 6.1.7. 31.07.22: - Add nightly tag. 10.03.22: - Add nzb-notify. 22.02.22: - Rebase master branch to Alpine, build unrar from source, deprecate Alpine branch. 25.01.22: - Rebase Unstable branch to Alpine. 13.01.22: - Add alpine branch 08.08.21: - Bump to focal, dont enforce binding to ipv4 port 8080 24.07.21: - Add python3-setuptools. 14.05.21: - Use linuxserver.io wheel index for pip packages. 12.02.21: - Clean up rust/cargo and pip cache. 17.08.20: - Run from source with python3 instead of ppa, remove python2 completely, symlink python to python3 . 02.01.20: - Add python3 on top of python2 to image during transition. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 25.02.19: - Rebase to Bionic, add python deps for scripts. 26.01.19: - Add pipeline logic and multi arch. 13.12.17: - Fix continuation lines. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 10.04.17: - Bump to 2.0 Release. 25.02.17: - Switch to nobetas repo for master/latest branch and add unstable branch. 08.02.17: - Add pythonioenconding=utf8 as env. 15.09.16: - Compile par2 multicore as per latest info sabnzbd git readme . 11.09.16: - Bump to release of 1.10. 09.09.16: - Rebase back to xenial, issues with alpine version of python and 1.10 branch of sab. 28.08.16: - Rebase to alpine, using git version of sab. 17.03.16: - Bump to install 1.0 final at startup. 14.03.16: - Refresh image to pick up latest RC. 23.01.15: - Refresh image. 14.12.15: - Refresh image to pick up latest beta. 21.08.15: - Initial Release.","title":"Versions"},{"location":"images/docker-scrutiny/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend the official images: https://github.com/AnalogJ/scrutiny#docker linuxserver/scrutiny Scrutiny WebUI for smartd S.M.A.R.T monitoring. Scrutiny is a Hard Drive Health Dashboard & Monitoring solution, merging manufacturer provided S.M.A.R.T metrics with real-world failure rates from Backblaze. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/scrutiny:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This container can be run as an 'all-in-one' deployment or as a hub / spoke deployment. Use the environment variables SCRUTINY_WEB and SCRUTINY_COLLECTOR to control the mode of the container. Setting both to true will deploy the container as both a collector and the web UI - this is the simplest and most straightforward deployment approach. To make use of the hub and spoke model, run this container in \"collector\" mode by specifying SCRUTINY_API_ENDPOINT . Set this to the host that is running the API. For this to work, you will need to expose the API port directly from the container (by default this is 8080 ). You may need to manually enter the container to run scrutiny-collector-metrics run for your first job or wait until around midnight for it to kick off. A fully commented example configuration yaml file can be found in the original project repository here . Place this file in the location mounted to /config . A note on --cap-add for this container: * SYS_RAWIO is necessary to allow smartctl permission to query your device SMART data. * SYS_ADMIN is required for NVMe drives as per upstream issue #26 . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: scrutiny: image: lscr.io/linuxserver/scrutiny:latest container_name: scrutiny cap_add: - SYS_RAWIO - SYS_ADMIN #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SCRUTINY_API_ENDPOINT=http://localhost:8080 - SCRUTINY_WEB=true - SCRUTINY_COLLECTOR=true volumes: - /path/to/config:/config - /run/udev:/run/udev:ro ports: - 8080:8080 devices: - /dev/sda:/dev/sda - /dev/sdb:/dev/sdb - /dev/nvme1n1:/dev/nvme1n1 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=scrutiny \\ --cap-add=SYS_RAWIO \\ --cap-add=SYS_ADMIN `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SCRUTINY_API_ENDPOINT=http://localhost:8080 \\ -e SCRUTINY_WEB=true \\ -e SCRUTINY_COLLECTOR=true \\ -p 8080:8080 \\ -v /path/to/config:/config \\ -v /run/udev:/run/udev:ro \\ --device /dev/sda:/dev/sda \\ --device /dev/sdb:/dev/sdb \\ --device /dev/nvme1n1:/dev/nvme1n1 \\ --restart unless-stopped \\ lscr.io/linuxserver/scrutiny:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Port for scrutiny's web interface and API. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. SCRUTINY_API_ENDPOINT=http://localhost:8080 # optional - API endpoint of the scrutiny UI. Do not change unless using as a remote collector SCRUTINY_WEB=true # optional - Run the web service. SCRUTINY_COLLECTOR=true # optional - Run the metrics collector. Volume Mappings ( -v ) Volume Function /config Where config is stored. /run/udev:ro Provides necessary metadata to Scrutiny. Device Mappings ( --device ) Parameter Function /dev/sda This is how Scrutiny accesses drives. Optionally supply /dev:/dev instead for all devices. /dev/sdb A second drive. /dev/nvme1n1 An NVMe drive. NVMe requires --cap-add=SYS_ADMIN . Miscellaneous Options Parameter Function Portainer notice {% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %} Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it scrutiny /bin/bash To monitor the logs of the container in realtime: docker logs -f scrutiny Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' scrutiny Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/scrutiny:latest Versions 13.06.22: - Deprecate container. 19.01.22: - Rebase to Alpine 3.15. 22.11.20: - Added fix for nsswitch.conf to resolve local hosts 17.09.20: - Initial Release.","title":"scrutiny"},{"location":"images/docker-scrutiny/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend the official images: https://github.com/AnalogJ/scrutiny#docker","title":"DEPRECATION NOTICE"},{"location":"images/docker-scrutiny/#linuxserverscrutiny","text":"Scrutiny WebUI for smartd S.M.A.R.T monitoring. Scrutiny is a Hard Drive Health Dashboard & Monitoring solution, merging manufacturer provided S.M.A.R.T metrics with real-world failure rates from Backblaze.","title":"linuxserver/scrutiny"},{"location":"images/docker-scrutiny/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/scrutiny:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-scrutiny/#application-setup","text":"This container can be run as an 'all-in-one' deployment or as a hub / spoke deployment. Use the environment variables SCRUTINY_WEB and SCRUTINY_COLLECTOR to control the mode of the container. Setting both to true will deploy the container as both a collector and the web UI - this is the simplest and most straightforward deployment approach. To make use of the hub and spoke model, run this container in \"collector\" mode by specifying SCRUTINY_API_ENDPOINT . Set this to the host that is running the API. For this to work, you will need to expose the API port directly from the container (by default this is 8080 ). You may need to manually enter the container to run scrutiny-collector-metrics run for your first job or wait until around midnight for it to kick off. A fully commented example configuration yaml file can be found in the original project repository here . Place this file in the location mounted to /config . A note on --cap-add for this container: * SYS_RAWIO is necessary to allow smartctl permission to query your device SMART data. * SYS_ADMIN is required for NVMe drives as per upstream issue #26 .","title":"Application Setup"},{"location":"images/docker-scrutiny/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-scrutiny/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: scrutiny: image: lscr.io/linuxserver/scrutiny:latest container_name: scrutiny cap_add: - SYS_RAWIO - SYS_ADMIN #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SCRUTINY_API_ENDPOINT=http://localhost:8080 - SCRUTINY_WEB=true - SCRUTINY_COLLECTOR=true volumes: - /path/to/config:/config - /run/udev:/run/udev:ro ports: - 8080:8080 devices: - /dev/sda:/dev/sda - /dev/sdb:/dev/sdb - /dev/nvme1n1:/dev/nvme1n1 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-scrutiny/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=scrutiny \\ --cap-add=SYS_RAWIO \\ --cap-add=SYS_ADMIN `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SCRUTINY_API_ENDPOINT=http://localhost:8080 \\ -e SCRUTINY_WEB=true \\ -e SCRUTINY_COLLECTOR=true \\ -p 8080:8080 \\ -v /path/to/config:/config \\ -v /run/udev:/run/udev:ro \\ --device /dev/sda:/dev/sda \\ --device /dev/sdb:/dev/sdb \\ --device /dev/nvme1n1:/dev/nvme1n1 \\ --restart unless-stopped \\ lscr.io/linuxserver/scrutiny:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-scrutiny/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-scrutiny/#ports-p","text":"Parameter Function 8080 Port for scrutiny's web interface and API.","title":"Ports (-p)"},{"location":"images/docker-scrutiny/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. SCRUTINY_API_ENDPOINT=http://localhost:8080 # optional - API endpoint of the scrutiny UI. Do not change unless using as a remote collector SCRUTINY_WEB=true # optional - Run the web service. SCRUTINY_COLLECTOR=true # optional - Run the metrics collector.","title":"Environment Variables (-e)"},{"location":"images/docker-scrutiny/#volume-mappings-v","text":"Volume Function /config Where config is stored. /run/udev:ro Provides necessary metadata to Scrutiny.","title":"Volume Mappings (-v)"},{"location":"images/docker-scrutiny/#device-mappings-device","text":"Parameter Function /dev/sda This is how Scrutiny accesses drives. Optionally supply /dev:/dev instead for all devices. /dev/sdb A second drive. /dev/nvme1n1 An NVMe drive. NVMe requires --cap-add=SYS_ADMIN .","title":"Device Mappings (--device)"},{"location":"images/docker-scrutiny/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-scrutiny/#portainer-notice","text":"{% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %}","title":"Portainer notice"},{"location":"images/docker-scrutiny/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-scrutiny/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-scrutiny/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-scrutiny/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-scrutiny/#support-info","text":"Shell access whilst the container is running: docker exec -it scrutiny /bin/bash To monitor the logs of the container in realtime: docker logs -f scrutiny Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' scrutiny Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/scrutiny:latest","title":"Support Info"},{"location":"images/docker-scrutiny/#versions","text":"13.06.22: - Deprecate container. 19.01.22: - Rebase to Alpine 3.15. 22.11.20: - Added fix for nsswitch.conf to resolve local hosts 17.09.20: - Initial Release.","title":"Versions"},{"location":"images/docker-shout-irc/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. PLEASE MIGRATE TO THELOUNGE linuxserver/thelounge linuxserver/shout-irc Shout-irc is a web IRC client that you host on your own server. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/shout-irc should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=shout-irc \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9000:9000 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/shout-irc docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: shout-irc: image: linuxserver/shout-irc container_name: shout-irc environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 9000:9000 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 9000 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup To log in to the application, browse to https://:9000. To setup user account(s) edit /config/config.json Change the value public: true, to public: false, restart the container and enter the following from the command line of the host: docker exec -it thelounge thelounge add Enter a password when prompted, refresh your browser. You should now be prompted for a password on the webinterface. Support Info Shell access whilst the container is running: docker exec -it shout-irc /bin/bash To monitor the logs of the container in realtime: docker logs -f shout-irc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' shout-irc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/shout-irc Versions 11.06.19: - DEPRECATE IMAGE, USE THELOUNGE. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 25.08.18: - Rebase to alpine 3.8. 13.12.17: - Rebase to alpine 3.7. 27.05.17: - Rebase to alpine 3.6. 09.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 31.08.16: - Rebase to alpine linux, move to lsiocommunity","title":"shout-irc"},{"location":"images/docker-shout-irc/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. PLEASE MIGRATE TO THELOUNGE linuxserver/thelounge","title":"DEPRECATION NOTICE"},{"location":"images/docker-shout-irc/#linuxservershout-irc","text":"Shout-irc is a web IRC client that you host on your own server.","title":"linuxserver/shout-irc"},{"location":"images/docker-shout-irc/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/shout-irc should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-shout-irc/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-shout-irc/#docker","text":"docker create \\ --name=shout-irc \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9000:9000 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/shout-irc","title":"docker"},{"location":"images/docker-shout-irc/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: shout-irc: image: linuxserver/shout-irc container_name: shout-irc environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 9000:9000 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-shout-irc/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-shout-irc/#ports-p","text":"Parameter Function 9000 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-shout-irc/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-shout-irc/#volume-mappings-v","text":"Volume Function /config Configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-shout-irc/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-shout-irc/#application-setup","text":"To log in to the application, browse to https://:9000. To setup user account(s) edit /config/config.json Change the value public: true, to public: false, restart the container and enter the following from the command line of the host: docker exec -it thelounge thelounge add Enter a password when prompted, refresh your browser. You should now be prompted for a password on the webinterface.","title":"Application Setup"},{"location":"images/docker-shout-irc/#support-info","text":"Shell access whilst the container is running: docker exec -it shout-irc /bin/bash To monitor the logs of the container in realtime: docker logs -f shout-irc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' shout-irc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/shout-irc","title":"Support Info"},{"location":"images/docker-shout-irc/#versions","text":"11.06.19: - DEPRECATE IMAGE, USE THELOUNGE. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 25.08.18: - Rebase to alpine 3.8. 13.12.17: - Rebase to alpine 3.7. 27.05.17: - Rebase to alpine 3.6. 09.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 31.08.16: - Rebase to alpine linux, move to lsiocommunity","title":"Versions"},{"location":"images/docker-sickchill/","text":"linuxserver/sickchill Sickchill is an Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sickchill:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Web interface is at :8081 , set paths for downloads, tv-shows to match docker mappings via the webui. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: sickchill: image: lscr.io/linuxserver/sickchill:latest container_name: sickchill environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/data:/downloads - /path/to/data:/tv ports: - 8081:8081 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=sickchill \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v /path/to/data:/config \\ -v /path/to/data:/downloads \\ -v /path/to/data:/tv \\ --restart unless-stopped \\ lscr.io/linuxserver/sickchill:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8081 will map the container's port 8081 to port 8081 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London specify your TimeZone e.g. Europe/London Volume Mappings ( -v ) Volume Function /config this will store config on the docker host /downloads this will store any downloaded data on the docker host /tv this will allow sickchill to view what you already have Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it sickchill /bin/bash To monitor the logs of the container in realtime: docker logs -f sickchill Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sickchill Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sickchill:latest Versions 17.02.22: - Rebase to alpine 3.15. 20.11.21: - Modify binary usage from SickChill.py to SickChill. 14.05.21: - Add linuxserver wheel index. 12.02.21: - Rebasing to alpine 3.13. Add python certifi. 17.09.20: - Update dependencies. 06.09.20: - Switch to python3, install pip package. 22.04.20: - Switch to git clone and using git tags for versioning. 09.01.20: - Remove creating data volumes, fix build args for armhf and aarch64. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 17.04.19: - Adding Nodejs dependancy. 31.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.10.18: - Initial Release.","title":"sickchill"},{"location":"images/docker-sickchill/#linuxserversickchill","text":"Sickchill is an Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.","title":"linuxserver/sickchill"},{"location":"images/docker-sickchill/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sickchill:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-sickchill/#application-setup","text":"Web interface is at :8081 , set paths for downloads, tv-shows to match docker mappings via the webui.","title":"Application Setup"},{"location":"images/docker-sickchill/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-sickchill/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: sickchill: image: lscr.io/linuxserver/sickchill:latest container_name: sickchill environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/data:/downloads - /path/to/data:/tv ports: - 8081:8081 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-sickchill/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=sickchill \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v /path/to/data:/config \\ -v /path/to/data:/downloads \\ -v /path/to/data:/tv \\ --restart unless-stopped \\ lscr.io/linuxserver/sickchill:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-sickchill/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-sickchill/#ports-p","text":"Parameter Function 8081 will map the container's port 8081 to port 8081 on the host","title":"Ports (-p)"},{"location":"images/docker-sickchill/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London specify your TimeZone e.g. Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-sickchill/#volume-mappings-v","text":"Volume Function /config this will store config on the docker host /downloads this will store any downloaded data on the docker host /tv this will allow sickchill to view what you already have","title":"Volume Mappings (-v)"},{"location":"images/docker-sickchill/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-sickchill/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-sickchill/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-sickchill/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-sickchill/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-sickchill/#support-info","text":"Shell access whilst the container is running: docker exec -it sickchill /bin/bash To monitor the logs of the container in realtime: docker logs -f sickchill Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sickchill Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sickchill:latest","title":"Support Info"},{"location":"images/docker-sickchill/#versions","text":"17.02.22: - Rebase to alpine 3.15. 20.11.21: - Modify binary usage from SickChill.py to SickChill. 14.05.21: - Add linuxserver wheel index. 12.02.21: - Rebasing to alpine 3.13. Add python certifi. 17.09.20: - Update dependencies. 06.09.20: - Switch to python3, install pip package. 22.04.20: - Switch to git clone and using git tags for versioning. 09.01.20: - Remove creating data volumes, fix build args for armhf and aarch64. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 17.04.19: - Adding Nodejs dependancy. 31.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.10.18: - Initial Release.","title":"Versions"},{"location":"images/docker-sickgear/","text":"linuxserver/sickgear SickGear provides management of TV shows and/or Anime, it detects new episodes, links downloader apps, and more.. For more information on SickGear visit their website and check it out: https://github.com/SickGear/SickGear Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sickgear:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Setting up the application Access the webui at :8081 , for more information check out SickGear . Migration Non linuxserver.io containers are known to have the following configuration differences and may need SickGear or docker changes to migrate an existing setup The post processing directory which is volume mounted as downloads within this container may be incoming in other versions. The permissions environmental variables which are defined as PGID and PUID within this container may have been APP_UID and APP_UID in other versions. The configuration file directory which is volume mounted as config within this container may be set as the environmetal variable APP_DATA in other versions. The cache directory which is set in config.ini may be configured as a fixed path cache_dir = /data/cache . Symptoms of this issue include port usage problems and a failure to start the web server log entries. Whilst the container is stopped alter this directive to cache_dir = cache which will allow SickGear to look for the folder relative to the volume mounted /config directory. It is recommended that a clean install be completed, rather than a migration, however if migration is necessary: start a new instance of this image compare and align SickGear version numbers bewteen old and new. Ideally they should match but at a minumum the old vesion should be a lower version number to allow SickGear itself to try and migrate stop both containers notice the configuration difference and migrate copies of the old settings into the new app start the new container and test Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: sickgear: image: lscr.io/linuxserver/sickgear:latest container_name: sickgear environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/data:/tv - /path/to/data:/downloads ports: - 8081:8081 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=sickgear \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v /path/to/data:/config \\ -v /path/to/data:/tv \\ -v /path/to/data:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/sickgear:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8081 will map the container's port 8081 to port 8081 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config this will store any uploaded data on the docker host /tv where you store your tv shows /downloads your downloads folder for post processing (must not be download in progress) Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it sickgear /bin/bash To monitor the logs of the container in realtime: docker logs -f sickgear Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sickgear Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sickgear:latest Versions 18.11.22: - Update service file from legacy SickBeard.py to sickgear.py. 10.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 19.09.22: - Rebase to alpine 3.15. Build unrar from source. 31.01.21: - Add unrar. 29.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.01.21: - Rebasing to alpine 3.13. 03.06.20: - Rebasing to alpine 3.12, switch to python3. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 07.11.18: - Pipeline prep 07.07.18: - Initial draft release","title":"sickgear"},{"location":"images/docker-sickgear/#linuxserversickgear","text":"SickGear provides management of TV shows and/or Anime, it detects new episodes, links downloader apps, and more.. For more information on SickGear visit their website and check it out: https://github.com/SickGear/SickGear","title":"linuxserver/sickgear"},{"location":"images/docker-sickgear/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sickgear:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-sickgear/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-sickgear/#setting-up-the-application","text":"Access the webui at :8081 , for more information check out SickGear .","title":"Setting up the application"},{"location":"images/docker-sickgear/#migration","text":"Non linuxserver.io containers are known to have the following configuration differences and may need SickGear or docker changes to migrate an existing setup The post processing directory which is volume mounted as downloads within this container may be incoming in other versions. The permissions environmental variables which are defined as PGID and PUID within this container may have been APP_UID and APP_UID in other versions. The configuration file directory which is volume mounted as config within this container may be set as the environmetal variable APP_DATA in other versions. The cache directory which is set in config.ini may be configured as a fixed path cache_dir = /data/cache . Symptoms of this issue include port usage problems and a failure to start the web server log entries. Whilst the container is stopped alter this directive to cache_dir = cache which will allow SickGear to look for the folder relative to the volume mounted /config directory. It is recommended that a clean install be completed, rather than a migration, however if migration is necessary: start a new instance of this image compare and align SickGear version numbers bewteen old and new. Ideally they should match but at a minumum the old vesion should be a lower version number to allow SickGear itself to try and migrate stop both containers notice the configuration difference and migrate copies of the old settings into the new app start the new container and test","title":"Migration"},{"location":"images/docker-sickgear/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-sickgear/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: sickgear: image: lscr.io/linuxserver/sickgear:latest container_name: sickgear environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/data:/tv - /path/to/data:/downloads ports: - 8081:8081 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-sickgear/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=sickgear \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v /path/to/data:/config \\ -v /path/to/data:/tv \\ -v /path/to/data:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/sickgear:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-sickgear/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-sickgear/#ports-p","text":"Parameter Function 8081 will map the container's port 8081 to port 8081 on the host","title":"Ports (-p)"},{"location":"images/docker-sickgear/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-sickgear/#volume-mappings-v","text":"Volume Function /config this will store any uploaded data on the docker host /tv where you store your tv shows /downloads your downloads folder for post processing (must not be download in progress)","title":"Volume Mappings (-v)"},{"location":"images/docker-sickgear/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-sickgear/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-sickgear/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-sickgear/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-sickgear/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-sickgear/#support-info","text":"Shell access whilst the container is running: docker exec -it sickgear /bin/bash To monitor the logs of the container in realtime: docker logs -f sickgear Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sickgear Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sickgear:latest","title":"Support Info"},{"location":"images/docker-sickgear/#versions","text":"18.11.22: - Update service file from legacy SickBeard.py to sickgear.py. 10.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 19.09.22: - Rebase to alpine 3.15. Build unrar from source. 31.01.21: - Add unrar. 29.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.01.21: - Rebasing to alpine 3.13. 03.06.20: - Rebasing to alpine 3.12, switch to python3. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 07.11.18: - Pipeline prep 07.07.18: - Initial draft release","title":"Versions"},{"location":"images/docker-sickrage/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Please use linuxserver/sickchill instead linuxserver/sickrage Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/sickrage should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=sickrage \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v :/config \\ -v :/downloads \\ -v :/tv \\ --restart unless-stopped \\ linuxserver/sickrage docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: sickrage: image: linuxserver/sickrage container_name: sickrage environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads - :/tv ports: - 8081:8081 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8081 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. /downloads ISOs. /tv TV library directory. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup Web interface is at :8081 , set paths for downloads, tv-shows to match docker mappings via the webui. Support Info Shell access whilst the container is running: docker exec -it sickrage /bin/bash To monitor the logs of the container in realtime: docker logs -f sickrage Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sickrage Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/sickrage Versions 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 09.08.18: - Change repository to Sick-Rage 17.08.18: - Rebase to alpine 3.8. 20.03.18: - In lieu of a definite fix from SR, add nodejs package for use with torrentz and other sources. 12.12.17: - Rebase to alpine 3.7. 06.08.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 07.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 30.12.15: - Build later version of unrar from source, removed uneeded mako package. 20.11.15: - Updated to new repo, by SickRage Team. 15.10.15: - Initial Release.","title":"sickrage"},{"location":"images/docker-sickrage/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. Please use linuxserver/sickchill instead","title":"DEPRECATION NOTICE"},{"location":"images/docker-sickrage/#linuxserversickrage","text":"","title":"linuxserver/sickrage"},{"location":"images/docker-sickrage/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/sickrage should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-sickrage/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-sickrage/#docker","text":"docker create \\ --name=sickrage \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v :/config \\ -v :/downloads \\ -v :/tv \\ --restart unless-stopped \\ linuxserver/sickrage","title":"docker"},{"location":"images/docker-sickrage/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: sickrage: image: linuxserver/sickrage container_name: sickrage environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads - :/tv ports: - 8081:8081 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-sickrage/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-sickrage/#ports-p","text":"Parameter Function 8081 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-sickrage/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-sickrage/#volume-mappings-v","text":"Volume Function /config Configuration files. /downloads ISOs. /tv TV library directory.","title":"Volume Mappings (-v)"},{"location":"images/docker-sickrage/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-sickrage/#application-setup","text":"Web interface is at :8081 , set paths for downloads, tv-shows to match docker mappings via the webui.","title":"Application Setup"},{"location":"images/docker-sickrage/#support-info","text":"Shell access whilst the container is running: docker exec -it sickrage /bin/bash To monitor the logs of the container in realtime: docker logs -f sickrage Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sickrage Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/sickrage","title":"Support Info"},{"location":"images/docker-sickrage/#versions","text":"23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 09.08.18: - Change repository to Sick-Rage 17.08.18: - Rebase to alpine 3.8. 20.03.18: - In lieu of a definite fix from SR, add nodejs package for use with torrentz and other sources. 12.12.17: - Rebase to alpine 3.7. 06.08.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 07.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 30.12.15: - Build later version of unrar from source, removed uneeded mako package. 20.11.15: - Updated to new repo, by SickRage Team. 15.10.15: - Initial Release.","title":"Versions"},{"location":"images/docker-smokeping/","text":"linuxserver/smokeping Smokeping keeps track of your network latency. For a full example of what this application is capable of visit UCDavis . Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/smokeping:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Once running the URL will be http:///smokeping/smokeping.cgi . For example a full URL might look like https://smokeping.yourdomain.com/smokeping/smokeping.cgi . Basics are, edit the Targets file to ping the hosts you're interested in to match the format found there. Wait 10 minutes. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: smokeping: image: lscr.io/linuxserver/smokeping:latest container_name: smokeping environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/smokeping/config:/config - /path/to/smokeping/data:/data ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=smokeping \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v /path/to/smokeping/config:/config \\ -v /path/to/smokeping/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/smokeping:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Allows HTTP access to the internal webserver. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Configure the Targets file here /data Storage location for db and application data (graphs etc) Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it smokeping /bin/bash To monitor the logs of the container in realtime: docker logs -f smokeping Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' smokeping Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/smokeping:latest Versions 12.12.22: - Rebase to Alpine 3.17, migrate to s6v3, switch to nginx and fcgiwrap. 29.03.21: - Dockerfile: Install curl before we call it 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.11.18: - Allow access without /smokeping in URL. 28.04.18: - Rebase to alpine 3.8. 09.04.18: - Add bc package. 08.04.18: - Add tccping script and tcptraceroute package (thanks rcarmo). 13.12.17: - Expose httpd_conf to /config. 13.12.17: - Rebase to alpine 3.7. 24.07.17: - Add :unraid tag for hosts without ipv6. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Rebase to alpine 3.6. 07.05.17: - Expose smokeping.conf in /config/site-confs to allow user customisations 12.04.17: - Fix cropper.js path, thanks nibbledeez. 09.02.17: - Rebase to alpine 3.5. 17.10.16: - Add ttf-dejavu package as per LT forum . 10.09.16: - Add layer badges to README. 05.09.16: - Add curl package. 28.08.16: - Add badges to README. 25.07.16: - Rebase to alpine linux. 23.07.16: - Fix apt script confusion. 29.06.15: - This is the first release, it is mostly stable, but may contain minor defects. (thus a beta tag)","title":"smokeping"},{"location":"images/docker-smokeping/#linuxserversmokeping","text":"Smokeping keeps track of your network latency. For a full example of what this application is capable of visit UCDavis .","title":"linuxserver/smokeping"},{"location":"images/docker-smokeping/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/smokeping:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-smokeping/#application-setup","text":"Once running the URL will be http:///smokeping/smokeping.cgi . For example a full URL might look like https://smokeping.yourdomain.com/smokeping/smokeping.cgi . Basics are, edit the Targets file to ping the hosts you're interested in to match the format found there. Wait 10 minutes.","title":"Application Setup"},{"location":"images/docker-smokeping/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-smokeping/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: smokeping: image: lscr.io/linuxserver/smokeping:latest container_name: smokeping environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/smokeping/config:/config - /path/to/smokeping/data:/data ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-smokeping/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=smokeping \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v /path/to/smokeping/config:/config \\ -v /path/to/smokeping/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/smokeping:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-smokeping/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-smokeping/#ports-p","text":"Parameter Function 80 Allows HTTP access to the internal webserver.","title":"Ports (-p)"},{"location":"images/docker-smokeping/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-smokeping/#volume-mappings-v","text":"Volume Function /config Configure the Targets file here /data Storage location for db and application data (graphs etc)","title":"Volume Mappings (-v)"},{"location":"images/docker-smokeping/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-smokeping/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-smokeping/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-smokeping/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-smokeping/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-smokeping/#support-info","text":"Shell access whilst the container is running: docker exec -it smokeping /bin/bash To monitor the logs of the container in realtime: docker logs -f smokeping Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' smokeping Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/smokeping:latest","title":"Support Info"},{"location":"images/docker-smokeping/#versions","text":"12.12.22: - Rebase to Alpine 3.17, migrate to s6v3, switch to nginx and fcgiwrap. 29.03.21: - Dockerfile: Install curl before we call it 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.11.18: - Allow access without /smokeping in URL. 28.04.18: - Rebase to alpine 3.8. 09.04.18: - Add bc package. 08.04.18: - Add tccping script and tcptraceroute package (thanks rcarmo). 13.12.17: - Expose httpd_conf to /config. 13.12.17: - Rebase to alpine 3.7. 24.07.17: - Add :unraid tag for hosts without ipv6. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Rebase to alpine 3.6. 07.05.17: - Expose smokeping.conf in /config/site-confs to allow user customisations 12.04.17: - Fix cropper.js path, thanks nibbledeez. 09.02.17: - Rebase to alpine 3.5. 17.10.16: - Add ttf-dejavu package as per LT forum . 10.09.16: - Add layer badges to README. 05.09.16: - Add curl package. 28.08.16: - Add badges to README. 25.07.16: - Rebase to alpine linux. 23.07.16: - Fix apt script confusion. 29.06.15: - This is the first release, it is mostly stable, but may contain minor defects. (thus a beta tag)","title":"Versions"},{"location":"images/docker-snapdrop/","text":"linuxserver/snapdrop Snapdrop A local file sharing in your browser. Inspired by Apple's Airdrop. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/snapdrop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Webui is accessible at http://SERVERIP:PORT If you intend to expose Snapdrop to the internet, edit /config/nginx/site-confs/default.conf and uncomment the real_ip settings Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: snapdrop: image: lscr.io/linuxserver/snapdrop:latest container_name: snapdrop environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=snapdrop \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/snapdrop:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http gui 443 https gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Persistent configs and logs. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it snapdrop /bin/bash To monitor the logs of the container in realtime: docker logs -f snapdrop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' snapdrop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/snapdrop:latest Versions 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 09.08.21: - Rebase to Alpine 3.14. Add real_ip block to nginx default site config. 15.09.20: - Initial Release.","title":"snapdrop"},{"location":"images/docker-snapdrop/#linuxserversnapdrop","text":"Snapdrop A local file sharing in your browser. Inspired by Apple's Airdrop.","title":"linuxserver/snapdrop"},{"location":"images/docker-snapdrop/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/snapdrop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-snapdrop/#application-setup","text":"Webui is accessible at http://SERVERIP:PORT If you intend to expose Snapdrop to the internet, edit /config/nginx/site-confs/default.conf and uncomment the real_ip settings","title":"Application Setup"},{"location":"images/docker-snapdrop/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-snapdrop/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: snapdrop: image: lscr.io/linuxserver/snapdrop:latest container_name: snapdrop environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-snapdrop/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=snapdrop \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/snapdrop:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-snapdrop/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-snapdrop/#ports-p","text":"Parameter Function 80 http gui 443 https gui","title":"Ports (-p)"},{"location":"images/docker-snapdrop/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-snapdrop/#volume-mappings-v","text":"Volume Function /config Persistent configs and logs.","title":"Volume Mappings (-v)"},{"location":"images/docker-snapdrop/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-snapdrop/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-snapdrop/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-snapdrop/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-snapdrop/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-snapdrop/#support-info","text":"Shell access whilst the container is running: docker exec -it snapdrop /bin/bash To monitor the logs of the container in realtime: docker logs -f snapdrop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' snapdrop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/snapdrop:latest","title":"Support Info"},{"location":"images/docker-snapdrop/#versions","text":"20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 09.08.21: - Rebase to Alpine 3.14. Add real_ip block to nginx default site config. 15.09.20: - Initial Release.","title":"Versions"},{"location":"images/docker-snipe-it/","text":"linuxserver/snipe-it Snipe-it makes asset management easy. It was built by people solving real-world IT and asset management problems, and a solid UX has always been a top priority. Straightforward design and bulk actions mean getting things done faster. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/snipe-it:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at :8080 , for more information check out Snipe-it . This container requires a MySQL or MariaDB server to connect to, we reccomend ours This container also generates an SSL certificate and stores it in /config/keys/cert.crt /config/keys/cert.key To use your own certificate swap these files with yours. To use SSL forward your port to 443 inside the container IE: -p 443:443 The application accepts a series of environment variables to further customize itself on boot: Parameter Function -e APP_ENV= Default is production but can use testing or develop -e APP_DEBUG= Set to true to see debugging output in the web UI -e APP_LOCALE= Default is en set to the language preferred full list here -e MAIL_PORT_587_TCP_ADDR= SMTP mailserver ip or hostname -e MAIL_PORT_587_TCP_PORT= SMTP mailserver port -e MAIL_ENV_FROM_ADDR= The email address mail should be replied to and listed when sent -e MAIL_ENV_FROM_NAME= The name listed on email sent from the default account on the system -e MAIL_ENV_ENCRYPTION= Mail encryption to use IE tls -e MAIL_ENV_USERNAME= SMTP server login username -e MAIL_ENV_PASSWORD= SMTP server login password PHP customization This image uses our NGINX base image all configuration files for PHP and NGINX are located in /config/php . To overide any defaults please modify /config/php/php-local.ini IE for upload size: upload_max_filesize = 16 post_max_size = 16M Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: snipe-it: image: lscr.io/linuxserver/snipe-it:latest container_name: snipe-it environment: - PUID=1000 - PGID=1000 - APP_URL=http://localhost:8080 - MYSQL_PORT_3306_TCP_ADDR= - MYSQL_PORT_3306_TCP_PORT= - MYSQL_DATABASE= - MYSQL_USER= - MYSQL_PASSWORD=changeme - TZ=US/Pacific volumes: - :/config ports: - 8080:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=snipe-it \\ -e PUID=1000 \\ -e PGID=1000 \\ -e APP_URL=http://localhost:8080 \\ -e MYSQL_PORT_3306_TCP_ADDR= \\ -e MYSQL_PORT_3306_TCP_PORT= \\ -e MYSQL_DATABASE= \\ -e MYSQL_USER= \\ -e MYSQL_PASSWORD=changeme \\ -e TZ=US/Pacific \\ -p 8080:80 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/snipe-it:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Snipe-IT Web UI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation APP_URL=http://localhost:8080 Hostname or IP and port if applicable, be sure to define https/http MYSQL_PORT_3306_TCP_ADDR= Mysql hostname or IP to use MYSQL_PORT_3306_TCP_PORT= Mysql port to use MYSQL_DATABASE= Mysql database to use MYSQL_USER= Mysql user to use MYSQL_PASSWORD=changeme Mysql password to use TZ=US/Pacific Specify a timezone to use EG Europe/London, this is required to run snipe-it Volume Mappings ( -v ) Volume Function /config Contains your config files and data storage for Snipe-IT Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it snipe-it /bin/bash To monitor the logs of the container in realtime: docker logs -f snipe-it Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' snipe-it Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/snipe-it:latest Versions 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 14.05.22: - Add php7-sodium for v6. 12.04.22: - Don't build development elements. 02.03.22: - Rework init logic, do not show default compose. 29.06.21: - Rebasing to alpine 3.14. 30.04.21: - Rebasing to alpine 3.13, add artisan migrate on spinup. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 10.04.19: - Add php deps for V4.7.0, ensure framework directories are available at build time. 10.04.19: - Fix permissions for new bootstrap cache directory. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 31.10.18: - Rebasing to alpine 3.8 05.08.18: - Migration to live build server. 13.06.18: - Initial Release.","title":"snipe-it"},{"location":"images/docker-snipe-it/#linuxserversnipe-it","text":"Snipe-it makes asset management easy. It was built by people solving real-world IT and asset management problems, and a solid UX has always been a top priority. Straightforward design and bulk actions mean getting things done faster.","title":"linuxserver/snipe-it"},{"location":"images/docker-snipe-it/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/snipe-it:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-snipe-it/#application-setup","text":"Access the webui at :8080 , for more information check out Snipe-it . This container requires a MySQL or MariaDB server to connect to, we reccomend ours This container also generates an SSL certificate and stores it in /config/keys/cert.crt /config/keys/cert.key To use your own certificate swap these files with yours. To use SSL forward your port to 443 inside the container IE: -p 443:443 The application accepts a series of environment variables to further customize itself on boot: Parameter Function -e APP_ENV= Default is production but can use testing or develop -e APP_DEBUG= Set to true to see debugging output in the web UI -e APP_LOCALE= Default is en set to the language preferred full list here -e MAIL_PORT_587_TCP_ADDR= SMTP mailserver ip or hostname -e MAIL_PORT_587_TCP_PORT= SMTP mailserver port -e MAIL_ENV_FROM_ADDR= The email address mail should be replied to and listed when sent -e MAIL_ENV_FROM_NAME= The name listed on email sent from the default account on the system -e MAIL_ENV_ENCRYPTION= Mail encryption to use IE tls -e MAIL_ENV_USERNAME= SMTP server login username -e MAIL_ENV_PASSWORD= SMTP server login password","title":"Application Setup"},{"location":"images/docker-snipe-it/#php-customization","text":"This image uses our NGINX base image all configuration files for PHP and NGINX are located in /config/php . To overide any defaults please modify /config/php/php-local.ini IE for upload size: upload_max_filesize = 16 post_max_size = 16M","title":"PHP customization"},{"location":"images/docker-snipe-it/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-snipe-it/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: snipe-it: image: lscr.io/linuxserver/snipe-it:latest container_name: snipe-it environment: - PUID=1000 - PGID=1000 - APP_URL=http://localhost:8080 - MYSQL_PORT_3306_TCP_ADDR= - MYSQL_PORT_3306_TCP_PORT= - MYSQL_DATABASE= - MYSQL_USER= - MYSQL_PASSWORD=changeme - TZ=US/Pacific volumes: - :/config ports: - 8080:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-snipe-it/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=snipe-it \\ -e PUID=1000 \\ -e PGID=1000 \\ -e APP_URL=http://localhost:8080 \\ -e MYSQL_PORT_3306_TCP_ADDR= \\ -e MYSQL_PORT_3306_TCP_PORT= \\ -e MYSQL_DATABASE= \\ -e MYSQL_USER= \\ -e MYSQL_PASSWORD=changeme \\ -e TZ=US/Pacific \\ -p 8080:80 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/snipe-it:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-snipe-it/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-snipe-it/#ports-p","text":"Parameter Function 80 Snipe-IT Web UI","title":"Ports (-p)"},{"location":"images/docker-snipe-it/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation APP_URL=http://localhost:8080 Hostname or IP and port if applicable, be sure to define https/http MYSQL_PORT_3306_TCP_ADDR= Mysql hostname or IP to use MYSQL_PORT_3306_TCP_PORT= Mysql port to use MYSQL_DATABASE= Mysql database to use MYSQL_USER= Mysql user to use MYSQL_PASSWORD=changeme Mysql password to use TZ=US/Pacific Specify a timezone to use EG Europe/London, this is required to run snipe-it","title":"Environment Variables (-e)"},{"location":"images/docker-snipe-it/#volume-mappings-v","text":"Volume Function /config Contains your config files and data storage for Snipe-IT","title":"Volume Mappings (-v)"},{"location":"images/docker-snipe-it/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-snipe-it/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-snipe-it/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-snipe-it/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-snipe-it/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-snipe-it/#support-info","text":"Shell access whilst the container is running: docker exec -it snipe-it /bin/bash To monitor the logs of the container in realtime: docker logs -f snipe-it Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' snipe-it Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/snipe-it:latest","title":"Support Info"},{"location":"images/docker-snipe-it/#versions","text":"20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 14.05.22: - Add php7-sodium for v6. 12.04.22: - Don't build development elements. 02.03.22: - Rework init logic, do not show default compose. 29.06.21: - Rebasing to alpine 3.14. 30.04.21: - Rebasing to alpine 3.13, add artisan migrate on spinup. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 10.04.19: - Add php deps for V4.7.0, ensure framework directories are available at build time. 10.04.19: - Fix permissions for new bootstrap cache directory. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 31.10.18: - Rebasing to alpine 3.8 05.08.18: - Migration to live build server. 13.06.18: - Initial Release.","title":"Versions"},{"location":"images/docker-sonarr/","text":"linuxserver/sonarr Sonarr (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sonarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from Sonarr (currently v3) develop \u2705 Development releases from Sonarr (currently v4) Application Setup Access the webui at :8989 , for more information check out Sonarr . Media folders We have set /tv and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/tvseries:/tv #optional - /path/to/downloadclient-downloads:/downloads #optional ports: - 8989:8989 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=sonarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8989:8989 \\ -v /path/to/data:/config \\ -v /path/to/tvseries:/tv `#optional` \\ -v /path/to/downloadclient-downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/sonarr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8989 The port for the Sonarr webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Sonarr Volume Mappings ( -v ) Volume Function /config Database and sonarr configs /tv Location of TV library on disk (See note in Application setup) /downloads Location of download managers output directory (See note in Application setup) Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it sonarr /bin/bash To monitor the logs of the container in realtime: docker logs -f sonarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sonarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sonarr:latest Versions 24.11.22: - Bump develop branch to v4, rebase to Alpine 3.16. 03.08.22: - Deprecate armhf. 02.08.22: - Add armhf deprecation warning. 28.04.22: - Rebase master branch to mono 6.12 base (focal). 20.02.22: - Rebase develop branch to Alpine, deprecate develop-alpine branch. 28.12.21: - Add develop-alpine branch. 11.05.21: - Make the paths clearer to the user. 10.03.21: - Upgrade to Sonarr v3. Existing users are highly recommended to make a backup prior to update. 18.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 05.04.20: - Move app to /app. 01.08.19: - Rebase to Linuxserver LTS mono version. 13.06.19: - Add env variable for setting umask. 10.05.19: - Rebase to Bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.02.19: - Multi arch images and pipeline build logic 15.12.17: - Fix continuation lines. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 17.04.17: - Switch to using inhouse mono baseimage, adds python also. 14.04.17: - Change to mount /etc/localtime in README, thanks cbgj. 13.04.17: - Switch to official mono repository. 30.09.16: - Fix umask 23.09.16: - Add cd to /opt fixes redirects with althub (issue #25), make XDG config environment variable 15.09.16: - Add libcurl3 package. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 20.07.16: - Rebase to xenial. 31.08.15: - Cleanup, changed sources to fetch binarys from. also a new baseimage.","title":"sonarr"},{"location":"images/docker-sonarr/#linuxserversonarr","text":"Sonarr (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.","title":"linuxserver/sonarr"},{"location":"images/docker-sonarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sonarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-sonarr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from Sonarr (currently v3) develop \u2705 Development releases from Sonarr (currently v4)","title":"Version Tags"},{"location":"images/docker-sonarr/#application-setup","text":"Access the webui at :8989 , for more information check out Sonarr .","title":"Application Setup"},{"location":"images/docker-sonarr/#media-folders","text":"We have set /tv and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Media folders"},{"location":"images/docker-sonarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-sonarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/tvseries:/tv #optional - /path/to/downloadclient-downloads:/downloads #optional ports: - 8989:8989 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-sonarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=sonarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8989:8989 \\ -v /path/to/data:/config \\ -v /path/to/tvseries:/tv `#optional` \\ -v /path/to/downloadclient-downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/sonarr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-sonarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-sonarr/#ports-p","text":"Parameter Function 8989 The port for the Sonarr webinterface","title":"Ports (-p)"},{"location":"images/docker-sonarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Sonarr","title":"Environment Variables (-e)"},{"location":"images/docker-sonarr/#volume-mappings-v","text":"Volume Function /config Database and sonarr configs /tv Location of TV library on disk (See note in Application setup) /downloads Location of download managers output directory (See note in Application setup)","title":"Volume Mappings (-v)"},{"location":"images/docker-sonarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-sonarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-sonarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-sonarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-sonarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-sonarr/#support-info","text":"Shell access whilst the container is running: docker exec -it sonarr /bin/bash To monitor the logs of the container in realtime: docker logs -f sonarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sonarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sonarr:latest","title":"Support Info"},{"location":"images/docker-sonarr/#versions","text":"24.11.22: - Bump develop branch to v4, rebase to Alpine 3.16. 03.08.22: - Deprecate armhf. 02.08.22: - Add armhf deprecation warning. 28.04.22: - Rebase master branch to mono 6.12 base (focal). 20.02.22: - Rebase develop branch to Alpine, deprecate develop-alpine branch. 28.12.21: - Add develop-alpine branch. 11.05.21: - Make the paths clearer to the user. 10.03.21: - Upgrade to Sonarr v3. Existing users are highly recommended to make a backup prior to update. 18.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 05.04.20: - Move app to /app. 01.08.19: - Rebase to Linuxserver LTS mono version. 13.06.19: - Add env variable for setting umask. 10.05.19: - Rebase to Bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.02.19: - Multi arch images and pipeline build logic 15.12.17: - Fix continuation lines. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 17.04.17: - Switch to using inhouse mono baseimage, adds python also. 14.04.17: - Change to mount /etc/localtime in README, thanks cbgj. 13.04.17: - Switch to official mono repository. 30.09.16: - Fix umask 23.09.16: - Add cd to /opt fixes redirects with althub (issue #25), make XDG config environment variable 15.09.16: - Add libcurl3 package. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 20.07.16: - Rebase to xenial. 31.08.15: - Cleanup, changed sources to fetch binarys from. also a new baseimage.","title":"Versions"},{"location":"images/docker-sqlitebrowser/","text":"linuxserver/sqlitebrowser DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sqlitebrowser:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: sqlitebrowser: image: lscr.io/linuxserver/sqlitebrowser:latest container_name: sqlitebrowser security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=sqlitebrowser \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/sqlitebrowser:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Sqlitebrowser desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings and potentially dump files. Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it sqlitebrowser /bin/bash To monitor the logs of the container in realtime: docker logs -f sqlitebrowser Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sqlitebrowser Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sqlitebrowser:latest Versions 23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 16.02.22: - Rebase to Alpine. 20.01.21: - Remove Wireshark reference. 29.07.20: - Initial release.","title":"sqlitebrowser"},{"location":"images/docker-sqlitebrowser/#linuxserversqlitebrowser","text":"DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite.","title":"linuxserver/sqlitebrowser"},{"location":"images/docker-sqlitebrowser/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sqlitebrowser:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-sqlitebrowser/#application-setup","text":"The application can be accessed at: http://yourhost:3000/","title":"Application Setup"},{"location":"images/docker-sqlitebrowser/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-sqlitebrowser/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: sqlitebrowser: image: lscr.io/linuxserver/sqlitebrowser:latest container_name: sqlitebrowser security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-sqlitebrowser/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=sqlitebrowser \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/sqlitebrowser:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-sqlitebrowser/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-sqlitebrowser/#ports-p","text":"Parameter Function 3000 Sqlitebrowser desktop gui.","title":"Ports (-p)"},{"location":"images/docker-sqlitebrowser/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-sqlitebrowser/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings and potentially dump files.","title":"Volume Mappings (-v)"},{"location":"images/docker-sqlitebrowser/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-sqlitebrowser/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-sqlitebrowser/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-sqlitebrowser/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-sqlitebrowser/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-sqlitebrowser/#support-info","text":"Shell access whilst the container is running: docker exec -it sqlitebrowser /bin/bash To monitor the logs of the container in realtime: docker logs -f sqlitebrowser Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sqlitebrowser Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sqlitebrowser:latest","title":"Support Info"},{"location":"images/docker-sqlitebrowser/#versions","text":"23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 16.02.22: - Rebase to Alpine. 20.01.21: - Remove Wireshark reference. 29.07.20: - Initial release.","title":"Versions"},{"location":"images/docker-swag/","text":"linuxserver/swag SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt\u2122) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/swag:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Validation and initial setup Before running this container, make sure that the url and subdomains are properly forwarded to this container's host, and that port 443 (and/or 80) is not being used by another service on the host (NAS gui, another webserver, etc.). If you need a dynamic dns provider, you can use the free provider duckdns.org where the URL will be yoursubdomain.duckdns.org and the SUBDOMAINS can be www,ftp,cloud with http validation, or wildcard with dns validation. You can use our duckdns image to update your IP on duckdns.org. For http validation, port 80 on the internet side of the router should be forwarded to this container's port 80 For dns validation, make sure to enter your credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf Cloudflare provides free accounts for managing dns and is very easy to use with this image. Make sure that it is set up for \"dns only\" instead of \"dns + proxy\" Google dns plugin is meant to be used with \"Google Cloud DNS\", a paid enterprise product, and not for \"Google Domains DNS\" DuckDNS only supoprts two types of DNS validated certificates (not both at the same time): Certs that only cover your main subdomain (ie. yoursubdomain.duckdns.org , leave the SUBDOMAINS variable empty) Certs that cover sub-subdomains of your main subdomain (ie. *.yoursubdomain.duckdns.org , set the SUBDOMAINS variable to wildcard ) --cap-add=NET_ADMIN is required for fail2ban to modify iptables After setup, navigate to https://yourdomain.url to access the default homepage (http access through port 80 is disabled by default, you can enable it by editing the default site config at /config/nginx/site-confs/default.conf ). Certs are checked nightly and if expiration is within 30 days, renewal is attempted. If your cert is about to expire in less than 30 days, check the logs under /config/log/letsencrypt to see why the renewals have been failing. It is recommended to input your e-mail in docker parameters so you receive expiration notices from Let's Encrypt in those circumstances. Security and password protection The container detects changes to url and subdomains, revokes existing certs and generates new ones during start. Per RFC7919 , the container is shipping ffdhe4096 as the dhparams.pem . If you'd like to password protect your sites, you can use htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it swag htpasswd -c /config/nginx/.htpasswd You can add multiple user:pass to .htpasswd . For the first user, use the above command, for others, use the above command without the -c flag, as it will force deletion of the existing .htpasswd and creation of a new one You can also use ldap auth for security and access control. A sample, user configurable ldap.conf is provided, and it requires the separate image linuxserver/ldap-auth to communicate with an ldap server. Site config and reverse proxy The default site config resides at /config/nginx/site-confs/default.conf . Feel free to modify this file, and you can add other conf files to this directory. However, if you delete the default file, a new default will be created on container start. Preset reverse proxy config files are added for popular apps. See the README.md file under /config/nginx/proxy_confs for instructions on how to enable them. The preset confs reside in and get imported from this repo . If you wish to hide your site from search engine crawlers, you may find it useful to add this configuration line to your site config, within the server block, above the line where ssl.conf is included add_header X-Robots-Tag \"noindex, nofollow, nosnippet, noarchive\"; This will ask Google et al not to index and list your site. Be careful with this, as you will eventually be de-listed if you leave this line in on a site you wish to be present on search engines If you wish to redirect http to https, you must expose port 80 Using certs in other containers This container includes auto-generated pfx and private-fullchain-bundle pem certs that are needed by other apps like Emby and Znc. To use these certs in other containers, do either of the following: (Easier) Mount the container's config folder in other containers (ie. -v /path-to-swag-config:/swag-ssl ) and in the other containers, use the cert location /swag-ssl/keys/letsencrypt/ (More secure) Mount the SWAG folder etc that resides under /config in other containers (ie. -v /path-to-swag-config/etc:/swag-ssl ) and in the other containers, use the cert location /swag-ssl/letsencrypt/live// (This is more secure because the first method shares the entire SWAG config folder with other containers, including the www files, whereas the second method only shares the ssl certs) These certs include: cert.pem , chain.pem , fullchain.pem and privkey.pem , which are generated by Certbot and used by nginx and various other apps privkey.pfx , a format supported by Microsoft and commonly used by dotnet apps such as Emby Server (no password) priv-fullchain-bundle.pem , a pem cert that bundles the private key and the fullchain, used by apps like ZNC Using fail2ban This container includes fail2ban set up with 5 jails by default: nginx-http-auth nginx-badbots nginx-botsearch nginx-deny nginx-unauthorized To enable or disable other jails, modify the file /config/fail2ban/jail.local To modify filters and actions, instead of editing the .conf files, create .local files with the same name and edit those because .conf files get overwritten when the actions and filters are updated. .local files will append whatever's in the .conf files (ie. nginx-http-auth.conf --> nginx-http-auth.local ) You can check which jails are active via docker exec -it swag fail2ban-client status You can check the status of a specific jail via docker exec -it swag fail2ban-client status You can unban an IP via docker exec -it swag fail2ban-client set unbanip A list of commands can be found here: https://www.fail2ban.org/wiki/index.php/Commands Updating configs This container creates a number of configs for nginx, proxy samples, etc. Config updates are noted in the changelog but not automatically applied to your files. If you have modified a file with noted changes in the changelog: Keep your existing configs as is (not broken, don't fix) Review our repository commits and apply the new changes yourself Delete the modified config file with listed updates, restart the container, reapply your changes If you have NOT modified a file with noted changes in the changelog: Delete the config file with listed updates, restart the container Proxy sample updates are not listed in the changelog. See the changes here: https://github.com/linuxserver/reverse-proxy-confs/commits/master Proxy sample files WILL be updated, however your renamed (enabled) proxy files will not. You can check the new sample and adjust your active config as needed. Migration from the old linuxserver/letsencrypt image Please follow the instructions on this blog post . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag:latest container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=yourdomain.url - VALIDATION=http - SUBDOMAINS=www, #optional - CERTPROVIDER= #optional - DNSPLUGIN=cloudflare #optional - PROPAGATION= #optional - EMAIL= #optional - ONLY_SUBDOMAINS=false #optional - EXTRA_DOMAINS= #optional - STAGING=false #optional volumes: - /path/to/appdata/config:/config ports: - 443:443 - 80:80 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=swag \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=yourdomain.url \\ -e VALIDATION=http \\ -e SUBDOMAINS=www, `#optional` \\ -e CERTPROVIDER= `#optional` \\ -e DNSPLUGIN=cloudflare `#optional` \\ -e PROPAGATION= `#optional` \\ -e EMAIL= `#optional` \\ -e ONLY_SUBDOMAINS=false `#optional` \\ -e EXTRA_DOMAINS= `#optional` \\ -e STAGING=false `#optional` \\ -p 443:443 \\ -p 80:80 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 443 Https port 80 Http port (required for http validation and http -> https redirect) Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. URL=yourdomain.url Top url you have control over ( customdomain.com if you own it, or customsubdomain.ddnsprovider.com if dynamic dns). VALIDATION=http Certbot validation method to use, options are http or dns ( dns method also requires DNSPLUGIN variable set). SUBDOMAINS=www, Subdomains you'd like the cert to cover (comma separated, no spaces) ie. www,ftp,cloud . For a wildcard cert, set this exactly to wildcard (wildcard cert is available via dns validation only) CERTPROVIDER= Optionally define the cert provider. Set to zerossl for ZeroSSL certs (requires existing ZeroSSL account and the e-mail address entered in EMAIL env var). Otherwise defaults to Let's Encrypt. DNSPLUGIN=cloudflare Required if VALIDATION is set to dns . Options are acmedns , aliyun , azure , cloudflare , cpanel , desec , digitalocean , directadmin , dnsimple , dnsmadeeasy , dnspod , do , domeneshop , duckdns , dynu , gandi , gehirn , godaddy , google , he , hetzner , infomaniak , inwx , ionos , linode , loopia , luadns , netcup , njalla , nsone , ovh , porkbun , rfc2136 , route53 , sakuracloud , standalone , transip , and vultr . Also need to enter the credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf . PROPAGATION= Optionally override (in seconds) the default propagation time for the dns plugins. EMAIL= Optional e-mail address used for cert expiration notifications (Required for ZeroSSL). ONLY_SUBDOMAINS=false If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to true EXTRA_DOMAINS= Additional fully qualified domain names (comma separated, no spaces) ie. extradomain.com,subdomain.anotherdomain.org,*.anotherdomain.org STAGING=false Set to true to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes. Volume Mappings ( -v ) Volume Function /config All the config files including the webroot reside here. Miscellaneous Options Parameter Function Portainer notice {% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %} Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it swag /bin/bash To monitor the logs of the container in realtime: docker logs -f swag Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' swag Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/swag:latest Versions 03.12.22: - Remove defunct cloudxns plugin. 22.11.22: - Pin acme to the same version as certbot. 22.11.22: - Pin certbot to 1.32.0 until plugin compatibility improves. 05.11.22: - Update acmedns plugin handling. 06.10.22: - Switch to certbot-dns-duckdns. Update cpanel and gandi dns plugin handling. Minor adjustments to init logic. 05.10.22: - Use certbot file hooks instead of command line hooks 04.10.22: - Add godaddy and porkbun dns plugins. 03.10.22: - Add default_server back to default site conf's https listen. 22.09.22: - Added support for DO DNS validation. 22.09.22: - Added certbot-dns-acmedns for DNS01 validation. 20.08.22: - Existing users should update: nginx.conf - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 10.08.22: - Added support for Dynu DNS validation. 18.05.22: - Added support for Azure DNS validation. 09.04.22: - Added certbot-dns-loopia for DNS01 validation. 05.04.22: - Added support for standalone DNS validation. 28.03.22: - created a logfile for fail2ban nginx-unauthorized in /etc/cont-init.d/50-config 09.01.22: - Added a fail2ban jail for nginx unauthorized 21.12.21: - Fixed issue with iptables not working as expected 30.11.21: - Move maxmind to a new mod 22.11.21: - Added support for Infomaniak DNS for certificate generation. 20.11.21: - Added support for dnspod validation. 15.11.21: - Added support for deSEC DNS for wildcard certificate generation. 26.10.21: - Existing users should update: proxy.conf - Mitigate https://httpoxy.org/ vulnerabilities. Ref: https://www.nginx.com/blog/mitigating-the-httpoxy-vulnerability-with-nginx#Defeating-the-Attack-using-NGINX-and-NGINX-Plus 23.10.21: - Fix Hurricane Electric (HE) DNS validation. 12.10.21: - Fix deprecated LE root cert check to fix failures when using STAGING=true , and failures in revoking. 06.10.21: - Added support for Hurricane Electric (HE) DNS validation. Added lxml build deps. 01.10.21: - Check if the cert uses the old LE root cert, revoke and regenerate if necessary. Here's more info on LE root cert expiration 19.09.21: - Add an optional header to opt out of Google FLoC in ssl.conf . 17.09.21: - Mark SUBDOMAINS var as optional. 01.08.21: - Add support for ionos dns validation. 15.07.21: - Fix libmaxminddb issue due to upstream change. 07.07.21: - Rebase to alpine 3.14. 24.06.21: - Update default nginx conf folder. 28.05.21: - Existing users should update: authelia-server.conf - Use resolver.conf and patch for CVE-2021-32637 . 20.05.21: - Modify resolver.conf generation to detect and ignore ipv6. 14.05.21: - Existing users should update: nginx.conf, ssl.conf, proxy.conf, and the default site-conf - Rework nginx.conf to be inline with alpine upstream and relocate lines from other files. Use linuxserver.io wheel index for pip packages. Switch to using ffdhe4096 for dhparams.pem per RFC7919 . Added worker_processes.conf , which sets the number of nginx workers, and resolver.conf , which sets the dns resolver. Both conf files are auto-generated only on first start and can be user modified later. 21.04.21: - Existing users should update: authelia-server.conf and authelia-location.conf - Add remote name/email headers and pass http method. 12.04.21: - Add php7-gmp and php7-pecl-mailparse. 12.04.21: - Add support for vultr dns validation. 14.03.21: - Add support for directadmin dns validation. 12.02.21: - Clean up rust/cargo cache, which ballooned the image size in the last couple of builds. 10.02.21: - Fix aliyun, domeneshop, inwx and transip dns confs for existing users. 09.02.21: - Rebasing to alpine 3.13. Add nginx mods brotli and dav-ext. Remove nginx mods lua and lua-upstream (due to regression over the last couple of years). 26.01.21: - Add support for hetzner dns validation. 20.01.21: - Add check for ZeroSSL EAB retrieval. 08.01.21: - Add support for getting certs from ZeroSSL via optional CERTPROVIDER env var. Update aliyun, domeneshop, inwx and transip dns plugins with the new plugin names. Hide donoteditthisfile.conf because users were editing it despite its name. Suppress harmless error when no proxy confs are enabled. 03.01.21: - Existing users should update: /config/nginx/site-confs/default.conf - Add helper pages to aid troubleshooting 10.12.20: - Add support for njalla dns validation 09.12.20: - Check for template/conf updates and notify in the log. Add support for gehirn and sakuracloud dns validation. 01.11.20: - Add support for netcup dns validation 29.10.20: - Existing users should update: ssl.conf - Add frame-ancestors to Content-Security-Policy. 04.10.20: - Existing users should update: nginx.conf, proxy.conf, and ssl.conf - Minor cleanups and reordering. 20.09.20: - Existing users should update: nginx.conf - Added geoip2 configs. Added MAXMINDDB_LICENSE_KEY variable to readme. 08.09.20: - Add php7-xsl. 01.09.20: - Existing users should update: nginx.conf, proxy.conf, and various proxy samples - Global websockets across all configs. 03.08.20: - Initial release.","title":"swag"},{"location":"images/docker-swag/#linuxserverswag","text":"SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt\u2122) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention.","title":"linuxserver/swag"},{"location":"images/docker-swag/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/swag:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-swag/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-swag/#validation-and-initial-setup","text":"Before running this container, make sure that the url and subdomains are properly forwarded to this container's host, and that port 443 (and/or 80) is not being used by another service on the host (NAS gui, another webserver, etc.). If you need a dynamic dns provider, you can use the free provider duckdns.org where the URL will be yoursubdomain.duckdns.org and the SUBDOMAINS can be www,ftp,cloud with http validation, or wildcard with dns validation. You can use our duckdns image to update your IP on duckdns.org. For http validation, port 80 on the internet side of the router should be forwarded to this container's port 80 For dns validation, make sure to enter your credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf Cloudflare provides free accounts for managing dns and is very easy to use with this image. Make sure that it is set up for \"dns only\" instead of \"dns + proxy\" Google dns plugin is meant to be used with \"Google Cloud DNS\", a paid enterprise product, and not for \"Google Domains DNS\" DuckDNS only supoprts two types of DNS validated certificates (not both at the same time): Certs that only cover your main subdomain (ie. yoursubdomain.duckdns.org , leave the SUBDOMAINS variable empty) Certs that cover sub-subdomains of your main subdomain (ie. *.yoursubdomain.duckdns.org , set the SUBDOMAINS variable to wildcard ) --cap-add=NET_ADMIN is required for fail2ban to modify iptables After setup, navigate to https://yourdomain.url to access the default homepage (http access through port 80 is disabled by default, you can enable it by editing the default site config at /config/nginx/site-confs/default.conf ). Certs are checked nightly and if expiration is within 30 days, renewal is attempted. If your cert is about to expire in less than 30 days, check the logs under /config/log/letsencrypt to see why the renewals have been failing. It is recommended to input your e-mail in docker parameters so you receive expiration notices from Let's Encrypt in those circumstances.","title":"Validation and initial setup"},{"location":"images/docker-swag/#security-and-password-protection","text":"The container detects changes to url and subdomains, revokes existing certs and generates new ones during start. Per RFC7919 , the container is shipping ffdhe4096 as the dhparams.pem . If you'd like to password protect your sites, you can use htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it swag htpasswd -c /config/nginx/.htpasswd You can add multiple user:pass to .htpasswd . For the first user, use the above command, for others, use the above command without the -c flag, as it will force deletion of the existing .htpasswd and creation of a new one You can also use ldap auth for security and access control. A sample, user configurable ldap.conf is provided, and it requires the separate image linuxserver/ldap-auth to communicate with an ldap server.","title":"Security and password protection"},{"location":"images/docker-swag/#site-config-and-reverse-proxy","text":"The default site config resides at /config/nginx/site-confs/default.conf . Feel free to modify this file, and you can add other conf files to this directory. However, if you delete the default file, a new default will be created on container start. Preset reverse proxy config files are added for popular apps. See the README.md file under /config/nginx/proxy_confs for instructions on how to enable them. The preset confs reside in and get imported from this repo . If you wish to hide your site from search engine crawlers, you may find it useful to add this configuration line to your site config, within the server block, above the line where ssl.conf is included add_header X-Robots-Tag \"noindex, nofollow, nosnippet, noarchive\"; This will ask Google et al not to index and list your site. Be careful with this, as you will eventually be de-listed if you leave this line in on a site you wish to be present on search engines If you wish to redirect http to https, you must expose port 80","title":"Site config and reverse proxy"},{"location":"images/docker-swag/#using-certs-in-other-containers","text":"This container includes auto-generated pfx and private-fullchain-bundle pem certs that are needed by other apps like Emby and Znc. To use these certs in other containers, do either of the following: (Easier) Mount the container's config folder in other containers (ie. -v /path-to-swag-config:/swag-ssl ) and in the other containers, use the cert location /swag-ssl/keys/letsencrypt/ (More secure) Mount the SWAG folder etc that resides under /config in other containers (ie. -v /path-to-swag-config/etc:/swag-ssl ) and in the other containers, use the cert location /swag-ssl/letsencrypt/live// (This is more secure because the first method shares the entire SWAG config folder with other containers, including the www files, whereas the second method only shares the ssl certs) These certs include: cert.pem , chain.pem , fullchain.pem and privkey.pem , which are generated by Certbot and used by nginx and various other apps privkey.pfx , a format supported by Microsoft and commonly used by dotnet apps such as Emby Server (no password) priv-fullchain-bundle.pem , a pem cert that bundles the private key and the fullchain, used by apps like ZNC","title":"Using certs in other containers"},{"location":"images/docker-swag/#using-fail2ban","text":"This container includes fail2ban set up with 5 jails by default: nginx-http-auth nginx-badbots nginx-botsearch nginx-deny nginx-unauthorized To enable or disable other jails, modify the file /config/fail2ban/jail.local To modify filters and actions, instead of editing the .conf files, create .local files with the same name and edit those because .conf files get overwritten when the actions and filters are updated. .local files will append whatever's in the .conf files (ie. nginx-http-auth.conf --> nginx-http-auth.local ) You can check which jails are active via docker exec -it swag fail2ban-client status You can check the status of a specific jail via docker exec -it swag fail2ban-client status You can unban an IP via docker exec -it swag fail2ban-client set unbanip A list of commands can be found here: https://www.fail2ban.org/wiki/index.php/Commands","title":"Using fail2ban"},{"location":"images/docker-swag/#updating-configs","text":"This container creates a number of configs for nginx, proxy samples, etc. Config updates are noted in the changelog but not automatically applied to your files. If you have modified a file with noted changes in the changelog: Keep your existing configs as is (not broken, don't fix) Review our repository commits and apply the new changes yourself Delete the modified config file with listed updates, restart the container, reapply your changes If you have NOT modified a file with noted changes in the changelog: Delete the config file with listed updates, restart the container Proxy sample updates are not listed in the changelog. See the changes here: https://github.com/linuxserver/reverse-proxy-confs/commits/master Proxy sample files WILL be updated, however your renamed (enabled) proxy files will not. You can check the new sample and adjust your active config as needed.","title":"Updating configs"},{"location":"images/docker-swag/#migration-from-the-old-linuxserverletsencrypt-image","text":"Please follow the instructions on this blog post .","title":"Migration from the old linuxserver/letsencrypt image"},{"location":"images/docker-swag/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-swag/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag:latest container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=yourdomain.url - VALIDATION=http - SUBDOMAINS=www, #optional - CERTPROVIDER= #optional - DNSPLUGIN=cloudflare #optional - PROPAGATION= #optional - EMAIL= #optional - ONLY_SUBDOMAINS=false #optional - EXTRA_DOMAINS= #optional - STAGING=false #optional volumes: - /path/to/appdata/config:/config ports: - 443:443 - 80:80 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-swag/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=swag \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=yourdomain.url \\ -e VALIDATION=http \\ -e SUBDOMAINS=www, `#optional` \\ -e CERTPROVIDER= `#optional` \\ -e DNSPLUGIN=cloudflare `#optional` \\ -e PROPAGATION= `#optional` \\ -e EMAIL= `#optional` \\ -e ONLY_SUBDOMAINS=false `#optional` \\ -e EXTRA_DOMAINS= `#optional` \\ -e STAGING=false `#optional` \\ -p 443:443 \\ -p 80:80 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-swag/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-swag/#ports-p","text":"Parameter Function 443 Https port 80 Http port (required for http validation and http -> https redirect)","title":"Ports (-p)"},{"location":"images/docker-swag/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. URL=yourdomain.url Top url you have control over ( customdomain.com if you own it, or customsubdomain.ddnsprovider.com if dynamic dns). VALIDATION=http Certbot validation method to use, options are http or dns ( dns method also requires DNSPLUGIN variable set). SUBDOMAINS=www, Subdomains you'd like the cert to cover (comma separated, no spaces) ie. www,ftp,cloud . For a wildcard cert, set this exactly to wildcard (wildcard cert is available via dns validation only) CERTPROVIDER= Optionally define the cert provider. Set to zerossl for ZeroSSL certs (requires existing ZeroSSL account and the e-mail address entered in EMAIL env var). Otherwise defaults to Let's Encrypt. DNSPLUGIN=cloudflare Required if VALIDATION is set to dns . Options are acmedns , aliyun , azure , cloudflare , cpanel , desec , digitalocean , directadmin , dnsimple , dnsmadeeasy , dnspod , do , domeneshop , duckdns , dynu , gandi , gehirn , godaddy , google , he , hetzner , infomaniak , inwx , ionos , linode , loopia , luadns , netcup , njalla , nsone , ovh , porkbun , rfc2136 , route53 , sakuracloud , standalone , transip , and vultr . Also need to enter the credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf . PROPAGATION= Optionally override (in seconds) the default propagation time for the dns plugins. EMAIL= Optional e-mail address used for cert expiration notifications (Required for ZeroSSL). ONLY_SUBDOMAINS=false If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to true EXTRA_DOMAINS= Additional fully qualified domain names (comma separated, no spaces) ie. extradomain.com,subdomain.anotherdomain.org,*.anotherdomain.org STAGING=false Set to true to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes.","title":"Environment Variables (-e)"},{"location":"images/docker-swag/#volume-mappings-v","text":"Volume Function /config All the config files including the webroot reside here.","title":"Volume Mappings (-v)"},{"location":"images/docker-swag/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-swag/#portainer-notice","text":"{% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %}","title":"Portainer notice"},{"location":"images/docker-swag/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-swag/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-swag/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-swag/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-swag/#support-info","text":"Shell access whilst the container is running: docker exec -it swag /bin/bash To monitor the logs of the container in realtime: docker logs -f swag Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' swag Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/swag:latest","title":"Support Info"},{"location":"images/docker-swag/#versions","text":"03.12.22: - Remove defunct cloudxns plugin. 22.11.22: - Pin acme to the same version as certbot. 22.11.22: - Pin certbot to 1.32.0 until plugin compatibility improves. 05.11.22: - Update acmedns plugin handling. 06.10.22: - Switch to certbot-dns-duckdns. Update cpanel and gandi dns plugin handling. Minor adjustments to init logic. 05.10.22: - Use certbot file hooks instead of command line hooks 04.10.22: - Add godaddy and porkbun dns plugins. 03.10.22: - Add default_server back to default site conf's https listen. 22.09.22: - Added support for DO DNS validation. 22.09.22: - Added certbot-dns-acmedns for DNS01 validation. 20.08.22: - Existing users should update: nginx.conf - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 10.08.22: - Added support for Dynu DNS validation. 18.05.22: - Added support for Azure DNS validation. 09.04.22: - Added certbot-dns-loopia for DNS01 validation. 05.04.22: - Added support for standalone DNS validation. 28.03.22: - created a logfile for fail2ban nginx-unauthorized in /etc/cont-init.d/50-config 09.01.22: - Added a fail2ban jail for nginx unauthorized 21.12.21: - Fixed issue with iptables not working as expected 30.11.21: - Move maxmind to a new mod 22.11.21: - Added support for Infomaniak DNS for certificate generation. 20.11.21: - Added support for dnspod validation. 15.11.21: - Added support for deSEC DNS for wildcard certificate generation. 26.10.21: - Existing users should update: proxy.conf - Mitigate https://httpoxy.org/ vulnerabilities. Ref: https://www.nginx.com/blog/mitigating-the-httpoxy-vulnerability-with-nginx#Defeating-the-Attack-using-NGINX-and-NGINX-Plus 23.10.21: - Fix Hurricane Electric (HE) DNS validation. 12.10.21: - Fix deprecated LE root cert check to fix failures when using STAGING=true , and failures in revoking. 06.10.21: - Added support for Hurricane Electric (HE) DNS validation. Added lxml build deps. 01.10.21: - Check if the cert uses the old LE root cert, revoke and regenerate if necessary. Here's more info on LE root cert expiration 19.09.21: - Add an optional header to opt out of Google FLoC in ssl.conf . 17.09.21: - Mark SUBDOMAINS var as optional. 01.08.21: - Add support for ionos dns validation. 15.07.21: - Fix libmaxminddb issue due to upstream change. 07.07.21: - Rebase to alpine 3.14. 24.06.21: - Update default nginx conf folder. 28.05.21: - Existing users should update: authelia-server.conf - Use resolver.conf and patch for CVE-2021-32637 . 20.05.21: - Modify resolver.conf generation to detect and ignore ipv6. 14.05.21: - Existing users should update: nginx.conf, ssl.conf, proxy.conf, and the default site-conf - Rework nginx.conf to be inline with alpine upstream and relocate lines from other files. Use linuxserver.io wheel index for pip packages. Switch to using ffdhe4096 for dhparams.pem per RFC7919 . Added worker_processes.conf , which sets the number of nginx workers, and resolver.conf , which sets the dns resolver. Both conf files are auto-generated only on first start and can be user modified later. 21.04.21: - Existing users should update: authelia-server.conf and authelia-location.conf - Add remote name/email headers and pass http method. 12.04.21: - Add php7-gmp and php7-pecl-mailparse. 12.04.21: - Add support for vultr dns validation. 14.03.21: - Add support for directadmin dns validation. 12.02.21: - Clean up rust/cargo cache, which ballooned the image size in the last couple of builds. 10.02.21: - Fix aliyun, domeneshop, inwx and transip dns confs for existing users. 09.02.21: - Rebasing to alpine 3.13. Add nginx mods brotli and dav-ext. Remove nginx mods lua and lua-upstream (due to regression over the last couple of years). 26.01.21: - Add support for hetzner dns validation. 20.01.21: - Add check for ZeroSSL EAB retrieval. 08.01.21: - Add support for getting certs from ZeroSSL via optional CERTPROVIDER env var. Update aliyun, domeneshop, inwx and transip dns plugins with the new plugin names. Hide donoteditthisfile.conf because users were editing it despite its name. Suppress harmless error when no proxy confs are enabled. 03.01.21: - Existing users should update: /config/nginx/site-confs/default.conf - Add helper pages to aid troubleshooting 10.12.20: - Add support for njalla dns validation 09.12.20: - Check for template/conf updates and notify in the log. Add support for gehirn and sakuracloud dns validation. 01.11.20: - Add support for netcup dns validation 29.10.20: - Existing users should update: ssl.conf - Add frame-ancestors to Content-Security-Policy. 04.10.20: - Existing users should update: nginx.conf, proxy.conf, and ssl.conf - Minor cleanups and reordering. 20.09.20: - Existing users should update: nginx.conf - Added geoip2 configs. Added MAXMINDDB_LICENSE_KEY variable to readme. 08.09.20: - Add php7-xsl. 01.09.20: - Existing users should update: nginx.conf, proxy.conf, and various proxy samples - Global websockets across all configs. 03.08.20: - Initial release.","title":"Versions"},{"location":"images/docker-synclounge/","text":"linuxserver/synclounge Synclounge is a third party tool that allows you to watch Plex in sync with your friends/family, wherever you are. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/synclounge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The web app and the server are both accessible at http://SERVERIP:8088 . Note: It is recommended to use http as the external proto with a reverse proxy due to https not working with external plex clients. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: synclounge: image: lscr.io/linuxserver/synclounge:latest container_name: synclounge environment: - TZ=Europe/London - AUTH_LIST=plexuser1,plexuser2,email1,machineid1 #optional - AUTOJOIN_ENABLED=false #optional - AUTOJOIN_ROOM=roomname #optional ports: - 8088:8088 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=synclounge \\ -e TZ=Europe/London \\ -e AUTH_LIST=plexuser1,plexuser2,email1,machineid1 `#optional` \\ -e AUTOJOIN_ENABLED=false `#optional` \\ -e AUTOJOIN_ROOM=roomname `#optional` \\ -p 8088:8088 \\ --restart unless-stopped \\ lscr.io/linuxserver/synclounge:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8088 Web app and server port Environment Variables ( -e ) Env Function TZ=Europe/London Specify a timezone to use EG Europe/London AUTH_LIST=plexuser1,plexuser2,email1,machineid1 If set, only the users defined here and the users of the plex servers defined here will be able to access the server. Use e-mails, plex usernames and/or plex server machine ids, comma separated, no spaces. AUTOJOIN_ENABLED=false DEPRECATED - (Still works but will be removed in the future in favor of the built-in var autojoin__room ) - Set to true to let users autojoin the server and a room (specified by the AUTOJOIN_ROOM var). AUTOJOIN_ROOM=roomname DEPRECATED - (Still works but will be removed in the future in favor of the built-in var autojoin__room ) - Set the room name for auto joining (requires AUTOJOIN_ENABLED set to true ). Volume Mappings ( -v ) Volume Function Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it synclounge /bin/bash To monitor the logs of the container in realtime: docker logs -f synclounge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' synclounge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/synclounge:latest Versions 29.11.22: - Rebase to alpine 3.17, upgrade to s6v3. 19.09.22: - Rebase to alpine 3.15. 12.02.21: - Fix optional dependency builds in aarch64 image. 12.02.21: - Rebasing to alpine 3.13. 28.10.20: - Update to v4. Env vars EXTERNAL_URL , EXTERNAL_SERVER_PORT and AUTOJOIN_PASSWORD are deprecated and no longer have any effect. Env vars AUTOJOIN_ENABLED and AUTOJOIN_ROOM are still working but will be removed in the future in favor of synclounge's built-in var autojoin__room . If you are reverse proxying, do not forget to update your proxy settings ( here and here ) as the server port and addresses are changed. 11.10.20: - Pin builds to upstream commit 6aecc9bd while evaluating the breaking changes upstream. 27.09.20: - Updating the external repo endpoint. 01.06.20: - Rebasing to alpine 3.12. 11.05.20: - Initial Release.","title":"synclounge"},{"location":"images/docker-synclounge/#linuxserversynclounge","text":"Synclounge is a third party tool that allows you to watch Plex in sync with your friends/family, wherever you are.","title":"linuxserver/synclounge"},{"location":"images/docker-synclounge/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/synclounge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-synclounge/#application-setup","text":"The web app and the server are both accessible at http://SERVERIP:8088 . Note: It is recommended to use http as the external proto with a reverse proxy due to https not working with external plex clients.","title":"Application Setup"},{"location":"images/docker-synclounge/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-synclounge/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: synclounge: image: lscr.io/linuxserver/synclounge:latest container_name: synclounge environment: - TZ=Europe/London - AUTH_LIST=plexuser1,plexuser2,email1,machineid1 #optional - AUTOJOIN_ENABLED=false #optional - AUTOJOIN_ROOM=roomname #optional ports: - 8088:8088 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-synclounge/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=synclounge \\ -e TZ=Europe/London \\ -e AUTH_LIST=plexuser1,plexuser2,email1,machineid1 `#optional` \\ -e AUTOJOIN_ENABLED=false `#optional` \\ -e AUTOJOIN_ROOM=roomname `#optional` \\ -p 8088:8088 \\ --restart unless-stopped \\ lscr.io/linuxserver/synclounge:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-synclounge/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-synclounge/#ports-p","text":"Parameter Function 8088 Web app and server port","title":"Ports (-p)"},{"location":"images/docker-synclounge/#environment-variables-e","text":"Env Function TZ=Europe/London Specify a timezone to use EG Europe/London AUTH_LIST=plexuser1,plexuser2,email1,machineid1 If set, only the users defined here and the users of the plex servers defined here will be able to access the server. Use e-mails, plex usernames and/or plex server machine ids, comma separated, no spaces. AUTOJOIN_ENABLED=false DEPRECATED - (Still works but will be removed in the future in favor of the built-in var autojoin__room ) - Set to true to let users autojoin the server and a room (specified by the AUTOJOIN_ROOM var). AUTOJOIN_ROOM=roomname DEPRECATED - (Still works but will be removed in the future in favor of the built-in var autojoin__room ) - Set the room name for auto joining (requires AUTOJOIN_ENABLED set to true ).","title":"Environment Variables (-e)"},{"location":"images/docker-synclounge/#volume-mappings-v","text":"Volume Function","title":"Volume Mappings (-v)"},{"location":"images/docker-synclounge/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-synclounge/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-synclounge/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-synclounge/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-synclounge/#support-info","text":"Shell access whilst the container is running: docker exec -it synclounge /bin/bash To monitor the logs of the container in realtime: docker logs -f synclounge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' synclounge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/synclounge:latest","title":"Support Info"},{"location":"images/docker-synclounge/#versions","text":"29.11.22: - Rebase to alpine 3.17, upgrade to s6v3. 19.09.22: - Rebase to alpine 3.15. 12.02.21: - Fix optional dependency builds in aarch64 image. 12.02.21: - Rebasing to alpine 3.13. 28.10.20: - Update to v4. Env vars EXTERNAL_URL , EXTERNAL_SERVER_PORT and AUTOJOIN_PASSWORD are deprecated and no longer have any effect. Env vars AUTOJOIN_ENABLED and AUTOJOIN_ROOM are still working but will be removed in the future in favor of synclounge's built-in var autojoin__room . If you are reverse proxying, do not forget to update your proxy settings ( here and here ) as the server port and addresses are changed. 11.10.20: - Pin builds to upstream commit 6aecc9bd while evaluating the breaking changes upstream. 27.09.20: - Updating the external repo endpoint. 01.06.20: - Rebasing to alpine 3.12. 11.05.20: - Initial Release.","title":"Versions"},{"location":"images/docker-syncthing/","text":"linuxserver/syncthing Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/syncthing:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Note: The Syncthing devs highly suggest setting a password for this container as it listens on 0.0.0.0. To do this go to Actions -> Settings -> set user/password for the webUI. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: syncthing: image: lscr.io/linuxserver/syncthing:latest container_name: syncthing hostname: syncthing #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/data1:/data1 - /path/to/data2:/data2 ports: - 8384:8384 - 22000:22000/tcp - 22000:22000/udp - 21027:21027/udp restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=syncthing \\ --hostname=syncthing `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8384:8384 \\ -p 22000:22000/tcp \\ -p 22000:22000/udp \\ -p 21027:21027/udp \\ -v /path/to/appdata/config:/config \\ -v /path/to/data1:/data1 \\ -v /path/to/data2:/data2 \\ --restart unless-stopped \\ lscr.io/linuxserver/syncthing:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8384 Application WebUI 22000/tcp Listening port (TCP) 22000/udp Listening port (UDP) 21027/udp Protocol discovery Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. /data1 Data1 /data2 Data2 Miscellaneous Options Parameter Function --hostname= Optionally the hostname can be defined. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it syncthing /bin/bash To monitor the logs of the container in realtime: docker logs -f syncthing Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' syncthing Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/syncthing:latest Versions 17.08.22: - Build on alpine 3.16 for go 1.18). 03.05.22: - Rebase to alpine 3.15 (builds on edge for go 1.18). 05.10.21: - Rebase to alpine 3.14. 12.05.21: - Remove sysctl parameter again 03.05.21: - Raise maximum UDP buffer size. 03.05.21: - Add port mapping for 22000/udp. 29.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.01.21: - Rebasing to alpine 3.13. 15.09.20: - Use go from alpine edge repo to compile. Remove duplicate UMASK env var. Add hostname setting. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 05.03.19: - Update Build process for v1.1.0 release. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 30.07.18: - Rebase to alpine 3.8 and use buildstage. 13.12.17: - Rebase to alpine 3.7. 25.10.17: - Add env for manual setting of umask. 29.07.17: - Simplify build structure as symlinks failing on > 0.14.32 28.05.17: - Rebase to alpine 3.6. 08.02.17: - Rebase to alpine 3.5. 01.11.16: - Switch to compiling latest version from git source. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 11.08.16: - Rebase to alpine linux. 18.12.15: - Initial testing / release (IronicBadger) 24.09.15: - Inital dev complete (Lonix)","title":"syncthing"},{"location":"images/docker-syncthing/#linuxserversyncthing","text":"Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.","title":"linuxserver/syncthing"},{"location":"images/docker-syncthing/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/syncthing:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-syncthing/#application-setup","text":"Note: The Syncthing devs highly suggest setting a password for this container as it listens on 0.0.0.0. To do this go to Actions -> Settings -> set user/password for the webUI.","title":"Application Setup"},{"location":"images/docker-syncthing/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-syncthing/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: syncthing: image: lscr.io/linuxserver/syncthing:latest container_name: syncthing hostname: syncthing #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/data1:/data1 - /path/to/data2:/data2 ports: - 8384:8384 - 22000:22000/tcp - 22000:22000/udp - 21027:21027/udp restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-syncthing/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=syncthing \\ --hostname=syncthing `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8384:8384 \\ -p 22000:22000/tcp \\ -p 22000:22000/udp \\ -p 21027:21027/udp \\ -v /path/to/appdata/config:/config \\ -v /path/to/data1:/data1 \\ -v /path/to/data2:/data2 \\ --restart unless-stopped \\ lscr.io/linuxserver/syncthing:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-syncthing/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-syncthing/#ports-p","text":"Parameter Function 8384 Application WebUI 22000/tcp Listening port (TCP) 22000/udp Listening port (UDP) 21027/udp Protocol discovery","title":"Ports (-p)"},{"location":"images/docker-syncthing/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-syncthing/#volume-mappings-v","text":"Volume Function /config Configuration files. /data1 Data1 /data2 Data2","title":"Volume Mappings (-v)"},{"location":"images/docker-syncthing/#miscellaneous-options","text":"Parameter Function --hostname= Optionally the hostname can be defined.","title":"Miscellaneous Options"},{"location":"images/docker-syncthing/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-syncthing/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-syncthing/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-syncthing/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-syncthing/#support-info","text":"Shell access whilst the container is running: docker exec -it syncthing /bin/bash To monitor the logs of the container in realtime: docker logs -f syncthing Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' syncthing Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/syncthing:latest","title":"Support Info"},{"location":"images/docker-syncthing/#versions","text":"17.08.22: - Build on alpine 3.16 for go 1.18). 03.05.22: - Rebase to alpine 3.15 (builds on edge for go 1.18). 05.10.21: - Rebase to alpine 3.14. 12.05.21: - Remove sysctl parameter again 03.05.21: - Raise maximum UDP buffer size. 03.05.21: - Add port mapping for 22000/udp. 29.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.01.21: - Rebasing to alpine 3.13. 15.09.20: - Use go from alpine edge repo to compile. Remove duplicate UMASK env var. Add hostname setting. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 05.03.19: - Update Build process for v1.1.0 release. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 30.07.18: - Rebase to alpine 3.8 and use buildstage. 13.12.17: - Rebase to alpine 3.7. 25.10.17: - Add env for manual setting of umask. 29.07.17: - Simplify build structure as symlinks failing on > 0.14.32 28.05.17: - Rebase to alpine 3.6. 08.02.17: - Rebase to alpine 3.5. 01.11.16: - Switch to compiling latest version from git source. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 11.08.16: - Rebase to alpine linux. 18.12.15: - Initial testing / release (IronicBadger) 24.09.15: - Inital dev complete (Lonix)","title":"Versions"},{"location":"images/docker-syslog-ng/","text":"linuxserver/syslog-ng syslog-ng allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure and store or route them to log analysis tools. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/syslog-ng:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Edit /config/syslog-ng.conf to configure your logging sources and destinations. Note: As the application does not run as root you cannot listen on ports < 1024. The application pid, control file, etc. are all kept in /config so when using tools such as syslog-ng-ctl you need to specify the path e.g. syslog-ng-ctl reload -c /config/syslog-ng.ctl More info at syslog-ng . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: syslog-ng: image: lscr.io/linuxserver/syslog-ng:latest container_name: syslog-ng environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/log:/var/log #optional ports: - 514:5514/udp - 601:6601/tcp - 6514:6514/tcp restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=syslog-ng \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 514:5514/udp \\ -p 601:6601/tcp \\ -p 6514:6514/tcp \\ -v /path/to/config:/config \\ -v /path/to/log:/var/log `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/syslog-ng:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5514/udp Syslog UDP 6601/tcp Syslog TCP 6514/tcp Syslog TLS Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Stores config and application files /var/log Stores logs collected by the syslog-ng service Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it syslog-ng /bin/bash To monitor the logs of the container in realtime: docker logs -f syslog-ng Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' syslog-ng Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/syslog-ng:latest Versions 01.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 18.12.21: - Rebase to Alpine 3.15. 01.07.21: - Rebase to Alpine 3.14. 26.05.21: - Initial release.","title":"syslog-ng"},{"location":"images/docker-syslog-ng/#linuxserversyslog-ng","text":"syslog-ng allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure and store or route them to log analysis tools.","title":"linuxserver/syslog-ng"},{"location":"images/docker-syslog-ng/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/syslog-ng:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-syslog-ng/#application-setup","text":"Edit /config/syslog-ng.conf to configure your logging sources and destinations. Note: As the application does not run as root you cannot listen on ports < 1024. The application pid, control file, etc. are all kept in /config so when using tools such as syslog-ng-ctl you need to specify the path e.g. syslog-ng-ctl reload -c /config/syslog-ng.ctl More info at syslog-ng .","title":"Application Setup"},{"location":"images/docker-syslog-ng/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-syslog-ng/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: syslog-ng: image: lscr.io/linuxserver/syslog-ng:latest container_name: syslog-ng environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/log:/var/log #optional ports: - 514:5514/udp - 601:6601/tcp - 6514:6514/tcp restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-syslog-ng/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=syslog-ng \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 514:5514/udp \\ -p 601:6601/tcp \\ -p 6514:6514/tcp \\ -v /path/to/config:/config \\ -v /path/to/log:/var/log `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/syslog-ng:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-syslog-ng/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-syslog-ng/#ports-p","text":"Parameter Function 5514/udp Syslog UDP 6601/tcp Syslog TCP 6514/tcp Syslog TLS","title":"Ports (-p)"},{"location":"images/docker-syslog-ng/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-syslog-ng/#volume-mappings-v","text":"Volume Function /config Stores config and application files /var/log Stores logs collected by the syslog-ng service","title":"Volume Mappings (-v)"},{"location":"images/docker-syslog-ng/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-syslog-ng/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-syslog-ng/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-syslog-ng/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-syslog-ng/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-syslog-ng/#support-info","text":"Shell access whilst the container is running: docker exec -it syslog-ng /bin/bash To monitor the logs of the container in realtime: docker logs -f syslog-ng Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' syslog-ng Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/syslog-ng:latest","title":"Support Info"},{"location":"images/docker-syslog-ng/#versions","text":"01.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 18.12.21: - Rebase to Alpine 3.15. 01.07.21: - Rebase to Alpine 3.14. 26.05.21: - Initial release.","title":"Versions"},{"location":"images/docker-taisun/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. This project is no longer maintained for VDI please use: https://github.com/linuxserver/docker-webtop For web based docker management try: https://github.com/SelfhostedPro/Yacht https://www.portainer.io/ linuxserver/taisun Taisun is an application for a Docker enabled device with an emphasis on providing a web based interface for managing a single server. Taisun allows you to: Deploy and manage web based virtual desktops. Deploy Taisun specific stacks of applications Browse available images on popular Docker repositories Import a Docker project from any git repository and start developing on your choice of web based IDE or full Linux desktop Spinup a developer container based on popular frameworks and work from a web based IDE Single click remote server access to Taisun and your Docker applications Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/taisun should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Application Setup The webui is at http://localhost:3000, for more information on usage see here . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2\" services: taisun: image: linuxserver/taisun container_name: taisun network_mode: bridge volumes: - /var/run/docker.sock:/var/run/docker.sock ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=taisun \\ -p 3000:3000 \\ -v /var/run/docker.sock:/var/run/docker.sock \\ --restart unless-stopped \\ lscr.io/linuxserver/taisun Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Taisun WebUI. Environment Variables ( -e ) Env Function Volume Mappings ( -v ) Volume Function /var/run/docker.sock Docker Socket on the system Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it taisun /bin/bash To monitor the logs of the container in realtime: docker logs -f taisun Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' taisun Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/taisun Versions 02.02.22: - Deprecate. 23.01.21: - Rebasing to alpine 3.13. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 20.07.19: - Build compose bins from source, use minimal docker install from repos. 28.06.19: - Rebasing to alpine 3.10. 30.03.19: - Updating docker-compose build dependancies for musl libc. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 13.02.19: - Initial release.","title":"taisun"},{"location":"images/docker-taisun/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. This project is no longer maintained for VDI please use: https://github.com/linuxserver/docker-webtop For web based docker management try: https://github.com/SelfhostedPro/Yacht https://www.portainer.io/","title":"DEPRECATION NOTICE"},{"location":"images/docker-taisun/#linuxservertaisun","text":"Taisun is an application for a Docker enabled device with an emphasis on providing a web based interface for managing a single server. Taisun allows you to: Deploy and manage web based virtual desktops. Deploy Taisun specific stacks of applications Browse available images on popular Docker repositories Import a Docker project from any git repository and start developing on your choice of web based IDE or full Linux desktop Spinup a developer container based on popular frameworks and work from a web based IDE Single click remote server access to Taisun and your Docker applications","title":"linuxserver/taisun"},{"location":"images/docker-taisun/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/taisun should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-taisun/#application-setup","text":"The webui is at http://localhost:3000, for more information on usage see here .","title":"Application Setup"},{"location":"images/docker-taisun/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-taisun/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2\" services: taisun: image: linuxserver/taisun container_name: taisun network_mode: bridge volumes: - /var/run/docker.sock:/var/run/docker.sock ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-taisun/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=taisun \\ -p 3000:3000 \\ -v /var/run/docker.sock:/var/run/docker.sock \\ --restart unless-stopped \\ lscr.io/linuxserver/taisun","title":"docker cli (click here for more info)"},{"location":"images/docker-taisun/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-taisun/#ports-p","text":"Parameter Function 3000 Taisun WebUI.","title":"Ports (-p)"},{"location":"images/docker-taisun/#environment-variables-e","text":"Env Function","title":"Environment Variables (-e)"},{"location":"images/docker-taisun/#volume-mappings-v","text":"Volume Function /var/run/docker.sock Docker Socket on the system","title":"Volume Mappings (-v)"},{"location":"images/docker-taisun/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-taisun/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-taisun/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-taisun/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-taisun/#support-info","text":"Shell access whilst the container is running: docker exec -it taisun /bin/bash To monitor the logs of the container in realtime: docker logs -f taisun Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' taisun Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/taisun","title":"Support Info"},{"location":"images/docker-taisun/#versions","text":"02.02.22: - Deprecate. 23.01.21: - Rebasing to alpine 3.13. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 20.07.19: - Build compose bins from source, use minimal docker install from repos. 28.06.19: - Rebasing to alpine 3.10. 30.03.19: - Updating docker-compose build dependancies for musl libc. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 13.02.19: - Initial release.","title":"Versions"},{"location":"images/docker-tautulli/","text":"linuxserver/tautulli Tautulli is a python based web application for monitoring, analytics and notifications for Plex Media Server. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/tautulli:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Tautulli releases develop \u2705 Built at head of Tautulli nightly branch Application Setup Access the webui at :8181 , for more information check out Tautulli . To use the build-in Plex LogViewer you have to add a volume, preferably ReadOnly. Then in tautulli gui settings, under Plex Media Server , turn on Show Advanced and set the Logs Folder to the folder you mapped. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: tautulli: image: lscr.io/linuxserver/tautulli:latest container_name: tautulli environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 8181:8181 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=tautulli \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8181:8181 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/tautulli:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8181 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Contains tautulli config and database. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it tautulli /bin/bash To monitor the logs of the container in realtime: docker logs -f tautulli Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' tautulli Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/tautulli:latest Versions 04.10.22: - Rebase master branch to Alpine 3.16, migrate to s6v3. 10.01.22: - Rebase to Alpine 3.15. 11.07.21: - Add curl package. 23.01.21: - Rebasing to alpine 3.13. 11.07.20: - Add py3-openssl. 05.06.20: - Rebasing to alpine 3.12. Rework to python3. 12.04.20: - Added mock from pip and donate links. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 26.01.19: - Add pipeline logic and multi arch. 23.10.18: - Update plex logs info in readm. 16.08.18: - Rebase to alpine 3.8. 10.03.18: - Rebrand to tautulli. 12.12.17: - Rebase to alpine 3.7. 21.07.17: - Internal git pull instead of at runtime. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 25.05.17: - Rebase to alpine 3.6. 20.04.17: - Add pycryptodomex pip package. 07.02.17: - Rebase to alpine 3.5. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 16.07.15: - Inital Release.","title":"tautulli"},{"location":"images/docker-tautulli/#linuxservertautulli","text":"Tautulli is a python based web application for monitoring, analytics and notifications for Plex Media Server.","title":"linuxserver/tautulli"},{"location":"images/docker-tautulli/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/tautulli:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-tautulli/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Tautulli releases develop \u2705 Built at head of Tautulli nightly branch","title":"Version Tags"},{"location":"images/docker-tautulli/#application-setup","text":"Access the webui at :8181 , for more information check out Tautulli . To use the build-in Plex LogViewer you have to add a volume, preferably ReadOnly. Then in tautulli gui settings, under Plex Media Server , turn on Show Advanced and set the Logs Folder to the folder you mapped.","title":"Application Setup"},{"location":"images/docker-tautulli/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-tautulli/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: tautulli: image: lscr.io/linuxserver/tautulli:latest container_name: tautulli environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 8181:8181 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-tautulli/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=tautulli \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8181:8181 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/tautulli:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-tautulli/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-tautulli/#ports-p","text":"Parameter Function 8181 WebUI","title":"Ports (-p)"},{"location":"images/docker-tautulli/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-tautulli/#volume-mappings-v","text":"Volume Function /config Contains tautulli config and database.","title":"Volume Mappings (-v)"},{"location":"images/docker-tautulli/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-tautulli/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-tautulli/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-tautulli/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-tautulli/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-tautulli/#support-info","text":"Shell access whilst the container is running: docker exec -it tautulli /bin/bash To monitor the logs of the container in realtime: docker logs -f tautulli Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' tautulli Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/tautulli:latest","title":"Support Info"},{"location":"images/docker-tautulli/#versions","text":"04.10.22: - Rebase master branch to Alpine 3.16, migrate to s6v3. 10.01.22: - Rebase to Alpine 3.15. 11.07.21: - Add curl package. 23.01.21: - Rebasing to alpine 3.13. 11.07.20: - Add py3-openssl. 05.06.20: - Rebasing to alpine 3.12. Rework to python3. 12.04.20: - Added mock from pip and donate links. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 26.01.19: - Add pipeline logic and multi arch. 23.10.18: - Update plex logs info in readm. 16.08.18: - Rebase to alpine 3.8. 10.03.18: - Rebrand to tautulli. 12.12.17: - Rebase to alpine 3.7. 21.07.17: - Internal git pull instead of at runtime. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 25.05.17: - Rebase to alpine 3.6. 20.04.17: - Add pycryptodomex pip package. 07.02.17: - Rebase to alpine 3.5. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 16.07.15: - Inital Release.","title":"Versions"},{"location":"images/docker-tester/","text":"linuxserver/tester This internal tool is used as a desktop sandbox in our CI process to grab a screenshot of a hopefully functional endpoint Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/tester:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u274c armhf \u274c Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: tester: image: lscr.io/linuxserver/tester:latest container_name: tester environment: - URL=http://google.com ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=tester \\ -e URL=http://google.com \\ -p 3000:3000 \\ --restart unless-stopped \\ lscr.io/linuxserver/tester:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 WebUI Environment Variables ( -e ) Env Function URL=http://google.com Specify an endpoint, the container will automatically determine the correct protocol and program to use Volume Mappings ( -v ) Volume Function Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it tester /bin/bash To monitor the logs of the container in realtime: docker logs -f tester Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' tester Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/tester:latest Versions 16.11.22: - Revert the rdesktop baseimage's sesman change that introduced a delay. 24.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 18.04.20: - Initial release.","title":"tester"},{"location":"images/docker-tester/#linuxservertester","text":"This internal tool is used as a desktop sandbox in our CI process to grab a screenshot of a hopefully functional endpoint","title":"linuxserver/tester"},{"location":"images/docker-tester/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/tester:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u274c armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-tester/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-tester/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: tester: image: lscr.io/linuxserver/tester:latest container_name: tester environment: - URL=http://google.com ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-tester/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=tester \\ -e URL=http://google.com \\ -p 3000:3000 \\ --restart unless-stopped \\ lscr.io/linuxserver/tester:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-tester/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-tester/#ports-p","text":"Parameter Function 3000 WebUI","title":"Ports (-p)"},{"location":"images/docker-tester/#environment-variables-e","text":"Env Function URL=http://google.com Specify an endpoint, the container will automatically determine the correct protocol and program to use","title":"Environment Variables (-e)"},{"location":"images/docker-tester/#volume-mappings-v","text":"Volume Function","title":"Volume Mappings (-v)"},{"location":"images/docker-tester/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-tester/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-tester/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-tester/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-tester/#support-info","text":"Shell access whilst the container is running: docker exec -it tester /bin/bash To monitor the logs of the container in realtime: docker logs -f tester Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' tester Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/tester:latest","title":"Support Info"},{"location":"images/docker-tester/#versions","text":"16.11.22: - Revert the rdesktop baseimage's sesman change that introduced a delay. 24.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 18.04.20: - Initial release.","title":"Versions"},{"location":"images/docker-thelounge/","text":"linuxserver/thelounge Thelounge (a fork of shoutIRC) is a web IRC client that you host on your own server. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/thelounge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases. next \u2705 Next Pre-Releases. nightly \u2705 Nightly images from commits in master. Application Setup When the application first runs, it will populate its /config Stop the container Now from the host, edit /config/config.js , wherever you've mapped it In most cases you want the value public: false to allow named users only Setting the two prefetch values to true improves usability, but uses more storage Once you have the configuration you want, save it and start the container again For each user, run the command docker exec -it thelounge s6-setuidgid abc thelounge add You will be prompted to enter a password that will not be echoed. Saving logs to disk is the default, this consumes more space but allows scrollback. To log in to the application, browse to http://:9000 You should now be prompted for a username and password on the webinterface. Once logged in, you can add an IRC network. Some defaults are preset for Freenode Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: thelounge: image: lscr.io/linuxserver/thelounge:latest container_name: thelounge environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 9000:9000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=thelounge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9000:9000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/thelounge:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 9000 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it thelounge /bin/bash To monitor the logs of the container in realtime: docker logs -f thelounge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' thelounge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/thelounge:latest Versions 24.10.22: - Fix sqlite3 build. 12.04.22: - Install from source using yarn. 11.04.22: - Rebasing to alpine 3.15 and switching from python2-dev to python3-dev for building node sqlite on arm. 23.01.21: - Rebasing to alpine 3.13. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 15.05.19: - Update Arm variant images to build sqlite3 module. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 25.08.18: - Use global install, simplifies adding users. 20.08.18: - Rebase to alpine 3.8. 06.01.18: - Rebase to alpine 3.7. 26.05.17: - Rebase to alpine 3.6. 06.02.17: - Rebase to alpine 3.5. 14.10.16: - Bump to pickup 2.10 release. 14.10.16: - Add version layer information. 11.09.16: - Add layer badges to README. 31.08.16: - Initial Release.","title":"thelounge"},{"location":"images/docker-thelounge/#linuxserverthelounge","text":"Thelounge (a fork of shoutIRC) is a web IRC client that you host on your own server.","title":"linuxserver/thelounge"},{"location":"images/docker-thelounge/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/thelounge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-thelounge/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases. next \u2705 Next Pre-Releases. nightly \u2705 Nightly images from commits in master.","title":"Version Tags"},{"location":"images/docker-thelounge/#application-setup","text":"When the application first runs, it will populate its /config Stop the container Now from the host, edit /config/config.js , wherever you've mapped it In most cases you want the value public: false to allow named users only Setting the two prefetch values to true improves usability, but uses more storage Once you have the configuration you want, save it and start the container again For each user, run the command docker exec -it thelounge s6-setuidgid abc thelounge add You will be prompted to enter a password that will not be echoed. Saving logs to disk is the default, this consumes more space but allows scrollback. To log in to the application, browse to http://:9000 You should now be prompted for a username and password on the webinterface. Once logged in, you can add an IRC network. Some defaults are preset for Freenode","title":"Application Setup"},{"location":"images/docker-thelounge/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-thelounge/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: thelounge: image: lscr.io/linuxserver/thelounge:latest container_name: thelounge environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 9000:9000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-thelounge/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=thelounge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9000:9000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/thelounge:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-thelounge/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-thelounge/#ports-p","text":"Parameter Function 9000 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-thelounge/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-thelounge/#volume-mappings-v","text":"Volume Function /config Configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-thelounge/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-thelounge/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-thelounge/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-thelounge/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-thelounge/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-thelounge/#support-info","text":"Shell access whilst the container is running: docker exec -it thelounge /bin/bash To monitor the logs of the container in realtime: docker logs -f thelounge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' thelounge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/thelounge:latest","title":"Support Info"},{"location":"images/docker-thelounge/#versions","text":"24.10.22: - Fix sqlite3 build. 12.04.22: - Install from source using yarn. 11.04.22: - Rebasing to alpine 3.15 and switching from python2-dev to python3-dev for building node sqlite on arm. 23.01.21: - Rebasing to alpine 3.13. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 15.05.19: - Update Arm variant images to build sqlite3 module. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 25.08.18: - Use global install, simplifies adding users. 20.08.18: - Rebase to alpine 3.8. 06.01.18: - Rebase to alpine 3.7. 26.05.17: - Rebase to alpine 3.6. 06.02.17: - Rebase to alpine 3.5. 14.10.16: - Bump to pickup 2.10 release. 14.10.16: - Add version layer information. 11.09.16: - Add layer badges to README. 31.08.16: - Initial Release.","title":"Versions"},{"location":"images/docker-transmission/","text":"linuxserver/transmission Transmission is designed for easy, powerful use. Transmission has the features you want from a BitTorrent client: encryption, a web interface, peer exchange, magnet links, DHT, \u00b5TP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/transmission:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Webui is on port 9091, the settings.json file in /config has extra settings not available in the webui. Stop the container before editing it or any changes won't be saved. If you choose to use transmission-web-control as your default UI, just note that the origional Web UI will not be available to you despite the button being present. Securing the webui with a username/password. Use the USER and PASS variables in docker run/create/compose to set authentication. Do not manually edit the settings.json to input user/pass, otherwise transmission cannot be stopped cleanly by the s6 supervisor. Updating Blocklists Automatically This requires \"blocklist-enabled\": true, to be set. By setting this to true, it is assumed you have also populated blocklist-url with a valid block list. The automatic update is a shell script that downloads a blocklist from the url stored in the settings.json, gunzips it, and restarts the transmission daemon. The automatic update will run once a day at 3am local server time. Using whitelist Use WHITELIST to enable a list of ip as whitelist. This enable support for rpc-whitelist . When WHITELIST is empty support for whitelist is disabled. Use HOST_WHITELIST to enable an list of dns names as host-whitelist. This enable support for rpc-host-whitelist . When HOST_WHITELIST is empty support for host-whitelist is disabled. Use alternative Transmission torrent ports Use PEERPORT to specify the port(s) Transmission should listen on. This disables random port selection. This should be the same as the port mapped in your docker configuration. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: transmission: image: lscr.io/linuxserver/transmission:latest container_name: transmission environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - TRANSMISSION_WEB_HOME=/combustion-release/ #optional - USER=username #optional - PASS=password #optional - WHITELIST=iplist #optional - PEERPORT=peerport #optional - HOST_WHITELIST=dnsname list #optional volumes: - /path/to/data:/config - /path/to/downloads:/downloads - /path/to/watch/folder:/watch ports: - 9091:9091 - 51413:51413 - 51413:51413/udp restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=transmission \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e TRANSMISSION_WEB_HOME=/combustion-release/ `#optional` \\ -e USER=username `#optional` \\ -e PASS=password `#optional` \\ -e WHITELIST=iplist `#optional` \\ -e PEERPORT=peerport `#optional` \\ -e HOST_WHITELIST=dnsname list `#optional` \\ -p 9091:9091 \\ -p 51413:51413 \\ -p 51413:51413/udp \\ -v /path/to/data:/config \\ -v /path/to/downloads:/downloads \\ -v /path/to/watch/folder:/watch \\ --restart unless-stopped \\ lscr.io/linuxserver/transmission:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 9091 WebUI 51413 Torrent Port TCP 51413/udp Torrent Port UDP Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. TRANSMISSION_WEB_HOME=/combustion-release/ Specify an alternative UI options are /combustion-release/ , /transmission-web-control/ , /kettu/ , /flood-for-transmission/ , and /transmissionic/ . USER=username Specify an optional username for the interface PASS=password Specify an optional password for the interface WHITELIST=iplist Specify an optional list of comma separated ip whitelist. Fills rpc-whitelist setting. PEERPORT=peerport Specify an optional port for torrent TCP/UDP connections. Fills peer-port setting. HOST_WHITELIST=dnsname list Specify an optional list of comma separated dns name whitelist. Fills rpc-host-whitelist setting. Volume Mappings ( -v ) Volume Function /config Where transmission should store config files and logs. /downloads Local path for downloads. /watch Watch folder for torrent files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it transmission /bin/bash To monitor the logs of the container in realtime: docker logs -f transmission Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' transmission Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/transmission:latest Versions 02.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 12.08.22: - Bump unrar to 6.1.7. 03.04.22: - Add Transmissionic as a UI option. 21.02.22: - Build unrar from source, rebase to Alpine 3.15, add symlinks neeeded for TWC. Credit @alexbelgium 09.07.21: - Wait for the transmission-daemon termination after a caught sigterm. 06.03.21: - Add Flood for Transmission as a UI option. 23.01.21: - Rebasing to alpine 3.13. 02.11.20: - Add ca-certificates package to allow connecting to https trackers. 02.06.20: - Rebase to alpine 3.12, update to transmission 3.0, remove python2, add python3. 11.05.20: - Remove unnecessary chmod (remnant of previous change). 28.04.20: - Use transmission-remote to update blocklist. 30.03.20: - Internalize blocklist-update.sh. 29.03.20: - Update auth info in readme. 19.12.19: - Rebasing to alpine 3.11. 04.10.19: - Update package label. 21.08.19: - Add optional user/pass environment variables, fix transmission shut down if user/pass are set. 19.07.19: - Send SIGTERM in blocklist update to properly close pid. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebase to Alpine 3.9, add themes to baseimage, add python and findutils. 22.02.19: - Catch term and clean exit. 07.02.19: - Add pipeline logic and multi arch. 15.08.18: - Rebase to alpine linux 3.8. 12.02.18: - Pull transmission from edge repo. 10.01.18: - Rebase to alpine linux 3.7. 25.07.17: - Add rsync package. 27.05.17: - Rebase to alpine linux 3.6. 06.02.17: - Rebase to alpine linux 3.5. 15.01.17: - Add p7zip, tar, unrar, and unzip packages. 16.10.16: - Blocklist autoupdate with optional authentication. 14.10.16: - Add version layer informationE. 23.09.16: - Add information about securing the webui to README. 21.09.16: - Add curl package. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 09.08.16: - Rebase to alpine linux. 06.12.15: - Separate mapping for watch folder. 16.11.15: - Initial Release.","title":"transmission"},{"location":"images/docker-transmission/#linuxservertransmission","text":"Transmission is designed for easy, powerful use. Transmission has the features you want from a BitTorrent client: encryption, a web interface, peer exchange, magnet links, DHT, \u00b5TP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more.","title":"linuxserver/transmission"},{"location":"images/docker-transmission/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/transmission:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-transmission/#application-setup","text":"Webui is on port 9091, the settings.json file in /config has extra settings not available in the webui. Stop the container before editing it or any changes won't be saved. If you choose to use transmission-web-control as your default UI, just note that the origional Web UI will not be available to you despite the button being present.","title":"Application Setup"},{"location":"images/docker-transmission/#securing-the-webui-with-a-usernamepassword","text":"Use the USER and PASS variables in docker run/create/compose to set authentication. Do not manually edit the settings.json to input user/pass, otherwise transmission cannot be stopped cleanly by the s6 supervisor.","title":"Securing the webui with a username/password."},{"location":"images/docker-transmission/#updating-blocklists-automatically","text":"This requires \"blocklist-enabled\": true, to be set. By setting this to true, it is assumed you have also populated blocklist-url with a valid block list. The automatic update is a shell script that downloads a blocklist from the url stored in the settings.json, gunzips it, and restarts the transmission daemon. The automatic update will run once a day at 3am local server time.","title":"Updating Blocklists Automatically"},{"location":"images/docker-transmission/#using-whitelist","text":"Use WHITELIST to enable a list of ip as whitelist. This enable support for rpc-whitelist . When WHITELIST is empty support for whitelist is disabled. Use HOST_WHITELIST to enable an list of dns names as host-whitelist. This enable support for rpc-host-whitelist . When HOST_WHITELIST is empty support for host-whitelist is disabled.","title":"Using whitelist"},{"location":"images/docker-transmission/#use-alternative-transmission-torrent-ports","text":"Use PEERPORT to specify the port(s) Transmission should listen on. This disables random port selection. This should be the same as the port mapped in your docker configuration.","title":"Use alternative Transmission torrent ports"},{"location":"images/docker-transmission/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-transmission/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: transmission: image: lscr.io/linuxserver/transmission:latest container_name: transmission environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - TRANSMISSION_WEB_HOME=/combustion-release/ #optional - USER=username #optional - PASS=password #optional - WHITELIST=iplist #optional - PEERPORT=peerport #optional - HOST_WHITELIST=dnsname list #optional volumes: - /path/to/data:/config - /path/to/downloads:/downloads - /path/to/watch/folder:/watch ports: - 9091:9091 - 51413:51413 - 51413:51413/udp restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-transmission/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=transmission \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e TRANSMISSION_WEB_HOME=/combustion-release/ `#optional` \\ -e USER=username `#optional` \\ -e PASS=password `#optional` \\ -e WHITELIST=iplist `#optional` \\ -e PEERPORT=peerport `#optional` \\ -e HOST_WHITELIST=dnsname list `#optional` \\ -p 9091:9091 \\ -p 51413:51413 \\ -p 51413:51413/udp \\ -v /path/to/data:/config \\ -v /path/to/downloads:/downloads \\ -v /path/to/watch/folder:/watch \\ --restart unless-stopped \\ lscr.io/linuxserver/transmission:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-transmission/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-transmission/#ports-p","text":"Parameter Function 9091 WebUI 51413 Torrent Port TCP 51413/udp Torrent Port UDP","title":"Ports (-p)"},{"location":"images/docker-transmission/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. TRANSMISSION_WEB_HOME=/combustion-release/ Specify an alternative UI options are /combustion-release/ , /transmission-web-control/ , /kettu/ , /flood-for-transmission/ , and /transmissionic/ . USER=username Specify an optional username for the interface PASS=password Specify an optional password for the interface WHITELIST=iplist Specify an optional list of comma separated ip whitelist. Fills rpc-whitelist setting. PEERPORT=peerport Specify an optional port for torrent TCP/UDP connections. Fills peer-port setting. HOST_WHITELIST=dnsname list Specify an optional list of comma separated dns name whitelist. Fills rpc-host-whitelist setting.","title":"Environment Variables (-e)"},{"location":"images/docker-transmission/#volume-mappings-v","text":"Volume Function /config Where transmission should store config files and logs. /downloads Local path for downloads. /watch Watch folder for torrent files.","title":"Volume Mappings (-v)"},{"location":"images/docker-transmission/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-transmission/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-transmission/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-transmission/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-transmission/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-transmission/#support-info","text":"Shell access whilst the container is running: docker exec -it transmission /bin/bash To monitor the logs of the container in realtime: docker logs -f transmission Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' transmission Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/transmission:latest","title":"Support Info"},{"location":"images/docker-transmission/#versions","text":"02.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 12.08.22: - Bump unrar to 6.1.7. 03.04.22: - Add Transmissionic as a UI option. 21.02.22: - Build unrar from source, rebase to Alpine 3.15, add symlinks neeeded for TWC. Credit @alexbelgium 09.07.21: - Wait for the transmission-daemon termination after a caught sigterm. 06.03.21: - Add Flood for Transmission as a UI option. 23.01.21: - Rebasing to alpine 3.13. 02.11.20: - Add ca-certificates package to allow connecting to https trackers. 02.06.20: - Rebase to alpine 3.12, update to transmission 3.0, remove python2, add python3. 11.05.20: - Remove unnecessary chmod (remnant of previous change). 28.04.20: - Use transmission-remote to update blocklist. 30.03.20: - Internalize blocklist-update.sh. 29.03.20: - Update auth info in readme. 19.12.19: - Rebasing to alpine 3.11. 04.10.19: - Update package label. 21.08.19: - Add optional user/pass environment variables, fix transmission shut down if user/pass are set. 19.07.19: - Send SIGTERM in blocklist update to properly close pid. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebase to Alpine 3.9, add themes to baseimage, add python and findutils. 22.02.19: - Catch term and clean exit. 07.02.19: - Add pipeline logic and multi arch. 15.08.18: - Rebase to alpine linux 3.8. 12.02.18: - Pull transmission from edge repo. 10.01.18: - Rebase to alpine linux 3.7. 25.07.17: - Add rsync package. 27.05.17: - Rebase to alpine linux 3.6. 06.02.17: - Rebase to alpine linux 3.5. 15.01.17: - Add p7zip, tar, unrar, and unzip packages. 16.10.16: - Blocklist autoupdate with optional authentication. 14.10.16: - Add version layer informationE. 23.09.16: - Add information about securing the webui to README. 21.09.16: - Add curl package. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 09.08.16: - Rebase to alpine linux. 06.12.15: - Separate mapping for watch folder. 16.11.15: - Initial Release.","title":"Versions"},{"location":"images/docker-tvheadend/","text":"linuxserver/tvheadend Tvheadend works as a proxy server: is a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun as input sources. Tvheadend offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML). Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/tvheadend:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The setup depends if you run the one of the stable tags or use latest. Running latest is the easiest as it has a setup wizard. Stable First thing to do is to go to Configuration --> DVB Inputs --> TV adapters and add your LNB/switch info. Then create a new network in the Networks tab and set the correct pre-defined muxes and orbital position. Go back to the TV adapters tab and add the newly created network under universal LNB. Go back to the Networks tab and mark the network you created earlier and press the Force Scan button. Tvheadend will now scan the muxes for services. After the scan is done, head to the Services tab and find the services you want as channels, mark them, and press map services. They should now appear under Configuration --> Channel/EPG. Latest The first thing to do is to run the setup wizard. If it doesn't pop up at first login, you can find it in Configuration --> General --> Base and click Start Wizard. This will guide you to set up the basic parts of tvheadend. Configuring XMLTV grabber To configure the XMLTV grabber, first check if your grabber is listed in Configuration --> Channel/EPG --> EPG Grabber Modules. If it's listed, you will have to configure the grabber before enabling. Find the path in the path field of your grabber. We will use the last part. It starts with tv_grab_. Add it after /usr/bin/ in the below command. There should be no space between Usr/bin/ and the part you added. docker exec -it -u abc tvheadend /usr/bin/for_you_to_fill_out --configure Now follow the onscreen progress. If you get asked about cache, just accept the default. After you have configured your grabber, you can go back and enable your grabber. If you allready have a configuration file, you can add it in the .xmltv folder where you mapped the /config volume. If it's not created, create it. Comskip This container comes with Comskip for commercial flagging of recordings. This you have to add in the recording config of tvheadend. Go to Configuration --> Recording. Change the view level to advanced in the top right corner, and add the below in the Post-processor command field. /usr/bin/comskip --ini=/config/comskip/comskip.ini \"%f\" Now comskip will run after each recording is finished. You will find comskip.ini in the comskip folder of your /config volume mapping. See the Comskip homepage for tuning of the ini file. FFmpeg FFmpeg is installed in /usr/bin/ in case you need to use it with pipe. EPG XML file If you have EPG data in XML format from a supplier, you can drop it in the data folder of your /config volume mapping. If it doesn't exist, create it. Then choose the XML file grabber in Configuration --> Channel/EPG --> EPG Grabber Modules. If you use WebGrab+Plus, choose the WebGrab+Plus XML file grabber. The XML file goes in the same path as above. The xml file has to be named guide.xml. For advanced setup of tvheadend, go to [Tvheadend][appurl] Picons We have added all the picons from picons in the folder /picons. To enable the use of these picons, add the path to the Channel icon path in Configuration --> General --> Base. You need to enable minimum advanced view level to see the picons options. Additional runtime parameters In some cases it might be necessary to start tvheadend with additional parameters, for example to enable debugging or specify webroot for reverse proxy. Be sure to have the right parameters set, as adding the wrong once might lead to the container not starting correctly. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: tvheadend: image: lscr.io/linuxserver/tvheadend:latest container_name: tvheadend environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - RUN_OPTS= #optional volumes: - /path/to/data:/config - /path/to/recordings:/recordings ports: - 9981:9981 - 9982:9982 devices: - /dev/dri:/dev/dri #optional - /dev/dvb:/dev/dvb #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=tvheadend \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS= `#optional` \\ -p 9981:9981 \\ -p 9982:9982 \\ -v /path/to/data:/config \\ -v /path/to/recordings:/recordings \\ --device /dev/dri:/dev/dri `#optional` \\ --device /dev/dvb:/dev/dvb `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/tvheadend:latest Host vs. Bridge If you use IPTV, SAT>IP or HDHomeRun, you need to create the container with --net=host and remove the -p flags. This is because to work with these services Tvheadend requires a multicast address of 239.255.255.250 and a UDP port of 1900 which at this time is not possible with docker bridge mode. If you have other host services which also use multicast such as SSDP/DLNA/Emby you may experience stabilty problems. These can be solved by giving tvheadend its own IP using macvlan. Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 9981 WebUI 9982 HTSP server port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. RUN_OPTS= Optionally specify additional arguments to be passed. See Additional runtime parameters. Volume Mappings ( -v ) Volume Function /config Where TVHeadend show store it's config files. /recordings Where you want the PVR to store recordings. Device Mappings ( --device ) Parameter Function /dev/dri Only needed if you want to use your AMD/Intel GPU for hardware accelerated video encoding (vaapi). /dev/dvb Only needed if you want to pass through a DVB card to the container. If you use IPTV or HDHomeRun you can leave it out. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it tvheadend /bin/bash To monitor the logs of the container in realtime: docker logs -f tvheadend Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' tvheadend Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/tvheadend:latest Versions 31.08.22: - Update sample env vars and how RUN_OPTS are handled. 19.08.22: - Switch to new picons builder. 16.04.22: - Added URL XMLTV grabber. 05.01.22: - Rebase to Alpine 3.15. Disable execinfo to fix builds. Update xmltv. 11.05.21: - Added Intel iHD driver support. 02.06.20: - Update to Alpine 3.12. 27.12.19: - Add requests and perl-json-xs package. 27.12.19: - Update to Alpine 3.11. 02.10.19: - Improve permission fixing on render & dvb devices. 18.08.19: - Add AMD drivers. 02.08.19: - Attempt to automatically fix permissions on /dev/dri and /dev/dvb. 28.06.19: - Rebasing to alpine 3.10. 27.03.19: - Rebase to Alpine 3.9, fix init logic to only chown once. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.03.19: - Bump xmltv to 0.6.1. 28.02.19: - add perl-lwp-useragent-determined. 17.02.19: - Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend. 14.02.19: - Add picons path to config. 15.01.19: - Add pipeline logic and multi arch. 12.09.18: - Rebase to alpine 3.8 and use buildstage type build. 21.04.18: - Add JSON::XS Perl package for grab_tv_huro. 24.03.18: - Add dvbcsa package. 04.03.18: - Use sourceforge master rather than mirror for xmltv. 22.02.18: - Add lost libva-intel-driver. 21.02.18: - Fix wrong version of iconv used. 18.02.18: - Add vaapi support, some cleanup and dropping of deprecated options. 04.01.18: - Deprecate cpu_core routine lack of scaling. 11.12.17: - Rebase to alpine 3.7, linting fixes. 02.09.17: - Add codec dependencies. 13.07.17: - Increase uniformity across all archs. 08.07.17: - Update README with full path for comskip. 02.07.17: - Move to one branch for all 4.2 releases. 27.05.17: - Rebase to alpine 3.6. 01.05.17: - Update to tvheadend 4.2.1 stable. 18.04.17: - Use repo version of gnu-libiconv rather than compiling. 09.04.17: - Chain cpanm installs in one block and use --installdeps. 09.02.17: - Perl changes, add picons file to gitignore and update XMLTV to 0.5.69. 07.02.17: - Add variable to add additional runtime paramters. 05.02.17: - Update to alpine 3.5 and change dvb-apps to only compile needed libs. 14.11.16: - Add picons from picons.xyz to /picons folder and add info to README. 22.09.16: - Fix broken tv_grab_wg, libs for xmltv and update README. 18.09.16: - Update XMLTV to 0.5.68 and update README. 10.09.16: - Add layer badges to README. 05.09.16: - Initial Release.","title":"tvheadend"},{"location":"images/docker-tvheadend/#linuxservertvheadend","text":"Tvheadend works as a proxy server: is a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun as input sources. Tvheadend offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML).","title":"linuxserver/tvheadend"},{"location":"images/docker-tvheadend/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/tvheadend:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-tvheadend/#application-setup","text":"The setup depends if you run the one of the stable tags or use latest. Running latest is the easiest as it has a setup wizard. Stable First thing to do is to go to Configuration --> DVB Inputs --> TV adapters and add your LNB/switch info. Then create a new network in the Networks tab and set the correct pre-defined muxes and orbital position. Go back to the TV adapters tab and add the newly created network under universal LNB. Go back to the Networks tab and mark the network you created earlier and press the Force Scan button. Tvheadend will now scan the muxes for services. After the scan is done, head to the Services tab and find the services you want as channels, mark them, and press map services. They should now appear under Configuration --> Channel/EPG. Latest The first thing to do is to run the setup wizard. If it doesn't pop up at first login, you can find it in Configuration --> General --> Base and click Start Wizard. This will guide you to set up the basic parts of tvheadend. Configuring XMLTV grabber To configure the XMLTV grabber, first check if your grabber is listed in Configuration --> Channel/EPG --> EPG Grabber Modules. If it's listed, you will have to configure the grabber before enabling. Find the path in the path field of your grabber. We will use the last part. It starts with tv_grab_. Add it after /usr/bin/ in the below command. There should be no space between Usr/bin/ and the part you added. docker exec -it -u abc tvheadend /usr/bin/for_you_to_fill_out --configure Now follow the onscreen progress. If you get asked about cache, just accept the default. After you have configured your grabber, you can go back and enable your grabber. If you allready have a configuration file, you can add it in the .xmltv folder where you mapped the /config volume. If it's not created, create it. Comskip This container comes with Comskip for commercial flagging of recordings. This you have to add in the recording config of tvheadend. Go to Configuration --> Recording. Change the view level to advanced in the top right corner, and add the below in the Post-processor command field. /usr/bin/comskip --ini=/config/comskip/comskip.ini \"%f\" Now comskip will run after each recording is finished. You will find comskip.ini in the comskip folder of your /config volume mapping. See the Comskip homepage for tuning of the ini file. FFmpeg FFmpeg is installed in /usr/bin/ in case you need to use it with pipe. EPG XML file If you have EPG data in XML format from a supplier, you can drop it in the data folder of your /config volume mapping. If it doesn't exist, create it. Then choose the XML file grabber in Configuration --> Channel/EPG --> EPG Grabber Modules. If you use WebGrab+Plus, choose the WebGrab+Plus XML file grabber. The XML file goes in the same path as above. The xml file has to be named guide.xml. For advanced setup of tvheadend, go to [Tvheadend][appurl] Picons We have added all the picons from picons in the folder /picons. To enable the use of these picons, add the path to the Channel icon path in Configuration --> General --> Base. You need to enable minimum advanced view level to see the picons options.","title":"Application Setup"},{"location":"images/docker-tvheadend/#additional-runtime-parameters","text":"In some cases it might be necessary to start tvheadend with additional parameters, for example to enable debugging or specify webroot for reverse proxy. Be sure to have the right parameters set, as adding the wrong once might lead to the container not starting correctly.","title":"Additional runtime parameters"},{"location":"images/docker-tvheadend/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-tvheadend/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: tvheadend: image: lscr.io/linuxserver/tvheadend:latest container_name: tvheadend environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - RUN_OPTS= #optional volumes: - /path/to/data:/config - /path/to/recordings:/recordings ports: - 9981:9981 - 9982:9982 devices: - /dev/dri:/dev/dri #optional - /dev/dvb:/dev/dvb #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-tvheadend/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=tvheadend \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS= `#optional` \\ -p 9981:9981 \\ -p 9982:9982 \\ -v /path/to/data:/config \\ -v /path/to/recordings:/recordings \\ --device /dev/dri:/dev/dri `#optional` \\ --device /dev/dvb:/dev/dvb `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/tvheadend:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-tvheadend/#host-vs-bridge","text":"If you use IPTV, SAT>IP or HDHomeRun, you need to create the container with --net=host and remove the -p flags. This is because to work with these services Tvheadend requires a multicast address of 239.255.255.250 and a UDP port of 1900 which at this time is not possible with docker bridge mode. If you have other host services which also use multicast such as SSDP/DLNA/Emby you may experience stabilty problems. These can be solved by giving tvheadend its own IP using macvlan.","title":"Host vs. Bridge"},{"location":"images/docker-tvheadend/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-tvheadend/#ports-p","text":"Parameter Function 9981 WebUI 9982 HTSP server port.","title":"Ports (-p)"},{"location":"images/docker-tvheadend/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. RUN_OPTS= Optionally specify additional arguments to be passed. See Additional runtime parameters.","title":"Environment Variables (-e)"},{"location":"images/docker-tvheadend/#volume-mappings-v","text":"Volume Function /config Where TVHeadend show store it's config files. /recordings Where you want the PVR to store recordings.","title":"Volume Mappings (-v)"},{"location":"images/docker-tvheadend/#device-mappings-device","text":"Parameter Function /dev/dri Only needed if you want to use your AMD/Intel GPU for hardware accelerated video encoding (vaapi). /dev/dvb Only needed if you want to pass through a DVB card to the container. If you use IPTV or HDHomeRun you can leave it out.","title":"Device Mappings (--device)"},{"location":"images/docker-tvheadend/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-tvheadend/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-tvheadend/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-tvheadend/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-tvheadend/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-tvheadend/#support-info","text":"Shell access whilst the container is running: docker exec -it tvheadend /bin/bash To monitor the logs of the container in realtime: docker logs -f tvheadend Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' tvheadend Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/tvheadend:latest","title":"Support Info"},{"location":"images/docker-tvheadend/#versions","text":"31.08.22: - Update sample env vars and how RUN_OPTS are handled. 19.08.22: - Switch to new picons builder. 16.04.22: - Added URL XMLTV grabber. 05.01.22: - Rebase to Alpine 3.15. Disable execinfo to fix builds. Update xmltv. 11.05.21: - Added Intel iHD driver support. 02.06.20: - Update to Alpine 3.12. 27.12.19: - Add requests and perl-json-xs package. 27.12.19: - Update to Alpine 3.11. 02.10.19: - Improve permission fixing on render & dvb devices. 18.08.19: - Add AMD drivers. 02.08.19: - Attempt to automatically fix permissions on /dev/dri and /dev/dvb. 28.06.19: - Rebasing to alpine 3.10. 27.03.19: - Rebase to Alpine 3.9, fix init logic to only chown once. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.03.19: - Bump xmltv to 0.6.1. 28.02.19: - add perl-lwp-useragent-determined. 17.02.19: - Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend. 14.02.19: - Add picons path to config. 15.01.19: - Add pipeline logic and multi arch. 12.09.18: - Rebase to alpine 3.8 and use buildstage type build. 21.04.18: - Add JSON::XS Perl package for grab_tv_huro. 24.03.18: - Add dvbcsa package. 04.03.18: - Use sourceforge master rather than mirror for xmltv. 22.02.18: - Add lost libva-intel-driver. 21.02.18: - Fix wrong version of iconv used. 18.02.18: - Add vaapi support, some cleanup and dropping of deprecated options. 04.01.18: - Deprecate cpu_core routine lack of scaling. 11.12.17: - Rebase to alpine 3.7, linting fixes. 02.09.17: - Add codec dependencies. 13.07.17: - Increase uniformity across all archs. 08.07.17: - Update README with full path for comskip. 02.07.17: - Move to one branch for all 4.2 releases. 27.05.17: - Rebase to alpine 3.6. 01.05.17: - Update to tvheadend 4.2.1 stable. 18.04.17: - Use repo version of gnu-libiconv rather than compiling. 09.04.17: - Chain cpanm installs in one block and use --installdeps. 09.02.17: - Perl changes, add picons file to gitignore and update XMLTV to 0.5.69. 07.02.17: - Add variable to add additional runtime paramters. 05.02.17: - Update to alpine 3.5 and change dvb-apps to only compile needed libs. 14.11.16: - Add picons from picons.xyz to /picons folder and add info to README. 22.09.16: - Fix broken tv_grab_wg, libs for xmltv and update README. 18.09.16: - Update XMLTV to 0.5.68 and update README. 10.09.16: - Add layer badges to README. 05.09.16: - Initial Release.","title":"Versions"},{"location":"images/docker-ubooquity/","text":"linuxserver/ubooquity Ubooquity is a free, lightweight and easy-to-use home server for your comics and ebooks. Use it to access your files from anywhere, with a tablet, an e-reader, a phone or a computer. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ubooquity:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup IMPORTANT Ubooquity has now been upgraded to version 2 and for existing v1.x users we recommend cleaning your appdata and reinstalling, due to changes in the application itself making the two versions essentially incompatible with each other. Also the admin page and library pages are now on separate ports as detailed below. Access the admin page at http://:2203/ubooquity/admin and set a password. Then you can access the webui at http://:2202/ubooquity/ This container will automatically scan your files at startup. MAXMEM The quantity of memory allocated to Ubooquity depends on the hardware your are running it on. If this quantity is too small, you might sometime saturate it with when performing memory intensive operations. That\u2019s when you get java.lang.OutOfMemoryError: Java heap space errors. You can explicitly set the amount of memory Ubooquity is allowed to use (be careful to set a value lower than the actual physical memory of your hardware). Value is a number of megabytes ( put just a number, without MB ) If no value is set it will default to 512MB. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: ubooquity: image: lscr.io/linuxserver/ubooquity:latest container_name: ubooquity environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MAXMEM= volumes: - :/config - :/books - :/comics - :/files ports: - 2202:2202 - 2203:2203 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=ubooquity \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MAXMEM= \\ -p 2202:2202 \\ -p 2203:2203 \\ -v :/config \\ -v :/books \\ -v :/comics \\ -v :/files \\ --restart unless-stopped \\ lscr.io/linuxserver/ubooquity:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 2202 The library port. 2203 The admin port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. MAXMEM= To set the maximum memory. ( ex: set '1024' for 1GB ) Volume Mappings ( -v ) Volume Function /config Config files and database for ubooquity. /books Location of books. /comics Location of comics. /files Location of raw files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it ubooquity /bin/bash To monitor the logs of the container in realtime: docker logs -f ubooquity Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ubooquity Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ubooquity:latest Versions 10.10.22: - Rebasing to alpine 3.16, migrate to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 15.10.18: - Upgrade to Ubooquity 2.1.2. 23.08.18: - Rebase to alpine 3.8. 09.12.17: - Rebase to alpine 3.7. 07.10.17: - Upgrade to Ubooquity 2.1.1. 16.07.17: - Upgrade to Ubooquity 2.1.0, see setting up application section for important info for existing v1.x users. 26.05.17: - Rebase to alpine 3.6. 08.04.17: - Switch to java from 3.5 repo, fixes login crashes. 06.02.17: - Rebase to alpine 3.5. 06.12.16: - Initial Release.","title":"ubooquity"},{"location":"images/docker-ubooquity/#linuxserverubooquity","text":"Ubooquity is a free, lightweight and easy-to-use home server for your comics and ebooks. Use it to access your files from anywhere, with a tablet, an e-reader, a phone or a computer.","title":"linuxserver/ubooquity"},{"location":"images/docker-ubooquity/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ubooquity:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-ubooquity/#application-setup","text":"IMPORTANT Ubooquity has now been upgraded to version 2 and for existing v1.x users we recommend cleaning your appdata and reinstalling, due to changes in the application itself making the two versions essentially incompatible with each other. Also the admin page and library pages are now on separate ports as detailed below. Access the admin page at http://:2203/ubooquity/admin and set a password. Then you can access the webui at http://:2202/ubooquity/ This container will automatically scan your files at startup.","title":"Application Setup"},{"location":"images/docker-ubooquity/#maxmem","text":"The quantity of memory allocated to Ubooquity depends on the hardware your are running it on. If this quantity is too small, you might sometime saturate it with when performing memory intensive operations. That\u2019s when you get java.lang.OutOfMemoryError: Java heap space errors. You can explicitly set the amount of memory Ubooquity is allowed to use (be careful to set a value lower than the actual physical memory of your hardware). Value is a number of megabytes ( put just a number, without MB ) If no value is set it will default to 512MB.","title":"MAXMEM"},{"location":"images/docker-ubooquity/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-ubooquity/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: ubooquity: image: lscr.io/linuxserver/ubooquity:latest container_name: ubooquity environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MAXMEM= volumes: - :/config - :/books - :/comics - :/files ports: - 2202:2202 - 2203:2203 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-ubooquity/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=ubooquity \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MAXMEM= \\ -p 2202:2202 \\ -p 2203:2203 \\ -v :/config \\ -v :/books \\ -v :/comics \\ -v :/files \\ --restart unless-stopped \\ lscr.io/linuxserver/ubooquity:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-ubooquity/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-ubooquity/#ports-p","text":"Parameter Function 2202 The library port. 2203 The admin port.","title":"Ports (-p)"},{"location":"images/docker-ubooquity/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. MAXMEM= To set the maximum memory. ( ex: set '1024' for 1GB )","title":"Environment Variables (-e)"},{"location":"images/docker-ubooquity/#volume-mappings-v","text":"Volume Function /config Config files and database for ubooquity. /books Location of books. /comics Location of comics. /files Location of raw files.","title":"Volume Mappings (-v)"},{"location":"images/docker-ubooquity/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-ubooquity/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-ubooquity/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-ubooquity/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-ubooquity/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-ubooquity/#support-info","text":"Shell access whilst the container is running: docker exec -it ubooquity /bin/bash To monitor the logs of the container in realtime: docker logs -f ubooquity Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ubooquity Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ubooquity:latest","title":"Support Info"},{"location":"images/docker-ubooquity/#versions","text":"10.10.22: - Rebasing to alpine 3.16, migrate to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 15.10.18: - Upgrade to Ubooquity 2.1.2. 23.08.18: - Rebase to alpine 3.8. 09.12.17: - Rebase to alpine 3.7. 07.10.17: - Upgrade to Ubooquity 2.1.1. 16.07.17: - Upgrade to Ubooquity 2.1.0, see setting up application section for important info for existing v1.x users. 26.05.17: - Rebase to alpine 3.6. 08.04.17: - Switch to java from 3.5 repo, fixes login crashes. 06.02.17: - Rebase to alpine 3.5. 06.12.16: - Initial Release.","title":"Versions"},{"location":"images/docker-unifi-controller/","text":"linuxserver/unifi-controller The Unifi-controller software is a powerful, enterprise wireless software engine ideal for high-density client deployments requiring low latency and high uptime performance. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/unifi-controller:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Application Setup The webui is at https://ip:8443, setup with the first run wizard. For Unifi to adopt other devices, e.g. an Access Point, it is required to change the inform IP address. Because Unifi runs inside Docker by default it uses an IP address not accessible by other devices. To change this go to Settings > System Settings > Controller Configuration and set the Controller Hostname/IP to a hostname or IP address accessible by your devices. Additionally the checkbox \"Override inform host with controller hostname/IP\" has to be checked, so that devices can connect to the controller during adoption (devices use the inform-endpoint during adoption). In order to manually adopt a device take these steps: ssh ubnt@$AP-IP set-inform http://$address:8080/inform The default device password is ubnt . $address is the IP address of the host you are running this container on and $AP-IP is the Access Point IP address. When using a Security Gateway (router) it could be that network connected devices are unable to obtain an ip address. This can be fixed by setting \"DHCP Gateway IP\", under Settings > Networks > network_name, to a correct (and accessable) ip address. Strict reverse proxies This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: unifi-controller: image: lscr.io/linuxserver/unifi-controller:latest container_name: unifi-controller environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MEM_LIMIT=1024 #optional - MEM_STARTUP=1024 #optional volumes: - :/config ports: - 8443:8443 - 3478:3478/udp - 10001:10001/udp - 8080:8080 - 1900:1900/udp #optional - 8843:8843 #optional - 8880:8880 #optional - 6789:6789 #optional - 5514:5514/udp #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=unifi-controller \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MEM_LIMIT=1024 `#optional` \\ -e MEM_STARTUP=1024 `#optional` \\ -p 8443:8443 \\ -p 3478:3478/udp \\ -p 10001:10001/udp \\ -p 8080:8080 \\ -p 1900:1900/udp `#optional` \\ -p 8843:8843 `#optional` \\ -p 8880:8880 `#optional` \\ -p 6789:6789 `#optional` \\ -p 5514:5514/udp `#optional` \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/unifi-controller:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8443 Unifi web admin port 3478/udp Unifi STUN port 10001/udp Required for AP discovery 8080 Required for device communication 1900/udp Required for Make controller discoverable on L2 network option 8843 Unifi guest portal HTTPS redirect port 8880 Unifi guest portal HTTP redirect port 6789 For mobile throughput test 5514/udp Remote syslog port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use (e.g. Europe/London) - see list MEM_LIMIT=1024 Optionally change the Java memory limit (in Megabytes). Set to default to reset to default MEM_STARTUP=1024 Optionally change the Java initial/minimum memory (in Megabytes). Set to default to reset to default Volume Mappings ( -v ) Volume Function /config All Unifi data stored here Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it unifi-controller /bin/bash To monitor the logs of the container in realtime: docker logs -f unifi-controller Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' unifi-controller Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/unifi-controller:latest Versions 30.11.22: - Bump JRE to 11. 01.06.22: - Deprecate armhf. 23.12.21: - Move min/max memory config from run to system.properties. 22.12.21: - Move deb package install to first init to avoid overlayfs performance issues. 13.12.21: - Rebase 64 bit containers to Focal. 11.12.21: - Add java opts to mitigate CVE-2021-44228. 11.06.21: - Allow for changing Java initial mem via new optional environment variable. 12.01.21: - Deprecate the LTS tag as Unifi no longer releases LTS stable builds. Existing users can switch to the latest tag. Direct upgrade from 5.6.42 (LTS) to 6.0.42 (latest) tested successfully. 17.07.20: - Rebase 64 bit containers to Bionic and Mongo 3.6. 16.06.20: - Add logrotate. 02.06.20: - Updated port list & descriptions. Moved some ports to optional. 14.11.19: - Changed url for deb package to match new Ubiquity domain. 29.07.19: - Allow for changing Java mem limit via new optional environment variable. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.02.19: - Initial release of new unifi-controller image with new tags and pipeline logic","title":"unifi-controller"},{"location":"images/docker-unifi-controller/#linuxserverunifi-controller","text":"The Unifi-controller software is a powerful, enterprise wireless software engine ideal for high-density client deployments requiring low latency and high uptime performance.","title":"linuxserver/unifi-controller"},{"location":"images/docker-unifi-controller/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/unifi-controller:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-unifi-controller/#application-setup","text":"The webui is at https://ip:8443, setup with the first run wizard. For Unifi to adopt other devices, e.g. an Access Point, it is required to change the inform IP address. Because Unifi runs inside Docker by default it uses an IP address not accessible by other devices. To change this go to Settings > System Settings > Controller Configuration and set the Controller Hostname/IP to a hostname or IP address accessible by your devices. Additionally the checkbox \"Override inform host with controller hostname/IP\" has to be checked, so that devices can connect to the controller during adoption (devices use the inform-endpoint during adoption). In order to manually adopt a device take these steps: ssh ubnt@$AP-IP set-inform http://$address:8080/inform The default device password is ubnt . $address is the IP address of the host you are running this container on and $AP-IP is the Access Point IP address. When using a Security Gateway (router) it could be that network connected devices are unable to obtain an ip address. This can be fixed by setting \"DHCP Gateway IP\", under Settings > Networks > network_name, to a correct (and accessable) ip address.","title":"Application Setup"},{"location":"images/docker-unifi-controller/#strict-reverse-proxies","text":"This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-unifi-controller/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-unifi-controller/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: unifi-controller: image: lscr.io/linuxserver/unifi-controller:latest container_name: unifi-controller environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MEM_LIMIT=1024 #optional - MEM_STARTUP=1024 #optional volumes: - :/config ports: - 8443:8443 - 3478:3478/udp - 10001:10001/udp - 8080:8080 - 1900:1900/udp #optional - 8843:8843 #optional - 8880:8880 #optional - 6789:6789 #optional - 5514:5514/udp #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-unifi-controller/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=unifi-controller \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MEM_LIMIT=1024 `#optional` \\ -e MEM_STARTUP=1024 `#optional` \\ -p 8443:8443 \\ -p 3478:3478/udp \\ -p 10001:10001/udp \\ -p 8080:8080 \\ -p 1900:1900/udp `#optional` \\ -p 8843:8843 `#optional` \\ -p 8880:8880 `#optional` \\ -p 6789:6789 `#optional` \\ -p 5514:5514/udp `#optional` \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/unifi-controller:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-unifi-controller/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-unifi-controller/#ports-p","text":"Parameter Function 8443 Unifi web admin port 3478/udp Unifi STUN port 10001/udp Required for AP discovery 8080 Required for device communication 1900/udp Required for Make controller discoverable on L2 network option 8843 Unifi guest portal HTTPS redirect port 8880 Unifi guest portal HTTP redirect port 6789 For mobile throughput test 5514/udp Remote syslog port","title":"Ports (-p)"},{"location":"images/docker-unifi-controller/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use (e.g. Europe/London) - see list MEM_LIMIT=1024 Optionally change the Java memory limit (in Megabytes). Set to default to reset to default MEM_STARTUP=1024 Optionally change the Java initial/minimum memory (in Megabytes). Set to default to reset to default","title":"Environment Variables (-e)"},{"location":"images/docker-unifi-controller/#volume-mappings-v","text":"Volume Function /config All Unifi data stored here","title":"Volume Mappings (-v)"},{"location":"images/docker-unifi-controller/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-unifi-controller/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-unifi-controller/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-unifi-controller/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-unifi-controller/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-unifi-controller/#support-info","text":"Shell access whilst the container is running: docker exec -it unifi-controller /bin/bash To monitor the logs of the container in realtime: docker logs -f unifi-controller Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' unifi-controller Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/unifi-controller:latest","title":"Support Info"},{"location":"images/docker-unifi-controller/#versions","text":"30.11.22: - Bump JRE to 11. 01.06.22: - Deprecate armhf. 23.12.21: - Move min/max memory config from run to system.properties. 22.12.21: - Move deb package install to first init to avoid overlayfs performance issues. 13.12.21: - Rebase 64 bit containers to Focal. 11.12.21: - Add java opts to mitigate CVE-2021-44228. 11.06.21: - Allow for changing Java initial mem via new optional environment variable. 12.01.21: - Deprecate the LTS tag as Unifi no longer releases LTS stable builds. Existing users can switch to the latest tag. Direct upgrade from 5.6.42 (LTS) to 6.0.42 (latest) tested successfully. 17.07.20: - Rebase 64 bit containers to Bionic and Mongo 3.6. 16.06.20: - Add logrotate. 02.06.20: - Updated port list & descriptions. Moved some ports to optional. 14.11.19: - Changed url for deb package to match new Ubiquity domain. 29.07.19: - Allow for changing Java mem limit via new optional environment variable. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.02.19: - Initial release of new unifi-controller image with new tags and pipeline logic","title":"Versions"},{"location":"images/docker-webgrabplus/","text":"linuxserver/webgrabplus Webgrabplus is a multi-site incremental xmltv epg grabber. It collects tv-program guide data from selected tvguide sites for your favourite channels. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/webgrabplus:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup To configure WebGrab+Plus follow the documentation Please note that depending on your host this container may not work with the no-new-privileges=true security-opt. Note that there are some things in the guide that does not apply to this container. Below you can find the changes. The configuration files are found where your config volume is mounted. Do not change the filename tag in the configuration file! The /data volume mapping is where WebGrab+Plus outputs the xml file. To use the xml file in another program, you have to point it to the host path you mapped the /data volume to. To adjust the scheduled cron job for grabbing, edit the wg3-cron file found in the /config folder. After you have edited the the wg3-cron file, restart the container to apply the new schedule. Do not adjust the command! Note that due to something in version 3, we had to change the commands for scheduling the grab. If you have a version where there is a wg-cron file in your /config mount, delete it and use wg3-cron instead. Below is the syntax of the cron file. \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 minute (0 - 59) \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 hour (0 - 23) \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of month (1 - 31) \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 month (1 - 12) \u2502 \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of week (0 - 6) (Sunday to Saturday; \u2502 \u2502 \u2502 \u2502 \u2502 7 is also Sunday on some systems) \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 * * * * * /bin/bash /defaults/update.sh Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: webgrabplus: image: lscr.io/linuxserver/webgrabplus:latest container_name: webgrabplus hostname: webgrabplus mac_address: 00:00:00:00:00:00 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=webgrabplus \\ --hostname=webgrabplus \\ --mac-address=00:00:00:00:00:00 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/webgrabplus:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Where webgrabplus should store it's config files. /data Where webgrabplus should store it's data files. Miscellaneous Options Parameter Function --hostname= Set the hostname for the container for the license check. --mac-address= Set the mac_address for the container for the license check. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it webgrabplus /bin/bash To monitor the logs of the container in realtime: docker logs -f webgrabplus Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' webgrabplus Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/webgrabplus:latest Versions 23.03.22: - Rebase to Alpine 3.16 and s6v3. Update to dotnet 6. 29.04.22: - Add hostname and mac_address arguments that are needed for the license check to compose and cli samples. 23.03.22: - Rebase to Alpine 3.15. 23.03.22: - Update to use dotnet instead of mono. 06.01.22: - Rebase to Ubuntu focal. Enable auto builds on version updates (beta and stable). 17.12.21: - Update to version 3.2.2 beta. 05.08.21: - Update to version 3.2.1 beta. 05.06.21: - Added mono-devel dependency. 04.06.21: - Update to version 3.1.8 beta. 22.03.21: - Update to version 3.1.7 beta. 07.03.21: - Update to version 3.1.6 beta. 29.01.21: - Update external version number to show as 3.1.5. 24.01.21: - Update to version 3.1.5 beta. 22.12.20: - Update to version 3.1.4 beta. 12.10.20: - Fix version number in jenkinsfile. 12.10.20: - Update to version 3.1.1 beta. 22.06.20: - Add mono webrequest library. 18.06.20: - Update to v3.1.0. 29.03.20: - Update to v3.0.0. Changed to use wg3-cron file. 28.05.19: - Update to v2.1.0 and beta v2.1.9, rebase to bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 21.03.19: - Update to beta 2.1.7. 19.02.19: - Add pipeline logic and multi arch. 18.01.18: - Initial Release.","title":"webgrabplus"},{"location":"images/docker-webgrabplus/#linuxserverwebgrabplus","text":"Webgrabplus is a multi-site incremental xmltv epg grabber. It collects tv-program guide data from selected tvguide sites for your favourite channels.","title":"linuxserver/webgrabplus"},{"location":"images/docker-webgrabplus/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/webgrabplus:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-webgrabplus/#application-setup","text":"To configure WebGrab+Plus follow the documentation Please note that depending on your host this container may not work with the no-new-privileges=true security-opt. Note that there are some things in the guide that does not apply to this container. Below you can find the changes. The configuration files are found where your config volume is mounted. Do not change the filename tag in the configuration file! The /data volume mapping is where WebGrab+Plus outputs the xml file. To use the xml file in another program, you have to point it to the host path you mapped the /data volume to. To adjust the scheduled cron job for grabbing, edit the wg3-cron file found in the /config folder. After you have edited the the wg3-cron file, restart the container to apply the new schedule. Do not adjust the command! Note that due to something in version 3, we had to change the commands for scheduling the grab. If you have a version where there is a wg-cron file in your /config mount, delete it and use wg3-cron instead. Below is the syntax of the cron file. \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 minute (0 - 59) \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 hour (0 - 23) \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of month (1 - 31) \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 month (1 - 12) \u2502 \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of week (0 - 6) (Sunday to Saturday; \u2502 \u2502 \u2502 \u2502 \u2502 7 is also Sunday on some systems) \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 * * * * * /bin/bash /defaults/update.sh","title":"Application Setup"},{"location":"images/docker-webgrabplus/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-webgrabplus/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: webgrabplus: image: lscr.io/linuxserver/webgrabplus:latest container_name: webgrabplus hostname: webgrabplus mac_address: 00:00:00:00:00:00 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-webgrabplus/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=webgrabplus \\ --hostname=webgrabplus \\ --mac-address=00:00:00:00:00:00 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/webgrabplus:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-webgrabplus/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-webgrabplus/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-webgrabplus/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-webgrabplus/#volume-mappings-v","text":"Volume Function /config Where webgrabplus should store it's config files. /data Where webgrabplus should store it's data files.","title":"Volume Mappings (-v)"},{"location":"images/docker-webgrabplus/#miscellaneous-options","text":"Parameter Function --hostname= Set the hostname for the container for the license check. --mac-address= Set the mac_address for the container for the license check.","title":"Miscellaneous Options"},{"location":"images/docker-webgrabplus/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-webgrabplus/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-webgrabplus/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-webgrabplus/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-webgrabplus/#support-info","text":"Shell access whilst the container is running: docker exec -it webgrabplus /bin/bash To monitor the logs of the container in realtime: docker logs -f webgrabplus Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' webgrabplus Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/webgrabplus:latest","title":"Support Info"},{"location":"images/docker-webgrabplus/#versions","text":"23.03.22: - Rebase to Alpine 3.16 and s6v3. Update to dotnet 6. 29.04.22: - Add hostname and mac_address arguments that are needed for the license check to compose and cli samples. 23.03.22: - Rebase to Alpine 3.15. 23.03.22: - Update to use dotnet instead of mono. 06.01.22: - Rebase to Ubuntu focal. Enable auto builds on version updates (beta and stable). 17.12.21: - Update to version 3.2.2 beta. 05.08.21: - Update to version 3.2.1 beta. 05.06.21: - Added mono-devel dependency. 04.06.21: - Update to version 3.1.8 beta. 22.03.21: - Update to version 3.1.7 beta. 07.03.21: - Update to version 3.1.6 beta. 29.01.21: - Update external version number to show as 3.1.5. 24.01.21: - Update to version 3.1.5 beta. 22.12.20: - Update to version 3.1.4 beta. 12.10.20: - Fix version number in jenkinsfile. 12.10.20: - Update to version 3.1.1 beta. 22.06.20: - Add mono webrequest library. 18.06.20: - Update to v3.1.0. 29.03.20: - Update to v3.0.0. Changed to use wg3-cron file. 28.05.19: - Update to v2.1.0 and beta v2.1.9, rebase to bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 21.03.19: - Update to beta 2.1.7. 19.02.19: - Add pipeline logic and multi arch. 18.01.18: - Initial Release.","title":"Versions"},{"location":"images/docker-webtop/","text":"linuxserver/webtop Webtop - Alpine, Ubuntu, Fedora, and Arch based containers containing full desktop environments in officially supported flavors accessible via any modern web browser. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/webtop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 XFCE Alpine ubuntu-xfce \u2705 XFCE Ubuntu fedora-xfce \u2705 XFCE Fedora arch-xfce \u2705 XFCE Arch alpine-kde \u2705 KDE Alpine ubuntu-kde \u2705 KDE Ubuntu fedora-kde \u2705 KDE Fedora arch-kde \u2705 KDE Arch alpine-mate \u2705 MATE Alpine ubuntu-mate \u2705 MATE Ubuntu fedora-mate \u2705 MATE Fedora arch-mate \u2705 MATE Arch alpine-i3 \u2705 i3 Alpine ubuntu-i3 \u2705 i3 Ubuntu fedora-i3 \u2705 i3 Fedora arch-i3 \u2705 i3 Arch alpine-openbox \u2705 Openbox Alpine ubuntu-openbox \u2705 Openbox Ubuntu fedora-openbox \u2705 Openbox Fedora arch-openbox \u2705 Openbox Arch alpine-icewm \u2705 IceWM Alpine ubuntu-icewm \u2705 IceWM Ubuntu fedora-icewm \u2705 IceWM Fedora arch-icewm \u2705 IceWM Arch Application Setup The Webtop can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false . You can access advanced features of the Guacamole remote desktop using ctrl+alt+shift enabling you to use remote copy/paste, an onscreen keyboard, or a baked in file manager. This can also be accessed by clicking the small circle on the left side of the screen. Modern GUI desktop apps (including some flavors terminals) have issues with the latest Docker and syscall compatibility, you can use Docker with the --security-opt seccomp=unconfined setting to allow these syscalls or try podman as they have updated their codebase to support them Unlike our other containers these Desktops are not designed to be upgraded by Docker, you will keep your home directoy but anything you installed system level will be lost if you upgrade an existing container. To keep packages up to date instead use Ubuntu's own apt, Alpine's apk, Fedora's dnf, or Arch's pacman program Keyboard Layouts This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard If you ever lose your password you can always reset it by execing into the container as root: docker exec -it webtop passwd abc By default we perform all logic for the abc user and we reccomend using that user only in the container, but new users can be added as long as there is a startwm.sh executable script in their home directory. All of these containers are configured with passwordless sudo, we make no efforts to secure or harden these containers and we do not reccomend ever publishing their ports to the public Internet. Hardware Acceleration (Ubuntu Container Only) Many desktop application will need access to a GPU to function properly and even some Desktop Environments have compisitor effects that will not function without a GPU. This is not a hard requirement and all base images will function without a video device mounted into the container. Intel/ATI/AMD To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container. Arm Devices Best effort is made to install tools to allow mounting in /dev/dri on Arm devices. In most cases if /dev/dri exists on the host it should just work. If running a Raspberry Pi 4 be sure to enable dtoverlay=vc4-fkms-v3d in your usercfg.txt. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: webtop: image: lscr.io/linuxserver/webtop:latest container_name: webtop security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional - TITLE=Webtop #optional volumes: - /path/to/data:/config - /var/run/docker.sock:/var/run/docker.sock #optional ports: - 3000:3000 devices: - /dev/dri:/dev/dri #optional shm_size: \"1gb\" #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=webtop \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -e TITLE=Webtop `#optional` \\ -p 3000:3000 \\ -v /path/to/data:/config \\ -v /var/run/docker.sock:/var/run/docker.sock `#optional` \\ --device /dev/dri:/dev/dri `#optional` \\ --shm-size=\"1gb\" `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/webtop:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Web Desktop GUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options. TITLE=Webtop String which will be used as page/tab title in the web browser. Volume Mappings ( -v ) Volume Function /config abc users home directory /var/run/docker.sock Docker Socket on the system, if you want to use Docker in the container Device Mappings ( --device ) Parameter Function /dev/dri Add this for GL support (Linux hosts only) Miscellaneous Options Parameter Function --shm-size= We set this to 1 gig to prevent modern web browsers from crashing --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it webtop /bin/bash To monitor the logs of the container in realtime: docker logs -f webtop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' webtop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/webtop:latest Versions 21.10.22: - Rebase xfce to Alpine 3.16, migrate to s6v3. 12.03.22: - Add documentation for mounting in a GPU. 05.02.22: - Rebase KDE Ubuntu to Jammy, add new documentation for updated gclient, stop recommending priv mode. 21.09.21: - Add Fedora and Arch images, show seccomp settings in readme. 26.09.21: - Rebase to Alpine versions to 3.14. 20.04.21: - Initial release.","title":"webtop"},{"location":"images/docker-webtop/#linuxserverwebtop","text":"Webtop - Alpine, Ubuntu, Fedora, and Arch based containers containing full desktop environments in officially supported flavors accessible via any modern web browser.","title":"linuxserver/webtop"},{"location":"images/docker-webtop/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/webtop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-webtop/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 XFCE Alpine ubuntu-xfce \u2705 XFCE Ubuntu fedora-xfce \u2705 XFCE Fedora arch-xfce \u2705 XFCE Arch alpine-kde \u2705 KDE Alpine ubuntu-kde \u2705 KDE Ubuntu fedora-kde \u2705 KDE Fedora arch-kde \u2705 KDE Arch alpine-mate \u2705 MATE Alpine ubuntu-mate \u2705 MATE Ubuntu fedora-mate \u2705 MATE Fedora arch-mate \u2705 MATE Arch alpine-i3 \u2705 i3 Alpine ubuntu-i3 \u2705 i3 Ubuntu fedora-i3 \u2705 i3 Fedora arch-i3 \u2705 i3 Arch alpine-openbox \u2705 Openbox Alpine ubuntu-openbox \u2705 Openbox Ubuntu fedora-openbox \u2705 Openbox Fedora arch-openbox \u2705 Openbox Arch alpine-icewm \u2705 IceWM Alpine ubuntu-icewm \u2705 IceWM Ubuntu fedora-icewm \u2705 IceWM Fedora arch-icewm \u2705 IceWM Arch","title":"Version Tags"},{"location":"images/docker-webtop/#application-setup","text":"The Webtop can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false . You can access advanced features of the Guacamole remote desktop using ctrl+alt+shift enabling you to use remote copy/paste, an onscreen keyboard, or a baked in file manager. This can also be accessed by clicking the small circle on the left side of the screen. Modern GUI desktop apps (including some flavors terminals) have issues with the latest Docker and syscall compatibility, you can use Docker with the --security-opt seccomp=unconfined setting to allow these syscalls or try podman as they have updated their codebase to support them Unlike our other containers these Desktops are not designed to be upgraded by Docker, you will keep your home directoy but anything you installed system level will be lost if you upgrade an existing container. To keep packages up to date instead use Ubuntu's own apt, Alpine's apk, Fedora's dnf, or Arch's pacman program","title":"Application Setup"},{"location":"images/docker-webtop/#keyboard-layouts","text":"This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard If you ever lose your password you can always reset it by execing into the container as root: docker exec -it webtop passwd abc By default we perform all logic for the abc user and we reccomend using that user only in the container, but new users can be added as long as there is a startwm.sh executable script in their home directory. All of these containers are configured with passwordless sudo, we make no efforts to secure or harden these containers and we do not reccomend ever publishing their ports to the public Internet.","title":"Keyboard Layouts"},{"location":"images/docker-webtop/#hardware-acceleration-ubuntu-container-only","text":"Many desktop application will need access to a GPU to function properly and even some Desktop Environments have compisitor effects that will not function without a GPU. This is not a hard requirement and all base images will function without a video device mounted into the container.","title":"Hardware Acceleration (Ubuntu Container Only)"},{"location":"images/docker-webtop/#intelatiamd","text":"To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel/ATI/AMD"},{"location":"images/docker-webtop/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container.","title":"Nvidia"},{"location":"images/docker-webtop/#arm-devices","text":"Best effort is made to install tools to allow mounting in /dev/dri on Arm devices. In most cases if /dev/dri exists on the host it should just work. If running a Raspberry Pi 4 be sure to enable dtoverlay=vc4-fkms-v3d in your usercfg.txt.","title":"Arm Devices"},{"location":"images/docker-webtop/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-webtop/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: webtop: image: lscr.io/linuxserver/webtop:latest container_name: webtop security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional - TITLE=Webtop #optional volumes: - /path/to/data:/config - /var/run/docker.sock:/var/run/docker.sock #optional ports: - 3000:3000 devices: - /dev/dri:/dev/dri #optional shm_size: \"1gb\" #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-webtop/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=webtop \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -e TITLE=Webtop `#optional` \\ -p 3000:3000 \\ -v /path/to/data:/config \\ -v /var/run/docker.sock:/var/run/docker.sock `#optional` \\ --device /dev/dri:/dev/dri `#optional` \\ --shm-size=\"1gb\" `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/webtop:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-webtop/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-webtop/#ports-p","text":"Parameter Function 3000 Web Desktop GUI","title":"Ports (-p)"},{"location":"images/docker-webtop/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options. TITLE=Webtop String which will be used as page/tab title in the web browser.","title":"Environment Variables (-e)"},{"location":"images/docker-webtop/#volume-mappings-v","text":"Volume Function /config abc users home directory /var/run/docker.sock Docker Socket on the system, if you want to use Docker in the container","title":"Volume Mappings (-v)"},{"location":"images/docker-webtop/#device-mappings-device","text":"Parameter Function /dev/dri Add this for GL support (Linux hosts only)","title":"Device Mappings (--device)"},{"location":"images/docker-webtop/#miscellaneous-options","text":"Parameter Function --shm-size= We set this to 1 gig to prevent modern web browsers from crashing --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-webtop/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-webtop/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-webtop/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-webtop/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-webtop/#support-info","text":"Shell access whilst the container is running: docker exec -it webtop /bin/bash To monitor the logs of the container in realtime: docker logs -f webtop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' webtop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/webtop:latest","title":"Support Info"},{"location":"images/docker-webtop/#versions","text":"21.10.22: - Rebase xfce to Alpine 3.16, migrate to s6v3. 12.03.22: - Add documentation for mounting in a GPU. 05.02.22: - Rebase KDE Ubuntu to Jammy, add new documentation for updated gclient, stop recommending priv mode. 21.09.21: - Add Fedora and Arch images, show seccomp settings in readme. 26.09.21: - Rebase to Alpine versions to 3.14. 20.04.21: - Initial release.","title":"Versions"},{"location":"images/docker-wikijs/","text":"linuxserver/wikijs Wikijs A modern, lightweight and powerful wiki app built on NodeJS. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/wikijs:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: wikijs: image: lscr.io/linuxserver/wikijs:latest container_name: wikijs environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/data ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=wikijs \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/wikijs:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Port for Wiki.js's web interface. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where Wiki.js config is stored. /data Where Wiki.js data is stored. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it wikijs /bin/bash To monitor the logs of the container in realtime: docker logs -f wikijs Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' wikijs Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/wikijs:latest Versions 10.10.22: - Rebasing to alpine 3.16, migrate to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 28.04.20: - Added python dependency for some NPM modules as well as git for storage module 14.12.19: - Initial Release.","title":"wikijs"},{"location":"images/docker-wikijs/#linuxserverwikijs","text":"Wikijs A modern, lightweight and powerful wiki app built on NodeJS.","title":"linuxserver/wikijs"},{"location":"images/docker-wikijs/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/wikijs:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-wikijs/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-wikijs/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: wikijs: image: lscr.io/linuxserver/wikijs:latest container_name: wikijs environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/data ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-wikijs/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=wikijs \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/wikijs:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-wikijs/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-wikijs/#ports-p","text":"Parameter Function 3000 Port for Wiki.js's web interface.","title":"Ports (-p)"},{"location":"images/docker-wikijs/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-wikijs/#volume-mappings-v","text":"Volume Function /config Where Wiki.js config is stored. /data Where Wiki.js data is stored.","title":"Volume Mappings (-v)"},{"location":"images/docker-wikijs/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-wikijs/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-wikijs/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-wikijs/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-wikijs/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-wikijs/#support-info","text":"Shell access whilst the container is running: docker exec -it wikijs /bin/bash To monitor the logs of the container in realtime: docker logs -f wikijs Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' wikijs Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/wikijs:latest","title":"Support Info"},{"location":"images/docker-wikijs/#versions","text":"10.10.22: - Rebasing to alpine 3.16, migrate to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 28.04.20: - Added python dependency for some NPM modules as well as git for storage module 14.12.19: - Initial Release.","title":"Versions"},{"location":"images/docker-wireguard/","text":"linuxserver/wireguard WireGuard\u00ae is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/wireguard:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases with support for compiling Wireguard modules alpine \u2705 Stable releases based on Alpine without support for compiling Wireguard modules Application Setup During container start, it will first check if the wireguard module is already installed and loaded. Kernels newer than 5.6 generally have the wireguard module built-in (along with some older custom kernels). However, the module may not be enabled. Make sure it is enabled prior to starting the container. If the kernel is not built-in, or installed on host, the container will check if the kernel headers are present (in /usr/src ) and if not, it will attempt to download the necessary kernel headers from the ubuntu xenial/bionic , debian/raspbian buster repos; then will attempt to compile and install the kernel module. If the kernel headers are not found in either usr/src or in the repos mentioned, container will sleep indefinitely as wireguard cannot be installed. If you're on a debian/ubuntu based host with a custom or downstream distro provided kernel (ie. Pop!_OS), the container won't be able to install the kernel headers from the regular ubuntu and debian repos. In those cases, you can try installing the headers on the host via sudo apt install linux-headers-$(uname -r) (if distro version) and then add a volume mapping for /usr/src:/usr/src , or if custom built, map the location of the existing headers to allow the container to use host installed headers to build the kernel module (tested successful on Pop!_OS, ymmv). With regards to arm32/64 devices, Raspberry Pi 2-4 running the official ubuntu images or Raspbian Buster are supported out of the box. For all other devices and OSes, you can try installing the kernel headers on the host, and mapping /usr/src:/usr/src and it may just work (no guarantees). This can be run as a server or a client, based on the parameters used. Server Mode If the environment variable PEERS is set to a number or a list of strings separated by comma, the container will run in server mode and the necessary server and peer/client confs will be generated. The peer/client config qr codes will be output in the docker log. They will also be saved in text and png format under /config/peerX in case PEERS is a variable and an integer or /config/peer_X in case a list of names was provided instead of an integer. Variables SERVERURL , SERVERPORT , INTERNAL_SUBNET and PEERDNS are optional variables used for server mode. Any changes to these environment variables will trigger regeneration of server and peer confs. Peer/client confs will be recreated with existing private/public keys. Delete the peer folders for the keys to be recreated along with the confs. To add more peers/clients later on, you increment the PEERS environment variable or add more elements to the list and recreate the container. To display the QR codes of active peers again, you can use the following command and list the peer numbers as arguments: docker exec -it wireguard /app/show-peer 1 4 5 or docker exec -it wireguard /app/show-peer myPC myPhone myTablet (Keep in mind that the QR codes are also stored as PNGs in the config folder). The templates used for server and peer confs are saved under /config/templates . Advanced users can modify these templates and force conf generation by deleting /config/wg0.conf and restarting the container. Client Mode Do not set the PEERS environment variable. Drop your client conf into the config folder as /config/wg0.conf and start the container. If you get IPv6 related errors in the log and connection cannot be established, edit the AllowedIPs line in your peer/client wg0.conf to include only 0.0.0.0/0 and not ::/0 ; and restart the container. Road warriors, roaming and returning home If you plan to use Wireguard both remotely and locally, say on your mobile phone, you will need to consider routing. Most firewalls will not route ports forwarded on your WAN interface correctly to the LAN out of the box. This means that when you return home, even though you can see the Wireguard server, the return packets will probably get lost. This is not a Wireguard specific issue and the two generally accepted solutions are NAT reflection (setting your edge router/firewall up in such a way as it translates internal packets correctly) or split horizon DNS (setting your internal DNS to return the private rather than public IP when connecting locally). Both of these approaches have positives and negatives however their setup is out of scope for this document as everyone's network layout and equipment will be different. Maintaining local access to attached services ** Note: This is not a supported configuration by Linuxserver.io - use at your own risk. When routing via Wireguard from another container using the service option in docker, you might lose access to the containers webUI locally. To avoid this, exclude the docker subnet from being routed via Wireguard by modifying your wg0.conf like so (modifying the subnets as you require): ini [Interface] PrivateKey = Address = 9.8.7.6/32 DNS = 8.8.8.8 PostUp = DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.0.0/16; HOMENET2=10.0.0.0/8; HOMENET3=172.16.0.0/12; ip route add $HOMENET3 via $DROUTE;ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT -d $HOMENET3 -j ACCEPT; iptables -A OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT PreDown = HOMENET=192.168.0.0/16; HOMENET2=10.0.0.0/8; HOMENET3=172.16.0.0/12; ip route del $HOMENET3 via $DROUTE;ip route del $HOMENET2 via $DROUTE; ip route del $HOMENET via $DROUTE; iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT; iptables -D OUTPUT -d $HOMENET -j ACCEPT; iptables -D OUTPUT -d $HOMENET2 -j ACCEPT; iptables -D OUTPUT -d $HOMENET3 -j ACCEPT Site-to-site VPN ** Note: This is not a supported configuration by Linuxserver.io - use at your own risk. Site-to-site VPN in server mode requires customizing the AllowedIPs statement for a specific peer in wg0.conf . Since wg0.conf is autogenerated when server vars are changed, it is not recommended to edit it manually. In order to customize the AllowedIPs statement for a specific peer in wg0.conf , you can set an env var SERVER_ALLOWEDIPS_PEER_ to the additional subnets you'd like to add, comma separated and excluding the peer IP (ie. \"192.168.1.0/24,192.168.2.0/24\" ). Replace with either the name or number of a peer (whichever is used in the PEERS var). For instance SERVER_ALLOWEDIPS_PEER_laptop=\"192.168.1.0/24,192.168.2.0/24\" will result in the wg0.conf entry AllowedIPs = 10.13.13.2,192.168.1.0/24,192.168.2.0/24 for the peer named laptop . Keep in mind that this var will only be considered when the confs are regenerated. Adding this var for an existing peer won't force a regeneration. You can delete wg0.conf and restart the container to force regeneration if necessary. Don't forget to set the necessary POSTUP and POSTDOWN rules in your client's peer conf for lan access. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: wireguard: image: lscr.io/linuxserver/wireguard:latest container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SERVERURL=wireguard.domain.com #optional - SERVERPORT=51820 #optional - PEERS=1 #optional - PEERDNS=auto #optional - INTERNAL_SUBNET=10.13.13.0 #optional - ALLOWEDIPS=0.0.0.0/0 #optional - LOG_CONFS=true #optional volumes: - /path/to/appdata/config:/config - /lib/modules:/lib/modules #optional ports: - 51820:51820/udp sysctls: - net.ipv4.conf.all.src_valid_mark=1 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=wireguard \\ --cap-add=NET_ADMIN \\ --cap-add=SYS_MODULE \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SERVERURL=wireguard.domain.com `#optional` \\ -e SERVERPORT=51820 `#optional` \\ -e PEERS=1 `#optional` \\ -e PEERDNS=auto `#optional` \\ -e INTERNAL_SUBNET=10.13.13.0 `#optional` \\ -e ALLOWEDIPS=0.0.0.0/0 `#optional` \\ -e LOG_CONFS=true `#optional` \\ -p 51820:51820/udp \\ -v /path/to/appdata/config:/config \\ -v /lib/modules:/lib/modules `#optional` \\ --sysctl=\"net.ipv4.conf.all.src_valid_mark=1\" \\ --restart unless-stopped \\ lscr.io/linuxserver/wireguard:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 51820/udp wireguard port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SERVERURL=wireguard.domain.com External IP or domain name for docker host. Used in server mode. If set to auto , the container will try to determine and set the external IP automatically SERVERPORT=51820 External port for docker host. Used in server mode. PEERS=1 Number of peers to create confs for. Required for server mode. Can also be a list of names: myPC,myPhone,myTablet (alphanumeric only) PEERDNS=auto DNS server set in peer/client configs (can be set as 8.8.8.8 ). Used in server mode. Defaults to auto , which uses wireguard docker host's DNS via included CoreDNS forward. INTERNAL_SUBNET=10.13.13.0 Internal subnet for the wireguard and server and peers (only change if it clashes). Used in server mode. ALLOWEDIPS=0.0.0.0/0 The IPs/Ranges that the peers will be able to reach using the VPN connection. If not specified the default value is: '0.0.0.0/0, ::0/0' This will cause ALL traffic to route through the VPN, if you want split tunneling, set this to only the IPs you would like to use the tunnel AND the ip of the server's WG ip, such as 10.13.13.1. LOG_CONFS=true Generated QR codes will be displayed in the docker log. Set to false to skip log output. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /lib/modules Maps host's modules folder. Only required if compiling wireguard modules. Miscellaneous Options Parameter Function --sysctl= Required for client mode. Portainer notice {% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %} Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it wireguard /bin/bash To monitor the logs of the container in realtime: docker logs -f wireguard Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' wireguard Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/wireguard:latest Versions 26.10.22: - Better handle unsupported peer names. Improve logging. 12.10.22: - Add Alpine branch. Optimize wg and coredns services. 09.10.22: - Switch back to iptables-legacy due to issues on some hosts. 04.10.22: - Rebase to Jammy. Upgrade to s6v3. 16.05.22: - Improve NAT handling in server mode when multiple ethernet devices are present. 23.04.22: - Add pre-shared key support. Automatically added to all new peer confs generated, existing ones are left without to ensure no breaking changes. 10.04.22: - Rebase to Ubuntu Focal. Add LOG_CONFS env var. Remove deprecated add-peer command. 28.10.21: - Add site-to-site vpn support. 11.02.21: - Fix bug related to changing internal subnet and named peer confs not updating. 06.10.20: - Disable CoreDNS in client mode, or if port 53 is already in use in server mode. 04.10.20: - Allow to specify a list of names as PEERS and add ALLOWEDIPS environment variable. Also, add peer name/id to each one of the peer sections in wg0.conf. Important: Existing users need to delete /config/templates/peer.conf and restart 27.09.20: - Cleaning service binding example to have accurate PreDown script. 06.08.20: - Replace resolvconf with openresolv due to dns issues when a client based on this image is connected to a server also based on this image. Add IPv6 info to readme. Display kernel version in logs. 29.07.20: - Update Coredns config to detect dns loops (existing users need to delete /config/coredns/Corefile and restart). 27.07.20: - Update Coredns config to prevent issues with non-user-defined bridge networks (existing users need to delete /config/coredns/Corefile and restart). 05.07.20: - Add Debian updates and security repos for headers. 25.06.20: - Simplify module tests, prevent iptables issues from resulting in false negatives. 19.06.20: - Add support for Ubuntu Focal (20.04) kernels. Compile wireguard tools and kernel module instead of using the ubuntu packages. Make module install optional. Improve verbosity in logs. 29.05.20: - Add support for 64bit raspbian. 28.04.20: - Add Buster/Stretch backports repos for Debian. Tested with OMV 5 and OMV 4 (on kernel 4.19.0-0.bpo.8-amd64). 20.04.20: - Fix typo in client mode conf existence check. 13.04.20: - Fix bug that forced conf recreation on every start. 08.04.20: - Add arm32/64 builds and enable multi-arch (rpi4 with ubuntu and raspbian buster tested). Add CoreDNS for PEERDNS=auto setting. Update the add-peer / show-peer scripts to utilize the templates and the INTERNAL_SUBNET var (previously missed, oops). 05.04.20: - Add INTERNAL_SUBNET variable to prevent subnet clashes. Add templates for server and peer confs. 01.04.20: - Add show-peer script and include info on host installed headers. 31.03.20: - Initial Release.","title":"wireguard"},{"location":"images/docker-wireguard/#linuxserverwireguard","text":"WireGuard\u00ae is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry.","title":"linuxserver/wireguard"},{"location":"images/docker-wireguard/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/wireguard:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-wireguard/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases with support for compiling Wireguard modules alpine \u2705 Stable releases based on Alpine without support for compiling Wireguard modules","title":"Version Tags"},{"location":"images/docker-wireguard/#application-setup","text":"During container start, it will first check if the wireguard module is already installed and loaded. Kernels newer than 5.6 generally have the wireguard module built-in (along with some older custom kernels). However, the module may not be enabled. Make sure it is enabled prior to starting the container. If the kernel is not built-in, or installed on host, the container will check if the kernel headers are present (in /usr/src ) and if not, it will attempt to download the necessary kernel headers from the ubuntu xenial/bionic , debian/raspbian buster repos; then will attempt to compile and install the kernel module. If the kernel headers are not found in either usr/src or in the repos mentioned, container will sleep indefinitely as wireguard cannot be installed. If you're on a debian/ubuntu based host with a custom or downstream distro provided kernel (ie. Pop!_OS), the container won't be able to install the kernel headers from the regular ubuntu and debian repos. In those cases, you can try installing the headers on the host via sudo apt install linux-headers-$(uname -r) (if distro version) and then add a volume mapping for /usr/src:/usr/src , or if custom built, map the location of the existing headers to allow the container to use host installed headers to build the kernel module (tested successful on Pop!_OS, ymmv). With regards to arm32/64 devices, Raspberry Pi 2-4 running the official ubuntu images or Raspbian Buster are supported out of the box. For all other devices and OSes, you can try installing the kernel headers on the host, and mapping /usr/src:/usr/src and it may just work (no guarantees). This can be run as a server or a client, based on the parameters used.","title":"Application Setup"},{"location":"images/docker-wireguard/#server-mode","text":"If the environment variable PEERS is set to a number or a list of strings separated by comma, the container will run in server mode and the necessary server and peer/client confs will be generated. The peer/client config qr codes will be output in the docker log. They will also be saved in text and png format under /config/peerX in case PEERS is a variable and an integer or /config/peer_X in case a list of names was provided instead of an integer. Variables SERVERURL , SERVERPORT , INTERNAL_SUBNET and PEERDNS are optional variables used for server mode. Any changes to these environment variables will trigger regeneration of server and peer confs. Peer/client confs will be recreated with existing private/public keys. Delete the peer folders for the keys to be recreated along with the confs. To add more peers/clients later on, you increment the PEERS environment variable or add more elements to the list and recreate the container. To display the QR codes of active peers again, you can use the following command and list the peer numbers as arguments: docker exec -it wireguard /app/show-peer 1 4 5 or docker exec -it wireguard /app/show-peer myPC myPhone myTablet (Keep in mind that the QR codes are also stored as PNGs in the config folder). The templates used for server and peer confs are saved under /config/templates . Advanced users can modify these templates and force conf generation by deleting /config/wg0.conf and restarting the container.","title":"Server Mode"},{"location":"images/docker-wireguard/#client-mode","text":"Do not set the PEERS environment variable. Drop your client conf into the config folder as /config/wg0.conf and start the container. If you get IPv6 related errors in the log and connection cannot be established, edit the AllowedIPs line in your peer/client wg0.conf to include only 0.0.0.0/0 and not ::/0 ; and restart the container.","title":"Client Mode"},{"location":"images/docker-wireguard/#road-warriors-roaming-and-returning-home","text":"If you plan to use Wireguard both remotely and locally, say on your mobile phone, you will need to consider routing. Most firewalls will not route ports forwarded on your WAN interface correctly to the LAN out of the box. This means that when you return home, even though you can see the Wireguard server, the return packets will probably get lost. This is not a Wireguard specific issue and the two generally accepted solutions are NAT reflection (setting your edge router/firewall up in such a way as it translates internal packets correctly) or split horizon DNS (setting your internal DNS to return the private rather than public IP when connecting locally). Both of these approaches have positives and negatives however their setup is out of scope for this document as everyone's network layout and equipment will be different.","title":"Road warriors, roaming and returning home"},{"location":"images/docker-wireguard/#maintaining-local-access-to-attached-services","text":"** Note: This is not a supported configuration by Linuxserver.io - use at your own risk. When routing via Wireguard from another container using the service option in docker, you might lose access to the containers webUI locally. To avoid this, exclude the docker subnet from being routed via Wireguard by modifying your wg0.conf like so (modifying the subnets as you require): ini [Interface] PrivateKey = Address = 9.8.7.6/32 DNS = 8.8.8.8 PostUp = DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.0.0/16; HOMENET2=10.0.0.0/8; HOMENET3=172.16.0.0/12; ip route add $HOMENET3 via $DROUTE;ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT -d $HOMENET3 -j ACCEPT; iptables -A OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT PreDown = HOMENET=192.168.0.0/16; HOMENET2=10.0.0.0/8; HOMENET3=172.16.0.0/12; ip route del $HOMENET3 via $DROUTE;ip route del $HOMENET2 via $DROUTE; ip route del $HOMENET via $DROUTE; iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT; iptables -D OUTPUT -d $HOMENET -j ACCEPT; iptables -D OUTPUT -d $HOMENET2 -j ACCEPT; iptables -D OUTPUT -d $HOMENET3 -j ACCEPT","title":"Maintaining local access to attached services"},{"location":"images/docker-wireguard/#site-to-site-vpn","text":"** Note: This is not a supported configuration by Linuxserver.io - use at your own risk. Site-to-site VPN in server mode requires customizing the AllowedIPs statement for a specific peer in wg0.conf . Since wg0.conf is autogenerated when server vars are changed, it is not recommended to edit it manually. In order to customize the AllowedIPs statement for a specific peer in wg0.conf , you can set an env var SERVER_ALLOWEDIPS_PEER_ to the additional subnets you'd like to add, comma separated and excluding the peer IP (ie. \"192.168.1.0/24,192.168.2.0/24\" ). Replace with either the name or number of a peer (whichever is used in the PEERS var). For instance SERVER_ALLOWEDIPS_PEER_laptop=\"192.168.1.0/24,192.168.2.0/24\" will result in the wg0.conf entry AllowedIPs = 10.13.13.2,192.168.1.0/24,192.168.2.0/24 for the peer named laptop . Keep in mind that this var will only be considered when the confs are regenerated. Adding this var for an existing peer won't force a regeneration. You can delete wg0.conf and restart the container to force regeneration if necessary. Don't forget to set the necessary POSTUP and POSTDOWN rules in your client's peer conf for lan access.","title":"Site-to-site VPN"},{"location":"images/docker-wireguard/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-wireguard/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: wireguard: image: lscr.io/linuxserver/wireguard:latest container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SERVERURL=wireguard.domain.com #optional - SERVERPORT=51820 #optional - PEERS=1 #optional - PEERDNS=auto #optional - INTERNAL_SUBNET=10.13.13.0 #optional - ALLOWEDIPS=0.0.0.0/0 #optional - LOG_CONFS=true #optional volumes: - /path/to/appdata/config:/config - /lib/modules:/lib/modules #optional ports: - 51820:51820/udp sysctls: - net.ipv4.conf.all.src_valid_mark=1 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-wireguard/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=wireguard \\ --cap-add=NET_ADMIN \\ --cap-add=SYS_MODULE \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SERVERURL=wireguard.domain.com `#optional` \\ -e SERVERPORT=51820 `#optional` \\ -e PEERS=1 `#optional` \\ -e PEERDNS=auto `#optional` \\ -e INTERNAL_SUBNET=10.13.13.0 `#optional` \\ -e ALLOWEDIPS=0.0.0.0/0 `#optional` \\ -e LOG_CONFS=true `#optional` \\ -p 51820:51820/udp \\ -v /path/to/appdata/config:/config \\ -v /lib/modules:/lib/modules `#optional` \\ --sysctl=\"net.ipv4.conf.all.src_valid_mark=1\" \\ --restart unless-stopped \\ lscr.io/linuxserver/wireguard:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-wireguard/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-wireguard/#ports-p","text":"Parameter Function 51820/udp wireguard port","title":"Ports (-p)"},{"location":"images/docker-wireguard/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SERVERURL=wireguard.domain.com External IP or domain name for docker host. Used in server mode. If set to auto , the container will try to determine and set the external IP automatically SERVERPORT=51820 External port for docker host. Used in server mode. PEERS=1 Number of peers to create confs for. Required for server mode. Can also be a list of names: myPC,myPhone,myTablet (alphanumeric only) PEERDNS=auto DNS server set in peer/client configs (can be set as 8.8.8.8 ). Used in server mode. Defaults to auto , which uses wireguard docker host's DNS via included CoreDNS forward. INTERNAL_SUBNET=10.13.13.0 Internal subnet for the wireguard and server and peers (only change if it clashes). Used in server mode. ALLOWEDIPS=0.0.0.0/0 The IPs/Ranges that the peers will be able to reach using the VPN connection. If not specified the default value is: '0.0.0.0/0, ::0/0' This will cause ALL traffic to route through the VPN, if you want split tunneling, set this to only the IPs you would like to use the tunnel AND the ip of the server's WG ip, such as 10.13.13.1. LOG_CONFS=true Generated QR codes will be displayed in the docker log. Set to false to skip log output.","title":"Environment Variables (-e)"},{"location":"images/docker-wireguard/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /lib/modules Maps host's modules folder. Only required if compiling wireguard modules.","title":"Volume Mappings (-v)"},{"location":"images/docker-wireguard/#miscellaneous-options","text":"Parameter Function --sysctl= Required for client mode.","title":"Miscellaneous Options"},{"location":"images/docker-wireguard/#portainer-notice","text":"{% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %}","title":"Portainer notice"},{"location":"images/docker-wireguard/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-wireguard/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-wireguard/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-wireguard/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-wireguard/#support-info","text":"Shell access whilst the container is running: docker exec -it wireguard /bin/bash To monitor the logs of the container in realtime: docker logs -f wireguard Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' wireguard Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/wireguard:latest","title":"Support Info"},{"location":"images/docker-wireguard/#versions","text":"26.10.22: - Better handle unsupported peer names. Improve logging. 12.10.22: - Add Alpine branch. Optimize wg and coredns services. 09.10.22: - Switch back to iptables-legacy due to issues on some hosts. 04.10.22: - Rebase to Jammy. Upgrade to s6v3. 16.05.22: - Improve NAT handling in server mode when multiple ethernet devices are present. 23.04.22: - Add pre-shared key support. Automatically added to all new peer confs generated, existing ones are left without to ensure no breaking changes. 10.04.22: - Rebase to Ubuntu Focal. Add LOG_CONFS env var. Remove deprecated add-peer command. 28.10.21: - Add site-to-site vpn support. 11.02.21: - Fix bug related to changing internal subnet and named peer confs not updating. 06.10.20: - Disable CoreDNS in client mode, or if port 53 is already in use in server mode. 04.10.20: - Allow to specify a list of names as PEERS and add ALLOWEDIPS environment variable. Also, add peer name/id to each one of the peer sections in wg0.conf. Important: Existing users need to delete /config/templates/peer.conf and restart 27.09.20: - Cleaning service binding example to have accurate PreDown script. 06.08.20: - Replace resolvconf with openresolv due to dns issues when a client based on this image is connected to a server also based on this image. Add IPv6 info to readme. Display kernel version in logs. 29.07.20: - Update Coredns config to detect dns loops (existing users need to delete /config/coredns/Corefile and restart). 27.07.20: - Update Coredns config to prevent issues with non-user-defined bridge networks (existing users need to delete /config/coredns/Corefile and restart). 05.07.20: - Add Debian updates and security repos for headers. 25.06.20: - Simplify module tests, prevent iptables issues from resulting in false negatives. 19.06.20: - Add support for Ubuntu Focal (20.04) kernels. Compile wireguard tools and kernel module instead of using the ubuntu packages. Make module install optional. Improve verbosity in logs. 29.05.20: - Add support for 64bit raspbian. 28.04.20: - Add Buster/Stretch backports repos for Debian. Tested with OMV 5 and OMV 4 (on kernel 4.19.0-0.bpo.8-amd64). 20.04.20: - Fix typo in client mode conf existence check. 13.04.20: - Fix bug that forced conf recreation on every start. 08.04.20: - Add arm32/64 builds and enable multi-arch (rpi4 with ubuntu and raspbian buster tested). Add CoreDNS for PEERDNS=auto setting. Update the add-peer / show-peer scripts to utilize the templates and the INTERNAL_SUBNET var (previously missed, oops). 05.04.20: - Add INTERNAL_SUBNET variable to prevent subnet clashes. Add templates for server and peer confs. 01.04.20: - Add show-peer script and include info on host installed headers. 31.03.20: - Initial Release.","title":"Versions"},{"location":"images/docker-wireshark/","text":"linuxserver/wireshark Wireshark is the world\u2019s foremost and widely-used network protocol analyzer. It lets you see what\u2019s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. Wireshark development thrives thanks to the volunteer contributions of networking experts around the globe and is the continuation of a project started by Gerald Combs in 1998. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/wireshark:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true In order to dump from an interface you will need to pass NET_ADMIN at a minimum, optionally you can use host networking to capture from your host level device or specify a Docker network you want to capture from. If you do not specificy host networking you will need to map port 3000 with -p 3000:3000 . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: wireshark: image: lscr.io/linuxserver/wireshark:latest container_name: wireshark cap_add: - NET_ADMIN security_opt: - seccomp:unconfined #optional network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=wireshark \\ --net=host \\ --cap-add=NET_ADMIN \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 `#optional` \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/wireshark:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 WireShark desktop gui, only use this if you are not using host mode and sniffing Docker network traffic. Networking ( --net ) Parameter Function --net=host Use Host Networking Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings and potentially dump files. Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Portainer notice {% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %} Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it wireshark /bin/bash To monitor the logs of the container in realtime: docker logs -f wireshark Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' wireshark Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/wireshark:latest Versions 23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 14.02.22: - Rebase to Alpine. 31.03.20: - Initial release.","title":"wireshark"},{"location":"images/docker-wireshark/#linuxserverwireshark","text":"Wireshark is the world\u2019s foremost and widely-used network protocol analyzer. It lets you see what\u2019s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. Wireshark development thrives thanks to the volunteer contributions of networking experts around the globe and is the continuation of a project started by Gerald Combs in 1998.","title":"linuxserver/wireshark"},{"location":"images/docker-wireshark/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/wireshark:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-wireshark/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true In order to dump from an interface you will need to pass NET_ADMIN at a minimum, optionally you can use host networking to capture from your host level device or specify a Docker network you want to capture from. If you do not specificy host networking you will need to map port 3000 with -p 3000:3000 .","title":"Application Setup"},{"location":"images/docker-wireshark/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-wireshark/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: wireshark: image: lscr.io/linuxserver/wireshark:latest container_name: wireshark cap_add: - NET_ADMIN security_opt: - seccomp:unconfined #optional network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-wireshark/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=wireshark \\ --net=host \\ --cap-add=NET_ADMIN \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 `#optional` \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/wireshark:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-wireshark/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-wireshark/#ports-p","text":"Parameter Function 3000 WireShark desktop gui, only use this if you are not using host mode and sniffing Docker network traffic.","title":"Ports (-p)"},{"location":"images/docker-wireshark/#networking-net","text":"Parameter Function --net=host Use Host Networking","title":"Networking (--net)"},{"location":"images/docker-wireshark/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-wireshark/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings and potentially dump files.","title":"Volume Mappings (-v)"},{"location":"images/docker-wireshark/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-wireshark/#portainer-notice","text":"{% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %}","title":"Portainer notice"},{"location":"images/docker-wireshark/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-wireshark/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-wireshark/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-wireshark/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-wireshark/#support-info","text":"Shell access whilst the container is running: docker exec -it wireshark /bin/bash To monitor the logs of the container in realtime: docker logs -f wireshark Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' wireshark Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/wireshark:latest","title":"Support Info"},{"location":"images/docker-wireshark/#versions","text":"23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 14.02.22: - Rebase to Alpine. 31.03.20: - Initial release.","title":"Versions"},{"location":"images/docker-xbackbone/","text":"linuxserver/xbackbone Xbackbone is a simple, self-hosted, lightweight PHP file manager that support the instant sharing tool ShareX and *NIX systems. It supports uploading and displaying images, GIF, video, code, formatted text, and file downloading and uploading. Also have a web UI with multi user management, past uploads history and search support. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/xbackbone:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the WebUI at \\ :80/443. Follow the installation wizard. For more information, check out XBackBone . If you want to change the PHP max upload size you can override the php.ini file by adding options in /config/php/php-local.ini Example: upload_max_filesize = 25M post_max_size = 25M For reverse proxying, remember to change the base_url in /config/www/xbackbone/config.php to your domain if you initially set up the application with a local url. E.g. 'base_url' => 'https://images.yourdomain.com', Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: xbackbone: image: lscr.io/linuxserver/xbackbone:latest container_name: xbackbone environment: - PUID=1000 - PGID=1000 - TZ=Europe/Oslo volumes: - /path/to/data:/config ports: - 80:80 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=xbackbone \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/Oslo \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/xbackbone:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http gui 443 https gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/Oslo Timezone (i.e., Europe/Oslo) Volume Mappings ( -v ) Volume Function /config config directory volume mapping Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it xbackbone /bin/bash To monitor the logs of the container in realtime: docker logs -f xbackbone Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' xbackbone Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/xbackbone:latest Versions 04.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 01.11.22: - Move application install to /app/www/public, add migration notices for existing users. Container updates should now update the application correctly 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 02.08.22: - Added note about updating. 06.06.21: - Initial Release.","title":"xbackbone"},{"location":"images/docker-xbackbone/#linuxserverxbackbone","text":"Xbackbone is a simple, self-hosted, lightweight PHP file manager that support the instant sharing tool ShareX and *NIX systems. It supports uploading and displaying images, GIF, video, code, formatted text, and file downloading and uploading. Also have a web UI with multi user management, past uploads history and search support.","title":"linuxserver/xbackbone"},{"location":"images/docker-xbackbone/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/xbackbone:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-xbackbone/#application-setup","text":"Access the WebUI at \\ :80/443. Follow the installation wizard. For more information, check out XBackBone . If you want to change the PHP max upload size you can override the php.ini file by adding options in /config/php/php-local.ini Example: upload_max_filesize = 25M post_max_size = 25M For reverse proxying, remember to change the base_url in /config/www/xbackbone/config.php to your domain if you initially set up the application with a local url. E.g. 'base_url' => 'https://images.yourdomain.com',","title":"Application Setup"},{"location":"images/docker-xbackbone/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-xbackbone/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: xbackbone: image: lscr.io/linuxserver/xbackbone:latest container_name: xbackbone environment: - PUID=1000 - PGID=1000 - TZ=Europe/Oslo volumes: - /path/to/data:/config ports: - 80:80 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-xbackbone/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=xbackbone \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/Oslo \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/xbackbone:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-xbackbone/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-xbackbone/#ports-p","text":"Parameter Function 80 http gui 443 https gui","title":"Ports (-p)"},{"location":"images/docker-xbackbone/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/Oslo Timezone (i.e., Europe/Oslo)","title":"Environment Variables (-e)"},{"location":"images/docker-xbackbone/#volume-mappings-v","text":"Volume Function /config config directory volume mapping","title":"Volume Mappings (-v)"},{"location":"images/docker-xbackbone/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-xbackbone/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-xbackbone/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-xbackbone/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-xbackbone/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-xbackbone/#support-info","text":"Shell access whilst the container is running: docker exec -it xbackbone /bin/bash To monitor the logs of the container in realtime: docker logs -f xbackbone Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' xbackbone Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/xbackbone:latest","title":"Support Info"},{"location":"images/docker-xbackbone/#versions","text":"04.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 01.11.22: - Move application install to /app/www/public, add migration notices for existing users. Container updates should now update the application correctly 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 02.08.22: - Added note about updating. 06.06.21: - Initial Release.","title":"Versions"},{"location":"images/docker-yq/","text":"The LinuxServer.io team brings you another container release featuring: regular and timely application updates easy user mappings (PGID, PUID) custom base image with s6 overlay weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth regular security updates Find us at: * Blog - all the things you can do with our containers including How-To guides, opinions and much more! * Discord - realtime support / chat with the community and the team. * Discourse - post on our community forum. * Fleet - an online web interface which displays all of our maintained images. * GitHub - view the source for all of our repositories. * Open Collective - please consider helping us by either donating or contributing to our budget linuxserver/yq yq : Command-line YAML/XML processor - jq wrapper for YAML and XML documents. This image includes yq , jq , and xq . Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/yq should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Docker cli docker run --rm \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ --entrypoint yq \\ linuxserver/yq \\ .foo.bar input.yml You can replace the last line with any yq command and argument, which will be passed to yq inside the image. docker run --rm \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ --entrypoint jq \\ linuxserver/yq \\ .foo.bar input.json You can replace the last line with any jq command and argument, which will be passed to jq inside the image. docker run --rm \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ --entrypoint xq \\ linuxserver/yq \\ .foo.bar input.xml You can replace the last line with any xq command and argument, which will be passed to xq inside the image. Recommended method We provide a very convenient script that allows the yq container to run as if it was installed natively: sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-yq/master/run-yq.sh -o /usr/local/bin/yq sudo chmod +x /usr/local/bin/yq Running these two commands on your docker host once will let you issue commands such as yq .foo.bar input.yml and the yq container will do its job behind the scenes. sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-yq/master/run-jq.sh -o /usr/local/bin/jq sudo chmod +x /usr/local/bin/jq Running these two commands on your docker host once will let you issue commands such as jq .foo.bar input.json and the jq container will do its job behind the scenes. sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-yq/master/run-xq.sh -o /usr/local/bin/xq sudo chmod +x /usr/local/bin/xq Running these two commands on your docker host once will let you issue commands such as xq .foo.bar input.xml and the xq container will do its job behind the scenes. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above. Support Info image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/yq Updating Info Via Docker Cli Update the image: docker pull linuxserver/yq You can also remove the old dangling images: docker image prune Building locally If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-yq.git cd docker-yq docker build \\ --no-cache \\ --pull \\ -t linuxserver/yq:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 . Versions 19.09.22: - Rebase to 3.15. 18.05.21: - Rebase to 3.13. add linuxserver wheel repo. 09.10.20: - Fix run scripts evaluating $ in cases where they should not (ex: inside single quotes). Please rerun the Recommended method install/setup commands. 07.10.20: - Initial Release.","title":"yq"},{"location":"images/docker-yq/#linuxserveryq","text":"yq : Command-line YAML/XML processor - jq wrapper for YAML and XML documents. This image includes yq , jq , and xq .","title":"linuxserver/yq"},{"location":"images/docker-yq/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/yq should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-yq/#usage","text":"","title":"Usage"},{"location":"images/docker-yq/#docker-cli","text":"docker run --rm \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ --entrypoint yq \\ linuxserver/yq \\ .foo.bar input.yml You can replace the last line with any yq command and argument, which will be passed to yq inside the image. docker run --rm \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ --entrypoint jq \\ linuxserver/yq \\ .foo.bar input.json You can replace the last line with any jq command and argument, which will be passed to jq inside the image. docker run --rm \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ --entrypoint xq \\ linuxserver/yq \\ .foo.bar input.xml You can replace the last line with any xq command and argument, which will be passed to xq inside the image.","title":"Docker cli"},{"location":"images/docker-yq/#recommended-method","text":"We provide a very convenient script that allows the yq container to run as if it was installed natively: sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-yq/master/run-yq.sh -o /usr/local/bin/yq sudo chmod +x /usr/local/bin/yq Running these two commands on your docker host once will let you issue commands such as yq .foo.bar input.yml and the yq container will do its job behind the scenes. sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-yq/master/run-jq.sh -o /usr/local/bin/jq sudo chmod +x /usr/local/bin/jq Running these two commands on your docker host once will let you issue commands such as jq .foo.bar input.json and the jq container will do its job behind the scenes. sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-yq/master/run-xq.sh -o /usr/local/bin/xq sudo chmod +x /usr/local/bin/xq Running these two commands on your docker host once will let you issue commands such as xq .foo.bar input.xml and the xq container will do its job behind the scenes.","title":"Recommended method"},{"location":"images/docker-yq/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above.","title":"Docker Mods"},{"location":"images/docker-yq/#support-info","text":"image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/yq","title":"Support Info"},{"location":"images/docker-yq/#updating-info","text":"","title":"Updating Info"},{"location":"images/docker-yq/#via-docker-cli","text":"Update the image: docker pull linuxserver/yq You can also remove the old dangling images: docker image prune","title":"Via Docker Cli"},{"location":"images/docker-yq/#building-locally","text":"If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-yq.git cd docker-yq docker build \\ --no-cache \\ --pull \\ -t linuxserver/yq:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 .","title":"Building locally"},{"location":"images/docker-yq/#versions","text":"19.09.22: - Rebase to 3.15. 18.05.21: - Rebase to 3.13. add linuxserver wheel repo. 09.10.20: - Fix run scripts evaluating $ in cases where they should not (ex: inside single quotes). Please rerun the Recommended method install/setup commands. 07.10.20: - Initial Release.","title":"Versions"},{"location":"images/docker-znc/","text":"linuxserver/znc Znc is an IRC network bouncer or BNC. It can detach the client from the actual IRC server, and also from selected channels. Multiple clients from different locations can connect to a single ZNC account simultaneously and therefore appear under the same nickname on IRC. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/znc:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup To log in to the application, browse to http:// :6501. Default User: admin Default Password: admin change password ASAP. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: znc: image: lscr.io/linuxserver/znc:latest container_name: znc environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 6501:6501 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=znc \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6501:6501 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/znc:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 6501 Port ZNC listens on. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where local ZNC data is stored. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it znc /bin/bash To monitor the logs of the container in realtime: docker logs -f znc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' znc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/znc:latest Versions 19.01.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 02.11.19: - Add znc-palaver module. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 31.01.19: - Add pipeline logic and multi arch. 30.01.19: - Add push and clientbuffer modules. 17.08.18: - Rebase to alpine 3.8, use buildstage. 03.01.18: - Deprecate cpu_core routine lack of scaling. 07.12.17: - Rebase alpine linux 3.7. 25.10.17: - Remove debug switch from run command. 26.05.17: - Rebase alpine linux 3.6. 06.02.17: - Rebase alpine linux 3.5. 19.01.17: - Add playback module. 07.01.17: - Add ca-certificates package, resolve sasl issues. 07.12.16: - Use scanelf to determine runtime dependencies. Fix error with continuation. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 11.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 20.08.16: - Rebase to alpine linux, move to main repository. 11.12.15: - Initial Release.","title":"znc"},{"location":"images/docker-znc/#linuxserverznc","text":"Znc is an IRC network bouncer or BNC. It can detach the client from the actual IRC server, and also from selected channels. Multiple clients from different locations can connect to a single ZNC account simultaneously and therefore appear under the same nickname on IRC.","title":"linuxserver/znc"},{"location":"images/docker-znc/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/znc:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-znc/#application-setup","text":"To log in to the application, browse to http:// :6501. Default User: admin Default Password: admin change password ASAP.","title":"Application Setup"},{"location":"images/docker-znc/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-znc/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: znc: image: lscr.io/linuxserver/znc:latest container_name: znc environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 6501:6501 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-znc/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=znc \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6501:6501 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/znc:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-znc/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-znc/#ports-p","text":"Parameter Function 6501 Port ZNC listens on.","title":"Ports (-p)"},{"location":"images/docker-znc/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-znc/#volume-mappings-v","text":"Volume Function /config Where local ZNC data is stored.","title":"Volume Mappings (-v)"},{"location":"images/docker-znc/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-znc/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-znc/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-znc/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-znc/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-znc/#support-info","text":"Shell access whilst the container is running: docker exec -it znc /bin/bash To monitor the logs of the container in realtime: docker logs -f znc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' znc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/znc:latest","title":"Support Info"},{"location":"images/docker-znc/#versions","text":"19.01.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 02.11.19: - Add znc-palaver module. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 31.01.19: - Add pipeline logic and multi arch. 30.01.19: - Add push and clientbuffer modules. 17.08.18: - Rebase to alpine 3.8, use buildstage. 03.01.18: - Deprecate cpu_core routine lack of scaling. 07.12.17: - Rebase alpine linux 3.7. 25.10.17: - Remove debug switch from run command. 26.05.17: - Rebase alpine linux 3.6. 06.02.17: - Rebase alpine linux 3.5. 19.01.17: - Add playback module. 07.01.17: - Add ca-certificates package, resolve sasl issues. 07.12.16: - Use scanelf to determine runtime dependencies. Fix error with continuation. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 11.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 20.08.16: - Rebase to alpine linux, move to main repository. 11.12.15: - Initial Release.","title":"Versions"},{"location":"misc/finances/","text":"Finances v0.1 Beta (Work in progress) Created 2021-08-18 Updated 2021-08-18 Charter We will at all times attempt to keep a surplus of $6,000 in the bank account, or an amount which covers 3 years of expenses, whichever is higher. All other money will be disbursed by agreement of a general consensus of linuxserver.io staff members. Annual Expenses DigitalOcean yearly costs (currently paid for) $1200 AWS ~$200 Contabo hosting $287.76 Email Hosting $20 Various domains ~$150 Docker Pro Plan $60 Various licenses ~$150 Votes In order for money to be approved for a project, the requesting member must go through every effort to bring to vote a fully formed idea that is ready to be actioned. This means that all the legwork is done before bringing an idea to vote, or at least as much as is reasonably possible. A vote will last for 3 days in order to give all team members the opportunity to participate without unnecessarily causing delays. A generasl consensus will need to be reached in order for it to proceed. Acceptable uses of money Hardware/Software needed to help the group reach a specific goal Stationary + Related items for possible Conventions Convention Fees (Both Attendence and Travel) Hosting services (Included domain purchases) Good will gestures (Example: For users outside the group that have provided help when asked) Food/Drink for LinuxServer.io focused sprints. Donations to upstream projects Links https://opencollective.com/linuxserver#category-BUDGET","title":"Finances"},{"location":"misc/finances/#finances","text":"v0.1 Beta (Work in progress) Created 2021-08-18 Updated 2021-08-18","title":"Finances"},{"location":"misc/finances/#charter","text":"We will at all times attempt to keep a surplus of $6,000 in the bank account, or an amount which covers 3 years of expenses, whichever is higher. All other money will be disbursed by agreement of a general consensus of linuxserver.io staff members.","title":"Charter"},{"location":"misc/finances/#annual-expenses","text":"DigitalOcean yearly costs (currently paid for) $1200 AWS ~$200 Contabo hosting $287.76 Email Hosting $20 Various domains ~$150 Docker Pro Plan $60 Various licenses ~$150","title":"Annual Expenses"},{"location":"misc/finances/#votes","text":"In order for money to be approved for a project, the requesting member must go through every effort to bring to vote a fully formed idea that is ready to be actioned. This means that all the legwork is done before bringing an idea to vote, or at least as much as is reasonably possible. A vote will last for 3 days in order to give all team members the opportunity to participate without unnecessarily causing delays. A generasl consensus will need to be reached in order for it to proceed.","title":"Votes"},{"location":"misc/finances/#acceptable-uses-of-money","text":"Hardware/Software needed to help the group reach a specific goal Stationary + Related items for possible Conventions Convention Fees (Both Attendence and Travel) Hosting services (Included domain purchases) Good will gestures (Example: For users outside the group that have provided help when asked) Food/Drink for LinuxServer.io focused sprints. Donations to upstream projects","title":"Acceptable uses of money"},{"location":"misc/finances/#links","text":"https://opencollective.com/linuxserver#category-BUDGET","title":"Links"}]} \ No newline at end of file +{"config":{"indexing":"full","lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Introduction Welcome to the home of the LinuxServer.io documentation! It is our goal to ensure that all of our images are properly documented with all of the relevant information in order to help our users get started. As well as individual set up guides for each of our images, there is also general information pertaining to the running of Docker containers, and best practices. Want to get hold of the team? The team resides primarily in our Discord server. We also have a forum if chat isn't your thing. Where Link Discord https://discord.gg/YWrKVTn Forum https://discourse.linuxserver.io For those interested in our CI environment via Jenkins: https://ci.linuxserver.io/","title":"Introduction"},{"location":"#introduction","text":"Welcome to the home of the LinuxServer.io documentation! It is our goal to ensure that all of our images are properly documented with all of the relevant information in order to help our users get started. As well as individual set up guides for each of our images, there is also general information pertaining to the running of Docker containers, and best practices.","title":"Introduction"},{"location":"#want-to-get-hold-of-the-team","text":"The team resides primarily in our Discord server. We also have a forum if chat isn't your thing. Where Link Discord https://discord.gg/YWrKVTn Forum https://discourse.linuxserver.io For those interested in our CI environment via Jenkins: https://ci.linuxserver.io/","title":"Want to get hold of the team?"},{"location":"FAQ/","text":"FAQ Here will some Frequently Asked Questions reside My host is incompatible with images based on Ubuntu Jammy {#jammy} Some x86_64 hosts running older versions of the Docker engine are not compatible with some images based on Ubuntu Jammy. Symptoms If your host is affected you may see errors in your containers such as: ERROR - Unable to determine java version; make sure Java is installed and callable Or Failed to create CoreCLR, HRESULT: 0x80070008 Or WARNING :: MAIN : webStart.py:initialize:249 : can't start new thread Resolution Option 1 (Long-Term Fix) Upgrade your Docker engine install to at least version 20.10.10 . Refer to the official Docker docs for installation/update details. Option 2 (Short-Term Fix) For Docker CLI, run your container with: --security-opt seccomp=unconfined For Docker Compose, run your container with: security_opt: - seccomp=unconfined My host is incompatible with images based on rdesktop {#rdesktop} Some x86_64 hosts have issues running rdesktop based images even with the latest docker version due to syscalls that are unknown to docker. Symptoms If your host is affected you may see errors in your containers such as: Failed to close file descriptor for child process (Operation not permitted) Resolution For Docker CLI, run your container with: --security-opt seccomp=unconfined For Docker Compose, run your container with: security_opt: - seccomp=unconfined My host is incompatible with images based on Ubuntu Focal and Alpine 3.13 and later {#libseccomp} This only affects 32 bit installs of distros based on Debian Buster. This is due to a bug in the libseccomp2 library (dependency of Docker itself), which is fixed. However it's not pushed to all the repositories. A GitHub issue tracking this You have a few options as noted below. Options 1 is short-term, while option 2 is considered the best option if you don't plan to reinstall the device (option 3). Resolution If you decide to do option 1 or 2, you should just need to restart the container after confirming you have libseccomp2.4.4 installed. If 1 or 2 did not work, ensure your Docker install is at least version 20.10.0, refer to the official Docker docs for installation. Option 1 Manually install an updated version of the library with dpkg. wget http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.4.4-1~bpo10+1_armhf.deb sudo dpkg -i libseccomp2_2.4.4-1~bpo10+1_armhf.deb {% hint style=\"info\" %} This url may have been updated. Find the latest by browsing here . {% endhint %} Option 2 Add the backports repo for DebianBuster. As seen here . sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138 echo \"deb http://deb.debian.org/debian buster-backports main\" | sudo tee -a /etc/apt/sources.list.d/buster-backports.list sudo apt update sudo apt install -t buster-backports libseccomp2 Option 3 Reinstall/update your OS to a version that still gets updates. Any distro based on DebianStretch does not seem to have this package available DebianBuster based distros can get the package trough backports, as outlined in point 2. {% hint style=\"info\" %} RaspberryPI OS (formerly Raspbian) Can be upgraded to run with a 64bit kernel {% endhint %} Symptoms 502 errors in Jellyfin as seen in linuxserver/docker-jellyfin#71 Error starting framework core messages in the docker log for Plex . linuxserver/docker-plex#247 No WebUI for Radarr , even though the container is running. linuxserver/docker-radarr#118 Images based on our Nginx base-image(Nextcloud, SWAG, Nginx, etc.) fails to generate a certificate, with a message similar to error getting time:crypto/asn1/a_time.c:330 docker exec date returns 1970 I want to reverse proxy a application which defaults to https with a selfsigned certificate {#strict-proxy} Traefik {#strict-proxy-traefik} In this example we will configure a serverTransport rule we can apply to a service, as well as telling Traefik to use https on the backend for the service. Create a ServerTransport in your dynamic Traefik configuration, we are calling ours ignorecert . http: serversTransports: ignorecert: insecureSkipVerify: true Then on our foo service we tell it to use this rule, as well as telling Traefik the backend is running on https. - traefik.http.services.foo.loadbalancer.serverstransport=ignorecert - traefik.http.services.foo.loadbalancer.server.scheme=https","title":"FAQ"},{"location":"FAQ/#faq","text":"Here will some Frequently Asked Questions reside","title":"FAQ"},{"location":"FAQ/#my-host-is-incompatible-with-images-based-on-ubuntu-jammy-jammy","text":"Some x86_64 hosts running older versions of the Docker engine are not compatible with some images based on Ubuntu Jammy.","title":"My host is incompatible with images based on Ubuntu Jammy {#jammy}"},{"location":"FAQ/#symptoms","text":"If your host is affected you may see errors in your containers such as: ERROR - Unable to determine java version; make sure Java is installed and callable Or Failed to create CoreCLR, HRESULT: 0x80070008 Or WARNING :: MAIN : webStart.py:initialize:249 : can't start new thread","title":"Symptoms"},{"location":"FAQ/#resolution","text":"","title":"Resolution"},{"location":"FAQ/#option-1-long-term-fix","text":"Upgrade your Docker engine install to at least version 20.10.10 . Refer to the official Docker docs for installation/update details.","title":"Option 1 (Long-Term Fix)"},{"location":"FAQ/#option-2-short-term-fix","text":"For Docker CLI, run your container with: --security-opt seccomp=unconfined For Docker Compose, run your container with: security_opt: - seccomp=unconfined","title":"Option 2 (Short-Term Fix)"},{"location":"FAQ/#my-host-is-incompatible-with-images-based-on-rdesktop-rdesktop","text":"Some x86_64 hosts have issues running rdesktop based images even with the latest docker version due to syscalls that are unknown to docker.","title":"My host is incompatible with images based on rdesktop {#rdesktop}"},{"location":"FAQ/#symptoms_1","text":"If your host is affected you may see errors in your containers such as: Failed to close file descriptor for child process (Operation not permitted)","title":"Symptoms"},{"location":"FAQ/#resolution_1","text":"For Docker CLI, run your container with: --security-opt seccomp=unconfined For Docker Compose, run your container with: security_opt: - seccomp=unconfined","title":"Resolution"},{"location":"FAQ/#my-host-is-incompatible-with-images-based-on-ubuntu-focal-and-alpine-313-and-later-libseccomp","text":"This only affects 32 bit installs of distros based on Debian Buster. This is due to a bug in the libseccomp2 library (dependency of Docker itself), which is fixed. However it's not pushed to all the repositories. A GitHub issue tracking this You have a few options as noted below. Options 1 is short-term, while option 2 is considered the best option if you don't plan to reinstall the device (option 3).","title":"My host is incompatible with images based on Ubuntu Focal and Alpine 3.13 and later {#libseccomp}"},{"location":"FAQ/#resolution_2","text":"If you decide to do option 1 or 2, you should just need to restart the container after confirming you have libseccomp2.4.4 installed. If 1 or 2 did not work, ensure your Docker install is at least version 20.10.0, refer to the official Docker docs for installation.","title":"Resolution"},{"location":"FAQ/#option-1","text":"Manually install an updated version of the library with dpkg. wget http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.4.4-1~bpo10+1_armhf.deb sudo dpkg -i libseccomp2_2.4.4-1~bpo10+1_armhf.deb {% hint style=\"info\" %} This url may have been updated. Find the latest by browsing here . {% endhint %}","title":"Option 1"},{"location":"FAQ/#option-2","text":"Add the backports repo for DebianBuster. As seen here . sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138 echo \"deb http://deb.debian.org/debian buster-backports main\" | sudo tee -a /etc/apt/sources.list.d/buster-backports.list sudo apt update sudo apt install -t buster-backports libseccomp2","title":"Option 2"},{"location":"FAQ/#option-3","text":"Reinstall/update your OS to a version that still gets updates. Any distro based on DebianStretch does not seem to have this package available DebianBuster based distros can get the package trough backports, as outlined in point 2. {% hint style=\"info\" %} RaspberryPI OS (formerly Raspbian) Can be upgraded to run with a 64bit kernel {% endhint %}","title":"Option 3"},{"location":"FAQ/#symptoms_2","text":"502 errors in Jellyfin as seen in linuxserver/docker-jellyfin#71 Error starting framework core messages in the docker log for Plex . linuxserver/docker-plex#247 No WebUI for Radarr , even though the container is running. linuxserver/docker-radarr#118 Images based on our Nginx base-image(Nextcloud, SWAG, Nginx, etc.) fails to generate a certificate, with a message similar to error getting time:crypto/asn1/a_time.c:330 docker exec date returns 1970","title":"Symptoms"},{"location":"FAQ/#i-want-to-reverse-proxy-a-application-which-defaults-to-https-with-a-selfsigned-certificate-strict-proxy","text":"","title":"I want to reverse proxy a application which defaults to https with a selfsigned certificate {#strict-proxy}"},{"location":"FAQ/#traefik-strict-proxy-traefik","text":"In this example we will configure a serverTransport rule we can apply to a service, as well as telling Traefik to use https on the backend for the service. Create a ServerTransport in your dynamic Traefik configuration, we are calling ours ignorecert . http: serversTransports: ignorecert: insecureSkipVerify: true Then on our foo service we tell it to use this rule, as well as telling Traefik the backend is running on https. - traefik.http.services.foo.loadbalancer.serverstransport=ignorecert - traefik.http.services.foo.loadbalancer.server.scheme=https","title":"Traefik {#strict-proxy-traefik}"},{"location":"general/awesome-lsio/","text":"Awesome LSIO Administration Container Description doublecommander Double Commander is a free cross platform open source file manager with two panels side by side. It is inspired by Total Commander and features some new ideas. endlessh endlessh is an SSH tarpit that very slowly sends an endless, random SSH banner. It keeps SSH clients locked up for hours or even days at a time. The purpose is to put your real SSH server on another port and then let the script kiddies get stuck in this tarpit instead of bothering a real server. ldap-auth ldap-auth software is for authenticating users who request protected resources from servers proxied by nginx. It includes a daemon (ldap-auth) that communicates with an authentication server, and a webserver daemon that generates an authentication cookie based on the user\u2019s credentials. The daemons are written in Python for use with a Lightweight Directory Access Protocol (LDAP) authentication server (OpenLDAP or Microsoft Windows Active Directory 2003 and 2012). netbootxyz netbootxyz is a way to PXE boot various operating system installers or utilities from one place within the BIOS without the need of having to go retrieve the media to run the tool. iPXE is used to provide a user friendly menu from within the BIOS that lets you easily choose the operating system you want along with any specific types of versions or bootable flags. netbox netbox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers. It is intended to function as a domain-specific source of truth for network operations. openssh-server openssh-server is a sandboxed environment that allows ssh access without giving keys to the entire server. snipe-it snipe-it makes asset management easy. It was built by people solving real-world IT and asset management problems, and a solid UX has always been a top priority. Straightforward design and bulk actions mean getting things done faster. Audiobooks Container Description booksonic-air booksonic-air is a platform for accessing the audiobooks you own wherever you are. At the moment the platform consists of Automation Container Description domoticz domoticz is a Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. Notifications/Alerts can be sent to any mobile device. habridge habridge emulates Philips Hue API to other home automation gateways such as an Amazon Echo/Dot Gen 1 (gen 2 has issues discovering ha-bridge) or other systems that support Philips Hue. The Bridge handles basic commands such as \"On\", \"Off\" and \"brightness\" commands of the hue protocol. This bridge can control most devices that have a distinct API. homeassistant Home Assistant Core - Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server. kanzi kanzi , formerly titled Kodi-Alexa, this custom skill is the ultimate voice remote control for navigating Kodi. It can do anything you can think of (100+ intents). This container also contains lexigram-cli to setup Kanzi with an Amazon Developer Account and automatically deploy it to Amazon. Backup Container Description duplicati duplicati works with standard protocols like FTP, SSH, WebDAV as well as popular services like Microsoft OneDrive, Amazon Cloud Drive & S3, Google Drive, box.com, Mega, hubiC and many others. resilio-sync resilio-sync (formerly BitTorrent Sync) uses the BitTorrent protocol to sync files and folders between all of your devices. There are both free and paid versions, this container supports both. There is an official sync image but we created this one as it supports user mapping to simplify permissions for volumes. rsnapshot rsnapshot is a filesystem snapshot utility based on rsync. rsnapshot makes it easy to make periodic snapshots of local machines, and remote machines over ssh. The code makes extensive use of hard links whenever possible, to greatly reduce the disk space required.\" syncthing syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet. Books Container Description calibre calibre is a powerful and easy to use e-book manager. Users say it\u2019s outstanding and a must-have. It\u2019ll allow you to do nearly everything and it takes things a step beyond normal e-book software. It\u2019s also completely free and open source and great for both casual users and computer experts. calibre-web calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. It is also possible to integrate google drive and edit metadata and your calibre library through the app itself. cops cops by S\u00e9bastien Lucas, stands for Calibre OPDS (and HTML) Php Server. lazylibrarian lazylibrarian is a program to follow authors and grab metadata for all your digital reading needs. It uses a combination of Goodreads Librarything and optionally GoogleBooks as sources for author info and book info. This container is based on the DobyTang fork. mylar3 mylar3 is an automated Comic Book downloader (cbr/cbz) for use with NZB and torrents written in python. It supports SABnzbd, NZBGET, and many torrent clients in addition to DDL. readarr readarr - Book Manager and Automation (Sonarr for Ebooks) ubooquity ubooquity is a free, lightweight and easy-to-use home server for your comics and ebooks. Use it to access your files from anywhere, with a tablet, an e-reader, a phone or a computer. Cloud Container Description nextcloud nextcloud gives you access to all your files wherever you are. Crypto Container Description gmail-order-bot gmail-order-bot - A bot used to leverage a Gmail account as an order messaging service to consume email orders from Nano Checkout and process them using any custom logic you choose. nano nano is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions. nano-discord-bot nano-discord-bot - A bot used to hook into a self hosted Nano RPC endpoint and discord server to Distribute funds from a faucet account. nano-wallet nano-wallet is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions. DNS Container Description adguardhome-sync adguardhome-sync is a tool to synchronize AdGuardHome config to replica instances. ddclient ddclient is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider. It was originally written by Paul Burry and is now mostly by wimpunk. It has the capability to update more than just dyndns and it can fetch your WAN-ipaddress in a few different ways. duckdns duckdns is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. The service is completely free, and doesn't require reactivation or forum posts to maintain its existence. Dashboard Container Description heimdall heimdall is a way to organise all those links to your most used web sites and web applications in a simple way. muximux muximux is a lightweight portal to view & manage your HTPC apps without having to run anything more than a PHP enabled webserver. With Muximux you don't need to keep multiple tabs open, or bookmark the URL to all of your apps. Databases Container Description mariadb mariadb is one of the most popular database servers. Made by the original developers of MySQL. mysql-workbench MySQL Workbench is a unified visual tool for database architects, developers, and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more. phpmyadmin phpmyadmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL and MariaDB. sqlitebrowser DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite. Docker Container Description docker-compose No description fleet fleet provides an online web interface which displays a set of maintained images from one or more owned repositories. Documents Container Description libreoffice LibreOffice is a free and powerful office suite, and a successor to OpenOffice.org (commonly known as OpenOffice). Its clean interface and feature-rich tools help you unleash your creativity and enhance your productivity. paperless-ng paperless-ng is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\" paperless-ngx paperless-ngx is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\" papermerge papermerge is an open source document management system (DMS) primarily designed for archiving and retrieving your digital documents. Instead of having piles of paper documents all over your desk, office or drawers - you can quickly scan them and configure your scanner to directly upload to Papermerge DMS.\" Downloaders Container Description deluge deluge is a lightweight, Free Software, cross-platform BitTorrent client. nntp2nntp nntp2nntp proxy allow you to use your NNTP Account from multiple systems, each with own user name and password. It fully supports SSL and you can also limit the access to proxy with SSL certificates. nntp2nntp proxy is very simple and pretty fast. nzbget nzbget is a usenet downloader, written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources. pyload-ng pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web. qbittorrent The qbittorrent project aims to provide an open-source software alternative to \u00b5Torrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library. sabnzbd sabnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction. transmission transmission is designed for easy, powerful use. Transmission has the features you want from a BitTorrent client: encryption, a web interface, peer exchange, magnet links, DHT, \u00b5TP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more. FTP Container Description davos davos is an FTP automation tool that periodically scans given host locations for new files. It can be configured for various purposes, including listening for specific files to appear in the host location, ready for it to download and then move, if required. It also supports completion notifications as well as downstream API calls, to further the workflow. filezilla FIleZilla Client is a fast and reliable cross-platform FTP, FTPS and SFTP client with lots of useful features and an intuitive graphical user interface. Family Container Description babybuddy babybuddy is a buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work. File Sharing Container Description projectsend projectsend is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. Secure, private and easy. No more depending on external services or e-mail to send those files. pwndrop pwndrop is a self-deployable file hosting service for sending out red teaming payloads or securely sharing your private files over HTTP and WebDAV. pydio-cells pydio-cells is the nextgen file sharing platform for organizations. It is a full rewrite of the Pydio project using the Go language following a micro-service architecture. snapdrop snapdrop A local file sharing in your browser. Inspired by Apple's Airdrop. xbackbone xbackbone is a simple, self-hosted, lightweight PHP file manager that support the instant sharing tool ShareX and *NIX systems. It supports uploading and displaying images, GIF, video, code, formatted text, and file downloading and uploading. Also have a web UI with multi user management, past uploads history and search support. Finance Container Description budge budge is an open source 'budgeting with envelopes' personal finance app. Games Container Description emulatorjs emulatorjs - In browser web based emulation portable to nearly any device for many retro consoles. A mix of emulators is used between Libretro and EmulatorJS. minetest minetest (server) is a near-infinite-world block sandbox game and a game engine, inspired by InfiniMiner, Minecraft, and the like. Graphics Container Description blender Blender is a free and open-source 3D computer graphics software toolset used for creating animated films, visual effects, art, 3D printed models, motion graphics, interactive 3D applications, virtual reality, and computer games. This image does not support GPU rendering out of the box only accelerated workspace experience kdenlive Kdenlive is a powerful free and open source cross-platform video editing program made by the KDE community. Feature rich and production ready. IRC Container Description limnoria limnoria A robust, full-featured, and user/programmer-friendly Python IRC bot, with many existing plugins. Successor of the well-known Supybot. ngircd ngircd is a free, portable and lightweight Internet Relay Chat server for small or private networks, developed under the GNU General Public License (GPL). It is easy to configure, can cope with dynamic IP addresses, and supports IPv6, SSL-protected connections as well as PAM for authentication. It is written from scratch and not based on the original IRCd. pidgin Pidgin is a chat program which lets you log into accounts on multiple chat networks simultaneously. This means that you can be chatting with friends on XMPP and sitting in an IRC channel at the same time. quassel-core quassel-core is a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core. quassel-web quassel-web is a web client for Quassel. Note that a Quassel-Core instance is required, we have a container available here. thelounge thelounge (a fork of shoutIRC) is a web IRC client that you host on your own server. znc znc is an IRC network bouncer or BNC. It can detach the client from the actual IRC server, and also from selected channels. Multiple clients from different locations can connect to a single ZNC account simultaneously and therefore appear under the same nickname on IRC. Indexers Container Description jackett jackett works as a proxy server: it translates queries from apps (Sonarr, SickRage, CouchPotato, Mylar, etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps. nzbhydra2 nzbhydra2 is a meta search application for NZB indexers, the \"spiritual successor\" to NZBmegasearcH, and an evolution of the original application NZBHydra . prowlarr prowlarr is a indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Sonarr, Radarr, Lidarr, and Readarr offering complete management of your indexers with no per app Indexer setup required (we do it all). Media Management Container Description bazarr bazarr is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you. medusa medusa is an automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. plex-meta-manager plex-meta-manager is a Python 3 script that can be continuously run using YAML configuration files to update on a schedule the metadata of the movies, shows, and collections in your libraries as well as automatically build collections based on various methods all detailed in the wiki. radarr radarr - A fork of Sonarr to work with movies \u00e0 la Couchpotato. sickchill sickchill is an Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. sickgear SickGear provides management of TV shows and/or Anime, it detects new episodes, links downloader apps, and more.. sonarr sonarr (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. Media Players Container Description emby emby organizes video, music, live TV, and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone emby Media Server. jellyfin jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. plex plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. has always been a top priority. Straightforward design and bulk actions mean getting things done faster. Media Requesters Container Description doplarr doplarr is an *arr request bot for Discord.\" ombi ombi allows you to host your own Plex Request and user management system. overseerr overseerr is a request management and media discovery tool built to work with your existing Plex ecosystem. Media Tools Container Description embystat embystat is a personal web server that can calculate all kinds of statistics from your (local) Emby server. Just install this on your server and let him calculate all kinds of fun stuff. ffmpeg No description htpcmanager htpcmanager is a front end for many htpc related applications. minisatip minisatip is a multi-threaded satip server version 1.2 that runs under Linux and it was tested with DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C, DVB-C2, ATSC and ISDB-T cards. oscam oscam is an Open Source Conditional Access Module software used for descrambling DVB transmissions using smart cards. It's both a server and a client. synclounge synclounge is a third party tool that allows you to watch Plex in sync with your friends/family, wherever you are. tautulli tautulli is a python based web application for monitoring, analytics and notifications for Plex Media Server. tvheadend tvheadend works as a proxy server: is a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun as input sources. webgrabplus webgrabplus is a multi-site incremental xmltv epg grabber. It collects tv-program guide data from selected tvguide sites for your favourite channels. Monitor Container Description apprise-api apprise-api Takes advantage of Apprise through your network with a user-friendly API. healthchecks healthchecks is a watchdog for your cron jobs. It's a web server that listens for pings from your cron jobs, plus a web interface. librespeed librespeed is a very lightweight Speedtest implemented in Javascript, using XMLHttpRequest and Web Workers. smokeping smokeping keeps track of your network latency. For a full example of what this application is capable of visit UCDavis . syslog-ng syslog-ng allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure and store or route them to log analysis tools. Music Container Description airsonic-advanced airsonic-advanced is a free, web-based media streamer, providing ubiquitious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room. audacity Audacity is an easy-to-use, multi-track audio editor and recorder. Developed by a group of volunteers as open source. beets beets is a music library manager and not, for the most part, a music player. It does include a simple player plugin and an experimental Web-based player, but it generally leaves actual sound-reproduction to specialized tools. daapd daapd (iTunes) media server with support for AirPlay devices, Apple Remote (and compatibles), Chromecast, MPD and internet radio. headphones headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, \u00b5Torrent and Blackhole. lidarr lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new tracks from your favorite artists and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. mstream mstream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere. There are mobile apps available for both Android and iPhone. Network Container Description unifi-controller The unifi-controller software is a powerful, enterprise wireless software engine ideal for high-density client deployments requiring low latency and high uptime performance. wireshark Wireshark is the world\u2019s foremost and widely-used network protocol analyzer. It lets you see what\u2019s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. Wireshark development thrives thanks to the volunteer contributions of networking experts around the globe and is the continuation of a project started by Gerald Combs in 1998. Photos Container Description chevereto chevereto is an image hosting software that allows you to create a beautiful and full-featured image hosting website on your own server. It's your hosting and your rules, so say goodbye to closures and restrictions. darktable darktable is an open source photography workflow application and raw developer. A virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images and enhance them. digikam digiKam : Professional Photo Management with the Power of Open Source lychee lychee is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.\" photoshow photoshow is gallery software at its easiest, it doesn't even require a database. piwigo piwigo is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures. pixapop pixapop is an open-source single page application to view your photos in the easiest way possible. Programming Container Description cloud9 cloud9 Cloud9 is a complete web based IDE with terminal access. This container is for running their core SDK locally and developing plugins. code-server code-server is VS Code running on a remote server, accessible through the browser. openvscode-server openvscode-server provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. pylon pylon is a web based integrated development environment built with Node.js as a backend and with a supercharged JavaScript/HTML5 frontend, licensed under GPL version 3. This project originates from Cloud9 v2 project. RSS Container Description freshrss freshrss is a free, self-hostable aggregator for rss feeds. Recipes Container Description grocy grocy is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utility. Remote Container Description guacd guacd - Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. This container is only the backend server component needed to use The official or 3rd party HTML5 frontends. rdesktop rdesktop - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP. remmina Remmina is a remote desktop client written in GTK, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large or tiny screens. Remmina supports multiple network protocols, in an integrated and consistent user interface. Currently RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC are supported. webtop webtop - Alpine, Ubuntu, Fedora, and Arch based containers containing full desktop environments in officially supported flavors accessible via any modern web browser. Science Container Description boinc BOINC is a platform for high-throughput computing on a large scale (thousands or millions of computers). It can be used for volunteer computing (using consumer devices) or grid computing (using organizational resources). It supports virtualized, parallel, and GPU-based applications. foldingathome Folding@home is a distributed computing project for simulating protein dynamics, including the process of protein folding and the movements of proteins implicated in a variety of diseases. It brings together citizen scientists who volunteer to run simulations of protein dynamics on their personal computers. Insights from this data are helping scientists to better understand biology, and providing new opportunities for developing therapeutics. Storage Container Description diskover diskover is an open source file system indexer that uses Elasticsearch to index and manage data across heterogeneous storage systems. qdirstat QDirStat Qt-based directory statistics: KDirStat without any KDE -- from the author of the original KDirStat. scrutiny scrutiny WebUI for smartd S.M.A.R.T monitoring. Scrutiny is a Hard Drive Health Dashboard & Monitoring solution, merging manufacturer provided S.M.A.R.T metrics with real-world failure rates from Backblaze. Tools Container Description yq No description VPN Container Description wireguard WireGuard\u00ae is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry. Web Container Description firefox Firefox Browser, also known as Mozilla Firefox or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. Firefox uses the Gecko layout engine to render web pages, which implements current and anticipated web standards. grav grav is a Fast, Simple, and Flexible, file-based Web-platform. nginx nginx is a simple webserver with php support. The config files reside in /config for easy user customization. swag SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt\u2122) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention. Wiki Container Description bookstack bookstack is a free and open source Wiki designed for creating beautiful documentation. Featuring a simple, but powerful WYSIWYG editor it allows for teams to create detailed and useful documentation with ease. dillinger dillinger is a cloud-enabled, mobile-ready, offline-storage, AngularJS powered HTML5 Markdown editor. dokuwiki dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in access controls and authentication connectors make DokuWiki especially useful in the enterprise context and the large number of plugins contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki. hedgedoc HedgeDoc gives you access to all your files wherever you are. raneto raneto - is an open source Knowledgebase platform that uses static Markdown files to power your Knowledgebase. wikijs wikijs A modern, lightweight and powerful wiki app built on NodeJS.","title":"Awesome LSIO"},{"location":"general/awesome-lsio/#awesome-lsio","text":"","title":"Awesome LSIO"},{"location":"general/awesome-lsio/#administration","text":"Container Description doublecommander Double Commander is a free cross platform open source file manager with two panels side by side. It is inspired by Total Commander and features some new ideas. endlessh endlessh is an SSH tarpit that very slowly sends an endless, random SSH banner. It keeps SSH clients locked up for hours or even days at a time. The purpose is to put your real SSH server on another port and then let the script kiddies get stuck in this tarpit instead of bothering a real server. ldap-auth ldap-auth software is for authenticating users who request protected resources from servers proxied by nginx. It includes a daemon (ldap-auth) that communicates with an authentication server, and a webserver daemon that generates an authentication cookie based on the user\u2019s credentials. The daemons are written in Python for use with a Lightweight Directory Access Protocol (LDAP) authentication server (OpenLDAP or Microsoft Windows Active Directory 2003 and 2012). netbootxyz netbootxyz is a way to PXE boot various operating system installers or utilities from one place within the BIOS without the need of having to go retrieve the media to run the tool. iPXE is used to provide a user friendly menu from within the BIOS that lets you easily choose the operating system you want along with any specific types of versions or bootable flags. netbox netbox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers. It is intended to function as a domain-specific source of truth for network operations. openssh-server openssh-server is a sandboxed environment that allows ssh access without giving keys to the entire server. snipe-it snipe-it makes asset management easy. It was built by people solving real-world IT and asset management problems, and a solid UX has always been a top priority. Straightforward design and bulk actions mean getting things done faster.","title":"Administration"},{"location":"general/awesome-lsio/#audiobooks","text":"Container Description booksonic-air booksonic-air is a platform for accessing the audiobooks you own wherever you are. At the moment the platform consists of","title":"Audiobooks"},{"location":"general/awesome-lsio/#automation","text":"Container Description domoticz domoticz is a Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. Notifications/Alerts can be sent to any mobile device. habridge habridge emulates Philips Hue API to other home automation gateways such as an Amazon Echo/Dot Gen 1 (gen 2 has issues discovering ha-bridge) or other systems that support Philips Hue. The Bridge handles basic commands such as \"On\", \"Off\" and \"brightness\" commands of the hue protocol. This bridge can control most devices that have a distinct API. homeassistant Home Assistant Core - Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server. kanzi kanzi , formerly titled Kodi-Alexa, this custom skill is the ultimate voice remote control for navigating Kodi. It can do anything you can think of (100+ intents). This container also contains lexigram-cli to setup Kanzi with an Amazon Developer Account and automatically deploy it to Amazon.","title":"Automation"},{"location":"general/awesome-lsio/#backup","text":"Container Description duplicati duplicati works with standard protocols like FTP, SSH, WebDAV as well as popular services like Microsoft OneDrive, Amazon Cloud Drive & S3, Google Drive, box.com, Mega, hubiC and many others. resilio-sync resilio-sync (formerly BitTorrent Sync) uses the BitTorrent protocol to sync files and folders between all of your devices. There are both free and paid versions, this container supports both. There is an official sync image but we created this one as it supports user mapping to simplify permissions for volumes. rsnapshot rsnapshot is a filesystem snapshot utility based on rsync. rsnapshot makes it easy to make periodic snapshots of local machines, and remote machines over ssh. The code makes extensive use of hard links whenever possible, to greatly reduce the disk space required.\" syncthing syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.","title":"Backup"},{"location":"general/awesome-lsio/#books","text":"Container Description calibre calibre is a powerful and easy to use e-book manager. Users say it\u2019s outstanding and a must-have. It\u2019ll allow you to do nearly everything and it takes things a step beyond normal e-book software. It\u2019s also completely free and open source and great for both casual users and computer experts. calibre-web calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. It is also possible to integrate google drive and edit metadata and your calibre library through the app itself. cops cops by S\u00e9bastien Lucas, stands for Calibre OPDS (and HTML) Php Server. lazylibrarian lazylibrarian is a program to follow authors and grab metadata for all your digital reading needs. It uses a combination of Goodreads Librarything and optionally GoogleBooks as sources for author info and book info. This container is based on the DobyTang fork. mylar3 mylar3 is an automated Comic Book downloader (cbr/cbz) for use with NZB and torrents written in python. It supports SABnzbd, NZBGET, and many torrent clients in addition to DDL. readarr readarr - Book Manager and Automation (Sonarr for Ebooks) ubooquity ubooquity is a free, lightweight and easy-to-use home server for your comics and ebooks. Use it to access your files from anywhere, with a tablet, an e-reader, a phone or a computer.","title":"Books"},{"location":"general/awesome-lsio/#cloud","text":"Container Description nextcloud nextcloud gives you access to all your files wherever you are.","title":"Cloud"},{"location":"general/awesome-lsio/#crypto","text":"Container Description gmail-order-bot gmail-order-bot - A bot used to leverage a Gmail account as an order messaging service to consume email orders from Nano Checkout and process them using any custom logic you choose. nano nano is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions. nano-discord-bot nano-discord-bot - A bot used to hook into a self hosted Nano RPC endpoint and discord server to Distribute funds from a faucet account. nano-wallet nano-wallet is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions.","title":"Crypto"},{"location":"general/awesome-lsio/#dns","text":"Container Description adguardhome-sync adguardhome-sync is a tool to synchronize AdGuardHome config to replica instances. ddclient ddclient is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider. It was originally written by Paul Burry and is now mostly by wimpunk. It has the capability to update more than just dyndns and it can fetch your WAN-ipaddress in a few different ways. duckdns duckdns is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. The service is completely free, and doesn't require reactivation or forum posts to maintain its existence.","title":"DNS"},{"location":"general/awesome-lsio/#dashboard","text":"Container Description heimdall heimdall is a way to organise all those links to your most used web sites and web applications in a simple way. muximux muximux is a lightweight portal to view & manage your HTPC apps without having to run anything more than a PHP enabled webserver. With Muximux you don't need to keep multiple tabs open, or bookmark the URL to all of your apps.","title":"Dashboard"},{"location":"general/awesome-lsio/#databases","text":"Container Description mariadb mariadb is one of the most popular database servers. Made by the original developers of MySQL. mysql-workbench MySQL Workbench is a unified visual tool for database architects, developers, and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more. phpmyadmin phpmyadmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL and MariaDB. sqlitebrowser DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite.","title":"Databases"},{"location":"general/awesome-lsio/#docker","text":"Container Description docker-compose No description fleet fleet provides an online web interface which displays a set of maintained images from one or more owned repositories.","title":"Docker"},{"location":"general/awesome-lsio/#documents","text":"Container Description libreoffice LibreOffice is a free and powerful office suite, and a successor to OpenOffice.org (commonly known as OpenOffice). Its clean interface and feature-rich tools help you unleash your creativity and enhance your productivity. paperless-ng paperless-ng is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\" paperless-ngx paperless-ngx is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\" papermerge papermerge is an open source document management system (DMS) primarily designed for archiving and retrieving your digital documents. Instead of having piles of paper documents all over your desk, office or drawers - you can quickly scan them and configure your scanner to directly upload to Papermerge DMS.\"","title":"Documents"},{"location":"general/awesome-lsio/#downloaders","text":"Container Description deluge deluge is a lightweight, Free Software, cross-platform BitTorrent client. nntp2nntp nntp2nntp proxy allow you to use your NNTP Account from multiple systems, each with own user name and password. It fully supports SSL and you can also limit the access to proxy with SSL certificates. nntp2nntp proxy is very simple and pretty fast. nzbget nzbget is a usenet downloader, written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources. pyload-ng pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web. qbittorrent The qbittorrent project aims to provide an open-source software alternative to \u00b5Torrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library. sabnzbd sabnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction. transmission transmission is designed for easy, powerful use. Transmission has the features you want from a BitTorrent client: encryption, a web interface, peer exchange, magnet links, DHT, \u00b5TP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more.","title":"Downloaders"},{"location":"general/awesome-lsio/#ftp","text":"Container Description davos davos is an FTP automation tool that periodically scans given host locations for new files. It can be configured for various purposes, including listening for specific files to appear in the host location, ready for it to download and then move, if required. It also supports completion notifications as well as downstream API calls, to further the workflow. filezilla FIleZilla Client is a fast and reliable cross-platform FTP, FTPS and SFTP client with lots of useful features and an intuitive graphical user interface.","title":"FTP"},{"location":"general/awesome-lsio/#family","text":"Container Description babybuddy babybuddy is a buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work.","title":"Family"},{"location":"general/awesome-lsio/#file-sharing","text":"Container Description projectsend projectsend is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. Secure, private and easy. No more depending on external services or e-mail to send those files. pwndrop pwndrop is a self-deployable file hosting service for sending out red teaming payloads or securely sharing your private files over HTTP and WebDAV. pydio-cells pydio-cells is the nextgen file sharing platform for organizations. It is a full rewrite of the Pydio project using the Go language following a micro-service architecture. snapdrop snapdrop A local file sharing in your browser. Inspired by Apple's Airdrop. xbackbone xbackbone is a simple, self-hosted, lightweight PHP file manager that support the instant sharing tool ShareX and *NIX systems. It supports uploading and displaying images, GIF, video, code, formatted text, and file downloading and uploading. Also have a web UI with multi user management, past uploads history and search support.","title":"File Sharing"},{"location":"general/awesome-lsio/#finance","text":"Container Description budge budge is an open source 'budgeting with envelopes' personal finance app.","title":"Finance"},{"location":"general/awesome-lsio/#games","text":"Container Description emulatorjs emulatorjs - In browser web based emulation portable to nearly any device for many retro consoles. A mix of emulators is used between Libretro and EmulatorJS. minetest minetest (server) is a near-infinite-world block sandbox game and a game engine, inspired by InfiniMiner, Minecraft, and the like.","title":"Games"},{"location":"general/awesome-lsio/#graphics","text":"Container Description blender Blender is a free and open-source 3D computer graphics software toolset used for creating animated films, visual effects, art, 3D printed models, motion graphics, interactive 3D applications, virtual reality, and computer games. This image does not support GPU rendering out of the box only accelerated workspace experience kdenlive Kdenlive is a powerful free and open source cross-platform video editing program made by the KDE community. Feature rich and production ready.","title":"Graphics"},{"location":"general/awesome-lsio/#irc","text":"Container Description limnoria limnoria A robust, full-featured, and user/programmer-friendly Python IRC bot, with many existing plugins. Successor of the well-known Supybot. ngircd ngircd is a free, portable and lightweight Internet Relay Chat server for small or private networks, developed under the GNU General Public License (GPL). It is easy to configure, can cope with dynamic IP addresses, and supports IPv6, SSL-protected connections as well as PAM for authentication. It is written from scratch and not based on the original IRCd. pidgin Pidgin is a chat program which lets you log into accounts on multiple chat networks simultaneously. This means that you can be chatting with friends on XMPP and sitting in an IRC channel at the same time. quassel-core quassel-core is a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core. quassel-web quassel-web is a web client for Quassel. Note that a Quassel-Core instance is required, we have a container available here. thelounge thelounge (a fork of shoutIRC) is a web IRC client that you host on your own server. znc znc is an IRC network bouncer or BNC. It can detach the client from the actual IRC server, and also from selected channels. Multiple clients from different locations can connect to a single ZNC account simultaneously and therefore appear under the same nickname on IRC.","title":"IRC"},{"location":"general/awesome-lsio/#indexers","text":"Container Description jackett jackett works as a proxy server: it translates queries from apps (Sonarr, SickRage, CouchPotato, Mylar, etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps. nzbhydra2 nzbhydra2 is a meta search application for NZB indexers, the \"spiritual successor\" to NZBmegasearcH, and an evolution of the original application NZBHydra . prowlarr prowlarr is a indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Sonarr, Radarr, Lidarr, and Readarr offering complete management of your indexers with no per app Indexer setup required (we do it all).","title":"Indexers"},{"location":"general/awesome-lsio/#media-management","text":"Container Description bazarr bazarr is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you. medusa medusa is an automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. plex-meta-manager plex-meta-manager is a Python 3 script that can be continuously run using YAML configuration files to update on a schedule the metadata of the movies, shows, and collections in your libraries as well as automatically build collections based on various methods all detailed in the wiki. radarr radarr - A fork of Sonarr to work with movies \u00e0 la Couchpotato. sickchill sickchill is an Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. sickgear SickGear provides management of TV shows and/or Anime, it detects new episodes, links downloader apps, and more.. sonarr sonarr (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.","title":"Media Management"},{"location":"general/awesome-lsio/#media-players","text":"Container Description emby emby organizes video, music, live TV, and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone emby Media Server. jellyfin jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. plex plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. has always been a top priority. Straightforward design and bulk actions mean getting things done faster.","title":"Media Players"},{"location":"general/awesome-lsio/#media-requesters","text":"Container Description doplarr doplarr is an *arr request bot for Discord.\" ombi ombi allows you to host your own Plex Request and user management system. overseerr overseerr is a request management and media discovery tool built to work with your existing Plex ecosystem.","title":"Media Requesters"},{"location":"general/awesome-lsio/#media-tools","text":"Container Description embystat embystat is a personal web server that can calculate all kinds of statistics from your (local) Emby server. Just install this on your server and let him calculate all kinds of fun stuff. ffmpeg No description htpcmanager htpcmanager is a front end for many htpc related applications. minisatip minisatip is a multi-threaded satip server version 1.2 that runs under Linux and it was tested with DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C, DVB-C2, ATSC and ISDB-T cards. oscam oscam is an Open Source Conditional Access Module software used for descrambling DVB transmissions using smart cards. It's both a server and a client. synclounge synclounge is a third party tool that allows you to watch Plex in sync with your friends/family, wherever you are. tautulli tautulli is a python based web application for monitoring, analytics and notifications for Plex Media Server. tvheadend tvheadend works as a proxy server: is a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun as input sources. webgrabplus webgrabplus is a multi-site incremental xmltv epg grabber. It collects tv-program guide data from selected tvguide sites for your favourite channels.","title":"Media Tools"},{"location":"general/awesome-lsio/#monitor","text":"Container Description apprise-api apprise-api Takes advantage of Apprise through your network with a user-friendly API. healthchecks healthchecks is a watchdog for your cron jobs. It's a web server that listens for pings from your cron jobs, plus a web interface. librespeed librespeed is a very lightweight Speedtest implemented in Javascript, using XMLHttpRequest and Web Workers. smokeping smokeping keeps track of your network latency. For a full example of what this application is capable of visit UCDavis . syslog-ng syslog-ng allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure and store or route them to log analysis tools.","title":"Monitor"},{"location":"general/awesome-lsio/#music","text":"Container Description airsonic-advanced airsonic-advanced is a free, web-based media streamer, providing ubiquitious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room. audacity Audacity is an easy-to-use, multi-track audio editor and recorder. Developed by a group of volunteers as open source. beets beets is a music library manager and not, for the most part, a music player. It does include a simple player plugin and an experimental Web-based player, but it generally leaves actual sound-reproduction to specialized tools. daapd daapd (iTunes) media server with support for AirPlay devices, Apple Remote (and compatibles), Chromecast, MPD and internet radio. headphones headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, \u00b5Torrent and Blackhole. lidarr lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new tracks from your favorite artists and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. mstream mstream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere. There are mobile apps available for both Android and iPhone.","title":"Music"},{"location":"general/awesome-lsio/#network","text":"Container Description unifi-controller The unifi-controller software is a powerful, enterprise wireless software engine ideal for high-density client deployments requiring low latency and high uptime performance. wireshark Wireshark is the world\u2019s foremost and widely-used network protocol analyzer. It lets you see what\u2019s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. Wireshark development thrives thanks to the volunteer contributions of networking experts around the globe and is the continuation of a project started by Gerald Combs in 1998.","title":"Network"},{"location":"general/awesome-lsio/#photos","text":"Container Description chevereto chevereto is an image hosting software that allows you to create a beautiful and full-featured image hosting website on your own server. It's your hosting and your rules, so say goodbye to closures and restrictions. darktable darktable is an open source photography workflow application and raw developer. A virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images and enhance them. digikam digiKam : Professional Photo Management with the Power of Open Source lychee lychee is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.\" photoshow photoshow is gallery software at its easiest, it doesn't even require a database. piwigo piwigo is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures. pixapop pixapop is an open-source single page application to view your photos in the easiest way possible.","title":"Photos"},{"location":"general/awesome-lsio/#programming","text":"Container Description cloud9 cloud9 Cloud9 is a complete web based IDE with terminal access. This container is for running their core SDK locally and developing plugins. code-server code-server is VS Code running on a remote server, accessible through the browser. openvscode-server openvscode-server provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. pylon pylon is a web based integrated development environment built with Node.js as a backend and with a supercharged JavaScript/HTML5 frontend, licensed under GPL version 3. This project originates from Cloud9 v2 project.","title":"Programming"},{"location":"general/awesome-lsio/#rss","text":"Container Description freshrss freshrss is a free, self-hostable aggregator for rss feeds.","title":"RSS"},{"location":"general/awesome-lsio/#recipes","text":"Container Description grocy grocy is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utility.","title":"Recipes"},{"location":"general/awesome-lsio/#remote","text":"Container Description guacd guacd - Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. This container is only the backend server component needed to use The official or 3rd party HTML5 frontends. rdesktop rdesktop - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP. remmina Remmina is a remote desktop client written in GTK, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large or tiny screens. Remmina supports multiple network protocols, in an integrated and consistent user interface. Currently RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC are supported. webtop webtop - Alpine, Ubuntu, Fedora, and Arch based containers containing full desktop environments in officially supported flavors accessible via any modern web browser.","title":"Remote"},{"location":"general/awesome-lsio/#science","text":"Container Description boinc BOINC is a platform for high-throughput computing on a large scale (thousands or millions of computers). It can be used for volunteer computing (using consumer devices) or grid computing (using organizational resources). It supports virtualized, parallel, and GPU-based applications. foldingathome Folding@home is a distributed computing project for simulating protein dynamics, including the process of protein folding and the movements of proteins implicated in a variety of diseases. It brings together citizen scientists who volunteer to run simulations of protein dynamics on their personal computers. Insights from this data are helping scientists to better understand biology, and providing new opportunities for developing therapeutics.","title":"Science"},{"location":"general/awesome-lsio/#storage","text":"Container Description diskover diskover is an open source file system indexer that uses Elasticsearch to index and manage data across heterogeneous storage systems. qdirstat QDirStat Qt-based directory statistics: KDirStat without any KDE -- from the author of the original KDirStat. scrutiny scrutiny WebUI for smartd S.M.A.R.T monitoring. Scrutiny is a Hard Drive Health Dashboard & Monitoring solution, merging manufacturer provided S.M.A.R.T metrics with real-world failure rates from Backblaze.","title":"Storage"},{"location":"general/awesome-lsio/#tools","text":"Container Description yq No description","title":"Tools"},{"location":"general/awesome-lsio/#vpn","text":"Container Description wireguard WireGuard\u00ae is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry.","title":"VPN"},{"location":"general/awesome-lsio/#web","text":"Container Description firefox Firefox Browser, also known as Mozilla Firefox or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. Firefox uses the Gecko layout engine to render web pages, which implements current and anticipated web standards. grav grav is a Fast, Simple, and Flexible, file-based Web-platform. nginx nginx is a simple webserver with php support. The config files reside in /config for easy user customization. swag SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt\u2122) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention.","title":"Web"},{"location":"general/awesome-lsio/#wiki","text":"Container Description bookstack bookstack is a free and open source Wiki designed for creating beautiful documentation. Featuring a simple, but powerful WYSIWYG editor it allows for teams to create detailed and useful documentation with ease. dillinger dillinger is a cloud-enabled, mobile-ready, offline-storage, AngularJS powered HTML5 Markdown editor. dokuwiki dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in access controls and authentication connectors make DokuWiki especially useful in the enterprise context and the large number of plugins contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki. hedgedoc HedgeDoc gives you access to all your files wherever you are. raneto raneto - is an open source Knowledgebase platform that uses static Markdown files to power your Knowledgebase. wikijs wikijs A modern, lightweight and powerful wiki app built on NodeJS.","title":"Wiki"},{"location":"general/container-customization/","text":"Customizing LinuxServer Containers One of the challenges we face as an organization is making everyone happy with the functionality we provide for the software we package in Docker containers. As the projects that we package and distribute grow, conventionally so do the use cases along with large communities of power users. As it has become very difficult for us to support Swiss Army Knife style images we are looking to the community of users to start customizing our base image layer themselves. Something we provide and pride ourselves on is keeping our containers up to date with not only the latest external software releases, but also with the latest distribution level packages. Conventionally when people needed some form of custom functionality they would fork our source and build something once that suited their needs leaving this dangling fork without updates or basic maintenance. Behind the scenes we have been working to provide the community with the ability to customize our images not only for themselves but also for other users. This comes in the form of 3 different tools: Private Custom Scripts Private Custom Services Public Facing Docker Mods All of the functionality described in this post is live on every one of the containers we currently maintain: https://fleet.linuxserver.io NOTE: While the following support has been added to our containers, we will not give support to any custom scripts, services, or mods. If you are having an issue with one of our containers, be sure to disable all custom scripts/services/mods before seeking support. Custom Scripts The first part of this update is the support for a user's custom scripts to run at startup. In every container, simply create a new folder located at /custom-cont-init.d and add any scripts you want. These scripts can contain logic for installing packages, copying over custom files to other locations, or installing plugins. Because this location is outside of /config you will need to mount it like any other volume if you wish to make use of it. e.g. -v /home/foo/appdata/my-custom-files:/custom-cont-init.d if using the Docker CLI or services: bar: volumes: - /home/foo/appdata/bar:/config - /home/foo/appdata/my-custom-files:/custom-cont-init.d:ro if using compose. Where possible, to improve security, we recommend mounting them read-only ( :ro ) so that container processes cannot write to the location. One example use case is our Piwigo container has a plugin that supports video, but requires ffmpeg to be installed. No problem. Add this bad boy into a script file (can be named anything) and you're good to go. #!/bin/bash echo \"**** installing ffmpeg ****\" apk add --no-cache ffmpeg NOTE: The folder /custom-cont-init.d needs to be owned by root! If this is not the case, this folder will be renamed and a new (empty) folder will be created. This is to prevent remote code execution by putting scripts in the aforementioned folder. Custom Services There might also be a need to run an additional service in a container alongside what we already package. Similarly to the custom scripts, just create a new directory at /custom-services.d . The files in this directory should be named after the service they will be running. Similar to with custom scripts you will need to mount this folder like any other volume if you wish to make use of it. e.g. -v /home/foo/appdata/my-custom-services:/custom-services.d if using the Docker CLI or services: bar: volumes: - /home/foo/appdata/bar:/config - /home/foo/appdata/my-custom-services:/custom-services.d:ro if using compose. Where possible, to improve security, we recommend mounting them read-only ( :ro ) so that container processes cannot write to the location. Running cron in our containers is now as simple as a single file. Drop this script in /custom-services.d/cron and it will run automatically in the container: #!/usr/bin/with-contenv bash /usr/sbin/crond -f -S -l 0 -c /etc/crontabs NOTE: With this example, you will most likely need to have cron installed via a custom script using the technique in the previous section, and will need to populate the crontab. NOTE: The folder /custom-services.d needs to be owned by root! If this is not the case, this folder will be renamed and a new (empty) folder will be created. This is to prevent remote code execution by putting scripts in the aforementioned folder. Docker Mods In most cases if you needed to write some kind of custom logic to get a plugin to work or to use some kind of popular external service you will not be the only one that finds this logic useful. If you would like to publish and support your hard work we provide a system for a user to pass a single environment variable to the container to ingest your custom modifications. We consume Mods from Dockerhub and in order to publish one following our guide, you only need a Github Account and a Dockerhub account. (Our guide and example code can be found here) Essentially it is a system that stashes a tarball of scripts and any other files you need in an image layer on Dockerhub. When we spin up the container we will download this tarball and extract it to /. This allows community members to publish a relatively static pile of logic that will always be applied to an end user's up to date Linuxserver.io container. An example of how this logic can be used to greatly expand the functionality of our base containers would be to add VPN support to a Transmission container: docker create \\ --name=transmission \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e DOCKER_MODS=taisun/config-mods:pia \\ -e PIAUSER=pmyuser \\ -e PIAPASS=mypassword \\ -e PIAENDPOINT=\"US New York City\" \\ -e TZ=US/Eastern \\ -p 9091:9091 \\ -p 51413:51413 \\ -p 51413:51413/udp \\ -v path to data:/config \\ -v path to downloads:/downloads \\ -v path to watch folder:/watch \\ --restart unless-stopped \\ linuxserver/transmission The source code for this mod can be found here . NOTE: When pulling in logic from external sources practice caution and trust the sources/community you get them from, as there are extreme security implications to consuming files from sources outside of our control. We are here to help If you are interested in writing custom logic and possibly sharing it with the community in the form of a Docker Mod we are always available to help you out. Our Discord server is best for quick direct contact and our Forum for a longer running project. There is zero barrier to entry for these levels of container customization and you are in complete control. We are looking forward to your next creation.","title":"Customizing LinuxServer Containers"},{"location":"general/container-customization/#customizing-linuxserver-containers","text":"One of the challenges we face as an organization is making everyone happy with the functionality we provide for the software we package in Docker containers. As the projects that we package and distribute grow, conventionally so do the use cases along with large communities of power users. As it has become very difficult for us to support Swiss Army Knife style images we are looking to the community of users to start customizing our base image layer themselves. Something we provide and pride ourselves on is keeping our containers up to date with not only the latest external software releases, but also with the latest distribution level packages. Conventionally when people needed some form of custom functionality they would fork our source and build something once that suited their needs leaving this dangling fork without updates or basic maintenance. Behind the scenes we have been working to provide the community with the ability to customize our images not only for themselves but also for other users. This comes in the form of 3 different tools: Private Custom Scripts Private Custom Services Public Facing Docker Mods All of the functionality described in this post is live on every one of the containers we currently maintain: https://fleet.linuxserver.io NOTE: While the following support has been added to our containers, we will not give support to any custom scripts, services, or mods. If you are having an issue with one of our containers, be sure to disable all custom scripts/services/mods before seeking support.","title":"Customizing LinuxServer Containers"},{"location":"general/container-customization/#custom-scripts","text":"The first part of this update is the support for a user's custom scripts to run at startup. In every container, simply create a new folder located at /custom-cont-init.d and add any scripts you want. These scripts can contain logic for installing packages, copying over custom files to other locations, or installing plugins. Because this location is outside of /config you will need to mount it like any other volume if you wish to make use of it. e.g. -v /home/foo/appdata/my-custom-files:/custom-cont-init.d if using the Docker CLI or services: bar: volumes: - /home/foo/appdata/bar:/config - /home/foo/appdata/my-custom-files:/custom-cont-init.d:ro if using compose. Where possible, to improve security, we recommend mounting them read-only ( :ro ) so that container processes cannot write to the location. One example use case is our Piwigo container has a plugin that supports video, but requires ffmpeg to be installed. No problem. Add this bad boy into a script file (can be named anything) and you're good to go. #!/bin/bash echo \"**** installing ffmpeg ****\" apk add --no-cache ffmpeg NOTE: The folder /custom-cont-init.d needs to be owned by root! If this is not the case, this folder will be renamed and a new (empty) folder will be created. This is to prevent remote code execution by putting scripts in the aforementioned folder.","title":"Custom Scripts"},{"location":"general/container-customization/#custom-services","text":"There might also be a need to run an additional service in a container alongside what we already package. Similarly to the custom scripts, just create a new directory at /custom-services.d . The files in this directory should be named after the service they will be running. Similar to with custom scripts you will need to mount this folder like any other volume if you wish to make use of it. e.g. -v /home/foo/appdata/my-custom-services:/custom-services.d if using the Docker CLI or services: bar: volumes: - /home/foo/appdata/bar:/config - /home/foo/appdata/my-custom-services:/custom-services.d:ro if using compose. Where possible, to improve security, we recommend mounting them read-only ( :ro ) so that container processes cannot write to the location. Running cron in our containers is now as simple as a single file. Drop this script in /custom-services.d/cron and it will run automatically in the container: #!/usr/bin/with-contenv bash /usr/sbin/crond -f -S -l 0 -c /etc/crontabs NOTE: With this example, you will most likely need to have cron installed via a custom script using the technique in the previous section, and will need to populate the crontab. NOTE: The folder /custom-services.d needs to be owned by root! If this is not the case, this folder will be renamed and a new (empty) folder will be created. This is to prevent remote code execution by putting scripts in the aforementioned folder.","title":"Custom Services"},{"location":"general/container-customization/#docker-mods","text":"In most cases if you needed to write some kind of custom logic to get a plugin to work or to use some kind of popular external service you will not be the only one that finds this logic useful. If you would like to publish and support your hard work we provide a system for a user to pass a single environment variable to the container to ingest your custom modifications. We consume Mods from Dockerhub and in order to publish one following our guide, you only need a Github Account and a Dockerhub account. (Our guide and example code can be found here) Essentially it is a system that stashes a tarball of scripts and any other files you need in an image layer on Dockerhub. When we spin up the container we will download this tarball and extract it to /. This allows community members to publish a relatively static pile of logic that will always be applied to an end user's up to date Linuxserver.io container. An example of how this logic can be used to greatly expand the functionality of our base containers would be to add VPN support to a Transmission container: docker create \\ --name=transmission \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e DOCKER_MODS=taisun/config-mods:pia \\ -e PIAUSER=pmyuser \\ -e PIAPASS=mypassword \\ -e PIAENDPOINT=\"US New York City\" \\ -e TZ=US/Eastern \\ -p 9091:9091 \\ -p 51413:51413 \\ -p 51413:51413/udp \\ -v path to data:/config \\ -v path to downloads:/downloads \\ -v path to watch folder:/watch \\ --restart unless-stopped \\ linuxserver/transmission The source code for this mod can be found here . NOTE: When pulling in logic from external sources practice caution and trust the sources/community you get them from, as there are extreme security implications to consuming files from sources outside of our control.","title":"Docker Mods"},{"location":"general/container-customization/#we-are-here-to-help","text":"If you are interested in writing custom logic and possibly sharing it with the community in the form of a Docker Mod we are always available to help you out. Our Discord server is best for quick direct contact and our Forum for a longer running project. There is zero barrier to entry for these levels of container customization and you are in complete control. We are looking forward to your next creation.","title":"We are here to help"},{"location":"general/container-execution/","text":"Container Execution You may find at some point you need to view the internal data of a container. Shell Access Particularly useful when debugging the application - to shell in to one of our containers, run the following: docker exec -it /bin/bash Tailing the logs The vast majority of our images are configured to output the application logs to the console, which in Docker's terms means you can access them using the docker logs command: docker logs -f --tail= The --tail argument is optional, but useful if the application has been running for a long time - the logs command by default will output all logs. To make life simpler for yourself here's a handy bash alias to do some of the leg work for you: # ~/.bash_aliases alias dtail='docker logs -tf --tail=\"50\" \"$@\"' Execute it with dtail . Checking the build version If you are experiencing issues with one of our containers, it helps us to know which version of the image your container is running from. The primary reason we ask for this is because you may be reporting an issue we are aware of and have subsequently fixed. However, if you are running on the latest version of our image, it could indeed be a newly found bug, which we'd want to know more about. To obtain the build version for the container: docker inspect -f '{{ index .Config.Labels \"build_version\" }}' Or the image: docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/","title":"Container Execution"},{"location":"general/container-execution/#container-execution","text":"You may find at some point you need to view the internal data of a container.","title":"Container Execution"},{"location":"general/container-execution/#shell-access","text":"Particularly useful when debugging the application - to shell in to one of our containers, run the following: docker exec -it /bin/bash","title":"Shell Access"},{"location":"general/container-execution/#tailing-the-logs","text":"The vast majority of our images are configured to output the application logs to the console, which in Docker's terms means you can access them using the docker logs command: docker logs -f --tail= The --tail argument is optional, but useful if the application has been running for a long time - the logs command by default will output all logs. To make life simpler for yourself here's a handy bash alias to do some of the leg work for you: # ~/.bash_aliases alias dtail='docker logs -tf --tail=\"50\" \"$@\"' Execute it with dtail .","title":"Tailing the logs"},{"location":"general/container-execution/#checking-the-build-version","text":"If you are experiencing issues with one of our containers, it helps us to know which version of the image your container is running from. The primary reason we ask for this is because you may be reporting an issue we are aware of and have subsequently fixed. However, if you are running on the latest version of our image, it could indeed be a newly found bug, which we'd want to know more about. To obtain the build version for the container: docker inspect -f '{{ index .Config.Labels \"build_version\" }}' Or the image: docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/","title":"Checking the build version"},{"location":"general/containers-101/","text":"Docker Containers: 101 A container bundles all the libraries required by an application to run, you no longer need to know which version of Java, Apache or whatever \u2013 the person who built the container for you took care of that. Containers don\u2019t usually ship with configuration files baked in though. This is because the contents of a container are \u2018stateless\u2019 or \u2018immutable\u2019. In English, this means the state or filesystem of the container itself cannot be modified after it is created. What do I need to know? To get started, not much. You will need to know about some of the terminology or concepts when performing more advanced tasks or troubleshooting but getting started couldn't be much simpler. docker run hello-world That's it, your first docker container. It pre-supposes you have docker installed but that's all it takes to run a container. You didn't need to know anything about installed what that app needed to run - this is the key benefit. hello-world is a simple example but imagine you have a complex application with a large number of dependencies and it is tied to a specific version of Python or Java. Then imagine you have a second app again tied to a specific, but different, version of Java or Python. Now you have to try and ensure these two (often conflicting) versions sit on the same host and play nice. In the world of containers these two versions can operate in complete isolation from one another. Bliss. Key Terminology There are a few terms you might find useful to understand when working with containers: docker - the first, and most popular, container runtime - it sits as an abstraction layer between the kernels features such as cgroups or namespaces and running applications container - a sandboxed process isolated in memory and running instance of an image image - a pre-built filesystem in a format ready to be understood by a container runtime (usually docker) volume - use volumes to persist data outside of the containers sandboxed filesystem environment - a way of configuring the sandboxed environment your container runs in Key Concepts Containers are completely sandboxed environments by the Linux kernel. It may help you to think of them somewhat like a small VM however in practice this is largely false. The Linux kernel controls access to various system resources utilising control groups (cgroups). We rely on docker to translate these complex concepts into simple ones that users can understand and consume. By default a running container has absolutely no context of the world around it. Out the box you cannot connect from the outside world to the running webservers on ports 80 and 443 below. To allow entry to the sandbox from the outside world we must explicitly allow entry using the -p flag. docker run -d --name=letsencrypt -p 80:80 -p 443:443 linuxserver/letsencrypt Take this concept and multiply it across all aspects of a running application. Ports, volumes (i.e. the files you want to be available inside the container from outside the container), environment variables and so on. For us as developers this allows us to isolate your system from troubleshooting as the box the container is running in (the container) is identical to the next. Containers are an amazing way to run applications in a secure, sandboxed way.","title":"Docker Containers: 101"},{"location":"general/containers-101/#docker-containers-101","text":"A container bundles all the libraries required by an application to run, you no longer need to know which version of Java, Apache or whatever \u2013 the person who built the container for you took care of that. Containers don\u2019t usually ship with configuration files baked in though. This is because the contents of a container are \u2018stateless\u2019 or \u2018immutable\u2019. In English, this means the state or filesystem of the container itself cannot be modified after it is created.","title":"Docker Containers: 101"},{"location":"general/containers-101/#what-do-i-need-to-know","text":"To get started, not much. You will need to know about some of the terminology or concepts when performing more advanced tasks or troubleshooting but getting started couldn't be much simpler. docker run hello-world That's it, your first docker container. It pre-supposes you have docker installed but that's all it takes to run a container. You didn't need to know anything about installed what that app needed to run - this is the key benefit. hello-world is a simple example but imagine you have a complex application with a large number of dependencies and it is tied to a specific version of Python or Java. Then imagine you have a second app again tied to a specific, but different, version of Java or Python. Now you have to try and ensure these two (often conflicting) versions sit on the same host and play nice. In the world of containers these two versions can operate in complete isolation from one another. Bliss.","title":"What do I need to know?"},{"location":"general/containers-101/#key-terminology","text":"There are a few terms you might find useful to understand when working with containers: docker - the first, and most popular, container runtime - it sits as an abstraction layer between the kernels features such as cgroups or namespaces and running applications container - a sandboxed process isolated in memory and running instance of an image image - a pre-built filesystem in a format ready to be understood by a container runtime (usually docker) volume - use volumes to persist data outside of the containers sandboxed filesystem environment - a way of configuring the sandboxed environment your container runs in","title":"Key Terminology"},{"location":"general/containers-101/#key-concepts","text":"Containers are completely sandboxed environments by the Linux kernel. It may help you to think of them somewhat like a small VM however in practice this is largely false. The Linux kernel controls access to various system resources utilising control groups (cgroups). We rely on docker to translate these complex concepts into simple ones that users can understand and consume. By default a running container has absolutely no context of the world around it. Out the box you cannot connect from the outside world to the running webservers on ports 80 and 443 below. To allow entry to the sandbox from the outside world we must explicitly allow entry using the -p flag. docker run -d --name=letsencrypt -p 80:80 -p 443:443 linuxserver/letsencrypt Take this concept and multiply it across all aspects of a running application. Ports, volumes (i.e. the files you want to be available inside the container from outside the container), environment variables and so on. For us as developers this allows us to isolate your system from troubleshooting as the box the container is running in (the container) is identical to the next. Containers are an amazing way to run applications in a secure, sandboxed way.","title":"Key Concepts"},{"location":"general/docker-compose/","text":"Docker Compose Intro Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application\u2019s services. Then, with a single command, you create and start all the services from your configuration. Note that when inputting data for variables, you must follow standard YAML rules. In the case of passwords with special characters this can mean escaping them properly ($ is the escape character) or properly quoting the variable. The best course of action if you do not know how to do this or are unwilling to research, is to stick to alphanumeric characters only. Installation Install Option 1 (recommended): Starting with version 2, Docker started publishing docker compose as a go based plugin for docker (rather than a python based standalone binary). And they also publish this plugin for various arches, including x86_64, armhf and aarch64 (as opposed to the x86_64 only binaries for v1.X). Therefore we updated our recommended install option to utilize the plugin. You can install docker compose via the following commands: ARCH=$(uname -m) && [[ \"${ARCH}\" == \"armv7l\" ]] && ARCH=\"armv7\" sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo curl -SL \"https://github.com/docker/compose/releases/latest/download/docker-compose-linux-${ARCH}\" -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose Assuming you already have docker (or at the very least docker-cli) installed, preferably from the official docker repos, running docker compose version should display the compose version. If you don't have docker installed yet, we recommend installing it via the following commands: curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh v1.X compatibility: As v2 runs as a plugin instead of a standalone binary, it is invoked by docker compose args instead of docker-compose args . There are also some slight differences in how the yaml is operated as well. To make migration easier, Docker released a replacement binary for docker-compose on x86_64 and aarch64 platforms. More info on that can be found at the upstream repo . Install Option 2: You can install docker-compose using our docker-compose image via a run script. You can simply run the following commands on your system and you should have a functional install that you can call from anywhere as docker-compose : sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/v2/run.sh -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose In order to update the local image, you can run the following commands: docker pull linuxserver/docker-compose:\"${DOCKER_COMPOSE_IMAGE_TAG:-v2}\" docker image prune -f The above commands will use the v2 images (although invoked by docker-compose instead of docker compose ). If you'd like to use v1 images, you can set an env var DOCKER_COMPOSE_IMAGE_TAG=alpine , DOCKER_COMPOSE_IMAGE_TAG=ubuntu in your respective .profile . Alternatively you can set that var to a versioned image tag like v2-2.4.1-r1 or version-alpine-1.27.4 to pin it to a specific docker-compose version. Single service Usage Here's a basic example for deploying a Linuxserver container with docker compose: version: \"2.1\" services: heimdall: image: linuxserver/heimdall container_name: heimdall volumes: - /home/user/appdata/heimdall:/config environment: - PUID=1000 - PGID=1000 - TZ=Europe/London ports: - 80:80 - 443:443 restart: unless-stopped If you save the above snippet in a file named docker-compose.yml , you can simply run docker compose up -d from within the same folder and the heimdall image will be automatically pulled, and a container will be created and started. up means bring the services up, and -d means do it in the background. If you want to do it from a different folder or if you named the yaml file differently, ie. heimdall.yml , then you can define it in the command with -f : docker compose -f /path/to/heimdall.yml up -d To bring down the services, simply do docker compose down or docker compose -f /path/to/heimdall.yml down and all containers defined by the yml will be stopped and destroyed. Multiple Service Usage You can have multiple services managed by a single compose yaml. Copy the contents below the services: line in any of our readme yaml samples into the same yaml file and the docker compose up/down commands will apply to all services at once. Let's say you have the following in a yaml file named docker-compose.yml : version: \"2.1\" services: heimdall: image: linuxserver/heimdall container_name: heimdall volumes: - /home/user/appdata/heimdall:/config environment: - PUID=1000 - PGID=1000 - TZ=Europe/London ports: - 80:80 - 443:443 restart: unless-stopped nginx: image: linuxserver/nginx container_name: nginx environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/user/appdata/nginx:/config ports: - 81:80 - 444:443 restart: unless-stopped mariadb: image: linuxserver/mariadb container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD - TZ=Europe/London volumes: - /home/user/appdata/mariadb:/config ports: - 3306:3306 restart: unless-stopped You now have 3 services defined in there: heimdall , nginx and mariadb . When you do a docker compose up -d , it will first download the images for all three if they don't exist (if they exist, they are not updated) and it will create all three containers and start them. docker compose down will bring all three services down and destroy the containers (persistent data will remain). Updates If you want to update the images and recreate the containers with the same vars, it's extremely easy with docker-compose. First we tell it to update all images via docker compose pull . Then we issue docker compose up -d and it will automatically recreate the containers (as necessary) based on the updated images. If a container's image is already the latest and there was no update, it remains untouched. Similarly, if you edit the contents of the yaml file and re-issue docker compose up -d , only the containers affected by the changes to the yaml file will be recreated, others will be untouched. Defining the containers running on your server as code is a core tenet of a \"Devops\" approach to the world. Constructing elaborate docker run commands and then forgetting which variables you passed is a thing of the past when using docker compose . Support Requests If you would like to request support, you can do so on our forum or on our discord server . When you do so, please provide all the necessary information like the server and platform info, docker container log and the compose yaml. If your compose yaml makes use of .env , please post an output of docker compose convert or docker compose convert -f /path/to/compose.yml for the entire yaml, or docker compose convert for a single service, as it will automatically replace the environment variables with their actual values. Tips & Tricks docker compose expects a docker-compose.yml file in the current directory and if one isn't present it will complain. In order to improve your quality of life we suggest the use of bash aliases. The file path for the aliases below assumes that the docker-compose.yml file is being kept in the folder /opt . If your compose file is kept somewhere else, like in a home directory, then the path will need to be changed. Create or open the file ~/.bash_aliases and populate with the following content: alias dcup='docker compose -f /opt/docker-compose.yml up -d' #brings up all containers if one is not defined after dcup alias dcdown='docker compose -f /opt/docker-compose.yml stop' #brings down all containers if one is not defined after dcdown alias dcpull='docker compose -f /opt/docker-compose.yml pull' #pulls all new images is specified after dcpull alias dclogs='docker compose -f /opt/docker-compose.yml logs -tf --tail=\"50\" ' alias dtail='docker logs -tf --tail=\"50\" \"$@\"' If the docker-compose.yml file is in a home directory, the following can be put in the ~/.bash_aliases file. alias dcup='docker-compose -f ~/docker-compose.yml up -d' #brings up all containers if one is not defined after dcup alias dcdown='docker-compose -f ~/docker-compose.yml stop' #brings down all containers if one is not defined after dcdown alias dcpull='docker-compose -f ~/docker-compose.yml pull' #pulls all new images unless one is specified alias dclogs='docker-compose -f ~/docker-compose.yml logs -tf --tail=\"50\" ' alias dtail='docker logs -tf --tail=\"50\" \"$@\"' There are multiple ways to see the logs of your containers. In some instances, using docker logs is preferable to docker compose logs . By default docker logs will not run unless you define which service the logs are coming from. The docker compose logs will pull all of the logs for the services defined in the docker-compose.yml file. When asking for help, you should post your logs or be ready to provide logs if someone requests it. If you are running multiple containers in your docker-compose.yml file, it is not helpful to submit all of the logs. If you are experiencing issues with a single service, say Heimdall, then you would want to get your logs using docker logs heimdall or docker compose logs heimdall . The bash_alias for dclogs can be used if you define your service after you've typed the alias. Likewise, the bash_alias detail will not run without defining the service after it. Some distributions, like Ubuntu, already have the code snippet below in the ~/.bashrc file. If it is not included, you'll need to add the following to your ~/.bashrc file in order for the aliases file to be picked up: if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi Once configured, you can run source ~/.bashrc or log out and the log in again. Now you can type dcpull or dcup to manage your entire fleet of containers at once. It's like magic.","title":"Docker Compose"},{"location":"general/docker-compose/#docker-compose","text":"","title":"Docker Compose"},{"location":"general/docker-compose/#intro","text":"Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application\u2019s services. Then, with a single command, you create and start all the services from your configuration. Note that when inputting data for variables, you must follow standard YAML rules. In the case of passwords with special characters this can mean escaping them properly ($ is the escape character) or properly quoting the variable. The best course of action if you do not know how to do this or are unwilling to research, is to stick to alphanumeric characters only.","title":"Intro"},{"location":"general/docker-compose/#installation","text":"","title":"Installation"},{"location":"general/docker-compose/#install-option-1-recommended","text":"Starting with version 2, Docker started publishing docker compose as a go based plugin for docker (rather than a python based standalone binary). And they also publish this plugin for various arches, including x86_64, armhf and aarch64 (as opposed to the x86_64 only binaries for v1.X). Therefore we updated our recommended install option to utilize the plugin. You can install docker compose via the following commands: ARCH=$(uname -m) && [[ \"${ARCH}\" == \"armv7l\" ]] && ARCH=\"armv7\" sudo mkdir -p /usr/local/lib/docker/cli-plugins sudo curl -SL \"https://github.com/docker/compose/releases/latest/download/docker-compose-linux-${ARCH}\" -o /usr/local/lib/docker/cli-plugins/docker-compose sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose Assuming you already have docker (or at the very least docker-cli) installed, preferably from the official docker repos, running docker compose version should display the compose version. If you don't have docker installed yet, we recommend installing it via the following commands: curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh","title":"Install Option 1 (recommended):"},{"location":"general/docker-compose/#v1x-compatibility","text":"As v2 runs as a plugin instead of a standalone binary, it is invoked by docker compose args instead of docker-compose args . There are also some slight differences in how the yaml is operated as well. To make migration easier, Docker released a replacement binary for docker-compose on x86_64 and aarch64 platforms. More info on that can be found at the upstream repo .","title":"v1.X compatibility:"},{"location":"general/docker-compose/#install-option-2","text":"You can install docker-compose using our docker-compose image via a run script. You can simply run the following commands on your system and you should have a functional install that you can call from anywhere as docker-compose : sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/v2/run.sh -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose In order to update the local image, you can run the following commands: docker pull linuxserver/docker-compose:\"${DOCKER_COMPOSE_IMAGE_TAG:-v2}\" docker image prune -f The above commands will use the v2 images (although invoked by docker-compose instead of docker compose ). If you'd like to use v1 images, you can set an env var DOCKER_COMPOSE_IMAGE_TAG=alpine , DOCKER_COMPOSE_IMAGE_TAG=ubuntu in your respective .profile . Alternatively you can set that var to a versioned image tag like v2-2.4.1-r1 or version-alpine-1.27.4 to pin it to a specific docker-compose version.","title":"Install Option 2:"},{"location":"general/docker-compose/#single-service-usage","text":"Here's a basic example for deploying a Linuxserver container with docker compose: version: \"2.1\" services: heimdall: image: linuxserver/heimdall container_name: heimdall volumes: - /home/user/appdata/heimdall:/config environment: - PUID=1000 - PGID=1000 - TZ=Europe/London ports: - 80:80 - 443:443 restart: unless-stopped If you save the above snippet in a file named docker-compose.yml , you can simply run docker compose up -d from within the same folder and the heimdall image will be automatically pulled, and a container will be created and started. up means bring the services up, and -d means do it in the background. If you want to do it from a different folder or if you named the yaml file differently, ie. heimdall.yml , then you can define it in the command with -f : docker compose -f /path/to/heimdall.yml up -d To bring down the services, simply do docker compose down or docker compose -f /path/to/heimdall.yml down and all containers defined by the yml will be stopped and destroyed.","title":"Single service Usage"},{"location":"general/docker-compose/#multiple-service-usage","text":"You can have multiple services managed by a single compose yaml. Copy the contents below the services: line in any of our readme yaml samples into the same yaml file and the docker compose up/down commands will apply to all services at once. Let's say you have the following in a yaml file named docker-compose.yml : version: \"2.1\" services: heimdall: image: linuxserver/heimdall container_name: heimdall volumes: - /home/user/appdata/heimdall:/config environment: - PUID=1000 - PGID=1000 - TZ=Europe/London ports: - 80:80 - 443:443 restart: unless-stopped nginx: image: linuxserver/nginx container_name: nginx environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/user/appdata/nginx:/config ports: - 81:80 - 444:443 restart: unless-stopped mariadb: image: linuxserver/mariadb container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD - TZ=Europe/London volumes: - /home/user/appdata/mariadb:/config ports: - 3306:3306 restart: unless-stopped You now have 3 services defined in there: heimdall , nginx and mariadb . When you do a docker compose up -d , it will first download the images for all three if they don't exist (if they exist, they are not updated) and it will create all three containers and start them. docker compose down will bring all three services down and destroy the containers (persistent data will remain).","title":"Multiple Service Usage"},{"location":"general/docker-compose/#updates","text":"If you want to update the images and recreate the containers with the same vars, it's extremely easy with docker-compose. First we tell it to update all images via docker compose pull . Then we issue docker compose up -d and it will automatically recreate the containers (as necessary) based on the updated images. If a container's image is already the latest and there was no update, it remains untouched. Similarly, if you edit the contents of the yaml file and re-issue docker compose up -d , only the containers affected by the changes to the yaml file will be recreated, others will be untouched. Defining the containers running on your server as code is a core tenet of a \"Devops\" approach to the world. Constructing elaborate docker run commands and then forgetting which variables you passed is a thing of the past when using docker compose .","title":"Updates"},{"location":"general/docker-compose/#support-requests","text":"If you would like to request support, you can do so on our forum or on our discord server . When you do so, please provide all the necessary information like the server and platform info, docker container log and the compose yaml. If your compose yaml makes use of .env , please post an output of docker compose convert or docker compose convert -f /path/to/compose.yml for the entire yaml, or docker compose convert for a single service, as it will automatically replace the environment variables with their actual values.","title":"Support Requests"},{"location":"general/docker-compose/#tips-tricks","text":"docker compose expects a docker-compose.yml file in the current directory and if one isn't present it will complain. In order to improve your quality of life we suggest the use of bash aliases. The file path for the aliases below assumes that the docker-compose.yml file is being kept in the folder /opt . If your compose file is kept somewhere else, like in a home directory, then the path will need to be changed. Create or open the file ~/.bash_aliases and populate with the following content: alias dcup='docker compose -f /opt/docker-compose.yml up -d' #brings up all containers if one is not defined after dcup alias dcdown='docker compose -f /opt/docker-compose.yml stop' #brings down all containers if one is not defined after dcdown alias dcpull='docker compose -f /opt/docker-compose.yml pull' #pulls all new images is specified after dcpull alias dclogs='docker compose -f /opt/docker-compose.yml logs -tf --tail=\"50\" ' alias dtail='docker logs -tf --tail=\"50\" \"$@\"' If the docker-compose.yml file is in a home directory, the following can be put in the ~/.bash_aliases file. alias dcup='docker-compose -f ~/docker-compose.yml up -d' #brings up all containers if one is not defined after dcup alias dcdown='docker-compose -f ~/docker-compose.yml stop' #brings down all containers if one is not defined after dcdown alias dcpull='docker-compose -f ~/docker-compose.yml pull' #pulls all new images unless one is specified alias dclogs='docker-compose -f ~/docker-compose.yml logs -tf --tail=\"50\" ' alias dtail='docker logs -tf --tail=\"50\" \"$@\"' There are multiple ways to see the logs of your containers. In some instances, using docker logs is preferable to docker compose logs . By default docker logs will not run unless you define which service the logs are coming from. The docker compose logs will pull all of the logs for the services defined in the docker-compose.yml file. When asking for help, you should post your logs or be ready to provide logs if someone requests it. If you are running multiple containers in your docker-compose.yml file, it is not helpful to submit all of the logs. If you are experiencing issues with a single service, say Heimdall, then you would want to get your logs using docker logs heimdall or docker compose logs heimdall . The bash_alias for dclogs can be used if you define your service after you've typed the alias. Likewise, the bash_alias detail will not run without defining the service after it. Some distributions, like Ubuntu, already have the code snippet below in the ~/.bashrc file. If it is not included, you'll need to add the following to your ~/.bashrc file in order for the aliases file to be picked up: if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi Once configured, you can run source ~/.bashrc or log out and the log in again. Now you can type dcpull or dcup to manage your entire fleet of containers at once. It's like magic.","title":"Tips & Tricks"},{"location":"general/fleet/","text":"Fleet How Fleet works Fleet stores a snapshot of Docker Images in its own database, consisting of metadata deemed most pertinent to both the users of the images, and the repository owner. It will synchronize with Docker Hub over a set interval in order to update its stored data. It then displays this snapshot data on its own status page as a useful list, containing links to each repository and image owned by the repository owner. Each image also contains a status which is managed by the repository owner, who can define images as either Stable or Unstable . This is designed to quickly help users know when an image is undergoing a state of instability which is known by the owner. Why a snapshot? In short, Docker Hub's API is very slow. It would not be a good long-term solution to just proxy the responses from Docker Hub and translate the data into something considered useful by downstream clients. By caching the image information in its own database, Fleet is able to more efficiently return the status data for each image and repository. In doing so, it is also able to provide more concise data, such as image versions, as part of the primary response, rather than requiring users to make a separate call. As an example comparison between obtaining all image name, pull and version information for all LinuxServer images from Docker Hub, and then obtaining that same data via Fleet's API: API Time (ms) Docker Hub (multiple calls) 52000ms Fleet 50ms Capabilities Fleet has the ability to display images with a particular state, which provides contextual information to visitors of the application's main page. Hidden If an image is hidden, it will not be displayed as part of the main list, nor will it be returned as part of any API calls. This also means that the pull count of a hidden image is not included. Unstable Marks an image as having issues known by the maintainer. A useful state to assign to an image if the latest build (or builds) are causing downstream breakages. This may also be useful if an upstream dependency or application is causing breakages in the image directly. Deprecated If the maintainer of the image, or upstream application no longer wishes to provide support, or if the image has reached its end-of-life (or has been superseded by another), marking an image as deprecated will ensure users are made aware that no further updates will be supplied, and should stop using it. Deprecation notices are also provided to give context. API Fleet exposes a single API endpoint which can be used to obtain image list and pull count information for all relevant images maintained by the repository {% api-method method=\"get\" host=\"https://fleet.linuxserver.io\" path=\"/api/v1/images\" %} {% api-method-summary %} Get All Repositories and Images {% endapi-method-summary %} {% api-method-description %} Returns all synchronized images. {% endapi-method-description %} {% api-method-spec %} {% api-method-request %} {% api-method-response %} {% api-method-response-example httpCode=200 %} {% api-method-response-example-description %} All synchronized repositories and images returned. {% endapi-method-response-example-description %} { \"status\": \"OK\", \"data\" { \"totalPullCount\": 1862494227, \"repositories\": { \"lsiobase\": [ { \"name\": \"alpine\", \"pullCount\": 4275970, \"version\": \"3.6\", \"stable\": true }, { \"name\": \"alpine.arm64\", \"pullCount\": 66234, \"version\": \"edge\", \"stable\": true }, ... ], \"linuxserver\": [ { \"name\": \"airsonic\", \"pullCount\": 4608329, \"version\": \"v10.2.1\", \"stable\": true }, { \"name\": \"apache\", \"pullCount\": 3011699, \"version\": \"latest\", \"stable\": true }, ... ] ... } } } {% endapi-method-response-example %} {% endapi-method-response %} {% endapi-method-spec %} {% endapi-method %} {% hint style=\"info\" %} Any repositories not synchronized with Docker Hub (e.g. staging or metadata repositories) will not be returned as part of the API. This also applies to images which the repository owner does not wish to be part of the primary image list. {% endhint %} Running Fleet {% hint style=\"warning\" %} Fleet is a Java application and requires at least JRE 11. {% endhint %} Grab the latest Fleet release from GitHub . SQL Fleet stores its data in a MariaDB database which you need to provide. In order for the application to manage its tables and procedures, the user you provide it needs to have the relevant GRANT permissions to the fleet database. The following script should be sufficient to get the initial database set up. CREATE SCHEMA `fleet`; CREATE USER 'fleet_user' IDENTIFIED BY 'supersecretpassword'; GRANT ALL ON `fleet`.* TO 'fleet_user'; The username and password that you define must then be provided as part of Fleet's configuration. Configuration File All primary configuration for Fleet at runtime is loaded in via a fleet.properties file. This can be located anywhere on the file system, and is loaded in via a Runtime argument: # Runtime fleet.app.port=8080 # Database Connectivity fleet.database.driver=org.mariadb.jdbc.Driver fleet.database.url=jdbc:mariadb://:3306/fleet fleet.database.username= fleet.database.password= # Password security fleet.admin.secret= All configuration can be loaded either via the config file, via JVM arguments, or via the system environment. Fleet will first look in the configuration file, then JVM runtime, and finally in the system environment. It will load the first value it finds, which can be useful when needing to override specific properties. {% hint style=\"info\" %} If you place a property in the system environment, ensure that the property uses underscores rather than periods. This is due to a limitation in BASH environments where exported variables must not contain this character. E.g. fleet.app.port=8080 becomes export fleet_app_port=8080 {% endhint %} Property Name Purpose fleet.app.port The port which the application will be running under. fleet.admin.secret A string used as part of the password key derivation process. This secret is prepended to the raw password before its key is derived, providing further pseudo-randomness to hashed passwords. Once set, this must not be changed! It is vital to remain the same, as it will be used during the password verification step. If Fleet is restarted with this removed or set differently, the password verification process will fail because previously hashed passwords will have been derived with the old secret. fleet.database.driver The driver to use for connections to Fleet's database. This should be org.mariadb.jdbc.Driver fleet.database.url The full JDBC connection string to the database. fleet.database.username The username of the SQL user which will be managing the data in the Fleet database. This should have full GRANT access to the fleet database as it also manages any database migrations. fleet.database.password The password for the SQL user Runtime Arguments As well as the base configuration file, Fleet also supports some runtime arguments by means of the -D flag. These can be used to direct Fleet to behave in a specific way at runtime. {% hint style=\"info\" %} Unlike the properties defined above, these properties are only accessed via the JVM arguments ( -D ). {% endhint %} Runtime Argument Purpose fleet.config.base The absolute path of the configuration file. fleet.show.passwords Tells fleet to show passwords in plain text in its logs. Not recommended . fleet.nuke.database Be very careful. This will tell Fleet to completely wipe and rebuild its database. This can be useful if the owner deems the database to be too far out of synchronisation with Docker Hub, or if images have since been removed but are still showing in Fleet. fleet.skip.sync.on.startup By default, Fleet will run a synchronisation process when it first starts up. Setting this flag will tell it to skip the first run. The next synchronisation will be at the set interval. Default User When starting Fleet for the first time it will create a default user in order for you to log in and manage the repositories/images synchronised by the application. The default username and password are: Username : admin Password : admin {% hint style=\"warning\" %} You should change the default password for this user as soon as possible! This can be done via the Admin -> Users menu options. {% endhint %}","title":"Fleet"},{"location":"general/fleet/#fleet","text":"","title":"Fleet"},{"location":"general/fleet/#how-fleet-works","text":"Fleet stores a snapshot of Docker Images in its own database, consisting of metadata deemed most pertinent to both the users of the images, and the repository owner. It will synchronize with Docker Hub over a set interval in order to update its stored data. It then displays this snapshot data on its own status page as a useful list, containing links to each repository and image owned by the repository owner. Each image also contains a status which is managed by the repository owner, who can define images as either Stable or Unstable . This is designed to quickly help users know when an image is undergoing a state of instability which is known by the owner.","title":"How Fleet works"},{"location":"general/fleet/#why-a-snapshot","text":"In short, Docker Hub's API is very slow. It would not be a good long-term solution to just proxy the responses from Docker Hub and translate the data into something considered useful by downstream clients. By caching the image information in its own database, Fleet is able to more efficiently return the status data for each image and repository. In doing so, it is also able to provide more concise data, such as image versions, as part of the primary response, rather than requiring users to make a separate call. As an example comparison between obtaining all image name, pull and version information for all LinuxServer images from Docker Hub, and then obtaining that same data via Fleet's API: API Time (ms) Docker Hub (multiple calls) 52000ms Fleet 50ms","title":"Why a snapshot?"},{"location":"general/fleet/#capabilities","text":"Fleet has the ability to display images with a particular state, which provides contextual information to visitors of the application's main page.","title":"Capabilities"},{"location":"general/fleet/#hidden","text":"If an image is hidden, it will not be displayed as part of the main list, nor will it be returned as part of any API calls. This also means that the pull count of a hidden image is not included.","title":"Hidden"},{"location":"general/fleet/#unstable","text":"Marks an image as having issues known by the maintainer. A useful state to assign to an image if the latest build (or builds) are causing downstream breakages. This may also be useful if an upstream dependency or application is causing breakages in the image directly.","title":"Unstable"},{"location":"general/fleet/#deprecated","text":"If the maintainer of the image, or upstream application no longer wishes to provide support, or if the image has reached its end-of-life (or has been superseded by another), marking an image as deprecated will ensure users are made aware that no further updates will be supplied, and should stop using it. Deprecation notices are also provided to give context.","title":"Deprecated"},{"location":"general/fleet/#api","text":"Fleet exposes a single API endpoint which can be used to obtain image list and pull count information for all relevant images maintained by the repository {% api-method method=\"get\" host=\"https://fleet.linuxserver.io\" path=\"/api/v1/images\" %} {% api-method-summary %} Get All Repositories and Images {% endapi-method-summary %} {% api-method-description %} Returns all synchronized images. {% endapi-method-description %} {% api-method-spec %} {% api-method-request %} {% api-method-response %} {% api-method-response-example httpCode=200 %} {% api-method-response-example-description %} All synchronized repositories and images returned. {% endapi-method-response-example-description %} { \"status\": \"OK\", \"data\" { \"totalPullCount\": 1862494227, \"repositories\": { \"lsiobase\": [ { \"name\": \"alpine\", \"pullCount\": 4275970, \"version\": \"3.6\", \"stable\": true }, { \"name\": \"alpine.arm64\", \"pullCount\": 66234, \"version\": \"edge\", \"stable\": true }, ... ], \"linuxserver\": [ { \"name\": \"airsonic\", \"pullCount\": 4608329, \"version\": \"v10.2.1\", \"stable\": true }, { \"name\": \"apache\", \"pullCount\": 3011699, \"version\": \"latest\", \"stable\": true }, ... ] ... } } } {% endapi-method-response-example %} {% endapi-method-response %} {% endapi-method-spec %} {% endapi-method %} {% hint style=\"info\" %} Any repositories not synchronized with Docker Hub (e.g. staging or metadata repositories) will not be returned as part of the API. This also applies to images which the repository owner does not wish to be part of the primary image list. {% endhint %}","title":"API"},{"location":"general/fleet/#running-fleet","text":"{% hint style=\"warning\" %} Fleet is a Java application and requires at least JRE 11. {% endhint %} Grab the latest Fleet release from GitHub .","title":"Running Fleet"},{"location":"general/fleet/#sql","text":"Fleet stores its data in a MariaDB database which you need to provide. In order for the application to manage its tables and procedures, the user you provide it needs to have the relevant GRANT permissions to the fleet database. The following script should be sufficient to get the initial database set up. CREATE SCHEMA `fleet`; CREATE USER 'fleet_user' IDENTIFIED BY 'supersecretpassword'; GRANT ALL ON `fleet`.* TO 'fleet_user'; The username and password that you define must then be provided as part of Fleet's configuration.","title":"SQL"},{"location":"general/fleet/#configuration-file","text":"All primary configuration for Fleet at runtime is loaded in via a fleet.properties file. This can be located anywhere on the file system, and is loaded in via a Runtime argument: # Runtime fleet.app.port=8080 # Database Connectivity fleet.database.driver=org.mariadb.jdbc.Driver fleet.database.url=jdbc:mariadb://:3306/fleet fleet.database.username= fleet.database.password= # Password security fleet.admin.secret= All configuration can be loaded either via the config file, via JVM arguments, or via the system environment. Fleet will first look in the configuration file, then JVM runtime, and finally in the system environment. It will load the first value it finds, which can be useful when needing to override specific properties. {% hint style=\"info\" %} If you place a property in the system environment, ensure that the property uses underscores rather than periods. This is due to a limitation in BASH environments where exported variables must not contain this character. E.g. fleet.app.port=8080 becomes export fleet_app_port=8080 {% endhint %} Property Name Purpose fleet.app.port The port which the application will be running under. fleet.admin.secret A string used as part of the password key derivation process. This secret is prepended to the raw password before its key is derived, providing further pseudo-randomness to hashed passwords. Once set, this must not be changed! It is vital to remain the same, as it will be used during the password verification step. If Fleet is restarted with this removed or set differently, the password verification process will fail because previously hashed passwords will have been derived with the old secret. fleet.database.driver The driver to use for connections to Fleet's database. This should be org.mariadb.jdbc.Driver fleet.database.url The full JDBC connection string to the database. fleet.database.username The username of the SQL user which will be managing the data in the Fleet database. This should have full GRANT access to the fleet database as it also manages any database migrations. fleet.database.password The password for the SQL user","title":"Configuration File"},{"location":"general/fleet/#runtime-arguments","text":"As well as the base configuration file, Fleet also supports some runtime arguments by means of the -D flag. These can be used to direct Fleet to behave in a specific way at runtime. {% hint style=\"info\" %} Unlike the properties defined above, these properties are only accessed via the JVM arguments ( -D ). {% endhint %} Runtime Argument Purpose fleet.config.base The absolute path of the configuration file. fleet.show.passwords Tells fleet to show passwords in plain text in its logs. Not recommended . fleet.nuke.database Be very careful. This will tell Fleet to completely wipe and rebuild its database. This can be useful if the owner deems the database to be too far out of synchronisation with Docker Hub, or if images have since been removed but are still showing in Fleet. fleet.skip.sync.on.startup By default, Fleet will run a synchronisation process when it first starts up. Setting this flag will tell it to skip the first run. The next synchronisation will be at the set interval.","title":"Runtime Arguments"},{"location":"general/fleet/#default-user","text":"When starting Fleet for the first time it will create a default user in order for you to log in and manage the repositories/images synchronised by the application. The default username and password are: Username : admin Password : admin {% hint style=\"warning\" %} You should change the default password for this user as soon as possible! This can be done via the Admin -> Users menu options. {% endhint %}","title":"Default User"},{"location":"general/running-our-containers/","text":"Running LinuxServer Containers Image Structure Base Images We have curated various base images which our main application images derive from. This is beneficial for two main reasons: A common dependency base between multiple images, reducing the likelihood of variation between two or more applications that share the same dependencies. Reduction in image footprint on your host machine by fully utilising Docker's image layering system. Multiple containers running locally that share the same base image will reuse that image and any of its ancestors. The /config volume To help reduce variation between our images, we have adopted a common structure pattern for application config and dependent directories. This means that each image has its own internal /config directory which holds all application-specific configuration. With the exception of a small number of images, all of our images expose this volume. We do this because we believe that it makes it easier to answer the common question of \"where does the application data get persisted?\" - the answer being \"always in /config \". If you don't map this directory when creating your containers, the config will only last as long as the lifespan of the container itself! Creating a Container To create a container from one of our images, you must use either docker create or docker run . Each image follows the same pattern in the command when creating a container: docker create \\ --name= \\ -v :/config \\ -e PUID= \\ -e PGID= \\ -p : \\ linuxserver/","title":"Running LinuxServer Containers"},{"location":"general/running-our-containers/#running-linuxserver-containers","text":"","title":"Running LinuxServer Containers"},{"location":"general/running-our-containers/#image-structure","text":"","title":"Image Structure"},{"location":"general/running-our-containers/#base-images","text":"We have curated various base images which our main application images derive from. This is beneficial for two main reasons: A common dependency base between multiple images, reducing the likelihood of variation between two or more applications that share the same dependencies. Reduction in image footprint on your host machine by fully utilising Docker's image layering system. Multiple containers running locally that share the same base image will reuse that image and any of its ancestors.","title":"Base Images"},{"location":"general/running-our-containers/#the-config-volume","text":"To help reduce variation between our images, we have adopted a common structure pattern for application config and dependent directories. This means that each image has its own internal /config directory which holds all application-specific configuration. With the exception of a small number of images, all of our images expose this volume. We do this because we believe that it makes it easier to answer the common question of \"where does the application data get persisted?\" - the answer being \"always in /config \". If you don't map this directory when creating your containers, the config will only last as long as the lifespan of the container itself!","title":"The /config volume"},{"location":"general/running-our-containers/#creating-a-container","text":"To create a container from one of our images, you must use either docker create or docker run . Each image follows the same pattern in the command when creating a container: docker create \\ --name= \\ -v :/config \\ -e PUID= \\ -e PGID= \\ -p : \\ linuxserver/","title":"Creating a Container"},{"location":"general/swag/","text":"The goal of this guide is to give you ideas on what can be accomplished with the LinuxServer SWAG docker image and to get you started. We will explain some of the basic concepts and limitations, and then we'll provide you with common examples. If you have further questions, you can ask on our forum or join our Discord for conversations: https://discord.gg/YWrKVTn Table of Contents Introduction What are SSL certs? What is Let's Encrypt (and/or ZeroSSL)? Creating a SWAG container Docker cli Docker compose Authorization method Cert provider (Let's Encrypt vs ZeroSSL) Port forwards Docker networking Container setup examples Create container via http validation Create container via dns validation with a wildcard cert Create container via duckdns validation with a wildcard cert Web hosting examples Simple html web page hosting Hosting a Wordpress site Reverse Proxy Preset proxy confs Understanding the proxy conf structure Subdomain proxy conf Subfolder proxy conf Ombi subdomain reverse proxy example Nextcloud subdomain reverse proxy example Plex subfolder reverse proxy example Using Heimdall as the home page at domain root Troubleshooting Common errors 404 502 Final Thoughts How to Request Support Introduction What are SSL certs? SSL certs allow users of a service to communicate via encrypted data transmitted up and down. Third party trusted certs also allow users to make sure that the remote service they are connecting to is really who they say they are and not someone else in the middle. When we run a web server for reasons like hosting websites or reverse proxying services on our own domain, we need to set it up with third party trusted ssl certs so client browsers trust it and communicate with it securely. When you connect to a website with a trusted cert, most browsers show a padlock icon next to the address bar to indicate that. Without a trusted cert (ie. with self signed cert) most browsers show warning pages or may block access to the website as the website identity cannot be confirmed via a trusted third party. What is Let's Encrypt (and/or ZeroSSL)? In the past, the common way to get a trusted ssl cert was to contact one of the providers, send them the relevant info to prove ownership of a domain and pay for the service. Nowadays, with Let's Encrypt and ZeroSSL , one can get free certs via automated means. The SWAG docker image , published and maintained by LinuxServer.io , makes setting up a full-fledged web server with auto generated and renewed ssl certs very easy. It is essentially an nginx webserver with php7, fail2ban (intrusion prevention) and Let's Encrypt cert validation built-in. It is just MySQL short of a LEMP stack and therefore is best paired with our MariaDB docker image . Creating a SWAG container Most of the initial settings for getting a webserver with ssl certs up are done through the docker run/create or compose yaml parameters. Here's a list of all the settings available including the optional ones. It is safe to remove unnecessary parameters for different scenarios. docker cli docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=yourdomain.url \\ -e SUBDOMAINS=www, \\ -e VALIDATION=http \\ -e CERTPROVIDER= `#optional` \\ -e DNSPLUGIN=cloudflare `#optional` \\ -e DUCKDNSTOKEN= `#optional` \\ -e EMAIL= `#optional` \\ -e ONLY_SUBDOMAINS=false `#optional` \\ -e EXTRA_DOMAINS= `#optional` \\ -e STAGING=false `#optional` \\ -p 443:443 \\ -p 80:80 `#optional` \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag docker-compose Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=yourdomain.url - SUBDOMAINS=www, - VALIDATION=http - CERTPROVIDER= #optional - DNSPLUGIN=cloudflare #optional - DUCKDNSTOKEN= #optional - EMAIL= #optional - ONLY_SUBDOMAINS=false #optional - EXTRA_DOMAINS= #optional - STAGING=false #optional volumes: - :/config ports: - 443:443 - 80:80 #optional restart: unless-stopped Authorization method Our image currently supports three different methods to validate domain ownership: http: Let's Encrypt (acme) server connects to domain on port 80 Can be owned domain or a dynamic dns address dns: Let's Encrypt (acme) server connects to dns provider Api credentials and settings entered into ini files under /config/dns-conf/ Supports wildcard certs Need to have own domain name (non-free) duckdns: Let's Encrypt (acme) server connects to DuckDNS Supports wildcard certs (only for the sub-subdomains) No need for own domain (free) The validation is performed when the container is started for the first time. Nginx won't be up until ssl certs are successfully generated. The certs are valid for 90 days. The container will check the cert expiration status every night and if they are to expire within 30 days, it will attempt to auto-renew. If your certs are about to expire in less than 30 days, check the logs under /config/log/letsencrypt to see why the auto-renewals failed. Cert Provider (Let's Encrypt vs ZeroSSL) As of January 2021, SWAG supports getting certs validated by either Let's Encrypt or ZeroSSL . Both services use the ACME protocol as the underlying method to validate ownership. Our Certbot client in the SWAG image is ACME compliant and therefore supports both services. Although very similar, ZeroSSL does (at the time of writing) have a couple of advantages over Let's Encrypt: * ZeroSSL provides unlimited certs via ACME and has no rate limits or throttling (it's quite common for new users to get throttled by Let's Encrypt due to multiple unsuccessful attempts to validate) * ZeroSSL provides a web interface that allows users to list and manage the certs they have received SWAG currently defaults to Let's Encrypt as the cert provider so as not to break existing installs, however users can override that behavior by setting the environment variable CERTPROVIDER=zerossl to retrieve a cert from ZeroSSL instead. The only gotcha is that ZeroSSL requires the EMAIL env var to be set so the certs can be tied to a ZeroSSL account for management over their web interface. Port forwards Port 443 mapping is required for access through https://domain.com . However, you don't necessarily need to have it listen on port 443 on the host server. All that is needed is to have port 443 on the router (wan) somehow forward to port 443 inside the container, while it can go through a different port on the host. For instance, it is ok to have port 443 on router (wan) forward to port 444 on the host, and then map port 444 to port 443 in docker run/create or compose yml. Port 80 forwarding is required for http validation only. Same rule as above applies, and it's OK to go from 80 on the router to 81 on the host, mapped to 80 in the container. Docker networking SWAG container happily runs with bridge networking. However, the default bridge network in docker does not allow containers to connect each other via container names used as dns hostnames. Therefore, it is recommended to first create a user defined bridge network and attach the containers to that network. If you are using docker-compose, and your services are on the same yaml, you do not need to do this, because docker-compose automatically creates a user defined bridge network and attaches each container to it as long as no other networking option is defined in their config. For the below examples, we will use a network named lsio . We can create it via docker network create lsio . After that, any container that is created with --net=lsio can ping each other by container name as dns hostname. Keep in mind that dns hostnames are meant to be case-insensitive, however container names are case-sensitive. For container names to be used as dns hostnames in nginx, they should be all lowercase as nginx will convert them to all lowercase before trying to resolve. Container setup examples Create container via http validation Let's assume our domain name is linuxserver-test.com and we would like our cert to also cover www.linuxserver-test.com and ombi.linuxserver-test.com . On the router, forward ports 80 and 443 to your host server. On your dns provider (if using your own domain), create an A record for the main domain and point it to your server IP (wan). Also create CNAMES for www and ombi and point them to the A record for the domain. With docker cli, we'll first create a user defined bridge network if we haven't already docker network create lsio , and then create the container: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=www,ombi \\ -e VALIDATION=http \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once created, we do docker start swag to start it. With docker compose, we can use the following yml: --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=www,ombi - VALIDATION=http volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped We can fire up the container with docker-compose up -d After the container is started, we'll watch the logs with docker logs swag -f . After some initial initialization, we will see the validation steps. After all the steps, it should print Server ready in the logs. Now we can browse to https://www.linuxserver-test.com and we'll see the default landing page displayed. Create container via dns validation with a wildcard cert Let's assume our domain name is linuxserver-test.com and we would like our cert to also cover www.linuxserver-test.com , ombi.linuxserver-test.com and any other subdomain possible. On the router, we'll forward port 443 to our host server (Port 80 forwarding is optional). We'll need to make sure that we are using a dns provider that is supported by this image. Currently the following dns plugins are supported: cloudflare , cloudxns , digitalocean , dnsimple , dnsmadeeasy , google , luadns , nsone , ovh , rfc2136 and route53 . Your dns provider by default is the provider of your domain name and if they are not supported, it is very easy to switch to a different dns provider. Cloudflare is recommended due to being free and reliable. To switch to Cloudflare, you can register for a free account and follow their steps to point the nameservers to Cloudflare. The rest of the instructions assume that we are using the cloudflare dns plugin. On our dns provider, we'll create an A record for the main domain and point it to our server IP (wan). We'll also create a CNAME for * and point it to the A record for the domain. On Cloudflare, we'll click on the orange cloud to turn it grey so that it is dns only and not cached/proxied by Cloudflare, which would add more complexities. Now, let's get the container set up. With docker cli, we'll first create a user defined bridge network if we haven't already docker network create lsio , and then create the container: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag And we start the container via docker start swag With docker compose, we'll use: --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Then we'll fire up the container via docker-compose up -d After the container is started, we'll watch the logs with docker logs swag -f . After some init steps, we'll notice that the container will give an error during validation due to wrong credentials. That's because we didn't enter the correct credentials for the Cloudflare api yet. We can browse to the location /config/dns-conf which is mapped from the host location (according to above settings) /home/aptalca/appdata/swag/dns-conf/ and edit the correct ini file for our dns provider. For Cloudflare, we'll enter our e-mail address and the api key. The api key can be retrieved by going to the Overview page and clicking on Get your API key link. We'll need the Global API Key . Once we enter the credentials into the ini file, we'll restart the docker container via docker restart swag and again watch the logs. After successful validation, we should see the notice Server ready and our webserver should be up and accessible at https://www.linuxserver-test.com . Create container via duckdns validation with a wildcard cert We will first need to get a subdomain from DuckDNS . Let's assume we get linuxserver-test so our url will be linuxserver-test.duckdns.org . Then we'll need to make sure that the subdomain points to our server IP (wan) on the DuckDNS website. We can always use our DuckDNS docker image to keep the IP up to date. Don't forget to get the token for your account from DuckDNS. On the router, we'll forward port 443 to our host server (Port 80 forward is optional). Now, let's get the container set up. With docker cli, we'll first create a user defined bridge network if we haven't already docker network create lsio , and then create the container: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.duckdns.org \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=duckdns \\ -e DUCKDNSTOKEN=97654867496t0877648659765854 \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag And we start the container via docker start swag With docker compose, we'll use: --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.duckdns.org - SUBDOMAINS=wildcard - VALIDATION=duckdns - DUCKDNSTOKEN=97654867496t0877648659765854 volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Then we'll fire up the container via docker-compose up -d After the container is started, we'll watch the logs with docker logs swag -f . We'll see some initialization and then we will see the validation steps. After all the steps, it should print Server ready in the logs. Now we can access the webserver by browsing to https://www.linuxserver-test.duckdns.org . NOTICE: Due to a DuckDNS limitation, our cert only covers the wildcard subdomains, but it doesn't cover the main url. So if we try to access https://linuxserver-test.duckdns.org , we'll see a browser warning about an invalid ssl cert. But accessing it through the www (or ombi or any other) subdomain should work fine. Web hosting examples Simple html web page hosting Once we have a working container, we can drop our web documents in and modify the nginx config files to set up our webserver. All the necessary files are under /config which is mapped from the host location (set by above examples) /home/aptalca/appdata/swag . We can drop all of our web/html files into /config/www . The main site config nginx uses can be found at /config/nginx/site-confs/default . Don't delete this file, as it will be regenerated on container restart, but feel free to modify as needed. By default, it is listening on port 443, and the root folder is set to /config/www , so if you drop a page1.html into that location, it will be accessible at https://linuxserver-test.com/page1.html . To enable listening on port 80 and automatically redirecting to port 443 for enforcing ssl, uncomment the lines at the top of the default site config so it reads: # redirect all traffic to https server { listen 80; listen [::]:80; server_name _; return 301 https://$host$request_uri; } After any changes to the config files, simply restart the container via docker restart swag to reload the nginx config. Hosting a Wordpress site Wordpress requires a mysql database. For that, we'll use the linuxserver MariaDB docker image . Here's a docker compose stack to get both containers set up. For this exercise, we'll utilize the cloudflare dns plugin for Let's Encrypt validation, but you can use any other method to set it up as described in this linked section : --- version: \"2.1\" services: mariadb: image: lscr.io/linuxserver/mariadb container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=mariadbpassword - TZ=Europe/London - MYSQL_DATABASE=WP_database - MYSQL_USER=WP_dbuser - MYSQL_PASSWORD=WP_dbpassword volumes: - /home/aptalca/appdata/mariadb:/config restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 depends_on: - mariadb restart: unless-stopped And here are the docker cli versions (make sure you already created the lsio network as described above : Mariadb: docker create \\ --name=mariadb \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_ROOT_PASSWORD=mariadbpassword \\ -e TZ=Europe/London \\ -e MYSQL_DATABASE=WP_database \\ -e MYSQL_USER=WP_dbuser \\ -e MYSQL_PASSWORD=WP_dbpassword \\ -v /home/aptalca/appdata/mariadb:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mariadb SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once the SWAG container is set up with ssl certs and the webserver is up, we'll download the latest Wordpress and untar it into our www folder: wget https://wordpress.org/latest.tar.gz tar xvf latest.tar.gz -C /home/aptalca/appdata/swag/www/ rm latest.tar.gz Now that we have all the wordpress files under the container's /config/www/wordpress folder, we'll change the root directive in our SWAG default site conf to point there. We'll find the line in /config/nginx/site-confs/default that reads root /config/www; and change it to root /config/www/wordpress; and restart SWAG. Now we should be able to access our wordpress config page at https://linuxserver-test.com/wp-admin/install.php . We'll go ahead and enter mariadb as the Database Host address (we are using the container name as the dns hostname since both containers are in the same user defined bridge network), and also enter the Database Name, user and password we used in the mariadb config above ( WP_database , WP_dbuser and WP_dbpassword ). Once we go through the rest of the install steps, our wordpress instance should be fully set up and available at https://linuxserver-test.com . If you would like to have http requests on port 80 enabled and auto redirected to https on port 443, uncomment the relevant lines at the top of the default site config to read: # redirect all traffic to https server { listen 80; listen [::]:80; server_name _; return 301 https://$host$request_uri; } Reverse Proxy A reverse proxy is a type of proxy server that retrieves resources on behalf of a client from one or more servers. These resources are then returned to the client as if they originated from the Web server itself (Shamelessly borrowed from another post on our blog ). In this case, a user or a client browser can connect to our SWAG container via https on port 443, request a service such as Ombi, then our SWAG container connects to the ombi container, retrieves the data and passes it on to the client via https with our trusted cert. The connection to ombi is local and does not need to be encrypted, but all communication between our SWAG container and the client browser will be encrypted. Preset proxy confs Our SWAG image comes with a list of preset reverse proxy confs for popular apps and services. They are hosted on Github and are pulled into the /config/nginx/proxy-confs folder as inactive sample files. To activate, one must rename a conf file to remove .sample from the filename and restart the SWAG container. Any proxy conf file in that folder with a name that matches *.subdomain.conf or *.subfolder.conf will be loaded in nginx during container start. Most proxy confs work without any modification, but some may require other changes. All the required changes are listed at the top of each proxy conf. The conf files use container names to reach other containers and therefore the proxied containers should be named the same as listed in our documentation for each container. The conf files also require that the SWAG container is in the same user defined bridge network as the other container so they can reach each other via container name as dns hostnames. Make sure you follow the instructions listed above in the Docker networking section . Understanding the proxy conf structure Subdomain proxy conf Here's the preset proxy conf for Heimdall as a subdomain (ie. https://heimdall.linuxserver-test.com ): # make sure that your dns has a cname set for heimdall server { listen 443 ssl; listen [::]:443 ssl; server_name heimdall.*; include /config/nginx/ssl.conf; client_max_body_size 0; # enable for ldap auth, fill in ldap details in ldap.conf #include /config/nginx/ldap.conf; # enable for Authelia #include /config/nginx/authelia-server.conf; location / { # enable the next two lines for http auth #auth_basic \"Restricted\"; #auth_basic_user_file /config/nginx/.htpasswd; # enable the next two lines for ldap auth #auth_request /auth; #error_page 401 =200 /ldaplogin; # enable for Authelia #include /config/nginx/authelia-location.conf; include /config/nginx/proxy.conf; resolver 127.0.0.11 valid=30s; set $upstream_app heimdall; set $upstream_port 443; set $upstream_proto https; proxy_pass $upstream_proto://$upstream_app:$upstream_port; } } Let's dissect this conf to look at what each directive or block does. server { } This is our server block. Whenever nginx gets a request from a client, it determines which server block should be processed based on the destination server name, port and other relevant info, and the matching server block determines how nginx handles and responds to the request. listen 443 ssl; listen [::]:443 ssl; This means that only requests coming to port 443 will match this server block. server_name heimdall.*; Only destination addresses that match heimdall.* will match this server block. include /config/nginx/ssl.conf; This directive injects the contents of our ssl.conf file here, which contains all ssl related settings (cert location, ciphers used, etc.). client_max_body_size 0; Removes the size limitation on uploads (default 1MB). # enable for ldap auth, fill in ldap details in ldap.conf #include /config/nginx/ldap.conf; Commented out (disabled) by default. When enabled, it will inject the contents of ldap.conf, necessary settings for LDAP auth. # enable for Authelia #include /config/nginx/authelia-server.conf; Commented out (disabled) by default. When enabled, it will inject the contents of authelia-server.conf, necessary settings for Authelia integration. location / { } Location blocks are used for subfolders or paths. After a server block is matched, nginx will look at the subfolder or path requested to match one of the location blocks inside the selected server block. This particular block in our example is for / so it will match any subfolder or path at this address. # enable the next two lines for http auth #auth_basic \"Restricted\"; #auth_basic_user_file /config/nginx/.htpasswd; Commented out (disabled) by default. When enabled, it will use .htpasswd to perform user/pass authentication before allowing access. # enable the next two lines for ldap auth #auth_request /auth; #error_page 401 =200 /login; Commented out (disabled) by default. When enabled, it will use LDAP authentication before allowing access. # enable for Authelia #include /config/nginx/authelia-location.conf; Commented out (disabled) by default. When enabled, it will use Authelia authentication before allowing access. include /config/nginx/proxy.conf; Injects the contents of proxy.conf, which contains various directives and headers that are common for proxied connections. resolver 127.0.0.11 valid=30s; Tells nginx to use the docker dns to resolve the IP address when the container name is used as address in the next line. set $upstream_app heimdall; set $upstream_port 443; set $upstream_proto https; proxy_pass $upstream_proto://$upstream_app:$upstream_port; This is a bit of a tricky part. Normally, we could just put in the directive proxy_pass https://heimdall:443; and expect nginx to connect to Heimdall via its container name used as a dns hostname. Although it works for the most part, nginx has an annoying habit. During start, nginx checks all dns hostnames used in proxy_pass statements and if any one of them is not accessible, it refuses to start. We really don't want a stopped proxied container to prevent our webserver from starting up, so we use a trick. If the proxy_pass statement contains a variable instead of a dns hostname , nginx doesn't check whether it's accessible or not during start. So here we are setting 3 variables, one named upstream_app with the value of heimdall , one named $upstream_port , with the value of the internal heimdall port 443 , and one named $upstream_proto with the value set to https . We we use these variables as the address in the proxy_pass directive. That way, if the heimdall container is down for any reason, nginx can still start. When using a variable instead of hostname, we also have to set the resolver to docker dns in the previous line. If the proxied container is not in the same user defined bridge network as SWAG (could be on a remote host, could be using host networking or macvlan), we can change the value of $upstream_app to an IP address instead: set $upstream_app 192.168.1.10; Subfolder proxy conf Here's the preset proxy conf for mytinytodo via a subfolder # works with https://github.com/breakall/mytinytodo-docker # set the mtt_url to 'https://your.domain.com/todo/' in db/config.php location /todo { return 301 $scheme://$host/todo/; } location ^~ /todo/ { # enable the next two lines for http auth #auth_basic \"Restricted\"; #auth_basic_user_file /config/nginx/.htpasswd; # enable the next two lines for ldap auth, also customize and enable ldap.conf in the default conf #auth_request /auth; #error_page 401 =200 /ldaplogin; # enable for Authelia, also enable authelia-server.conf in the default site config #include /config/nginx/authelia-location.conf; include /config/nginx/proxy.conf; resolver 127.0.0.11 valid=30s; set $upstream_app mytinytodo; set $upstream_port 80; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port/; } Unlike the subdomain proxy confs, here we do not have a server block. That is because all of the subfolder proxy confs get injected into the main server block of our root domain defined in the default site conf. So here we are only defining the location block for our specific subfolders. Many of the elements are the same as the subdomain ones, so for those you can refer to the previous section. Let's take a look at some of the differences. # works with https://github.com/breakall/mytinytodo-docker # set the mtt_url to 'https://your.domain.com/todo/' in db/config.php These are the instructions to get the tinytodo container ready to work with our reverse proxy. location ^~ /todo { return 301 $scheme://$host/todo/; } Redirects requests for https://linuxserver-test.com/todo to https://linuxserver-test.com/todo/ (added forward slash at the end). location ^~ /todo/ { } Any requests sent to nginx where the destination starts with https://linuxserver-test.com/todo/ will match this location block. set $upstream_app mytinytodo; set $upstream_port 80; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port/; Same as the previous example, we set a variable $upstream_app with the value mytinytodo and tell nginx to use the variable as the address. Keep in mind that the port listed here is the container port because nginx is connecting to this container directly via the docker network. So if our mytinytodo container has a port mapping of -p 8080:80 , we still set $upstream_port variable to 80 . Nginx has an interesting behavior displayed here. Even though we define http://$upstream_mytinytodo:80/ as the address nginx should proxy, nginx actually connects to http://$upstream_mytinytodo:80/todo . Whenever we use a variable as part of the proxy_pass url, nginx automatically appends the defined location (in this case /todo ) to the end of the proxy_pass url before it connects. If we include the subfolder, nginx will try to connect to http://$upstream_mytinytodo:80/todo/todo and will fail. Ombi subdomain reverse proxy example In this example, we will reverse proxy Ombi at the address https://ombi.linuxserver-test.com . First let's make sure that we have a CNAME for ombi set up on our dns provider (a wildcard CNAME * will also cover this) and it is pointing to our A record that points to our server IP. If we are using the docker cli method, we also need to create the user defined bridge network (here named lsio ) as described above . We also need to make sure that port 443 on our router is forwarded to the correct port on our server. Here's a docker compose stack we can use to set up both containers: --- version: \"2.1\" services: ombi: image: lscr.io/linuxserver/ombi container_name: ombi environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/aptalca/appdata/ombi:/config ports: - 3579:3579 restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped And here are the docker cli versions: Ombi: docker create \\ --name=ombi \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3579:3579 \\ -v /home/aptalca/appdata/ombi:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ombi SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once our containers up and running (and we confirm we can reach the placeholder page at https://linuxserver-test.com ), we simply rename the file ombi.subdomain.conf.sample under /config/nginx/proxy-confs/ to ombi.subdomain.conf and we restart the SWAG container. Now when we browser to https://ombi.linuxserver-test.com we should see the Ombi gui. Nextcloud subdomain reverse proxy example Nextcloud is a bit trickier because the app has various security measures built-in, forcing us to configure certain options manually. As with the other examples, let's make sure that we have a CNAME for nextcloud set up on our dns provider (a wildcard CNAME * will also cover this) and it is pointing to our A record that points to our server IP. If we are using the docker cli method, we also need to create the user defined bridge network (here named lsio ) as described above . For DuckDNS, we do not need to create CNAMES, as all sub-subdomains automatically point to the same IP as our custom subdomain, but we need to make sure that it is the correct IP address for our server. We also need to make sure that port 443 on our router is forwarded to the correct port on our server. In this example we'll use the duckdns wildcard cert, but you can use any Let's Encrypt validation you like as described above Here's a docker compose stack to set up our SWAG, nextcloud and mariadb containers: --- version: \"2.1\" services: nextcloud: image: lscr.io/linuxserver/nextcloud container_name: nextcloud environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/aptalca/appdata/nextcloud/config:/config - /home/aptalca/appdata/nextcloud/data:/data depends_on: - mariadb restart: unless-stopped mariadb: image: lscr.io/linuxserver/mariadb container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=mariadbpassword - TZ=Europe/London - MYSQL_DATABASE=nextcloud - MYSQL_USER=ncuser - MYSQL_PASSWORD=ncpassword volumes: - /home/aptalca/appdata/mariadb:/config restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.duckdns.org - SUBDOMAINS=wildcard - VALIDATION=duckdns - DUCKDNSTOKEN=97654867496t0877648659765854 volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped And here are the docker cli versions: Nextcloud: docker create \\ --name=nextcloud \\ --net=lsio -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v /home/aptalca/appdata/nextcloud/config:/config \\ -v /home/aptalca/appdata/nextcloud/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/nextcloud Mariadb: docker create \\ --name=mariadb \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_ROOT_PASSWORD=mariadbpassword \\ -e TZ=Europe/London \\ -e MYSQL_DATABASE=nextcloud \\ -e MYSQL_USER=ncuser \\ -e MYSQL_PASSWORD=ncpassword \\ -v /home/aptalca/appdata/mariadb:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mariadb SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.duckdns.org \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=duckdns \\ -e DUCKDNSTOKEN=97654867496t0877648659765854 \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Now we find the file named nextcloud.subdomain.conf.sample under SWAG's /config/nginx/proxy-confs folder and rename it to nextcloud.subdomain.conf , then restart the SWAG container. If this is the first time we are accessing Nextcloud (we've never accessed it locally before), we can simply navigate to https://nextcloud.linuxserver-test.duckdns.org and we should see the Nextcloud set up page. We'll fill out the info, use the mariadb user ncuser and the password we selected in the environment variable ( ncpassword in the above example) and we'll use mariadb as the Database Host address (container name as dns hostname). We should then be able to go through the intro slides and then see the Nextcloud dashboard with our shiny padlock icon next to the address bar. If this is an existing Nextcloud instance, or we set it up locally via the host IP address and local port, Nextcloud will reject proxied connections. In that case, we have to follow the instructions at the top of the nextcloud.subdomain.conf file: # assuming this container is called \"swag\", edit your nextcloud container's config # located at /config/www/nextcloud/config/config.php and add the following lines before the \");\": # 'trusted_proxies' => ['swag'], # 'overwrite.cli.url' => 'https://nextcloud.your-domain.com/', # 'overwritehost' => 'nextcloud.your-domain.com', # 'overwriteprotocol' => 'https', # # Also don't forget to add your domain name to the trusted domains array. It should look somewhat like this: # array ( # 0 => '192.168.0.1:444', # This line may look different on your setup, don't modify it. # 1 => 'nextcloud.your-domain.com', # ), These settings will tell Nextcloud to respond to queries where the destination address is our domain name. If you followed the above directions to set it up for the first time, you only need to add the line 'trusted_proxies' => ['swag'], , otherwise nextcloud 16+ shows a warning about incorrect reverse proxy settings. By default, HSTS is disabled in SWAG config, because it is a bit of a sledgehammer that prevents loading of any http assets on the entire domain. You can enable it in SWAG's ssl.conf . Plex subfolder reverse proxy example In this example, we will set up Plex as a subfolder so it will be accessible at https://linuxserver-test.com/plex . We will initially set up Plex with host networking through its local IP and will connect to it from the same subnet. If we are on a different subnet, or if using a bridge network, we can use the PLEX_CLAIM variable to automatically claim the server with our plex account. Once the Plex server is set up, it is safe to switch it to bridge networking from host. Here's a docker compose stack we can use to set up both containers: --- version: \"2.1\" services: plex: image: lscr.io/linuxserver/plex container_name: plex network_mode: host environment: - PUID=1000 - PGID=1000 - VERSION=docker volumes: - /home/aptalca/appdata/plex:/config - /home/aptalca/tvshows:/data/tvshows - /home/aptalca/movies:/data/movies restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Here are the docker cli versions: Plex: docker create \\ --name=plex \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e VERSION=docker \\ -v /home/aptalca/appdata/plex:/config \\ -v /home/aptalca/tvshows:/data/tvshows \\ -v /home/aptalca/movies:/data/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/plex SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once the containers are set up, we browse to http://LOCALSERVERIP:32400/web and set up our Plex server with our Plex account. Then we can find the file named plex.subfolder.conf.sample under our SWAG container's /config/nginx/proxy-confs folder and rename it to plex.subfolder.conf . If we are using bridge networking for our plex container, we can restart the SWAG container and we should be able to access Plex at https://linuxserver-test.com/plex . If we are using host networking for our plex container, we will also have to make one modification to the plex.subfolder.conf . We need to find the line that reads proxy_pass http://$upstream_plex:32400; and replace $upstream_plex with our Plex server's local IP address (ie. proxy_pass http://192.168.1.10:32400; ). Then we can restart SWAG and access Plex at https://linuxserver-test.com/plex . If we want Plex to always use our domain to connect (including in mobile apps), we can add our url https://linuxserver-test.com/plex into the Custom server access URLs in Plex server settings. After that, it is OK to turn off remote access in Plex server settings and remove the port forwarding port 32400. After that, all connections to our Plex server will go through SWAG reverse proxy over port 443. Using Heimdall as the home page at domain root In this example, we will set Heimdall as our homepage at domain root so when we navigate to https://linuxserver-test.com we will reach Heimdall. As before, we need to make sure port 443 is properly forwarded to our server. We also need to make sure that if we are using the docker cli method, we need to create a user defined bridge network as defined above . Here's a docker compose stack we can use to set up both containers: --- version: \"2.1\" services: heimdall: image: lscr.io/linuxserver/heimdall container_name: heimdall environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/aptalca/appdata/heimdall:/config restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Here are the docker cli versions: Heimdall: docker create \\ --name=heimdall \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v /home/aptalca/appdata/heimdall:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/heimdall SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once the containers are set up, we'll find the file named heimdall.subfolder.conf.sample under SWAG's /config/nginx/proxy-confs folder and rename it to heimdall.subfolder.conf . If we look inside that conf file, we'll see that it is set to use location / { , which will cause an issue because there is already a location defined for / inside the default site config for SWAG. So we need to edit the default site config at /config/nginx/site-confs/default and comment out the location block for / inside our main server block so it reads: #location / { # try_files $uri $uri/ /index.html /index.php?$args =404; #} That way, nginx will use the / location block from our heimdall proxy conf instead. After that, when we navigate to https://linuxserver-test.com , we'll see the Heimdall interface. If we want to password protect our new homepage, we can run the following on the host command line to create a new .htpasswd file: docker exec -it swag htpasswd -c /config/nginx/.htpasswd anyusername . After which, we can activate authentication by editing the heimdall.subfolder.conf file to uncomment the relevant lines so it reads: # enable the next two lines for http auth auth_basic \"Restricted\"; auth_basic_user_file /config/nginx/.htpasswd; Troubleshooting We wrote a blogpost for the deprecated letsencrypt image diving into troubleshooting issues regarding dns and port-forwards, which still is a very good resource: blog.linuxserver.io Common errors 404 This error simply means that the resource was not found. Commonly happening when you try to access a subfolder that is not enabled. 502 This error means that nginx can't talk to the application. There is a few common reasons for this: The application and SWAG is not on the same custom docker network Further up we talk about how to set up Docker networking , however there are some other common traps The container name does not match the application name. Covered in the section for Understanding the proxy conf structure You manually changed the port. Also covered in the section for Understanding the proxy conf structure The container originally ran with host networking, or the default bridge. In most cases the contents of /config/nginx/resolver.conf; should be ...resolver 127.0.0.11 valid=30s; , if this is not the case, you can: Delete it, and restart the container to have it regenerate Manually set the content(we wont override it) Final Thoughts This image can be used in many different scenarios as it is a full fledged web server with some bells and whistles added. The above examples should be enough to get you started. For more information, please refer to the official documentation on either Github or Docker Hub . If you have questions or issues, or want to discuss and share ideas, feel free to visit our discord: https://discord.gg/YWrKVTn How to Request Support As you can see in this article, there are many different configurations, therefore we need to understand your exact setup before we can provide support. If you encounter a bug and confirm that it's a bug, please report it on our github thread . If you need help with setting it up, join our discord and upload the following info to a service like pastebin and post the link: Docker run/create or compose yml you used Full docker log ( docker logs swag ) Any relevant conf files (default, nginx.conf or specific proxy conf)","title":"Swag"},{"location":"general/swag/#table-of-contents","text":"Introduction What are SSL certs? What is Let's Encrypt (and/or ZeroSSL)? Creating a SWAG container Docker cli Docker compose Authorization method Cert provider (Let's Encrypt vs ZeroSSL) Port forwards Docker networking Container setup examples Create container via http validation Create container via dns validation with a wildcard cert Create container via duckdns validation with a wildcard cert Web hosting examples Simple html web page hosting Hosting a Wordpress site Reverse Proxy Preset proxy confs Understanding the proxy conf structure Subdomain proxy conf Subfolder proxy conf Ombi subdomain reverse proxy example Nextcloud subdomain reverse proxy example Plex subfolder reverse proxy example Using Heimdall as the home page at domain root Troubleshooting Common errors 404 502 Final Thoughts How to Request Support","title":"Table of Contents"},{"location":"general/swag/#introduction","text":"","title":"Introduction"},{"location":"general/swag/#what-are-ssl-certs","text":"SSL certs allow users of a service to communicate via encrypted data transmitted up and down. Third party trusted certs also allow users to make sure that the remote service they are connecting to is really who they say they are and not someone else in the middle. When we run a web server for reasons like hosting websites or reverse proxying services on our own domain, we need to set it up with third party trusted ssl certs so client browsers trust it and communicate with it securely. When you connect to a website with a trusted cert, most browsers show a padlock icon next to the address bar to indicate that. Without a trusted cert (ie. with self signed cert) most browsers show warning pages or may block access to the website as the website identity cannot be confirmed via a trusted third party.","title":"What are SSL certs?"},{"location":"general/swag/#what-is-lets-encrypt-andor-zerossl","text":"In the past, the common way to get a trusted ssl cert was to contact one of the providers, send them the relevant info to prove ownership of a domain and pay for the service. Nowadays, with Let's Encrypt and ZeroSSL , one can get free certs via automated means. The SWAG docker image , published and maintained by LinuxServer.io , makes setting up a full-fledged web server with auto generated and renewed ssl certs very easy. It is essentially an nginx webserver with php7, fail2ban (intrusion prevention) and Let's Encrypt cert validation built-in. It is just MySQL short of a LEMP stack and therefore is best paired with our MariaDB docker image .","title":"What is Let's Encrypt (and/or ZeroSSL)?"},{"location":"general/swag/#creating-a-swag-container","text":"Most of the initial settings for getting a webserver with ssl certs up are done through the docker run/create or compose yaml parameters. Here's a list of all the settings available including the optional ones. It is safe to remove unnecessary parameters for different scenarios.","title":"Creating a SWAG container"},{"location":"general/swag/#docker-cli","text":"docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=yourdomain.url \\ -e SUBDOMAINS=www, \\ -e VALIDATION=http \\ -e CERTPROVIDER= `#optional` \\ -e DNSPLUGIN=cloudflare `#optional` \\ -e DUCKDNSTOKEN= `#optional` \\ -e EMAIL= `#optional` \\ -e ONLY_SUBDOMAINS=false `#optional` \\ -e EXTRA_DOMAINS= `#optional` \\ -e STAGING=false `#optional` \\ -p 443:443 \\ -p 80:80 `#optional` \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag","title":"docker cli"},{"location":"general/swag/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=yourdomain.url - SUBDOMAINS=www, - VALIDATION=http - CERTPROVIDER= #optional - DNSPLUGIN=cloudflare #optional - DUCKDNSTOKEN= #optional - EMAIL= #optional - ONLY_SUBDOMAINS=false #optional - EXTRA_DOMAINS= #optional - STAGING=false #optional volumes: - :/config ports: - 443:443 - 80:80 #optional restart: unless-stopped","title":"docker-compose"},{"location":"general/swag/#authorization-method","text":"Our image currently supports three different methods to validate domain ownership: http: Let's Encrypt (acme) server connects to domain on port 80 Can be owned domain or a dynamic dns address dns: Let's Encrypt (acme) server connects to dns provider Api credentials and settings entered into ini files under /config/dns-conf/ Supports wildcard certs Need to have own domain name (non-free) duckdns: Let's Encrypt (acme) server connects to DuckDNS Supports wildcard certs (only for the sub-subdomains) No need for own domain (free) The validation is performed when the container is started for the first time. Nginx won't be up until ssl certs are successfully generated. The certs are valid for 90 days. The container will check the cert expiration status every night and if they are to expire within 30 days, it will attempt to auto-renew. If your certs are about to expire in less than 30 days, check the logs under /config/log/letsencrypt to see why the auto-renewals failed.","title":"Authorization method"},{"location":"general/swag/#cert-provider-lets-encrypt-vs-zerossl","text":"As of January 2021, SWAG supports getting certs validated by either Let's Encrypt or ZeroSSL . Both services use the ACME protocol as the underlying method to validate ownership. Our Certbot client in the SWAG image is ACME compliant and therefore supports both services. Although very similar, ZeroSSL does (at the time of writing) have a couple of advantages over Let's Encrypt: * ZeroSSL provides unlimited certs via ACME and has no rate limits or throttling (it's quite common for new users to get throttled by Let's Encrypt due to multiple unsuccessful attempts to validate) * ZeroSSL provides a web interface that allows users to list and manage the certs they have received SWAG currently defaults to Let's Encrypt as the cert provider so as not to break existing installs, however users can override that behavior by setting the environment variable CERTPROVIDER=zerossl to retrieve a cert from ZeroSSL instead. The only gotcha is that ZeroSSL requires the EMAIL env var to be set so the certs can be tied to a ZeroSSL account for management over their web interface.","title":"Cert Provider (Let's Encrypt vs ZeroSSL)"},{"location":"general/swag/#port-forwards","text":"Port 443 mapping is required for access through https://domain.com . However, you don't necessarily need to have it listen on port 443 on the host server. All that is needed is to have port 443 on the router (wan) somehow forward to port 443 inside the container, while it can go through a different port on the host. For instance, it is ok to have port 443 on router (wan) forward to port 444 on the host, and then map port 444 to port 443 in docker run/create or compose yml. Port 80 forwarding is required for http validation only. Same rule as above applies, and it's OK to go from 80 on the router to 81 on the host, mapped to 80 in the container.","title":"Port forwards"},{"location":"general/swag/#docker-networking","text":"SWAG container happily runs with bridge networking. However, the default bridge network in docker does not allow containers to connect each other via container names used as dns hostnames. Therefore, it is recommended to first create a user defined bridge network and attach the containers to that network. If you are using docker-compose, and your services are on the same yaml, you do not need to do this, because docker-compose automatically creates a user defined bridge network and attaches each container to it as long as no other networking option is defined in their config. For the below examples, we will use a network named lsio . We can create it via docker network create lsio . After that, any container that is created with --net=lsio can ping each other by container name as dns hostname. Keep in mind that dns hostnames are meant to be case-insensitive, however container names are case-sensitive. For container names to be used as dns hostnames in nginx, they should be all lowercase as nginx will convert them to all lowercase before trying to resolve.","title":"Docker networking"},{"location":"general/swag/#container-setup-examples","text":"","title":"Container setup examples"},{"location":"general/swag/#create-container-via-http-validation","text":"Let's assume our domain name is linuxserver-test.com and we would like our cert to also cover www.linuxserver-test.com and ombi.linuxserver-test.com . On the router, forward ports 80 and 443 to your host server. On your dns provider (if using your own domain), create an A record for the main domain and point it to your server IP (wan). Also create CNAMES for www and ombi and point them to the A record for the domain. With docker cli, we'll first create a user defined bridge network if we haven't already docker network create lsio , and then create the container: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=www,ombi \\ -e VALIDATION=http \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once created, we do docker start swag to start it. With docker compose, we can use the following yml: --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=www,ombi - VALIDATION=http volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped We can fire up the container with docker-compose up -d After the container is started, we'll watch the logs with docker logs swag -f . After some initial initialization, we will see the validation steps. After all the steps, it should print Server ready in the logs. Now we can browse to https://www.linuxserver-test.com and we'll see the default landing page displayed.","title":"Create container via http validation"},{"location":"general/swag/#create-container-via-dns-validation-with-a-wildcard-cert","text":"Let's assume our domain name is linuxserver-test.com and we would like our cert to also cover www.linuxserver-test.com , ombi.linuxserver-test.com and any other subdomain possible. On the router, we'll forward port 443 to our host server (Port 80 forwarding is optional). We'll need to make sure that we are using a dns provider that is supported by this image. Currently the following dns plugins are supported: cloudflare , cloudxns , digitalocean , dnsimple , dnsmadeeasy , google , luadns , nsone , ovh , rfc2136 and route53 . Your dns provider by default is the provider of your domain name and if they are not supported, it is very easy to switch to a different dns provider. Cloudflare is recommended due to being free and reliable. To switch to Cloudflare, you can register for a free account and follow their steps to point the nameservers to Cloudflare. The rest of the instructions assume that we are using the cloudflare dns plugin. On our dns provider, we'll create an A record for the main domain and point it to our server IP (wan). We'll also create a CNAME for * and point it to the A record for the domain. On Cloudflare, we'll click on the orange cloud to turn it grey so that it is dns only and not cached/proxied by Cloudflare, which would add more complexities. Now, let's get the container set up. With docker cli, we'll first create a user defined bridge network if we haven't already docker network create lsio , and then create the container: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag And we start the container via docker start swag With docker compose, we'll use: --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Then we'll fire up the container via docker-compose up -d After the container is started, we'll watch the logs with docker logs swag -f . After some init steps, we'll notice that the container will give an error during validation due to wrong credentials. That's because we didn't enter the correct credentials for the Cloudflare api yet. We can browse to the location /config/dns-conf which is mapped from the host location (according to above settings) /home/aptalca/appdata/swag/dns-conf/ and edit the correct ini file for our dns provider. For Cloudflare, we'll enter our e-mail address and the api key. The api key can be retrieved by going to the Overview page and clicking on Get your API key link. We'll need the Global API Key . Once we enter the credentials into the ini file, we'll restart the docker container via docker restart swag and again watch the logs. After successful validation, we should see the notice Server ready and our webserver should be up and accessible at https://www.linuxserver-test.com .","title":"Create container via dns validation with a wildcard cert"},{"location":"general/swag/#create-container-via-duckdns-validation-with-a-wildcard-cert","text":"We will first need to get a subdomain from DuckDNS . Let's assume we get linuxserver-test so our url will be linuxserver-test.duckdns.org . Then we'll need to make sure that the subdomain points to our server IP (wan) on the DuckDNS website. We can always use our DuckDNS docker image to keep the IP up to date. Don't forget to get the token for your account from DuckDNS. On the router, we'll forward port 443 to our host server (Port 80 forward is optional). Now, let's get the container set up. With docker cli, we'll first create a user defined bridge network if we haven't already docker network create lsio , and then create the container: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.duckdns.org \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=duckdns \\ -e DUCKDNSTOKEN=97654867496t0877648659765854 \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag And we start the container via docker start swag With docker compose, we'll use: --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.duckdns.org - SUBDOMAINS=wildcard - VALIDATION=duckdns - DUCKDNSTOKEN=97654867496t0877648659765854 volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Then we'll fire up the container via docker-compose up -d After the container is started, we'll watch the logs with docker logs swag -f . We'll see some initialization and then we will see the validation steps. After all the steps, it should print Server ready in the logs. Now we can access the webserver by browsing to https://www.linuxserver-test.duckdns.org . NOTICE: Due to a DuckDNS limitation, our cert only covers the wildcard subdomains, but it doesn't cover the main url. So if we try to access https://linuxserver-test.duckdns.org , we'll see a browser warning about an invalid ssl cert. But accessing it through the www (or ombi or any other) subdomain should work fine.","title":"Create container via duckdns validation with a wildcard cert"},{"location":"general/swag/#web-hosting-examples","text":"","title":"Web hosting examples"},{"location":"general/swag/#simple-html-web-page-hosting","text":"Once we have a working container, we can drop our web documents in and modify the nginx config files to set up our webserver. All the necessary files are under /config which is mapped from the host location (set by above examples) /home/aptalca/appdata/swag . We can drop all of our web/html files into /config/www . The main site config nginx uses can be found at /config/nginx/site-confs/default . Don't delete this file, as it will be regenerated on container restart, but feel free to modify as needed. By default, it is listening on port 443, and the root folder is set to /config/www , so if you drop a page1.html into that location, it will be accessible at https://linuxserver-test.com/page1.html . To enable listening on port 80 and automatically redirecting to port 443 for enforcing ssl, uncomment the lines at the top of the default site config so it reads: # redirect all traffic to https server { listen 80; listen [::]:80; server_name _; return 301 https://$host$request_uri; } After any changes to the config files, simply restart the container via docker restart swag to reload the nginx config.","title":"Simple html web page hosting"},{"location":"general/swag/#hosting-a-wordpress-site","text":"Wordpress requires a mysql database. For that, we'll use the linuxserver MariaDB docker image . Here's a docker compose stack to get both containers set up. For this exercise, we'll utilize the cloudflare dns plugin for Let's Encrypt validation, but you can use any other method to set it up as described in this linked section : --- version: \"2.1\" services: mariadb: image: lscr.io/linuxserver/mariadb container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=mariadbpassword - TZ=Europe/London - MYSQL_DATABASE=WP_database - MYSQL_USER=WP_dbuser - MYSQL_PASSWORD=WP_dbpassword volumes: - /home/aptalca/appdata/mariadb:/config restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 depends_on: - mariadb restart: unless-stopped And here are the docker cli versions (make sure you already created the lsio network as described above : Mariadb: docker create \\ --name=mariadb \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_ROOT_PASSWORD=mariadbpassword \\ -e TZ=Europe/London \\ -e MYSQL_DATABASE=WP_database \\ -e MYSQL_USER=WP_dbuser \\ -e MYSQL_PASSWORD=WP_dbpassword \\ -v /home/aptalca/appdata/mariadb:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mariadb SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once the SWAG container is set up with ssl certs and the webserver is up, we'll download the latest Wordpress and untar it into our www folder: wget https://wordpress.org/latest.tar.gz tar xvf latest.tar.gz -C /home/aptalca/appdata/swag/www/ rm latest.tar.gz Now that we have all the wordpress files under the container's /config/www/wordpress folder, we'll change the root directive in our SWAG default site conf to point there. We'll find the line in /config/nginx/site-confs/default that reads root /config/www; and change it to root /config/www/wordpress; and restart SWAG. Now we should be able to access our wordpress config page at https://linuxserver-test.com/wp-admin/install.php . We'll go ahead and enter mariadb as the Database Host address (we are using the container name as the dns hostname since both containers are in the same user defined bridge network), and also enter the Database Name, user and password we used in the mariadb config above ( WP_database , WP_dbuser and WP_dbpassword ). Once we go through the rest of the install steps, our wordpress instance should be fully set up and available at https://linuxserver-test.com . If you would like to have http requests on port 80 enabled and auto redirected to https on port 443, uncomment the relevant lines at the top of the default site config to read: # redirect all traffic to https server { listen 80; listen [::]:80; server_name _; return 301 https://$host$request_uri; }","title":"Hosting a Wordpress site"},{"location":"general/swag/#reverse-proxy","text":"A reverse proxy is a type of proxy server that retrieves resources on behalf of a client from one or more servers. These resources are then returned to the client as if they originated from the Web server itself (Shamelessly borrowed from another post on our blog ). In this case, a user or a client browser can connect to our SWAG container via https on port 443, request a service such as Ombi, then our SWAG container connects to the ombi container, retrieves the data and passes it on to the client via https with our trusted cert. The connection to ombi is local and does not need to be encrypted, but all communication between our SWAG container and the client browser will be encrypted.","title":"Reverse Proxy"},{"location":"general/swag/#preset-proxy-confs","text":"Our SWAG image comes with a list of preset reverse proxy confs for popular apps and services. They are hosted on Github and are pulled into the /config/nginx/proxy-confs folder as inactive sample files. To activate, one must rename a conf file to remove .sample from the filename and restart the SWAG container. Any proxy conf file in that folder with a name that matches *.subdomain.conf or *.subfolder.conf will be loaded in nginx during container start. Most proxy confs work without any modification, but some may require other changes. All the required changes are listed at the top of each proxy conf. The conf files use container names to reach other containers and therefore the proxied containers should be named the same as listed in our documentation for each container. The conf files also require that the SWAG container is in the same user defined bridge network as the other container so they can reach each other via container name as dns hostnames. Make sure you follow the instructions listed above in the Docker networking section .","title":"Preset proxy confs"},{"location":"general/swag/#understanding-the-proxy-conf-structure","text":"","title":"Understanding the proxy conf structure"},{"location":"general/swag/#subdomain-proxy-conf","text":"Here's the preset proxy conf for Heimdall as a subdomain (ie. https://heimdall.linuxserver-test.com ): # make sure that your dns has a cname set for heimdall server { listen 443 ssl; listen [::]:443 ssl; server_name heimdall.*; include /config/nginx/ssl.conf; client_max_body_size 0; # enable for ldap auth, fill in ldap details in ldap.conf #include /config/nginx/ldap.conf; # enable for Authelia #include /config/nginx/authelia-server.conf; location / { # enable the next two lines for http auth #auth_basic \"Restricted\"; #auth_basic_user_file /config/nginx/.htpasswd; # enable the next two lines for ldap auth #auth_request /auth; #error_page 401 =200 /ldaplogin; # enable for Authelia #include /config/nginx/authelia-location.conf; include /config/nginx/proxy.conf; resolver 127.0.0.11 valid=30s; set $upstream_app heimdall; set $upstream_port 443; set $upstream_proto https; proxy_pass $upstream_proto://$upstream_app:$upstream_port; } } Let's dissect this conf to look at what each directive or block does. server { } This is our server block. Whenever nginx gets a request from a client, it determines which server block should be processed based on the destination server name, port and other relevant info, and the matching server block determines how nginx handles and responds to the request. listen 443 ssl; listen [::]:443 ssl; This means that only requests coming to port 443 will match this server block. server_name heimdall.*; Only destination addresses that match heimdall.* will match this server block. include /config/nginx/ssl.conf; This directive injects the contents of our ssl.conf file here, which contains all ssl related settings (cert location, ciphers used, etc.). client_max_body_size 0; Removes the size limitation on uploads (default 1MB). # enable for ldap auth, fill in ldap details in ldap.conf #include /config/nginx/ldap.conf; Commented out (disabled) by default. When enabled, it will inject the contents of ldap.conf, necessary settings for LDAP auth. # enable for Authelia #include /config/nginx/authelia-server.conf; Commented out (disabled) by default. When enabled, it will inject the contents of authelia-server.conf, necessary settings for Authelia integration. location / { } Location blocks are used for subfolders or paths. After a server block is matched, nginx will look at the subfolder or path requested to match one of the location blocks inside the selected server block. This particular block in our example is for / so it will match any subfolder or path at this address. # enable the next two lines for http auth #auth_basic \"Restricted\"; #auth_basic_user_file /config/nginx/.htpasswd; Commented out (disabled) by default. When enabled, it will use .htpasswd to perform user/pass authentication before allowing access. # enable the next two lines for ldap auth #auth_request /auth; #error_page 401 =200 /login; Commented out (disabled) by default. When enabled, it will use LDAP authentication before allowing access. # enable for Authelia #include /config/nginx/authelia-location.conf; Commented out (disabled) by default. When enabled, it will use Authelia authentication before allowing access. include /config/nginx/proxy.conf; Injects the contents of proxy.conf, which contains various directives and headers that are common for proxied connections. resolver 127.0.0.11 valid=30s; Tells nginx to use the docker dns to resolve the IP address when the container name is used as address in the next line. set $upstream_app heimdall; set $upstream_port 443; set $upstream_proto https; proxy_pass $upstream_proto://$upstream_app:$upstream_port; This is a bit of a tricky part. Normally, we could just put in the directive proxy_pass https://heimdall:443; and expect nginx to connect to Heimdall via its container name used as a dns hostname. Although it works for the most part, nginx has an annoying habit. During start, nginx checks all dns hostnames used in proxy_pass statements and if any one of them is not accessible, it refuses to start. We really don't want a stopped proxied container to prevent our webserver from starting up, so we use a trick. If the proxy_pass statement contains a variable instead of a dns hostname , nginx doesn't check whether it's accessible or not during start. So here we are setting 3 variables, one named upstream_app with the value of heimdall , one named $upstream_port , with the value of the internal heimdall port 443 , and one named $upstream_proto with the value set to https . We we use these variables as the address in the proxy_pass directive. That way, if the heimdall container is down for any reason, nginx can still start. When using a variable instead of hostname, we also have to set the resolver to docker dns in the previous line. If the proxied container is not in the same user defined bridge network as SWAG (could be on a remote host, could be using host networking or macvlan), we can change the value of $upstream_app to an IP address instead: set $upstream_app 192.168.1.10;","title":"Subdomain proxy conf"},{"location":"general/swag/#subfolder-proxy-conf","text":"Here's the preset proxy conf for mytinytodo via a subfolder # works with https://github.com/breakall/mytinytodo-docker # set the mtt_url to 'https://your.domain.com/todo/' in db/config.php location /todo { return 301 $scheme://$host/todo/; } location ^~ /todo/ { # enable the next two lines for http auth #auth_basic \"Restricted\"; #auth_basic_user_file /config/nginx/.htpasswd; # enable the next two lines for ldap auth, also customize and enable ldap.conf in the default conf #auth_request /auth; #error_page 401 =200 /ldaplogin; # enable for Authelia, also enable authelia-server.conf in the default site config #include /config/nginx/authelia-location.conf; include /config/nginx/proxy.conf; resolver 127.0.0.11 valid=30s; set $upstream_app mytinytodo; set $upstream_port 80; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port/; } Unlike the subdomain proxy confs, here we do not have a server block. That is because all of the subfolder proxy confs get injected into the main server block of our root domain defined in the default site conf. So here we are only defining the location block for our specific subfolders. Many of the elements are the same as the subdomain ones, so for those you can refer to the previous section. Let's take a look at some of the differences. # works with https://github.com/breakall/mytinytodo-docker # set the mtt_url to 'https://your.domain.com/todo/' in db/config.php These are the instructions to get the tinytodo container ready to work with our reverse proxy. location ^~ /todo { return 301 $scheme://$host/todo/; } Redirects requests for https://linuxserver-test.com/todo to https://linuxserver-test.com/todo/ (added forward slash at the end). location ^~ /todo/ { } Any requests sent to nginx where the destination starts with https://linuxserver-test.com/todo/ will match this location block. set $upstream_app mytinytodo; set $upstream_port 80; set $upstream_proto http; proxy_pass $upstream_proto://$upstream_app:$upstream_port/; Same as the previous example, we set a variable $upstream_app with the value mytinytodo and tell nginx to use the variable as the address. Keep in mind that the port listed here is the container port because nginx is connecting to this container directly via the docker network. So if our mytinytodo container has a port mapping of -p 8080:80 , we still set $upstream_port variable to 80 . Nginx has an interesting behavior displayed here. Even though we define http://$upstream_mytinytodo:80/ as the address nginx should proxy, nginx actually connects to http://$upstream_mytinytodo:80/todo . Whenever we use a variable as part of the proxy_pass url, nginx automatically appends the defined location (in this case /todo ) to the end of the proxy_pass url before it connects. If we include the subfolder, nginx will try to connect to http://$upstream_mytinytodo:80/todo/todo and will fail.","title":"Subfolder proxy conf"},{"location":"general/swag/#ombi-subdomain-reverse-proxy-example","text":"In this example, we will reverse proxy Ombi at the address https://ombi.linuxserver-test.com . First let's make sure that we have a CNAME for ombi set up on our dns provider (a wildcard CNAME * will also cover this) and it is pointing to our A record that points to our server IP. If we are using the docker cli method, we also need to create the user defined bridge network (here named lsio ) as described above . We also need to make sure that port 443 on our router is forwarded to the correct port on our server. Here's a docker compose stack we can use to set up both containers: --- version: \"2.1\" services: ombi: image: lscr.io/linuxserver/ombi container_name: ombi environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/aptalca/appdata/ombi:/config ports: - 3579:3579 restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped And here are the docker cli versions: Ombi: docker create \\ --name=ombi \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3579:3579 \\ -v /home/aptalca/appdata/ombi:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ombi SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once our containers up and running (and we confirm we can reach the placeholder page at https://linuxserver-test.com ), we simply rename the file ombi.subdomain.conf.sample under /config/nginx/proxy-confs/ to ombi.subdomain.conf and we restart the SWAG container. Now when we browser to https://ombi.linuxserver-test.com we should see the Ombi gui.","title":"Ombi subdomain reverse proxy example"},{"location":"general/swag/#nextcloud-subdomain-reverse-proxy-example","text":"Nextcloud is a bit trickier because the app has various security measures built-in, forcing us to configure certain options manually. As with the other examples, let's make sure that we have a CNAME for nextcloud set up on our dns provider (a wildcard CNAME * will also cover this) and it is pointing to our A record that points to our server IP. If we are using the docker cli method, we also need to create the user defined bridge network (here named lsio ) as described above . For DuckDNS, we do not need to create CNAMES, as all sub-subdomains automatically point to the same IP as our custom subdomain, but we need to make sure that it is the correct IP address for our server. We also need to make sure that port 443 on our router is forwarded to the correct port on our server. In this example we'll use the duckdns wildcard cert, but you can use any Let's Encrypt validation you like as described above Here's a docker compose stack to set up our SWAG, nextcloud and mariadb containers: --- version: \"2.1\" services: nextcloud: image: lscr.io/linuxserver/nextcloud container_name: nextcloud environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/aptalca/appdata/nextcloud/config:/config - /home/aptalca/appdata/nextcloud/data:/data depends_on: - mariadb restart: unless-stopped mariadb: image: lscr.io/linuxserver/mariadb container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=mariadbpassword - TZ=Europe/London - MYSQL_DATABASE=nextcloud - MYSQL_USER=ncuser - MYSQL_PASSWORD=ncpassword volumes: - /home/aptalca/appdata/mariadb:/config restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.duckdns.org - SUBDOMAINS=wildcard - VALIDATION=duckdns - DUCKDNSTOKEN=97654867496t0877648659765854 volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped And here are the docker cli versions: Nextcloud: docker create \\ --name=nextcloud \\ --net=lsio -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v /home/aptalca/appdata/nextcloud/config:/config \\ -v /home/aptalca/appdata/nextcloud/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/nextcloud Mariadb: docker create \\ --name=mariadb \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_ROOT_PASSWORD=mariadbpassword \\ -e TZ=Europe/London \\ -e MYSQL_DATABASE=nextcloud \\ -e MYSQL_USER=ncuser \\ -e MYSQL_PASSWORD=ncpassword \\ -v /home/aptalca/appdata/mariadb:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mariadb SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.duckdns.org \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=duckdns \\ -e DUCKDNSTOKEN=97654867496t0877648659765854 \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Now we find the file named nextcloud.subdomain.conf.sample under SWAG's /config/nginx/proxy-confs folder and rename it to nextcloud.subdomain.conf , then restart the SWAG container. If this is the first time we are accessing Nextcloud (we've never accessed it locally before), we can simply navigate to https://nextcloud.linuxserver-test.duckdns.org and we should see the Nextcloud set up page. We'll fill out the info, use the mariadb user ncuser and the password we selected in the environment variable ( ncpassword in the above example) and we'll use mariadb as the Database Host address (container name as dns hostname). We should then be able to go through the intro slides and then see the Nextcloud dashboard with our shiny padlock icon next to the address bar. If this is an existing Nextcloud instance, or we set it up locally via the host IP address and local port, Nextcloud will reject proxied connections. In that case, we have to follow the instructions at the top of the nextcloud.subdomain.conf file: # assuming this container is called \"swag\", edit your nextcloud container's config # located at /config/www/nextcloud/config/config.php and add the following lines before the \");\": # 'trusted_proxies' => ['swag'], # 'overwrite.cli.url' => 'https://nextcloud.your-domain.com/', # 'overwritehost' => 'nextcloud.your-domain.com', # 'overwriteprotocol' => 'https', # # Also don't forget to add your domain name to the trusted domains array. It should look somewhat like this: # array ( # 0 => '192.168.0.1:444', # This line may look different on your setup, don't modify it. # 1 => 'nextcloud.your-domain.com', # ), These settings will tell Nextcloud to respond to queries where the destination address is our domain name. If you followed the above directions to set it up for the first time, you only need to add the line 'trusted_proxies' => ['swag'], , otherwise nextcloud 16+ shows a warning about incorrect reverse proxy settings. By default, HSTS is disabled in SWAG config, because it is a bit of a sledgehammer that prevents loading of any http assets on the entire domain. You can enable it in SWAG's ssl.conf .","title":"Nextcloud subdomain reverse proxy example"},{"location":"general/swag/#plex-subfolder-reverse-proxy-example","text":"In this example, we will set up Plex as a subfolder so it will be accessible at https://linuxserver-test.com/plex . We will initially set up Plex with host networking through its local IP and will connect to it from the same subnet. If we are on a different subnet, or if using a bridge network, we can use the PLEX_CLAIM variable to automatically claim the server with our plex account. Once the Plex server is set up, it is safe to switch it to bridge networking from host. Here's a docker compose stack we can use to set up both containers: --- version: \"2.1\" services: plex: image: lscr.io/linuxserver/plex container_name: plex network_mode: host environment: - PUID=1000 - PGID=1000 - VERSION=docker volumes: - /home/aptalca/appdata/plex:/config - /home/aptalca/tvshows:/data/tvshows - /home/aptalca/movies:/data/movies restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Here are the docker cli versions: Plex: docker create \\ --name=plex \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e VERSION=docker \\ -v /home/aptalca/appdata/plex:/config \\ -v /home/aptalca/tvshows:/data/tvshows \\ -v /home/aptalca/movies:/data/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/plex SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once the containers are set up, we browse to http://LOCALSERVERIP:32400/web and set up our Plex server with our Plex account. Then we can find the file named plex.subfolder.conf.sample under our SWAG container's /config/nginx/proxy-confs folder and rename it to plex.subfolder.conf . If we are using bridge networking for our plex container, we can restart the SWAG container and we should be able to access Plex at https://linuxserver-test.com/plex . If we are using host networking for our plex container, we will also have to make one modification to the plex.subfolder.conf . We need to find the line that reads proxy_pass http://$upstream_plex:32400; and replace $upstream_plex with our Plex server's local IP address (ie. proxy_pass http://192.168.1.10:32400; ). Then we can restart SWAG and access Plex at https://linuxserver-test.com/plex . If we want Plex to always use our domain to connect (including in mobile apps), we can add our url https://linuxserver-test.com/plex into the Custom server access URLs in Plex server settings. After that, it is OK to turn off remote access in Plex server settings and remove the port forwarding port 32400. After that, all connections to our Plex server will go through SWAG reverse proxy over port 443.","title":"Plex subfolder reverse proxy example"},{"location":"general/swag/#using-heimdall-as-the-home-page-at-domain-root","text":"In this example, we will set Heimdall as our homepage at domain root so when we navigate to https://linuxserver-test.com we will reach Heimdall. As before, we need to make sure port 443 is properly forwarded to our server. We also need to make sure that if we are using the docker cli method, we need to create a user defined bridge network as defined above . Here's a docker compose stack we can use to set up both containers: --- version: \"2.1\" services: heimdall: image: lscr.io/linuxserver/heimdall container_name: heimdall environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /home/aptalca/appdata/heimdall:/config restart: unless-stopped swag: image: lscr.io/linuxserver/swag container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=linuxserver-test.com - SUBDOMAINS=wildcard - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - /home/aptalca/appdata/swag:/config ports: - 443:443 - 80:80 restart: unless-stopped Here are the docker cli versions: Heimdall: docker create \\ --name=heimdall \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v /home/aptalca/appdata/heimdall:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/heimdall SWAG: docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ --net=lsio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=linuxserver-test.com \\ -e SUBDOMAINS=wildcard \\ -e VALIDATION=dns \\ -e DNSPLUGIN=cloudflare \\ -p 443:443 \\ -p 80:80 \\ -v /home/aptalca/appdata/swag:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag Once the containers are set up, we'll find the file named heimdall.subfolder.conf.sample under SWAG's /config/nginx/proxy-confs folder and rename it to heimdall.subfolder.conf . If we look inside that conf file, we'll see that it is set to use location / { , which will cause an issue because there is already a location defined for / inside the default site config for SWAG. So we need to edit the default site config at /config/nginx/site-confs/default and comment out the location block for / inside our main server block so it reads: #location / { # try_files $uri $uri/ /index.html /index.php?$args =404; #} That way, nginx will use the / location block from our heimdall proxy conf instead. After that, when we navigate to https://linuxserver-test.com , we'll see the Heimdall interface. If we want to password protect our new homepage, we can run the following on the host command line to create a new .htpasswd file: docker exec -it swag htpasswd -c /config/nginx/.htpasswd anyusername . After which, we can activate authentication by editing the heimdall.subfolder.conf file to uncomment the relevant lines so it reads: # enable the next two lines for http auth auth_basic \"Restricted\"; auth_basic_user_file /config/nginx/.htpasswd;","title":"Using Heimdall as the home page at domain root"},{"location":"general/swag/#troubleshooting","text":"We wrote a blogpost for the deprecated letsencrypt image diving into troubleshooting issues regarding dns and port-forwards, which still is a very good resource: blog.linuxserver.io","title":"Troubleshooting"},{"location":"general/swag/#common-errors","text":"","title":"Common errors"},{"location":"general/swag/#404","text":"This error simply means that the resource was not found. Commonly happening when you try to access a subfolder that is not enabled.","title":"404"},{"location":"general/swag/#502","text":"This error means that nginx can't talk to the application. There is a few common reasons for this: The application and SWAG is not on the same custom docker network Further up we talk about how to set up Docker networking , however there are some other common traps The container name does not match the application name. Covered in the section for Understanding the proxy conf structure You manually changed the port. Also covered in the section for Understanding the proxy conf structure The container originally ran with host networking, or the default bridge. In most cases the contents of /config/nginx/resolver.conf; should be ...resolver 127.0.0.11 valid=30s; , if this is not the case, you can: Delete it, and restart the container to have it regenerate Manually set the content(we wont override it)","title":"502"},{"location":"general/swag/#final-thoughts","text":"This image can be used in many different scenarios as it is a full fledged web server with some bells and whistles added. The above examples should be enough to get you started. For more information, please refer to the official documentation on either Github or Docker Hub . If you have questions or issues, or want to discuss and share ideas, feel free to visit our discord: https://discord.gg/YWrKVTn","title":"Final Thoughts"},{"location":"general/swag/#how-to-request-support","text":"As you can see in this article, there are many different configurations, therefore we need to understand your exact setup before we can provide support. If you encounter a bug and confirm that it's a bug, please report it on our github thread . If you need help with setting it up, join our discord and upload the following info to a service like pastebin and post the link: Docker run/create or compose yml you used Full docker log ( docker logs swag ) Any relevant conf files (default, nginx.conf or specific proxy conf)","title":"How to Request Support"},{"location":"general/understanding-puid-and-pgid/","text":"Understanding PUID and PGID {% hint style=\"info\" %} We are aware that recent versions of the Docker engine have introduced the --user flag. Our images are not yet compatible with this, so we recommend continuing usage of PUID and PGID. {% endhint %} Why use these? Docker runs all of its containers under the root user domain because it requires access to things like network configuration, process management, and your filesystem. This means that the processes running inside your containers also run as root . This kind of elevated access is not ideal for day-to-day use, and potentially gives applications the access to things they shouldn't (although, a strong understanding of volume and port mapping will help with this). Another issue is file management within the container's mapped volumes. If the process is running under root , all files and directories created during the container's lifespan will be owned by root , thus becoming inaccessible by you. Using the PUID and PGID allows our containers to map the container's internal user to a user on the host machine. All of our containers use this method of user mapping and should be applied accordingly. Using the variables When creating a container from one of our images, ensure you use the -e PUID and -e PGID options in your docker command: docker create --name=beets -e PUID=1000 -e PGID=1000 linuxserver/beets Or, if you use docker-compose , add them to the environment: section: environment: - PUID=1000 - PGID=1000 It is most likely that you will use the id of yourself, which can be obtained by running the command below. The two values you will be interested in are the uid and gid . id $user","title":"Understanding PUID and PGID"},{"location":"general/understanding-puid-and-pgid/#understanding-puid-and-pgid","text":"{% hint style=\"info\" %} We are aware that recent versions of the Docker engine have introduced the --user flag. Our images are not yet compatible with this, so we recommend continuing usage of PUID and PGID. {% endhint %}","title":"Understanding PUID and PGID"},{"location":"general/understanding-puid-and-pgid/#why-use-these","text":"Docker runs all of its containers under the root user domain because it requires access to things like network configuration, process management, and your filesystem. This means that the processes running inside your containers also run as root . This kind of elevated access is not ideal for day-to-day use, and potentially gives applications the access to things they shouldn't (although, a strong understanding of volume and port mapping will help with this). Another issue is file management within the container's mapped volumes. If the process is running under root , all files and directories created during the container's lifespan will be owned by root , thus becoming inaccessible by you. Using the PUID and PGID allows our containers to map the container's internal user to a user on the host machine. All of our containers use this method of user mapping and should be applied accordingly.","title":"Why use these?"},{"location":"general/understanding-puid-and-pgid/#using-the-variables","text":"When creating a container from one of our images, ensure you use the -e PUID and -e PGID options in your docker command: docker create --name=beets -e PUID=1000 -e PGID=1000 linuxserver/beets Or, if you use docker-compose , add them to the environment: section: environment: - PUID=1000 - PGID=1000 It is most likely that you will use the id of yourself, which can be obtained by running the command below. The two values you will be interested in are the uid and gid . id $user","title":"Using the variables"},{"location":"general/updating-our-containers/","text":"Updating our containers Our images are updated whenever the upstream application or dependencies get changed, so make sure you're always running the latest version, as they may contain important bug fixes and new features. Steps required to update Docker containers are, for the most part, immutable. This means that important configuration such as volume and port mappings can't be easily changed once the container has been created. The containers created from our images run a very specific version of the application they wrap, so in order to update the application, you must recreate the container. Stop the container Firstly, stop the container. docker stop Remove the container Once the container has been stopped, remove it. Important : Did you remember to persist the /config volume when you originally created the container? Bear in mind, you'll lose any configuration inside the container if this volume was not persisted. Read up on why this is important . docker rm Pull the latest version Now you can pull the latest version of the application image from Docker Hub. docker pull linuxserver/ Recreate the container Finally, you can recreate the container. This is often cited as the most arduous task as it requires you to remember all of the mappings you set beforehand. You can help mitigate this step by using Docker Compose instead - this topic has been outlined in our documentation . docker create \\ --name= \\ -v :/config \\ -e PUID= \\ -e PGID= \\ -p : \\ linuxserver/ Docker Compose It is also possible to update a single container using Docker Compose: docker-compose pull linuxserver/ docker-compose up -d Or, to update all containers at once: docker-compose pull docker-compose up -d Removing old images Whenever a Docker image is updated, a fresh version of that image gets downloaded and stored on your host machine. Doing this, however, does not remove the old version of the image. Eventually you will end up with a lot of disk space used up by stale images. You can prune old images from your system, which will free up space: docker image prune","title":"Updating our containers"},{"location":"general/updating-our-containers/#updating-our-containers","text":"Our images are updated whenever the upstream application or dependencies get changed, so make sure you're always running the latest version, as they may contain important bug fixes and new features.","title":"Updating our containers"},{"location":"general/updating-our-containers/#steps-required-to-update","text":"Docker containers are, for the most part, immutable. This means that important configuration such as volume and port mappings can't be easily changed once the container has been created. The containers created from our images run a very specific version of the application they wrap, so in order to update the application, you must recreate the container.","title":"Steps required to update"},{"location":"general/updating-our-containers/#stop-the-container","text":"Firstly, stop the container. docker stop ","title":"Stop the container"},{"location":"general/updating-our-containers/#remove-the-container","text":"Once the container has been stopped, remove it. Important : Did you remember to persist the /config volume when you originally created the container? Bear in mind, you'll lose any configuration inside the container if this volume was not persisted. Read up on why this is important . docker rm ","title":"Remove the container"},{"location":"general/updating-our-containers/#pull-the-latest-version","text":"Now you can pull the latest version of the application image from Docker Hub. docker pull linuxserver/","title":"Pull the latest version"},{"location":"general/updating-our-containers/#recreate-the-container","text":"Finally, you can recreate the container. This is often cited as the most arduous task as it requires you to remember all of the mappings you set beforehand. You can help mitigate this step by using Docker Compose instead - this topic has been outlined in our documentation . docker create \\ --name= \\ -v :/config \\ -e PUID= \\ -e PGID= \\ -p : \\ linuxserver/","title":"Recreate the container"},{"location":"general/updating-our-containers/#docker-compose","text":"It is also possible to update a single container using Docker Compose: docker-compose pull linuxserver/ docker-compose up -d Or, to update all containers at once: docker-compose pull docker-compose up -d","title":"Docker Compose"},{"location":"general/updating-our-containers/#removing-old-images","text":"Whenever a Docker image is updated, a fresh version of that image gets downloaded and stored on your host machine. Doing this, however, does not remove the old version of the image. Eventually you will end up with a lot of disk space used up by stale images. You can prune old images from your system, which will free up space: docker image prune","title":"Removing old images"},{"location":"general/volumes/","text":"Volumes In Docker terminology, a volume is a storage device that allows you to persist the data used and generated by each of your running containers. While a container remains alive (in either an active or inactive state), the data inside its user-space remains intact. However, if you decide to recreate a container, all data within that container is lost. Volumes are an intrinsic aspect of container management, so it is useful to know how to create them. There are two ways to map persistent storage to your containers; container volumes, and directory overlays. All of our images reference persistent data by means of directory overlays. Mapping a volume to your container Firstly, you must understand which directories from within your container you wish to persist. All of our images come with side-by-side documentation on which internal directories are used by the application. As mentioned in the Running our Containers documentation, the most common directory you will wish to persist is the /config directory. Before you create your container, first create a directory on the host machine that will act as the home for your persisted data. We recommend creating the directory /opt/appdata . Under this tree, you can create a single configuration directory for each of your containers. When creating the container itself, now is the time to make use of the -v flag, which will tell Docker to overlay your host directory over the container's directory: docker create --name my_container \\ -v /opt/appdata/my_config:/config \\ linuxserver/ The above example shows how the usage of -v has mapped the host machine's /opt/appdata/my_config directory over the container's internal /config directory. Remember : When dealing with mapping overlays, it always reads host:container You can do this for as many directories as required by either you or the container itself. Our rule-of-thumb is to always map the /config directory as this contains pertinent runtime configuration for the underlying application. For applications that require further data, such as media, our documentation will clearly indicate which internal directories need mapping.","title":"Volumes"},{"location":"general/volumes/#volumes","text":"In Docker terminology, a volume is a storage device that allows you to persist the data used and generated by each of your running containers. While a container remains alive (in either an active or inactive state), the data inside its user-space remains intact. However, if you decide to recreate a container, all data within that container is lost. Volumes are an intrinsic aspect of container management, so it is useful to know how to create them. There are two ways to map persistent storage to your containers; container volumes, and directory overlays. All of our images reference persistent data by means of directory overlays.","title":"Volumes"},{"location":"general/volumes/#mapping-a-volume-to-your-container","text":"Firstly, you must understand which directories from within your container you wish to persist. All of our images come with side-by-side documentation on which internal directories are used by the application. As mentioned in the Running our Containers documentation, the most common directory you will wish to persist is the /config directory. Before you create your container, first create a directory on the host machine that will act as the home for your persisted data. We recommend creating the directory /opt/appdata . Under this tree, you can create a single configuration directory for each of your containers. When creating the container itself, now is the time to make use of the -v flag, which will tell Docker to overlay your host directory over the container's directory: docker create --name my_container \\ -v /opt/appdata/my_config:/config \\ linuxserver/ The above example shows how the usage of -v has mapped the host machine's /opt/appdata/my_config directory over the container's internal /config directory. Remember : When dealing with mapping overlays, it always reads host:container You can do this for as many directories as required by either you or the container itself. Our rule-of-thumb is to always map the /config directory as this contains pertinent runtime configuration for the underlying application. For applications that require further data, such as media, our documentation will clearly indicate which internal directories need mapping.","title":"Mapping a volume to your container"},{"location":"images/","text":"Images Each of our images requires their own specific configuration before you can begin making use of them. If you're new to our images, please take the time to read through our documentation.","title":"Images"},{"location":"images/#images","text":"Each of our images requires their own specific configuration before you can begin making use of them. If you're new to our images, please take the time to read through our documentation.","title":"Images"},{"location":"images/docker-adguardhome-sync/","text":"linuxserver/adguardhome-sync Adguardhome-sync is a tool to synchronize AdGuardHome config to replica instances. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/adguardhome-sync:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from GitHub Application Setup Edit the adguardhome-sync.yaml with your AdGuardHome instance details, for more information check out AdGuardHome Sync . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: adguardhome-sync: image: lscr.io/linuxserver/adguardhome-sync:latest container_name: adguardhome-sync environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - CONFIGFILE=/config/adguardhome-sync.yaml #optional volumes: - /path/to/appdata/config:/config ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=adguardhome-sync \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e CONFIGFILE=/config/adguardhome-sync.yaml `#optional` \\ -p 8080:8080 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/adguardhome-sync:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Port for AdGuardHome Sync's web API. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York CONFIGFILE=/config/adguardhome-sync.yaml Set a custom config file. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it adguardhome-sync /bin/bash To monitor the logs of the container in realtime: docker logs -f adguardhome-sync Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' adguardhome-sync Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/adguardhome-sync:latest Versions 03.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 18.12.21: - Rebase to Alpine 3.15. 09.08.21: - Rebase to Alpine 3.14. 08.04.21: - Initial Release.","title":"adguardhome-sync"},{"location":"images/docker-adguardhome-sync/#linuxserveradguardhome-sync","text":"Adguardhome-sync is a tool to synchronize AdGuardHome config to replica instances.","title":"linuxserver/adguardhome-sync"},{"location":"images/docker-adguardhome-sync/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/adguardhome-sync:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-adguardhome-sync/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from GitHub","title":"Version Tags"},{"location":"images/docker-adguardhome-sync/#application-setup","text":"Edit the adguardhome-sync.yaml with your AdGuardHome instance details, for more information check out AdGuardHome Sync .","title":"Application Setup"},{"location":"images/docker-adguardhome-sync/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-adguardhome-sync/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: adguardhome-sync: image: lscr.io/linuxserver/adguardhome-sync:latest container_name: adguardhome-sync environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - CONFIGFILE=/config/adguardhome-sync.yaml #optional volumes: - /path/to/appdata/config:/config ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-adguardhome-sync/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=adguardhome-sync \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e CONFIGFILE=/config/adguardhome-sync.yaml `#optional` \\ -p 8080:8080 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/adguardhome-sync:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-adguardhome-sync/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-adguardhome-sync/#ports-p","text":"Parameter Function 8080 Port for AdGuardHome Sync's web API.","title":"Ports (-p)"},{"location":"images/docker-adguardhome-sync/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York CONFIGFILE=/config/adguardhome-sync.yaml Set a custom config file.","title":"Environment Variables (-e)"},{"location":"images/docker-adguardhome-sync/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-adguardhome-sync/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-adguardhome-sync/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-adguardhome-sync/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-adguardhome-sync/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-adguardhome-sync/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-adguardhome-sync/#support-info","text":"Shell access whilst the container is running: docker exec -it adguardhome-sync /bin/bash To monitor the logs of the container in realtime: docker logs -f adguardhome-sync Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' adguardhome-sync Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/adguardhome-sync:latest","title":"Support Info"},{"location":"images/docker-adguardhome-sync/#versions","text":"03.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 18.12.21: - Rebase to Alpine 3.15. 09.08.21: - Rebase to Alpine 3.14. 08.04.21: - Initial Release.","title":"Versions"},{"location":"images/docker-airsonic-advanced/","text":"linuxserver/airsonic-advanced Airsonic-advanced is a free, web-based media streamer, providing ubiquitious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/airsonic-advanced:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Latest releases of Airsonic-Advanced Application Setup We don't formally support upgrading from Airsonic to Airsonic Advanced, it may or may not work for you and we'd recommend making backups before attempting this. Following the upgrade you may experience a forced rescan of your library so take this into account if you have a lot of files. Please see notes about upgrading from v10 to v11 here Access WebUI at :4040 . Default user/pass is admin/admin Extra java options can be passed with the JAVA_OPTS environment variable, eg -e JAVA_OPTS=\"-Xmx256m -Xms256m\" . For some reverse proxies, you may need to pass JAVA_OPTS=-Dserver.use-forward-headers=true for airsonic to generate the proper URL schemes. Note that if you want to use Airsonic's Java jukebox player , then PGID will need to match the group of your sound device (e.g. /dev/snd ). Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: airsonic-advanced: image: lscr.io/linuxserver/airsonic-advanced:latest container_name: airsonic-advanced environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH= #optional - JAVA_OPTS= #optional volumes: - :/config - :/music - :/playlists - :/podcasts - :/media #optional ports: - 4040:4040 devices: - /dev/snd:/dev/snd #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=airsonic-advanced \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH= `#optional` \\ -e JAVA_OPTS= `#optional` \\ -p 4040:4040 \\ -v :/config \\ -v :/music \\ -v :/playlists \\ -v :/podcasts \\ -v :/media `#optional` \\ --device /dev/snd:/dev/snd `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/airsonic-advanced:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4040 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH= For setting url-base in reverse proxy setups. JAVA_OPTS= For passing additional java options. Volume Mappings ( -v ) Volume Function /config Configuration file location. /music Location of music. /playlists Location for playlists to be saved to. /podcasts Location of podcasts. /media Location of other media. Device Mappings ( --device ) Parameter Function /dev/snd Only needed to pass your host sound device to Airsonic's Java jukebox player. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it airsonic-advanced /bin/bash To monitor the logs of the container in realtime: docker logs -f airsonic-advanced Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' airsonic-advanced Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/airsonic-advanced:latest Versions 23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 25.07.22: - Add vorbis-tools. 02.01.22: - Initial Release.","title":"airsonic-advanced"},{"location":"images/docker-airsonic-advanced/#linuxserverairsonic-advanced","text":"Airsonic-advanced is a free, web-based media streamer, providing ubiquitious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room.","title":"linuxserver/airsonic-advanced"},{"location":"images/docker-airsonic-advanced/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/airsonic-advanced:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-airsonic-advanced/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Latest releases of Airsonic-Advanced","title":"Version Tags"},{"location":"images/docker-airsonic-advanced/#application-setup","text":"We don't formally support upgrading from Airsonic to Airsonic Advanced, it may or may not work for you and we'd recommend making backups before attempting this. Following the upgrade you may experience a forced rescan of your library so take this into account if you have a lot of files. Please see notes about upgrading from v10 to v11 here Access WebUI at :4040 . Default user/pass is admin/admin Extra java options can be passed with the JAVA_OPTS environment variable, eg -e JAVA_OPTS=\"-Xmx256m -Xms256m\" . For some reverse proxies, you may need to pass JAVA_OPTS=-Dserver.use-forward-headers=true for airsonic to generate the proper URL schemes. Note that if you want to use Airsonic's Java jukebox player , then PGID will need to match the group of your sound device (e.g. /dev/snd ).","title":"Application Setup"},{"location":"images/docker-airsonic-advanced/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-airsonic-advanced/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: airsonic-advanced: image: lscr.io/linuxserver/airsonic-advanced:latest container_name: airsonic-advanced environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH= #optional - JAVA_OPTS= #optional volumes: - :/config - :/music - :/playlists - :/podcasts - :/media #optional ports: - 4040:4040 devices: - /dev/snd:/dev/snd #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-airsonic-advanced/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=airsonic-advanced \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH= `#optional` \\ -e JAVA_OPTS= `#optional` \\ -p 4040:4040 \\ -v :/config \\ -v :/music \\ -v :/playlists \\ -v :/podcasts \\ -v :/media `#optional` \\ --device /dev/snd:/dev/snd `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/airsonic-advanced:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-airsonic-advanced/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-airsonic-advanced/#ports-p","text":"Parameter Function 4040 WebUI","title":"Ports (-p)"},{"location":"images/docker-airsonic-advanced/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH= For setting url-base in reverse proxy setups. JAVA_OPTS= For passing additional java options.","title":"Environment Variables (-e)"},{"location":"images/docker-airsonic-advanced/#volume-mappings-v","text":"Volume Function /config Configuration file location. /music Location of music. /playlists Location for playlists to be saved to. /podcasts Location of podcasts. /media Location of other media.","title":"Volume Mappings (-v)"},{"location":"images/docker-airsonic-advanced/#device-mappings-device","text":"Parameter Function /dev/snd Only needed to pass your host sound device to Airsonic's Java jukebox player.","title":"Device Mappings (--device)"},{"location":"images/docker-airsonic-advanced/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-airsonic-advanced/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-airsonic-advanced/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-airsonic-advanced/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-airsonic-advanced/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-airsonic-advanced/#support-info","text":"Shell access whilst the container is running: docker exec -it airsonic-advanced /bin/bash To monitor the logs of the container in realtime: docker logs -f airsonic-advanced Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' airsonic-advanced Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/airsonic-advanced:latest","title":"Support Info"},{"location":"images/docker-airsonic-advanced/#versions","text":"23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 25.07.22: - Add vorbis-tools. 02.01.22: - Initial Release.","title":"Versions"},{"location":"images/docker-airsonic/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our airsonic-advanced image instead: https://github.com/linuxserver/docker-airsonic-advanced linuxserver/airsonic Airsonic is a free, web-based media streamer, providing ubiquitious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/airsonic should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Application Setup Access WebUI at :4040 . Default user/pass is admin/admin Extra java options can be passed with the JAVA_OPTS environment variable, eg -e JAVA_OPTS=\"-Xmx256m -Xms256m\" . For some reverse proxies, you may need to pass JAVA_OPTS=-Dserver.use-forward-headers=true for airsonic to generate the proper URL schemes. Note that if you want to use Airsonic's Java jukebox player , then PGID will need to match the group of your sound device (e.g. /dev/snd ). Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: airsonic: image: lscr.io/linuxserver/airsonic container_name: airsonic environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH= #optional - JAVA_OPTS= #optional volumes: - :/config - :/music - :/playlists - :/podcasts - :/media #optional ports: - 4040:4040 devices: - /dev/snd:/dev/snd #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=airsonic \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH= `#optional` \\ -e JAVA_OPTS= `#optional` \\ -p 4040:4040 \\ -v :/config \\ -v :/music \\ -v :/playlists \\ -v :/podcasts \\ -v :/media `#optional` \\ --device /dev/snd:/dev/snd `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/airsonic Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4040 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH= For setting url-base in reverse proxy setups. JAVA_OPTS= For passing additional java options. Volume Mappings ( -v ) Volume Function /config Configuration file location. /music Location of music. /playlists Location for playlists to be saved to. /podcasts Location of podcasts. /media Location of other media. Device Mappings ( --device ) Parameter Function /dev/snd Only needed to pass your host sound device to Airsonic's Java jukebox player. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it airsonic /bin/bash To monitor the logs of the container in realtime: docker logs -f airsonic Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' airsonic Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/airsonic Versions 13.01.22: - Deprecate in favor of airsonic-advanced. 24.03.19: - Switching to new Base images, shift to arm32v7 tag. 26.01.19: - Add pipeline logic and multi arch. 05.01.19: - Linting fixes. 27.08.18: - Use new inhouse java baseimage for quicker builds. 23.08.18: - Rebase to ubuntu bionic for increased performance across all arch's. 22.04.18: - Add the forgotten JAVA_OPTS to the run command. 29.12.17: - Initial Release.","title":"airsonic"},{"location":"images/docker-airsonic/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our airsonic-advanced image instead: https://github.com/linuxserver/docker-airsonic-advanced","title":"DEPRECATION NOTICE"},{"location":"images/docker-airsonic/#linuxserverairsonic","text":"Airsonic is a free, web-based media streamer, providing ubiquitious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room.","title":"linuxserver/airsonic"},{"location":"images/docker-airsonic/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/airsonic should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-airsonic/#application-setup","text":"Access WebUI at :4040 . Default user/pass is admin/admin Extra java options can be passed with the JAVA_OPTS environment variable, eg -e JAVA_OPTS=\"-Xmx256m -Xms256m\" . For some reverse proxies, you may need to pass JAVA_OPTS=-Dserver.use-forward-headers=true for airsonic to generate the proper URL schemes. Note that if you want to use Airsonic's Java jukebox player , then PGID will need to match the group of your sound device (e.g. /dev/snd ).","title":"Application Setup"},{"location":"images/docker-airsonic/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-airsonic/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: airsonic: image: lscr.io/linuxserver/airsonic container_name: airsonic environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH= #optional - JAVA_OPTS= #optional volumes: - :/config - :/music - :/playlists - :/podcasts - :/media #optional ports: - 4040:4040 devices: - /dev/snd:/dev/snd #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-airsonic/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=airsonic \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH= `#optional` \\ -e JAVA_OPTS= `#optional` \\ -p 4040:4040 \\ -v :/config \\ -v :/music \\ -v :/playlists \\ -v :/podcasts \\ -v :/media `#optional` \\ --device /dev/snd:/dev/snd `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/airsonic","title":"docker cli (click here for more info)"},{"location":"images/docker-airsonic/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-airsonic/#ports-p","text":"Parameter Function 4040 WebUI","title":"Ports (-p)"},{"location":"images/docker-airsonic/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH= For setting url-base in reverse proxy setups. JAVA_OPTS= For passing additional java options.","title":"Environment Variables (-e)"},{"location":"images/docker-airsonic/#volume-mappings-v","text":"Volume Function /config Configuration file location. /music Location of music. /playlists Location for playlists to be saved to. /podcasts Location of podcasts. /media Location of other media.","title":"Volume Mappings (-v)"},{"location":"images/docker-airsonic/#device-mappings-device","text":"Parameter Function /dev/snd Only needed to pass your host sound device to Airsonic's Java jukebox player.","title":"Device Mappings (--device)"},{"location":"images/docker-airsonic/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-airsonic/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-airsonic/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-airsonic/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-airsonic/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-airsonic/#support-info","text":"Shell access whilst the container is running: docker exec -it airsonic /bin/bash To monitor the logs of the container in realtime: docker logs -f airsonic Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' airsonic Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/airsonic","title":"Support Info"},{"location":"images/docker-airsonic/#versions","text":"13.01.22: - Deprecate in favor of airsonic-advanced. 24.03.19: - Switching to new Base images, shift to arm32v7 tag. 26.01.19: - Add pipeline logic and multi arch. 05.01.19: - Linting fixes. 27.08.18: - Use new inhouse java baseimage for quicker builds. 23.08.18: - Rebase to ubuntu bionic for increased performance across all arch's. 22.04.18: - Add the forgotten JAVA_OPTS to the run command. 29.12.17: - Initial Release.","title":"Versions"},{"location":"images/docker-apprise-api/","text":"linuxserver/apprise-api Apprise-api Takes advantage of Apprise through your network with a user-friendly API. Send notifications to more then 65+ services. An incredibly lightweight gateway to Apprise. A production ready micro-service at your disposal. Apprise API was designed to easily fit into existing (and new) eco-systems that are looking for a simple notification solution. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/apprise-api:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: apprise-api: image: lscr.io/linuxserver/apprise-api:latest container_name: apprise-api environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=apprise-api \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8000:8000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/apprise-api:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 Port for apprise's interface and API. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where config is stored. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it apprise-api /bin/bash To monitor the logs of the container in realtime: docker logs -f apprise-api Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' apprise-api Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/apprise-api:latest Versions 17.10.22: - Rebase to alpine 3.16, migrate to S6V3 28.02.21: - Rebase to alpine 3.15. 03.11.21: - Increase uWSGI buffer size to 32kb. 16.05.21: - Add linuxserver wheel index. 26.02.21: - Initial Release.","title":"apprise-api"},{"location":"images/docker-apprise-api/#linuxserverapprise-api","text":"Apprise-api Takes advantage of Apprise through your network with a user-friendly API. Send notifications to more then 65+ services. An incredibly lightweight gateway to Apprise. A production ready micro-service at your disposal. Apprise API was designed to easily fit into existing (and new) eco-systems that are looking for a simple notification solution.","title":"linuxserver/apprise-api"},{"location":"images/docker-apprise-api/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/apprise-api:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-apprise-api/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-apprise-api/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: apprise-api: image: lscr.io/linuxserver/apprise-api:latest container_name: apprise-api environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-apprise-api/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=apprise-api \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8000:8000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/apprise-api:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-apprise-api/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-apprise-api/#ports-p","text":"Parameter Function 8000 Port for apprise's interface and API.","title":"Ports (-p)"},{"location":"images/docker-apprise-api/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-apprise-api/#volume-mappings-v","text":"Volume Function /config Where config is stored.","title":"Volume Mappings (-v)"},{"location":"images/docker-apprise-api/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-apprise-api/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-apprise-api/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-apprise-api/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-apprise-api/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-apprise-api/#support-info","text":"Shell access whilst the container is running: docker exec -it apprise-api /bin/bash To monitor the logs of the container in realtime: docker logs -f apprise-api Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' apprise-api Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/apprise-api:latest","title":"Support Info"},{"location":"images/docker-apprise-api/#versions","text":"17.10.22: - Rebase to alpine 3.16, migrate to S6V3 28.02.21: - Rebase to alpine 3.15. 03.11.21: - Increase uWSGI buffer size to 32kb. 16.05.21: - Add linuxserver wheel index. 26.02.21: - Initial Release.","title":"Versions"},{"location":"images/docker-audacity/","text":"linuxserver/audacity Audacity is an easy-to-use, multi-track audio editor and recorder. Developed by a group of volunteers as open source. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/audacity:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u274c armhf \u274c Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: audacity: image: lscr.io/linuxserver/audacity:latest container_name: audacity environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=audacity \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/audacity:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Audacity desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings and images Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it audacity /bin/bash To monitor the logs of the container in realtime: docker logs -f audacity Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' audacity Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/audacity:latest Versions 13.12.22: - Rebase to Jammy. 14.09.21: - Use the official appimage, switch to single arch (x86_64). Armhf and aarch64 users can remain on version 3.0.2 but there won't be further updates. 07.04.21: - Initial release.","title":"audacity"},{"location":"images/docker-audacity/#linuxserveraudacity","text":"Audacity is an easy-to-use, multi-track audio editor and recorder. Developed by a group of volunteers as open source.","title":"linuxserver/audacity"},{"location":"images/docker-audacity/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/audacity:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u274c armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-audacity/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-audacity/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-audacity/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: audacity: image: lscr.io/linuxserver/audacity:latest container_name: audacity environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-audacity/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=audacity \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/audacity:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-audacity/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-audacity/#ports-p","text":"Parameter Function 3000 Audacity desktop gui.","title":"Ports (-p)"},{"location":"images/docker-audacity/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-audacity/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings and images","title":"Volume Mappings (-v)"},{"location":"images/docker-audacity/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-audacity/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-audacity/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-audacity/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-audacity/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-audacity/#support-info","text":"Shell access whilst the container is running: docker exec -it audacity /bin/bash To monitor the logs of the container in realtime: docker logs -f audacity Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' audacity Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/audacity:latest","title":"Support Info"},{"location":"images/docker-audacity/#versions","text":"13.12.22: - Rebase to Jammy. 14.09.21: - Use the official appimage, switch to single arch (x86_64). Armhf and aarch64 users can remain on version 3.0.2 but there won't be further updates. 07.04.21: - Initial release.","title":"Versions"},{"location":"images/docker-babybuddy/","text":"linuxserver/babybuddy Babybuddy is a buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/babybuddy:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at :8000 (or whichever host port is mapped in docker arguments). The default user/pass are admin:admin . By default BabyBuddy uses sqlite3. To use an external database like postgresql or mysql/mariadb instead, you can use the environment variables listed in BabyBuddy docs . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: babybuddy: image: lscr.io/linuxserver/babybuddy:latest container_name: babybuddy environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CSRF_TRUSTED_ORIGINS=http://127.0.0.1:8000,https://babybuddy.domain.com volumes: - /path/to/appdata:/config ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=babybuddy \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CSRF_TRUSTED_ORIGINS=http://127.0.0.1:8000,https://babybuddy.domain.com \\ -p 8000:8000 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/babybuddy:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 the port for the web ui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London CSRF_TRUSTED_ORIGINS=http://127.0.0.1:8000,https://babybuddy.domain.com Add any address you'd like to access babybuddy at (comma separated, no spaces) Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration and data. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it babybuddy /bin/bash To monitor the logs of the container in realtime: docker logs -f babybuddy Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' babybuddy Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/babybuddy:latest Versions 23.11.22: - Rebase to Alpine 3.16, migrate to s6v3. Restructure nginx configs ( see changes announcement ). 28.05.22: - Add missing PUID/PGID vars to readme. 03.04.22: - Rebase to alpine-nginx baseimage. Add CSRF_TRUSTED_ORIGINS env var. 11.12.21: - Add py3-mysqlclient for mysql/mariadb. 14.11.21: - Add lxml dependencies (temp fix for amd64 by force compiling lxml). 25.07.21: - Add libpq for postgresql. 08.07.21: - Fix pip install issue. 05.07.21: - Update Gunicorn parameters to prevent WORKER_TIMEOUT issue. 22.06.21: - Initial release.","title":"babybuddy"},{"location":"images/docker-babybuddy/#linuxserverbabybuddy","text":"Babybuddy is a buddy for babies! Helps caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work.","title":"linuxserver/babybuddy"},{"location":"images/docker-babybuddy/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/babybuddy:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-babybuddy/#application-setup","text":"Access the webui at :8000 (or whichever host port is mapped in docker arguments). The default user/pass are admin:admin . By default BabyBuddy uses sqlite3. To use an external database like postgresql or mysql/mariadb instead, you can use the environment variables listed in BabyBuddy docs .","title":"Application Setup"},{"location":"images/docker-babybuddy/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-babybuddy/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: babybuddy: image: lscr.io/linuxserver/babybuddy:latest container_name: babybuddy environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CSRF_TRUSTED_ORIGINS=http://127.0.0.1:8000,https://babybuddy.domain.com volumes: - /path/to/appdata:/config ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-babybuddy/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=babybuddy \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CSRF_TRUSTED_ORIGINS=http://127.0.0.1:8000,https://babybuddy.domain.com \\ -p 8000:8000 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/babybuddy:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-babybuddy/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-babybuddy/#ports-p","text":"Parameter Function 8000 the port for the web ui","title":"Ports (-p)"},{"location":"images/docker-babybuddy/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London CSRF_TRUSTED_ORIGINS=http://127.0.0.1:8000,https://babybuddy.domain.com Add any address you'd like to access babybuddy at (comma separated, no spaces)","title":"Environment Variables (-e)"},{"location":"images/docker-babybuddy/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration and data.","title":"Volume Mappings (-v)"},{"location":"images/docker-babybuddy/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-babybuddy/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-babybuddy/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-babybuddy/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-babybuddy/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-babybuddy/#support-info","text":"Shell access whilst the container is running: docker exec -it babybuddy /bin/bash To monitor the logs of the container in realtime: docker logs -f babybuddy Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' babybuddy Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/babybuddy:latest","title":"Support Info"},{"location":"images/docker-babybuddy/#versions","text":"23.11.22: - Rebase to Alpine 3.16, migrate to s6v3. Restructure nginx configs ( see changes announcement ). 28.05.22: - Add missing PUID/PGID vars to readme. 03.04.22: - Rebase to alpine-nginx baseimage. Add CSRF_TRUSTED_ORIGINS env var. 11.12.21: - Add py3-mysqlclient for mysql/mariadb. 14.11.21: - Add lxml dependencies (temp fix for amd64 by force compiling lxml). 25.07.21: - Add libpq for postgresql. 08.07.21: - Fix pip install issue. 05.07.21: - Update Gunicorn parameters to prevent WORKER_TIMEOUT issue. 22.06.21: - Initial release.","title":"Versions"},{"location":"images/docker-base-alpine-example/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum Linuserver.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Docker base alpine example"},{"location":"images/docker-base-alpine-example/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum Linuserver.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-base-ubuntu-example/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum Linuserver.io forum A custom base image built with Ubuntu cloud image and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Docker base ubuntu example"},{"location":"images/docker-base-ubuntu-example/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum Linuserver.io forum A custom base image built with Ubuntu cloud image and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-alpine-nginx/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux , nginx and S6 overlay .. Featuring :- weekly updates security updates The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-alpine-nginx"},{"location":"images/docker-baseimage-alpine-nginx/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux , nginx and S6 overlay .. Featuring :- weekly updates security updates The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-alpine-python/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our standard alpine baseimage instead: https://github.com/linuxserver/docker-baseimage-alpine Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux , python2 and S6 overlay .. Featuring :- weekly updates security updates The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-alpine-python"},{"location":"images/docker-baseimage-alpine-python/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our standard alpine baseimage instead: https://github.com/linuxserver/docker-baseimage-alpine","title":"DEPRECATION NOTICE"},{"location":"images/docker-baseimage-alpine-python/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux , python2 and S6 overlay .. Featuring :- weekly updates security updates The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-alpine/","text":"Contact information:- Type Address/Details Discord Discord IRC libera at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-alpine"},{"location":"images/docker-baseimage-alpine/#contact-information-","text":"Type Address/Details Discord Discord IRC libera at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-arch/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-arch"},{"location":"images/docker-baseimage-arch/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-cloud9/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu linux and Cloud9 .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-cloud9"},{"location":"images/docker-baseimage-cloud9/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-baseimage-cloud9/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu linux and Cloud9 .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-fedora/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-fedora"},{"location":"images/docker-baseimage-fedora/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Alpine linux and S6 overlay .. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-guacgui/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Contact information: Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum linuxserver/docker-baseimage-guacgui A custom graphical base image built with: * Ubuntu cloud image * S6 overlay * xrdp * xorgxrdp * openbox * guacamole Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/docker-baseimage-guacgui should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container. docker docker create \\ --name=docker-baseimage-guacgui \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e APPNAME=xclock \\ -e GUAC_USER=abc `#optional` \\ -e GUAC_PASS=900150983cd24fb0d6963f7d28e17f72 `#optional` \\ -e GUAC_KEYBOARD_LAYOUT=de-de-qwertz `#optional` \\ -p 8080:8080 \\ -p 3389:3389 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/docker-baseimage-guacgui docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: docker-baseimage-guacgui: image: linuxserver/docker-baseimage-guacgui container_name: docker-baseimage-guacgui environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - APPNAME=xclock - GUAC_USER=abc #optional - GUAC_PASS=900150983cd24fb0d6963f7d28e17f72 #optional - GUAC_KEYBOARD_LAYOUT=de-de-qwertz #optional volumes: - :/config ports: - 8080:8080 - 3389:3389 restart: unless-stopped Parameters Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Parameter Function -p 8080 Allows HTTP access to the internal X server. -p 3389 Allows RDP access to the internal X server. -e PUID=1000 for UserID - see below for explanation -e PGID=1000 for GroupID - see below for explanation -e TZ=Europe/London Specify a timezone to use EG Europe/London -e APPNAME=xclock Specify the graphical application name shown on RDP access. -e GUAC_USER=abc Specify the username for guacamole's web interface. -e GUAC_PASS=900150983cd24fb0d6963f7d28e17f72 Specify the password's md5 hash for guacamole's web interface. -e GUAC_KEYBOARD_LAYOUT=de-de-qwertz Specify the used keyboard layout for the RDP session used by the gucamole client. Possible values are \"en-us-qwerty\" (default), de-de-qwertz (German keyboard (qwertz)), fr-fr-azerty (French keyboard (azerty)), fr-ch-qwertz (Swiss French keyboard (qwertz)), it-it-qwerty (Italian keyboard), ja-jp-qwerty (Japanese keyboard) and sv-se-qwerty (Swedish keyboard). -v /config Contains X user's home directory contents. Application Setup This is a baseimage meant to be used as base for graphical applications. Please refer to the example folder for usage. If GUAC_USER and GUAC_PASS are not set, there is no authentication. Passwords can be generated via the following: echo -n password | openssl md5 printf '%s' password | md5sum Please beware this image is not hardened for internet usage. Use a reverse ssl proxy to increase security. The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-guacgui"},{"location":"images/docker-baseimage-guacgui/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-baseimage-guacgui/#contact-information","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum","title":"Contact information:"},{"location":"images/docker-baseimage-guacgui/#linuxserverdocker-baseimage-guacgui","text":"A custom graphical base image built with: * Ubuntu cloud image * S6 overlay * xrdp * xorgxrdp * openbox * guacamole","title":"linuxserver/docker-baseimage-guacgui"},{"location":"images/docker-baseimage-guacgui/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/docker-baseimage-guacgui should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-baseimage-guacgui/#usage","text":"Here are some example snippets to help you get started creating a container.","title":"Usage"},{"location":"images/docker-baseimage-guacgui/#docker","text":"docker create \\ --name=docker-baseimage-guacgui \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e APPNAME=xclock \\ -e GUAC_USER=abc `#optional` \\ -e GUAC_PASS=900150983cd24fb0d6963f7d28e17f72 `#optional` \\ -e GUAC_KEYBOARD_LAYOUT=de-de-qwertz `#optional` \\ -p 8080:8080 \\ -p 3389:3389 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/docker-baseimage-guacgui","title":"docker"},{"location":"images/docker-baseimage-guacgui/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: docker-baseimage-guacgui: image: linuxserver/docker-baseimage-guacgui container_name: docker-baseimage-guacgui environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - APPNAME=xclock - GUAC_USER=abc #optional - GUAC_PASS=900150983cd24fb0d6963f7d28e17f72 #optional - GUAC_KEYBOARD_LAYOUT=de-de-qwertz #optional volumes: - :/config ports: - 8080:8080 - 3389:3389 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-baseimage-guacgui/#parameters","text":"Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Parameter Function -p 8080 Allows HTTP access to the internal X server. -p 3389 Allows RDP access to the internal X server. -e PUID=1000 for UserID - see below for explanation -e PGID=1000 for GroupID - see below for explanation -e TZ=Europe/London Specify a timezone to use EG Europe/London -e APPNAME=xclock Specify the graphical application name shown on RDP access. -e GUAC_USER=abc Specify the username for guacamole's web interface. -e GUAC_PASS=900150983cd24fb0d6963f7d28e17f72 Specify the password's md5 hash for guacamole's web interface. -e GUAC_KEYBOARD_LAYOUT=de-de-qwertz Specify the used keyboard layout for the RDP session used by the gucamole client. Possible values are \"en-us-qwerty\" (default), de-de-qwertz (German keyboard (qwertz)), fr-fr-azerty (French keyboard (azerty)), fr-ch-qwertz (Swiss French keyboard (qwertz)), it-it-qwerty (Italian keyboard), ja-jp-qwerty (Japanese keyboard) and sv-se-qwerty (Swedish keyboard). -v /config Contains X user's home directory contents.","title":"Parameters"},{"location":"images/docker-baseimage-guacgui/#application-setup","text":"This is a baseimage meant to be used as base for graphical applications. Please refer to the example folder for usage. If GUAC_USER and GUAC_PASS are not set, there is no authentication. Passwords can be generated via the following: echo -n password | openssl md5 printf '%s' password | md5sum Please beware this image is not hardened for internet usage. Use a reverse ssl proxy to increase security. The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Application Setup"},{"location":"images/docker-baseimage-gui/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Contact information: Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum linuxserver/docker-baseimage-gui A custom graphical base image built with: * Ubuntu cloud image * S6 overlay * xrdp * xorgxrdp * openbox Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lsiobase/nginx should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here is an example to help you get started creating a graphical container. Dockerfile #Firefox via RDP FROM lsiobase/ubuntu-gui:amd64-latest ######################################### ## ENVIRONMENTAL CONFIG ## ######################################### # Set correct environment variables ENV TERM=\"xterm\" APPNAME=\"firefox\" ARG DEBIAN_FRONTEND=noninteractive ######################################### ## INSTALL DEPENDENCIES ## ######################################### RUN apt-get update \\ && apt-get -y upgrade \\ && apt-get install -qy --no-install-recommends \\ firefox \\ && apt-get clean -y \\ && apt-get autoremove -y \\ && rm -rf /tmp/* /var/tmp/* \\ && rm -rf /var/lib/apt/lists/* COPY root / servicefile #!/bin/execlineb -P # ./root/etc/service.d/firefox/run # Redirect stderr to stdout. fdmove -c 2 1 # Wait until openbox is running if { s6-svwait -t 10000 -U /var/run/s6/services/openbox/ } # Drop privileges and set env s6-setuidgid abc s6-env DISPLAY=:1 HOME=/config # Execute Firefox /usr/bin/firefox Access the Graphical Interface Use an RDP client such as: * Remmina * Microsoft Remote Deskotp Client The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-gui"},{"location":"images/docker-baseimage-gui/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-baseimage-gui/#contact-information","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum","title":"Contact information:"},{"location":"images/docker-baseimage-gui/#linuxserverdocker-baseimage-gui","text":"A custom graphical base image built with: * Ubuntu cloud image * S6 overlay * xrdp * xorgxrdp * openbox","title":"linuxserver/docker-baseimage-gui"},{"location":"images/docker-baseimage-gui/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lsiobase/nginx should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-baseimage-gui/#usage","text":"Here is an example to help you get started creating a graphical container.","title":"Usage"},{"location":"images/docker-baseimage-gui/#dockerfile","text":"#Firefox via RDP FROM lsiobase/ubuntu-gui:amd64-latest ######################################### ## ENVIRONMENTAL CONFIG ## ######################################### # Set correct environment variables ENV TERM=\"xterm\" APPNAME=\"firefox\" ARG DEBIAN_FRONTEND=noninteractive ######################################### ## INSTALL DEPENDENCIES ## ######################################### RUN apt-get update \\ && apt-get -y upgrade \\ && apt-get install -qy --no-install-recommends \\ firefox \\ && apt-get clean -y \\ && apt-get autoremove -y \\ && rm -rf /tmp/* /var/tmp/* \\ && rm -rf /var/lib/apt/lists/* COPY root /","title":"Dockerfile"},{"location":"images/docker-baseimage-gui/#servicefile","text":"#!/bin/execlineb -P # ./root/etc/service.d/firefox/run # Redirect stderr to stdout. fdmove -c 2 1 # Wait until openbox is running if { s6-svwait -t 10000 -U /var/run/s6/services/openbox/ } # Drop privileges and set env s6-setuidgid abc s6-env DISPLAY=:1 HOME=/config # Execute Firefox /usr/bin/firefox","title":"servicefile"},{"location":"images/docker-baseimage-gui/#access-the-graphical-interface","text":"Use an RDP client such as: * Remmina * Microsoft Remote Deskotp Client The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Access the Graphical Interface"},{"location":"images/docker-baseimage-mono/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu cloud image , mono and S6 overlay .. Featuring :- weekly updates security updates The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-mono"},{"location":"images/docker-baseimage-mono/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu cloud image , mono and S6 overlay .. Featuring :- weekly updates security updates The following line is only in this repo for loop testing: - { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-rdesktop-web/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu linux and xrdp The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-rdesktop-web"},{"location":"images/docker-baseimage-rdesktop-web/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu linux and xrdp The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-baseimage-rdesktop/","text":"Contact information:- Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu linux and xrdp The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"baseimage-rdesktop"},{"location":"images/docker-baseimage-rdesktop/#contact-information-","text":"Type Address/Details Discord Discord IRC freenode at #linuxserver.io more information at:- IRC Forum LinuxServer.io forum A custom base image built with Ubuntu linux and xrdp The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Contact information:-"},{"location":"images/docker-bazarr/","text":"linuxserver/bazarr Bazarr is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/bazarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from Bazarr development \u2705 Pre-releases from Bazarr Application Setup Once running the URL will be http://:6767 . You must complete all the setup parameters in the webui before you can save the config. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: bazarr: image: lscr.io/linuxserver/bazarr:latest container_name: bazarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/bazarr/config:/config - /path/to/movies:/movies #optional - /path/to/tv:/tv #optional ports: - 6767:6767 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=bazarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6767:6767 \\ -v /path/to/bazarr/config:/config \\ -v /path/to/movies:/movies `#optional` \\ -v /path/to/tv:/tv `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/bazarr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 6767 Allows HTTP access to the internal webserver. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Bazarr data /movies Location of your movies /tv Location of your TV Shows Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it bazarr /bin/bash To monitor the logs of the container in realtime: docker logs -f bazarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' bazarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/bazarr:latest Versions 11.10.22: - Rebase master branch to Alpine 3.16, migrate to s6v3. 15.15.21: - Temp fix for lxml, compile from scratch to avoid broken official wheel. 25.10.21: - Rebase to alpine 3.14. Fix numpy wheel. 22.10.21: - Added openblas package to prevent numpy error. 16.05.21: - Use wheel index. 19.04.21: - Install from release zip. 07.04.21: - Move app to /app/bazarr/bin, add package_info . 23.01.21: - Rebasing to alpine 3.13. 23.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 01.06.20: - Rebasing to alpine 3.12. 13.05.20: - Add donation links for Bazarr to Github sponsors button and container log. 08.04.20: - Removed /movies and /tv volumes from Dockerfiles. 28.12.19: - Upgrade to Python 3. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 13.06.19: - Add env variable for setting umask. 12.06.19: - Swap to install deps using maintainers requirements.txt, add ffmpeg for ffprobe. 17.04.19: - Add default UTC timezone if user does not set it. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.09.18: - Initial release.","title":"bazarr"},{"location":"images/docker-bazarr/#linuxserverbazarr","text":"Bazarr is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you.","title":"linuxserver/bazarr"},{"location":"images/docker-bazarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/bazarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-bazarr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from Bazarr development \u2705 Pre-releases from Bazarr","title":"Version Tags"},{"location":"images/docker-bazarr/#application-setup","text":"Once running the URL will be http://:6767 . You must complete all the setup parameters in the webui before you can save the config.","title":"Application Setup"},{"location":"images/docker-bazarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-bazarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: bazarr: image: lscr.io/linuxserver/bazarr:latest container_name: bazarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/bazarr/config:/config - /path/to/movies:/movies #optional - /path/to/tv:/tv #optional ports: - 6767:6767 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-bazarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=bazarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6767:6767 \\ -v /path/to/bazarr/config:/config \\ -v /path/to/movies:/movies `#optional` \\ -v /path/to/tv:/tv `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/bazarr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-bazarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-bazarr/#ports-p","text":"Parameter Function 6767 Allows HTTP access to the internal webserver.","title":"Ports (-p)"},{"location":"images/docker-bazarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-bazarr/#volume-mappings-v","text":"Volume Function /config Bazarr data /movies Location of your movies /tv Location of your TV Shows","title":"Volume Mappings (-v)"},{"location":"images/docker-bazarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-bazarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-bazarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-bazarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-bazarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-bazarr/#support-info","text":"Shell access whilst the container is running: docker exec -it bazarr /bin/bash To monitor the logs of the container in realtime: docker logs -f bazarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' bazarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/bazarr:latest","title":"Support Info"},{"location":"images/docker-bazarr/#versions","text":"11.10.22: - Rebase master branch to Alpine 3.16, migrate to s6v3. 15.15.21: - Temp fix for lxml, compile from scratch to avoid broken official wheel. 25.10.21: - Rebase to alpine 3.14. Fix numpy wheel. 22.10.21: - Added openblas package to prevent numpy error. 16.05.21: - Use wheel index. 19.04.21: - Install from release zip. 07.04.21: - Move app to /app/bazarr/bin, add package_info . 23.01.21: - Rebasing to alpine 3.13. 23.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 01.06.20: - Rebasing to alpine 3.12. 13.05.20: - Add donation links for Bazarr to Github sponsors button and container log. 08.04.20: - Removed /movies and /tv volumes from Dockerfiles. 28.12.19: - Upgrade to Python 3. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 13.06.19: - Add env variable for setting umask. 12.06.19: - Swap to install deps using maintainers requirements.txt, add ffmpeg for ffprobe. 17.04.19: - Add default UTC timezone if user does not set it. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.09.18: - Initial release.","title":"Versions"},{"location":"images/docker-beets/","text":"linuxserver/beets Beets is a music library manager and not, for the most part, a music player. It does include a simple player plugin and an experimental Web-based player, but it generally leaves actual sound-reproduction to specialized tools. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/beets:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Beets Releases nightly \u2705 Built against head of Beets git, generally considered unstable but a likely choice for power users of the application. Application Setup Edit the config file in /config To edit the config from within the container use beet config -e For a command prompt as user abc docker exec -it -u abc beets bash See Beets for more info. Contains beets-extrafiles plugin, configuration details Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: beets: image: lscr.io/linuxserver/beets:latest container_name: beets environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/music - :/downloads ports: - 8337:8337 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=beets \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8337:8337 \\ -v :/config \\ -v :/music \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/beets:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8337 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. /music Music library /downloads Non processed music Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it beets /bin/bash To monitor the logs of the container in realtime: docker logs -f beets Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' beets Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/beets:latest Versions 15.01.22: - Rebasing to alpine 3.15. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 12.05.19: - Add flac and mp3val binaries required for badfiles plugin. 12.04.19: - Rebase to Alpine 3.9. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.03.19: - Swap copyartifacts for extrafiles, update endpoints with nightly tag. 01.03.19: - Switch to python3. 07.02.19: - Add fftw-dev build dependency for chromaprint. 28.01.19: - Add pipeline logic and multi arch. 15.08.18: - Rebase to alpine 3.8, use alpine repo version of pylast. 12.08.18: - Add requests pip package. 04.03.18: - Upgrade mp3gain to 1.6.1. 02.01.18: - Deprecate cpu_core routine lack of scaling. 27.12.17: - Add beautifulsoup4 pip package. 06.12.17: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 06.02.17: - Rebase to alpine linux 3.5. 16.01.17: - Add packages required for replaygain. 24.12.16: - Add beets-copyartifacts plugin. 07.12.16: - Edit cmake options for chromaprint, should now build and install fpcalc, add gstreamer lib 14.10.16: - Add version layer information. 01.10.16: - Add nano and editor variable to allow editing of the config from the container command line. 30.09.16: - Fix umask. 24.09.16: - Rebase to alpine linux. 10.09.16: - Add layer badges to README. 05.01.16: - Change ffpmeg repository, other version crashes container 06.11.15: - Initial Release 29.11.15: - Take out term setting, causing issues with key entry for some users","title":"beets"},{"location":"images/docker-beets/#linuxserverbeets","text":"Beets is a music library manager and not, for the most part, a music player. It does include a simple player plugin and an experimental Web-based player, but it generally leaves actual sound-reproduction to specialized tools.","title":"linuxserver/beets"},{"location":"images/docker-beets/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/beets:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-beets/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Beets Releases nightly \u2705 Built against head of Beets git, generally considered unstable but a likely choice for power users of the application.","title":"Version Tags"},{"location":"images/docker-beets/#application-setup","text":"Edit the config file in /config To edit the config from within the container use beet config -e For a command prompt as user abc docker exec -it -u abc beets bash See Beets for more info. Contains beets-extrafiles plugin, configuration details","title":"Application Setup"},{"location":"images/docker-beets/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-beets/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: beets: image: lscr.io/linuxserver/beets:latest container_name: beets environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/music - :/downloads ports: - 8337:8337 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-beets/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=beets \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8337:8337 \\ -v :/config \\ -v :/music \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/beets:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-beets/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-beets/#ports-p","text":"Parameter Function 8337 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-beets/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-beets/#volume-mappings-v","text":"Volume Function /config Configuration files. /music Music library /downloads Non processed music","title":"Volume Mappings (-v)"},{"location":"images/docker-beets/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-beets/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-beets/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-beets/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-beets/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-beets/#support-info","text":"Shell access whilst the container is running: docker exec -it beets /bin/bash To monitor the logs of the container in realtime: docker logs -f beets Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' beets Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/beets:latest","title":"Support Info"},{"location":"images/docker-beets/#versions","text":"15.01.22: - Rebasing to alpine 3.15. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 12.05.19: - Add flac and mp3val binaries required for badfiles plugin. 12.04.19: - Rebase to Alpine 3.9. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.03.19: - Swap copyartifacts for extrafiles, update endpoints with nightly tag. 01.03.19: - Switch to python3. 07.02.19: - Add fftw-dev build dependency for chromaprint. 28.01.19: - Add pipeline logic and multi arch. 15.08.18: - Rebase to alpine 3.8, use alpine repo version of pylast. 12.08.18: - Add requests pip package. 04.03.18: - Upgrade mp3gain to 1.6.1. 02.01.18: - Deprecate cpu_core routine lack of scaling. 27.12.17: - Add beautifulsoup4 pip package. 06.12.17: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 06.02.17: - Rebase to alpine linux 3.5. 16.01.17: - Add packages required for replaygain. 24.12.16: - Add beets-copyartifacts plugin. 07.12.16: - Edit cmake options for chromaprint, should now build and install fpcalc, add gstreamer lib 14.10.16: - Add version layer information. 01.10.16: - Add nano and editor variable to allow editing of the config from the container command line. 30.09.16: - Fix umask. 24.09.16: - Rebase to alpine linux. 10.09.16: - Add layer badges to README. 05.01.16: - Change ffpmeg repository, other version crashes container 06.11.15: - Initial Release 29.11.15: - Take out term setting, causing issues with key entry for some users","title":"Versions"},{"location":"images/docker-blender/","text":"linuxserver/blender Blender is a free and open-source 3D computer graphics software toolset used for creating animated films, visual effects, art, 3D printed models, motion graphics, interactive 3D applications, virtual reality, and computer games. This image does not support GPU rendering out of the box only accelerated workspace experience Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/blender:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: * http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false . Hardware Acceleration This only applies to your desktop experience, this container is capable of supporting accelerated rendering with /dev/dri mounted in, but the AMD HIP and Nvidia CUDA runtimes are massive which are not installed by default in this container. Intel/ATI/AMD To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container. Arm Devices Arm devices can run this image, but generally should not mount in /dev/dri. The OpenGL ES version is not high enough to run Blender. The program can run on these platforms though, leveraging CPU LLVMPipe rendering. Due to lack of arm32/64 binaries from the upstream project, our arm32/64 images install the latest version from the ubuntu repo, which is usually behind and thus the version the image is tagged with does not match the version contained. Keyboard Layouts This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: blender: image: lscr.io/linuxserver/blender:latest container_name: blender security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional volumes: - /path/to/config:/config ports: - 3000:3000 devices: - /dev/dri:/dev/dri #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=blender \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --device /dev/dri:/dev/dri `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/blender:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Blender desktop gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores local files and settings Device Mappings ( --device ) Parameter Function /dev/dri Add this for hardware acceleration (Linux hosts only) Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, this may be required depending on your Docker and storage configuration. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it blender /bin/bash To monitor the logs of the container in realtime: docker logs -f blender Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' blender Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/blender:latest Versions 06.05.22: - Use the full semver version in image tags. Arm32/64 version tags are inaccurate due to installing from ubuntu repo, which is usually behind. 12.03.22: - Initial Release.","title":"blender"},{"location":"images/docker-blender/#linuxserverblender","text":"Blender is a free and open-source 3D computer graphics software toolset used for creating animated films, visual effects, art, 3D printed models, motion graphics, interactive 3D applications, virtual reality, and computer games. This image does not support GPU rendering out of the box only accelerated workspace experience","title":"linuxserver/blender"},{"location":"images/docker-blender/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/blender:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-blender/#application-setup","text":"The application can be accessed at: * http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false .","title":"Application Setup"},{"location":"images/docker-blender/#hardware-acceleration","text":"This only applies to your desktop experience, this container is capable of supporting accelerated rendering with /dev/dri mounted in, but the AMD HIP and Nvidia CUDA runtimes are massive which are not installed by default in this container.","title":"Hardware Acceleration"},{"location":"images/docker-blender/#intelatiamd","text":"To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel/ATI/AMD"},{"location":"images/docker-blender/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container.","title":"Nvidia"},{"location":"images/docker-blender/#arm-devices","text":"Arm devices can run this image, but generally should not mount in /dev/dri. The OpenGL ES version is not high enough to run Blender. The program can run on these platforms though, leveraging CPU LLVMPipe rendering. Due to lack of arm32/64 binaries from the upstream project, our arm32/64 images install the latest version from the ubuntu repo, which is usually behind and thus the version the image is tagged with does not match the version contained.","title":"Arm Devices"},{"location":"images/docker-blender/#keyboard-layouts","text":"This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard","title":"Keyboard Layouts"},{"location":"images/docker-blender/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-blender/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: blender: image: lscr.io/linuxserver/blender:latest container_name: blender security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional volumes: - /path/to/config:/config ports: - 3000:3000 devices: - /dev/dri:/dev/dri #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-blender/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=blender \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --device /dev/dri:/dev/dri `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/blender:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-blender/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-blender/#ports-p","text":"Parameter Function 3000 Blender desktop gui","title":"Ports (-p)"},{"location":"images/docker-blender/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options.","title":"Environment Variables (-e)"},{"location":"images/docker-blender/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores local files and settings","title":"Volume Mappings (-v)"},{"location":"images/docker-blender/#device-mappings-device","text":"Parameter Function /dev/dri Add this for hardware acceleration (Linux hosts only)","title":"Device Mappings (--device)"},{"location":"images/docker-blender/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, this may be required depending on your Docker and storage configuration.","title":"Miscellaneous Options"},{"location":"images/docker-blender/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-blender/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-blender/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-blender/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-blender/#support-info","text":"Shell access whilst the container is running: docker exec -it blender /bin/bash To monitor the logs of the container in realtime: docker logs -f blender Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' blender Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/blender:latest","title":"Support Info"},{"location":"images/docker-blender/#versions","text":"06.05.22: - Use the full semver version in image tags. Arm32/64 version tags are inaccurate due to installing from ubuntu repo, which is usually behind. 12.03.22: - Initial Release.","title":"Versions"},{"location":"images/docker-boinc/","text":"linuxserver/boinc BOINC is a platform for high-throughput computing on a large scale (thousands or millions of computers). It can be used for volunteer computing (using consumer devices) or grid computing (using organizational resources). It supports virtualized, parallel, and GPU-based applications. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/boinc:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This image sets up the BOINC client and manager and makes its interface available via Guacamole server in the browser. The interface is available at http://your-ip:8080 . By default, there is no password set for the main gui. Optional environment variable PASSWORD will allow setting a password for the user abc . You can access advanced features of the Guacamole remote desktop using ctrl + alt + shift enabling you to use remote copy/paste and different languages. It is recommended to switch to Advanced View in the top menu, because the Computing Preferences don't seem to be displayed in Simple View . Sometimes, the pop-up windows may open in a tiny box in the upper left corner of the screen. When that happens, you can find the corner and resize them. GPU Hardware Acceleration Intel Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the BOINC docker container. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: boinc: image: lscr.io/linuxserver/boinc:latest container_name: boinc security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD= #optional volumes: - /path/to/data:/config ports: - 8080:8080 devices: - /dev/dri:/dev/dri #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=boinc \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD= `#optional` \\ -p 8080:8080 \\ -v /path/to/data:/config \\ --device /dev/dri:/dev/dri `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/boinc:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Boinc desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. PASSWORD= Optionally set a password for the gui. Volume Mappings ( -v ) Volume Function /config Where BOINC should store its database and config. Device Mappings ( --device ) Parameter Function /dev/dri Only needed if you want to use your Intel GPU (vaapi). Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it boinc /bin/bash To monitor the logs of the container in realtime: docker logs -f boinc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' boinc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/boinc:latest Versions 14.11.22: - Fix opencl driver. 18.09.22: - Rebase to jammy. 24.02.22: - Rebase to focal. 31.01.22: - Improve device permissions setting verbosity. 23.03.21: - Rebase to rdesktop-web baseimage. Deprecate GUAC_USER and GUAC_PASS env vars. Existing users can set the new var PASSWORD for the user abc . 01.04.20: - Install boinc from ppa. 17.03.20: - Add armhf and aarch64 builds and switch to multi-arch image. 16.03.20: - Clean up old pid files. 15.03.20: - Initial release.","title":"boinc"},{"location":"images/docker-boinc/#linuxserverboinc","text":"BOINC is a platform for high-throughput computing on a large scale (thousands or millions of computers). It can be used for volunteer computing (using consumer devices) or grid computing (using organizational resources). It supports virtualized, parallel, and GPU-based applications.","title":"linuxserver/boinc"},{"location":"images/docker-boinc/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/boinc:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-boinc/#application-setup","text":"This image sets up the BOINC client and manager and makes its interface available via Guacamole server in the browser. The interface is available at http://your-ip:8080 . By default, there is no password set for the main gui. Optional environment variable PASSWORD will allow setting a password for the user abc . You can access advanced features of the Guacamole remote desktop using ctrl + alt + shift enabling you to use remote copy/paste and different languages. It is recommended to switch to Advanced View in the top menu, because the Computing Preferences don't seem to be displayed in Simple View . Sometimes, the pop-up windows may open in a tiny box in the upper left corner of the screen. When that happens, you can find the corner and resize them.","title":"Application Setup"},{"location":"images/docker-boinc/#gpu-hardware-acceleration","text":"","title":"GPU Hardware Acceleration"},{"location":"images/docker-boinc/#intel","text":"Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel"},{"location":"images/docker-boinc/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the BOINC docker container.","title":"Nvidia"},{"location":"images/docker-boinc/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-boinc/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: boinc: image: lscr.io/linuxserver/boinc:latest container_name: boinc security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD= #optional volumes: - /path/to/data:/config ports: - 8080:8080 devices: - /dev/dri:/dev/dri #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-boinc/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=boinc \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD= `#optional` \\ -p 8080:8080 \\ -v /path/to/data:/config \\ --device /dev/dri:/dev/dri `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/boinc:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-boinc/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-boinc/#ports-p","text":"Parameter Function 8080 Boinc desktop gui.","title":"Ports (-p)"},{"location":"images/docker-boinc/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. PASSWORD= Optionally set a password for the gui.","title":"Environment Variables (-e)"},{"location":"images/docker-boinc/#volume-mappings-v","text":"Volume Function /config Where BOINC should store its database and config.","title":"Volume Mappings (-v)"},{"location":"images/docker-boinc/#device-mappings-device","text":"Parameter Function /dev/dri Only needed if you want to use your Intel GPU (vaapi).","title":"Device Mappings (--device)"},{"location":"images/docker-boinc/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-boinc/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-boinc/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-boinc/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-boinc/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-boinc/#support-info","text":"Shell access whilst the container is running: docker exec -it boinc /bin/bash To monitor the logs of the container in realtime: docker logs -f boinc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' boinc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/boinc:latest","title":"Support Info"},{"location":"images/docker-boinc/#versions","text":"14.11.22: - Fix opencl driver. 18.09.22: - Rebase to jammy. 24.02.22: - Rebase to focal. 31.01.22: - Improve device permissions setting verbosity. 23.03.21: - Rebase to rdesktop-web baseimage. Deprecate GUAC_USER and GUAC_PASS env vars. Existing users can set the new var PASSWORD for the user abc . 01.04.20: - Install boinc from ppa. 17.03.20: - Add armhf and aarch64 builds and switch to multi-arch image. 16.03.20: - Clean up old pid files. 15.03.20: - Initial release.","title":"Versions"},{"location":"images/docker-booksonic-air/","text":"linuxserver/booksonic-air Booksonic-air is a platform for accessing the audiobooks you own wherever you are. At the moment the platform consists of: * Booksonic Air - A server for streaming your audiobooks, successor to the original Booksonic server and based on Airsonic. * Booksonic App - An DSub based Android app for connection to Booksonic-Air servers. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/booksonic-air:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable booksonic-air releases Application Setup Whilst this is a more up to date rebase of the original Booksonic server, upgrading in place is not supported and a fresh install has been recommended. Default user/pass is admin/admin Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: booksonic-air: image: lscr.io/linuxserver/booksonic-air:latest container_name: booksonic-air environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH=url-base volumes: - :/config - :/audiobooks - :/podcasts - :/othermedia ports: - 4040:4040 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=booksonic-air \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH=url-base \\ -p 4040:4040 \\ -v :/config \\ -v :/audiobooks \\ -v :/podcasts \\ -v :/othermedia \\ --restart unless-stopped \\ lscr.io/linuxserver/booksonic-air:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4040 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH=url-base Base url for use with reverse proxies etc. Volume Mappings ( -v ) Volume Function /config Configuration files. /audiobooks Audiobooks. /podcasts Podcasts. /othermedia Other media. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it booksonic-air /bin/bash To monitor the logs of the container in realtime: docker logs -f booksonic-air Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' booksonic-air Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/booksonic-air:latest Versions 18.04.22: - Rebase to Alpine 3.15. 15.09.20: - Initial Release.","title":"booksonic-air"},{"location":"images/docker-booksonic-air/#linuxserverbooksonic-air","text":"Booksonic-air is a platform for accessing the audiobooks you own wherever you are. At the moment the platform consists of: * Booksonic Air - A server for streaming your audiobooks, successor to the original Booksonic server and based on Airsonic. * Booksonic App - An DSub based Android app for connection to Booksonic-Air servers.","title":"linuxserver/booksonic-air"},{"location":"images/docker-booksonic-air/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/booksonic-air:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-booksonic-air/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable booksonic-air releases","title":"Version Tags"},{"location":"images/docker-booksonic-air/#application-setup","text":"Whilst this is a more up to date rebase of the original Booksonic server, upgrading in place is not supported and a fresh install has been recommended. Default user/pass is admin/admin","title":"Application Setup"},{"location":"images/docker-booksonic-air/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-booksonic-air/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: booksonic-air: image: lscr.io/linuxserver/booksonic-air:latest container_name: booksonic-air environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH=url-base volumes: - :/config - :/audiobooks - :/podcasts - :/othermedia ports: - 4040:4040 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-booksonic-air/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=booksonic-air \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH=url-base \\ -p 4040:4040 \\ -v :/config \\ -v :/audiobooks \\ -v :/podcasts \\ -v :/othermedia \\ --restart unless-stopped \\ lscr.io/linuxserver/booksonic-air:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-booksonic-air/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-booksonic-air/#ports-p","text":"Parameter Function 4040 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-booksonic-air/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH=url-base Base url for use with reverse proxies etc.","title":"Environment Variables (-e)"},{"location":"images/docker-booksonic-air/#volume-mappings-v","text":"Volume Function /config Configuration files. /audiobooks Audiobooks. /podcasts Podcasts. /othermedia Other media.","title":"Volume Mappings (-v)"},{"location":"images/docker-booksonic-air/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-booksonic-air/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-booksonic-air/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-booksonic-air/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-booksonic-air/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-booksonic-air/#support-info","text":"Shell access whilst the container is running: docker exec -it booksonic-air /bin/bash To monitor the logs of the container in realtime: docker logs -f booksonic-air Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' booksonic-air Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/booksonic-air:latest","title":"Support Info"},{"location":"images/docker-booksonic-air/#versions","text":"18.04.22: - Rebase to Alpine 3.15. 15.09.20: - Initial Release.","title":"Versions"},{"location":"images/docker-booksonic/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Please migrate to https://github.com/linuxserver/docker-booksonic-air linuxserver/booksonic Booksonic is a server and an app for streaming your audiobooks to any pc or android phone. Most of the functionality is also availiable on other platforms that have apps for subsonic. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/booksonic should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Version Tags This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest Stable Booksonic releases prerelease Booksonic Pre-releases Application Setup Default user/pass is admin/admin Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: booksonic: image: lscr.io/linuxserver/booksonic container_name: booksonic environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH=url-base volumes: - :/config - :/audiobooks - :/podcasts - :/othermedia ports: - 4040:4040 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=booksonic \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH=url-base \\ -p 4040:4040 \\ -v :/config \\ -v :/audiobooks \\ -v :/podcasts \\ -v :/othermedia \\ --restart unless-stopped \\ lscr.io/linuxserver/booksonic Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4040 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH=url-base Base url for use with reverse proxies etc. Volume Mappings ( -v ) Volume Function /config Configuration files. /audiobooks Audiobooks. /podcasts Podcasts. /othermedia Other media. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it booksonic /bin/bash To monitor the logs of the container in realtime: docker logs -f booksonic Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' booksonic Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/booksonic Versions 06.05.21: - This image is now deprecated. Please migrate to https://github.com/linuxserver/docker-booksonic-air 11.08.20: - Changed upstream github repo location 22.12.19: - Revert to pulling in external war, upgrade jetty. 30.04.19: - Switching to build war from source, use stable booksonic releases. 24.03.19: - Switching to new Base images, shift to arm32v7 tag. 16.01.19: - Adding pipeline logic and multi arch. 05.01.19: - Linting fixes. 27.08.18: - Rebase to ubuntu bionic. 06.12.17: - Rebase to alpine 3.7. 11.07.17: - Rebase to alpine 3.6. 07.02.17: - Rebase to alpine 3.5. 13.12.16: - Initial Release.","title":"booksonic"},{"location":"images/docker-booksonic/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. Please migrate to https://github.com/linuxserver/docker-booksonic-air","title":"DEPRECATION NOTICE"},{"location":"images/docker-booksonic/#linuxserverbooksonic","text":"Booksonic is a server and an app for streaming your audiobooks to any pc or android phone. Most of the functionality is also availiable on other platforms that have apps for subsonic.","title":"linuxserver/booksonic"},{"location":"images/docker-booksonic/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/booksonic should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-booksonic/#version-tags","text":"This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest Stable Booksonic releases prerelease Booksonic Pre-releases","title":"Version Tags"},{"location":"images/docker-booksonic/#application-setup","text":"Default user/pass is admin/admin","title":"Application Setup"},{"location":"images/docker-booksonic/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-booksonic/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: booksonic: image: lscr.io/linuxserver/booksonic container_name: booksonic environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH=url-base volumes: - :/config - :/audiobooks - :/podcasts - :/othermedia ports: - 4040:4040 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-booksonic/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=booksonic \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH=url-base \\ -p 4040:4040 \\ -v :/config \\ -v :/audiobooks \\ -v :/podcasts \\ -v :/othermedia \\ --restart unless-stopped \\ lscr.io/linuxserver/booksonic","title":"docker cli (click here for more info)"},{"location":"images/docker-booksonic/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-booksonic/#ports-p","text":"Parameter Function 4040 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-booksonic/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH=url-base Base url for use with reverse proxies etc.","title":"Environment Variables (-e)"},{"location":"images/docker-booksonic/#volume-mappings-v","text":"Volume Function /config Configuration files. /audiobooks Audiobooks. /podcasts Podcasts. /othermedia Other media.","title":"Volume Mappings (-v)"},{"location":"images/docker-booksonic/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-booksonic/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-booksonic/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-booksonic/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-booksonic/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-booksonic/#support-info","text":"Shell access whilst the container is running: docker exec -it booksonic /bin/bash To monitor the logs of the container in realtime: docker logs -f booksonic Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' booksonic Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/booksonic","title":"Support Info"},{"location":"images/docker-booksonic/#versions","text":"06.05.21: - This image is now deprecated. Please migrate to https://github.com/linuxserver/docker-booksonic-air 11.08.20: - Changed upstream github repo location 22.12.19: - Revert to pulling in external war, upgrade jetty. 30.04.19: - Switching to build war from source, use stable booksonic releases. 24.03.19: - Switching to new Base images, shift to arm32v7 tag. 16.01.19: - Adding pipeline logic and multi arch. 05.01.19: - Linting fixes. 27.08.18: - Rebase to ubuntu bionic. 06.12.17: - Rebase to alpine 3.7. 11.07.17: - Rebase to alpine 3.6. 07.02.17: - Rebase to alpine 3.5. 13.12.16: - Initial Release.","title":"Versions"},{"location":"images/docker-bookstack/","text":"linuxserver/bookstack Bookstack is a free and open source Wiki designed for creating beautiful documentation. Featuring a simple, but powerful WYSIWYG editor it allows for teams to create detailed and useful documentation with ease. Powered by SQL and including a Markdown editor for those who prefer it, BookStack is geared towards making documentation more of a pleasure than a chore. For more information on BookStack visit their website and check it out: https://www.bookstackapp.com Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/bookstack:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The default username is admin@admin.com with the password of password , access the container at http://dockerhost:6875. This application is dependent on a MySQL database be it one you already have or a new one. If you do not already have one, set up our MariaDB container here https://hub.docker.com/r/linuxserver/mariadb/. If you intend to use this application behind a subfolder reverse proxy, such as our SWAG container or Traefik you will need to make sure that the APP_URL environment variable is set to your external domain, or it will not work Documentation for BookStack can be found at https://www.bookstackapp.com/docs/ Advanced Users (full control over the .env file) If you wish to use the extra functionality of BookStack such as email, Memcache, LDAP and so on you will need to make your own .env file with guidance from the BookStack documentation. When you create the container, do not set any arguments for any SQL settings. The container will copy an exemplary .env file to /config/www/.env on your host system for you to edit. PDF Rendering wkhtmltopdf is available to use as an alternative PDF rendering generator as described at https://www.bookstackapp.com/docs/admin/pdf-rendering/. The path to wkhtmltopdf in this image to include in your .env file is /usr/bin/wkhtmltopdf . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2\" services: bookstack: image: lscr.io/linuxserver/bookstack container_name: bookstack environment: - PUID=1000 - PGID=1000 - APP_URL= - DB_HOST=bookstack_db - DB_USER=bookstack - DB_PASS= - DB_DATABASE=bookstackapp volumes: - /path/to/data:/config ports: - 6875:80 restart: unless-stopped depends_on: - bookstack_db bookstack_db: image: lscr.io/linuxserver/mariadb container_name: bookstack_db environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD= - TZ=Europe/London - MYSQL_DATABASE=bookstackapp - MYSQL_USER=bookstack - MYSQL_PASSWORD= volumes: - /path/to/data:/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=bookstack \\ -e PUID=1000 \\ -e PGID=1000 \\ -e APP_URL= \\ -e DB_HOST= \\ -e DB_USER= \\ -e DB_PASS= \\ -e DB_DATABASE=bookstackapp \\ -p 6875:80 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/bookstack:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 will map the container's port 80 to port 6875 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation APP_URL= for specifying the IP:port or URL your application will be accessed on (ie. http://192.168.1.1:6875 or https://bookstack.mydomain.com DB_HOST= for specifying the database host DB_USER= for specifying the database user DB_PASS= for specifying the database password DB_DATABASE=bookstackapp for specifying the database to be used (non-alphanumeric passwords must be properly escaped.) Volume Mappings ( -v ) Volume Function /config this will store any uploaded data on the docker host Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it bookstack /bin/bash To monitor the logs of the container in realtime: docker logs -f bookstack Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' bookstack Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/bookstack:latest Versions 10.10.22: - Remove password escape logic which caused problems for a small subset of users. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 14.03.22: - Add symlinks for theme support. 11.07.21: - Rebase to Alpine 3.14. 12.01.21: - Remove unused requirement, as of release 0.31.0. 17.12.20: - Make APP_URL var required (upstream changes). 17.09.20: - Rebase to alpine 3.12. Fix APP_URL setting. Bump php post max and upload max filesizes to 100MB by default. 19.12.19: - Rebasing to alpine 3.11. 26.07.19: - Use old version of tidyhtml pending upstream fixes. 28.06.19: - Rebasing to alpine 3.10. 14.06.19: - Add wkhtmltopdf to image for PDF rendering. 20.04.19: - Rebase to Alpine 3.9, add MySQL init logic. 22.03.19: - Switching to new Base images, shift to arm32v7 tag. 20.01.19: - Added php7-curl 04.11.18: - Added php7-ldap 15.10.18: - Changed functionality for advanced users 08.10.18: - Advanced mode, symlink changes, sed fixing, docs updated, added some composer files 23.09.28: - Updates pre-release 02.07.18: - Initial Release.","title":"bookstack"},{"location":"images/docker-bookstack/#linuxserverbookstack","text":"Bookstack is a free and open source Wiki designed for creating beautiful documentation. Featuring a simple, but powerful WYSIWYG editor it allows for teams to create detailed and useful documentation with ease. Powered by SQL and including a Markdown editor for those who prefer it, BookStack is geared towards making documentation more of a pleasure than a chore. For more information on BookStack visit their website and check it out: https://www.bookstackapp.com","title":"linuxserver/bookstack"},{"location":"images/docker-bookstack/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/bookstack:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-bookstack/#application-setup","text":"The default username is admin@admin.com with the password of password , access the container at http://dockerhost:6875. This application is dependent on a MySQL database be it one you already have or a new one. If you do not already have one, set up our MariaDB container here https://hub.docker.com/r/linuxserver/mariadb/. If you intend to use this application behind a subfolder reverse proxy, such as our SWAG container or Traefik you will need to make sure that the APP_URL environment variable is set to your external domain, or it will not work Documentation for BookStack can be found at https://www.bookstackapp.com/docs/","title":"Application Setup"},{"location":"images/docker-bookstack/#advanced-users-full-control-over-the-env-file","text":"If you wish to use the extra functionality of BookStack such as email, Memcache, LDAP and so on you will need to make your own .env file with guidance from the BookStack documentation. When you create the container, do not set any arguments for any SQL settings. The container will copy an exemplary .env file to /config/www/.env on your host system for you to edit.","title":"Advanced Users (full control over the .env file)"},{"location":"images/docker-bookstack/#pdf-rendering","text":"wkhtmltopdf is available to use as an alternative PDF rendering generator as described at https://www.bookstackapp.com/docs/admin/pdf-rendering/. The path to wkhtmltopdf in this image to include in your .env file is /usr/bin/wkhtmltopdf .","title":"PDF Rendering"},{"location":"images/docker-bookstack/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-bookstack/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2\" services: bookstack: image: lscr.io/linuxserver/bookstack container_name: bookstack environment: - PUID=1000 - PGID=1000 - APP_URL= - DB_HOST=bookstack_db - DB_USER=bookstack - DB_PASS= - DB_DATABASE=bookstackapp volumes: - /path/to/data:/config ports: - 6875:80 restart: unless-stopped depends_on: - bookstack_db bookstack_db: image: lscr.io/linuxserver/mariadb container_name: bookstack_db environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD= - TZ=Europe/London - MYSQL_DATABASE=bookstackapp - MYSQL_USER=bookstack - MYSQL_PASSWORD= volumes: - /path/to/data:/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-bookstack/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=bookstack \\ -e PUID=1000 \\ -e PGID=1000 \\ -e APP_URL= \\ -e DB_HOST= \\ -e DB_USER= \\ -e DB_PASS= \\ -e DB_DATABASE=bookstackapp \\ -p 6875:80 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/bookstack:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-bookstack/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-bookstack/#ports-p","text":"Parameter Function 80 will map the container's port 80 to port 6875 on the host","title":"Ports (-p)"},{"location":"images/docker-bookstack/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation APP_URL= for specifying the IP:port or URL your application will be accessed on (ie. http://192.168.1.1:6875 or https://bookstack.mydomain.com DB_HOST= for specifying the database host DB_USER= for specifying the database user DB_PASS= for specifying the database password DB_DATABASE=bookstackapp for specifying the database to be used (non-alphanumeric passwords must be properly escaped.)","title":"Environment Variables (-e)"},{"location":"images/docker-bookstack/#volume-mappings-v","text":"Volume Function /config this will store any uploaded data on the docker host","title":"Volume Mappings (-v)"},{"location":"images/docker-bookstack/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-bookstack/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-bookstack/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-bookstack/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-bookstack/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-bookstack/#support-info","text":"Shell access whilst the container is running: docker exec -it bookstack /bin/bash To monitor the logs of the container in realtime: docker logs -f bookstack Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' bookstack Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/bookstack:latest","title":"Support Info"},{"location":"images/docker-bookstack/#versions","text":"10.10.22: - Remove password escape logic which caused problems for a small subset of users. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 14.03.22: - Add symlinks for theme support. 11.07.21: - Rebase to Alpine 3.14. 12.01.21: - Remove unused requirement, as of release 0.31.0. 17.12.20: - Make APP_URL var required (upstream changes). 17.09.20: - Rebase to alpine 3.12. Fix APP_URL setting. Bump php post max and upload max filesizes to 100MB by default. 19.12.19: - Rebasing to alpine 3.11. 26.07.19: - Use old version of tidyhtml pending upstream fixes. 28.06.19: - Rebasing to alpine 3.10. 14.06.19: - Add wkhtmltopdf to image for PDF rendering. 20.04.19: - Rebase to Alpine 3.9, add MySQL init logic. 22.03.19: - Switching to new Base images, shift to arm32v7 tag. 20.01.19: - Added php7-curl 04.11.18: - Added php7-ldap 15.10.18: - Changed functionality for advanced users 08.10.18: - Advanced mode, symlink changes, sed fixing, docs updated, added some composer files 23.09.28: - Updates pre-release 02.07.18: - Initial Release.","title":"Versions"},{"location":"images/docker-budge/","text":"linuxserver/budge budge is an open source 'budgeting with envelopes' personal finance app. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/budge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the web gui at http://SERVERIP:PORT Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: budge: image: lscr.io/linuxserver/budge:latest container_name: budge environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/budge/config:/config ports: - 80:80 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=budge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/budge/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/budge:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http gui 443 https gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York Volume Mappings ( -v ) Volume Function /config Persistent config files Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it budge /bin/bash To monitor the logs of the container in realtime: docker logs -f budge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' budge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/budge:latest Versions 29.11.22: - Rebase to Alpine 3.17, migrate to s6v3. 04.15.22: - Added NPM command to run db migrations. 02.05.22: - Initial Release.","title":"budge"},{"location":"images/docker-budge/#linuxserverbudge","text":"budge is an open source 'budgeting with envelopes' personal finance app.","title":"linuxserver/budge"},{"location":"images/docker-budge/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/budge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-budge/#application-setup","text":"Access the web gui at http://SERVERIP:PORT","title":"Application Setup"},{"location":"images/docker-budge/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-budge/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: budge: image: lscr.io/linuxserver/budge:latest container_name: budge environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/budge/config:/config ports: - 80:80 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-budge/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=budge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/budge/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/budge:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-budge/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-budge/#ports-p","text":"Parameter Function 80 http gui 443 https gui","title":"Ports (-p)"},{"location":"images/docker-budge/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York","title":"Environment Variables (-e)"},{"location":"images/docker-budge/#volume-mappings-v","text":"Volume Function /config Persistent config files","title":"Volume Mappings (-v)"},{"location":"images/docker-budge/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-budge/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-budge/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-budge/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-budge/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-budge/#support-info","text":"Shell access whilst the container is running: docker exec -it budge /bin/bash To monitor the logs of the container in realtime: docker logs -f budge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' budge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/budge:latest","title":"Support Info"},{"location":"images/docker-budge/#versions","text":"29.11.22: - Rebase to Alpine 3.17, migrate to s6v3. 04.15.22: - Added NPM command to run db migrations. 02.05.22: - Initial Release.","title":"Versions"},{"location":"images/docker-calibre-web/","text":"linuxserver/calibre-web Calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. It is also possible to integrate google drive and edit metadata and your calibre library through the app itself. This software is a fork of library and licensed under the GPL v3 License. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/calibre-web:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Releases of Calibre-Web nightly \u2705 Commits to the master branch of Calibre-Web Application Setup Webui can be found at http://your-ip:8083 On the initial setup screen, enter /books as your calibre library location. Default admin login: Username: admin Password: admin123 Unrar is included by default and needs to be set in the Calibre-Web admin page (Basic Configuration:External Binaries) with a path of /usr/bin/unrar 64bit only We have implemented the optional ability to pull in the dependencies to enable ebook conversion utilising Calibre, this means if you don't require this feature the container isn't uneccessarily bloated but should you require it, it is easily available. This optional layer will be rebuilt automatically on our CI pipeline upon new Calibre releases so you can stay up to date. To use this option add the optional environmental variable as shown in the docker-mods section to pull an addition docker layer to enable ebook conversion and then in the Calibre-Web admin page (Basic Configuration:External Binaries) set the Path to Calibre E-Book Converter to /usr/bin/ebook-convert This image contains the kepubify ebook conversion tool (MIT License) to convert epub to kepub. In the Calibre-Web admin page (Basic Configuration:External Binaries) set the Path to Kepubify E-Book Converter to /usr/bin/kepubify To reverse proxy with our Letsencrypt docker container we include a preconfigured reverse proxy config, for other instances of Nginx use the following location block: location /calibre-web { proxy_pass http://:8083; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; proxy_set_header X-Script-Name /calibre-web; } Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: calibre-web: image: lscr.io/linuxserver/calibre-web:latest container_name: calibre-web environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - DOCKER_MODS=linuxserver/mods:universal-calibre #optional - OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional volumes: - /path/to/data:/config - /path/to/calibre/library:/books ports: - 8083:8083 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=calibre-web \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DOCKER_MODS=linuxserver/mods:universal-calibre `#optional` \\ -e OAUTHLIB_RELAX_TOKEN_SCOPE=1 `#optional` \\ -p 8083:8083 \\ -v /path/to/data:/config \\ -v /path/to/calibre/library:/books \\ --restart unless-stopped \\ lscr.io/linuxserver/calibre-web:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8083 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. DOCKER_MODS=linuxserver/mods:universal-calibre #optional & x86-64 only Adds the ability to perform ebook conversion OAUTHLIB_RELAX_TOKEN_SCOPE=1 Optionally set this to allow Google OAUTH to work Volume Mappings ( -v ) Volume Function /config Where calibre-web stores the internal database and config. /books Where your preexisting calibre database is located. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it calibre-web /bin/bash To monitor the logs of the container in realtime: docker logs -f calibre-web Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' calibre-web Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/calibre-web:latest Versions 19.10.22: - Rebase to jammy. Upgrade to s6v3. Clean up build dependencies. 04.11.21: - Update pip arguments to ignore distro installed packages. 24.06.21: - Add note on optional OAUTHLIB_RELAX_TOKEN_SCOPE for Google OAUTH support. 17.05.21: - Add linuxserver wheel index. 10.02.21: - Add libxrandr2 25.01.21: - Add nightly tag 19.01.21: - Add python3-pkg-resources 13.01.21: - Rebase to Ubuntu Focal, see here for troubleshooting armhf. 12.10.20: - Add libxi6 12.07.20: - Add kepubify for arm64v8 05.06.20: - Add kepubify for x86-64 and arm32v7 06.05.20: - Add libxslt1.1 and update ImageMagick policy 19.01.20: - Adding LDAP libs. 13.10.19: - Migrate to Python3. 01.08.19: - Add libxcomposite1. 13.06.19: - Add docker mod to enable optional ebook conversion on x86-64. Add unrar. 02.06.19: - Rebase to Ubuntu Bionic & add Gdrive support. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 23.02.19: - Rebase to alpine 3.9, use repo version of imagemagick. 11.02.19: - Add pipeline logic and multi arch. 03.01.19: - Remove guest user from default app.db. 16.08.18: - Rebase to alpine 3.8. 03.07.18: - New build pushed, all versions below 67 have vulnerability . 05.01.18: - Deprecate cpu_core routine lack of scaling. 06.12.17: - Rebase to alpine 3.7. 27.11.17: - Use cpu core counting routine to speed up build time. 24.07.17: - Curl version for imagemagick. 17.07.17: - Initial release.","title":"calibre-web"},{"location":"images/docker-calibre-web/#linuxservercalibre-web","text":"Calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database. It is also possible to integrate google drive and edit metadata and your calibre library through the app itself. This software is a fork of library and licensed under the GPL v3 License.","title":"linuxserver/calibre-web"},{"location":"images/docker-calibre-web/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/calibre-web:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-calibre-web/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Releases of Calibre-Web nightly \u2705 Commits to the master branch of Calibre-Web","title":"Version Tags"},{"location":"images/docker-calibre-web/#application-setup","text":"Webui can be found at http://your-ip:8083 On the initial setup screen, enter /books as your calibre library location. Default admin login: Username: admin Password: admin123 Unrar is included by default and needs to be set in the Calibre-Web admin page (Basic Configuration:External Binaries) with a path of /usr/bin/unrar 64bit only We have implemented the optional ability to pull in the dependencies to enable ebook conversion utilising Calibre, this means if you don't require this feature the container isn't uneccessarily bloated but should you require it, it is easily available. This optional layer will be rebuilt automatically on our CI pipeline upon new Calibre releases so you can stay up to date. To use this option add the optional environmental variable as shown in the docker-mods section to pull an addition docker layer to enable ebook conversion and then in the Calibre-Web admin page (Basic Configuration:External Binaries) set the Path to Calibre E-Book Converter to /usr/bin/ebook-convert This image contains the kepubify ebook conversion tool (MIT License) to convert epub to kepub. In the Calibre-Web admin page (Basic Configuration:External Binaries) set the Path to Kepubify E-Book Converter to /usr/bin/kepubify To reverse proxy with our Letsencrypt docker container we include a preconfigured reverse proxy config, for other instances of Nginx use the following location block: location /calibre-web { proxy_pass http://:8083; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Scheme $scheme; proxy_set_header X-Script-Name /calibre-web; }","title":"Application Setup"},{"location":"images/docker-calibre-web/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-calibre-web/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: calibre-web: image: lscr.io/linuxserver/calibre-web:latest container_name: calibre-web environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - DOCKER_MODS=linuxserver/mods:universal-calibre #optional - OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional volumes: - /path/to/data:/config - /path/to/calibre/library:/books ports: - 8083:8083 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-calibre-web/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=calibre-web \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DOCKER_MODS=linuxserver/mods:universal-calibre `#optional` \\ -e OAUTHLIB_RELAX_TOKEN_SCOPE=1 `#optional` \\ -p 8083:8083 \\ -v /path/to/data:/config \\ -v /path/to/calibre/library:/books \\ --restart unless-stopped \\ lscr.io/linuxserver/calibre-web:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-calibre-web/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-calibre-web/#ports-p","text":"Parameter Function 8083 WebUI","title":"Ports (-p)"},{"location":"images/docker-calibre-web/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. DOCKER_MODS=linuxserver/mods:universal-calibre #optional & x86-64 only Adds the ability to perform ebook conversion OAUTHLIB_RELAX_TOKEN_SCOPE=1 Optionally set this to allow Google OAUTH to work","title":"Environment Variables (-e)"},{"location":"images/docker-calibre-web/#volume-mappings-v","text":"Volume Function /config Where calibre-web stores the internal database and config. /books Where your preexisting calibre database is located.","title":"Volume Mappings (-v)"},{"location":"images/docker-calibre-web/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-calibre-web/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-calibre-web/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-calibre-web/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-calibre-web/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-calibre-web/#support-info","text":"Shell access whilst the container is running: docker exec -it calibre-web /bin/bash To monitor the logs of the container in realtime: docker logs -f calibre-web Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' calibre-web Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/calibre-web:latest","title":"Support Info"},{"location":"images/docker-calibre-web/#versions","text":"19.10.22: - Rebase to jammy. Upgrade to s6v3. Clean up build dependencies. 04.11.21: - Update pip arguments to ignore distro installed packages. 24.06.21: - Add note on optional OAUTHLIB_RELAX_TOKEN_SCOPE for Google OAUTH support. 17.05.21: - Add linuxserver wheel index. 10.02.21: - Add libxrandr2 25.01.21: - Add nightly tag 19.01.21: - Add python3-pkg-resources 13.01.21: - Rebase to Ubuntu Focal, see here for troubleshooting armhf. 12.10.20: - Add libxi6 12.07.20: - Add kepubify for arm64v8 05.06.20: - Add kepubify for x86-64 and arm32v7 06.05.20: - Add libxslt1.1 and update ImageMagick policy 19.01.20: - Adding LDAP libs. 13.10.19: - Migrate to Python3. 01.08.19: - Add libxcomposite1. 13.06.19: - Add docker mod to enable optional ebook conversion on x86-64. Add unrar. 02.06.19: - Rebase to Ubuntu Bionic & add Gdrive support. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 23.02.19: - Rebase to alpine 3.9, use repo version of imagemagick. 11.02.19: - Add pipeline logic and multi arch. 03.01.19: - Remove guest user from default app.db. 16.08.18: - Rebase to alpine 3.8. 03.07.18: - New build pushed, all versions below 67 have vulnerability . 05.01.18: - Deprecate cpu_core routine lack of scaling. 06.12.17: - Rebase to alpine 3.7. 27.11.17: - Use cpu core counting routine to speed up build time. 24.07.17: - Curl version for imagemagick. 17.07.17: - Initial release.","title":"Versions"},{"location":"images/docker-calibre/","text":"linuxserver/calibre Calibre is a powerful and easy to use e-book manager. Users say it\u2019s outstanding and a must-have. It\u2019ll allow you to do nearly everything and it takes things a step beyond normal e-book software. It\u2019s also completely free and open source and great for both casual users and computer experts. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/calibre:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Application Setup This image sets up the calibre desktop app and makes its interface available via Guacamole server in the browser. The interface is available at http://your-ip:8080 . By default, there is no password set for the main gui. Optional environment variable PASSWORD will allow setting a password for the user abc . Port 8081 is reserved for Calibre's built-in webserver, which can be enabled within the desktop app settings, and the internal port must be set to 8081 although it will then be available at the host mapped port for external access. You can access advanced features of the Guacamole remote desktop using ctrl + alt + shift enabling you to use remote copy/paste and different languages. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: calibre: image: lscr.io/linuxserver/calibre:latest container_name: calibre security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD= #optional - CLI_ARGS= #optional volumes: - /path/to/data:/config ports: - 8080:8080 - 8081:8081 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=calibre \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD= `#optional` \\ -e CLI_ARGS= `#optional` \\ -p 8080:8080 \\ -p 8081:8081 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/calibre:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Calibre desktop gui. 8081 Calibre webserver gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. PASSWORD= Optionally set a password for the gui. CLI_ARGS= Optionally pass cli start arguments to calibre. Volume Mappings ( -v ) Volume Function /config Where calibre should store its database and library. Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it calibre /bin/bash To monitor the logs of the container in realtime: docker logs -f calibre Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' calibre Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/calibre:latest Versions 19.10.22: - Set the window title to Calibre . Remove websocat as it is now handled properly in the baseimage. 18.10.22: - Deprecate Arch branch. 07.10.22: - Start calibre window maximized. 16.09.22: - Rebase to jammy. 24.07.22: - Add arm64 build for master branch. 11.07.22: - Update dependencies for Calibre 6. 28.05.22: - Rebase to focal. 31.03.22: - Fix umask. 28.02.22: - Add speech support to bionic image. 05.01.22: - Add arch branch for arm platforms. 20.04.21: - Fix the HOME folder. 19.04.21: - Add libnss3 back in. Make sure Calibre can access environment variables. 18.04.21: - Start calibre on container start rather than gui connect. 15.04.21: - Rebase to rdesktop-web baseimage. Deprecate GUAC_USER and GUAC_PASS env vars. Existing users can set the new var PASSWORD for the user abc . 25.09.20: - Switch to python3, add various new dependencies for calibre 5.0. 10.05.19: - Add new env var CLI_ARGS to pass start arguments to calibre. 18.03.19: - Let Calibre access environment variables, add optional umask setting. 23.10.19: - Remove reccomended deps and zenity for character compatibility. 18.10.19: - Add python-xdg. 08.10.19: - Add fonts-wqy-microhei ttf-wqy-zenhei fcitx-rime dependency to resolve issue with Chinese encoding. 04.10.19: - Add libxkbcommon-x11-0 dependency to resolve issue with Calibre 4. 08.08.19: - Add zenity for international character support in dialog boxes. 12.07.19: - Download binary from calibre website instead of github. 29.04.19: - Initial release.","title":"calibre"},{"location":"images/docker-calibre/#linuxservercalibre","text":"Calibre is a powerful and easy to use e-book manager. Users say it\u2019s outstanding and a must-have. It\u2019ll allow you to do nearly everything and it takes things a step beyond normal e-book software. It\u2019s also completely free and open source and great for both casual users and computer experts.","title":"linuxserver/calibre"},{"location":"images/docker-calibre/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/calibre:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-calibre/#application-setup","text":"This image sets up the calibre desktop app and makes its interface available via Guacamole server in the browser. The interface is available at http://your-ip:8080 . By default, there is no password set for the main gui. Optional environment variable PASSWORD will allow setting a password for the user abc . Port 8081 is reserved for Calibre's built-in webserver, which can be enabled within the desktop app settings, and the internal port must be set to 8081 although it will then be available at the host mapped port for external access. You can access advanced features of the Guacamole remote desktop using ctrl + alt + shift enabling you to use remote copy/paste and different languages.","title":"Application Setup"},{"location":"images/docker-calibre/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-calibre/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: calibre: image: lscr.io/linuxserver/calibre:latest container_name: calibre security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD= #optional - CLI_ARGS= #optional volumes: - /path/to/data:/config ports: - 8080:8080 - 8081:8081 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-calibre/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=calibre \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD= `#optional` \\ -e CLI_ARGS= `#optional` \\ -p 8080:8080 \\ -p 8081:8081 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/calibre:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-calibre/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-calibre/#ports-p","text":"Parameter Function 8080 Calibre desktop gui. 8081 Calibre webserver gui.","title":"Ports (-p)"},{"location":"images/docker-calibre/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. PASSWORD= Optionally set a password for the gui. CLI_ARGS= Optionally pass cli start arguments to calibre.","title":"Environment Variables (-e)"},{"location":"images/docker-calibre/#volume-mappings-v","text":"Volume Function /config Where calibre should store its database and library.","title":"Volume Mappings (-v)"},{"location":"images/docker-calibre/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-calibre/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-calibre/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-calibre/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-calibre/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-calibre/#support-info","text":"Shell access whilst the container is running: docker exec -it calibre /bin/bash To monitor the logs of the container in realtime: docker logs -f calibre Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' calibre Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/calibre:latest","title":"Support Info"},{"location":"images/docker-calibre/#versions","text":"19.10.22: - Set the window title to Calibre . Remove websocat as it is now handled properly in the baseimage. 18.10.22: - Deprecate Arch branch. 07.10.22: - Start calibre window maximized. 16.09.22: - Rebase to jammy. 24.07.22: - Add arm64 build for master branch. 11.07.22: - Update dependencies for Calibre 6. 28.05.22: - Rebase to focal. 31.03.22: - Fix umask. 28.02.22: - Add speech support to bionic image. 05.01.22: - Add arch branch for arm platforms. 20.04.21: - Fix the HOME folder. 19.04.21: - Add libnss3 back in. Make sure Calibre can access environment variables. 18.04.21: - Start calibre on container start rather than gui connect. 15.04.21: - Rebase to rdesktop-web baseimage. Deprecate GUAC_USER and GUAC_PASS env vars. Existing users can set the new var PASSWORD for the user abc . 25.09.20: - Switch to python3, add various new dependencies for calibre 5.0. 10.05.19: - Add new env var CLI_ARGS to pass start arguments to calibre. 18.03.19: - Let Calibre access environment variables, add optional umask setting. 23.10.19: - Remove reccomended deps and zenity for character compatibility. 18.10.19: - Add python-xdg. 08.10.19: - Add fonts-wqy-microhei ttf-wqy-zenhei fcitx-rime dependency to resolve issue with Chinese encoding. 04.10.19: - Add libxkbcommon-x11-0 dependency to resolve issue with Calibre 4. 08.08.19: - Add zenity for international character support in dialog boxes. 12.07.19: - Download binary from calibre website instead of github. 29.04.19: - Initial release.","title":"Versions"},{"location":"images/docker-cardigann/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend current users switch to linuxserver/jackett. linuxserver/cardigann Cardigann a server for adding extra indexers to Sonarr, SickRage and CouchPotato via Torznab and TorrentPotato proxies. Behind the scenes Cardigann logs in and runs searches and then transforms the results into a compatible format. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/cardigann should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=cardigann \\ -e PUID=1000 \\ -e PGID=1000 \\ -e SOCKS_PROXY=IP:PORT \\ -e HTTP_PROXY=IP:PORT \\ -p 5060:5060 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/cardigann docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: cardigann: image: linuxserver/cardigann container_name: cardigann environment: - PUID=1000 - PGID=1000 - SOCKS_PROXY=IP:PORT - HTTP_PROXY=IP:PORT volumes: - :/config ports: - 5060:5060 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5060 The port for the Cardigann webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation SOCKS_PROXY=IP:PORT for using a socks proxy (optional) HTTP_PROXY=IP:PORT for using a HTTP proxy (optional) Volume Mappings ( -v ) Volume Function /config Cardigann config User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup Access the webui at :5060 , for more information check out Cardigann . By adding a variable to the run command, SOCKS_PROXY or HTTP_PROXY cardigann can be used with a proxy, eg -e SOCKS_PROXY=localhost:1080 The folder /config/definitions can be used to add additional tracker definitions (for more info see Additional definitions ). Support Info Shell access whilst the container is running: docker exec -it cardigann /bin/bash To monitor the logs of the container in realtime: docker logs -f cardigann Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' cardigann Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/cardigann Versions 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.02.19: - Multi arch images and pipeline build logic 14.01.19: - Add multi arch and pipeline logic 22.08.18: - Rebase to alpine 3.8 06.05.18: - Use buildstage in Dockerfile 06.12.17: - Rebase to alpine 3.7 12.08.17: - Add npm install to build stage 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5 03.11.16: - Compiled using sstamoulis' method 01.11.16: - Initial Release","title":"cardigann"},{"location":"images/docker-cardigann/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend current users switch to linuxserver/jackett.","title":"DEPRECATION NOTICE"},{"location":"images/docker-cardigann/#linuxservercardigann","text":"Cardigann a server for adding extra indexers to Sonarr, SickRage and CouchPotato via Torznab and TorrentPotato proxies. Behind the scenes Cardigann logs in and runs searches and then transforms the results into a compatible format.","title":"linuxserver/cardigann"},{"location":"images/docker-cardigann/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/cardigann should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-cardigann/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-cardigann/#docker","text":"docker create \\ --name=cardigann \\ -e PUID=1000 \\ -e PGID=1000 \\ -e SOCKS_PROXY=IP:PORT \\ -e HTTP_PROXY=IP:PORT \\ -p 5060:5060 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/cardigann","title":"docker"},{"location":"images/docker-cardigann/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: cardigann: image: linuxserver/cardigann container_name: cardigann environment: - PUID=1000 - PGID=1000 - SOCKS_PROXY=IP:PORT - HTTP_PROXY=IP:PORT volumes: - :/config ports: - 5060:5060 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-cardigann/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-cardigann/#ports-p","text":"Parameter Function 5060 The port for the Cardigann webinterface","title":"Ports (-p)"},{"location":"images/docker-cardigann/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation SOCKS_PROXY=IP:PORT for using a socks proxy (optional) HTTP_PROXY=IP:PORT for using a HTTP proxy (optional)","title":"Environment Variables (-e)"},{"location":"images/docker-cardigann/#volume-mappings-v","text":"Volume Function /config Cardigann config","title":"Volume Mappings (-v)"},{"location":"images/docker-cardigann/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-cardigann/#application-setup","text":"Access the webui at :5060 , for more information check out Cardigann . By adding a variable to the run command, SOCKS_PROXY or HTTP_PROXY cardigann can be used with a proxy, eg -e SOCKS_PROXY=localhost:1080 The folder /config/definitions can be used to add additional tracker definitions (for more info see Additional definitions ).","title":"Application Setup"},{"location":"images/docker-cardigann/#support-info","text":"Shell access whilst the container is running: docker exec -it cardigann /bin/bash To monitor the logs of the container in realtime: docker logs -f cardigann Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' cardigann Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/cardigann","title":"Support Info"},{"location":"images/docker-cardigann/#versions","text":"23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.02.19: - Multi arch images and pipeline build logic 14.01.19: - Add multi arch and pipeline logic 22.08.18: - Rebase to alpine 3.8 06.05.18: - Use buildstage in Dockerfile 06.12.17: - Rebase to alpine 3.7 12.08.17: - Add npm install to build stage 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5 03.11.16: - Compiled using sstamoulis' method 01.11.16: - Initial Release","title":"Versions"},{"location":"images/docker-changedetection.io/","text":"linuxserver/changedetection.io Changedetection.io provides free, open-source web page monitoring, notification and change detection. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/changedetection.io:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Webui is accessible at http://SERVERIP:PORT Please note that this image does not contain the Playwright content fetcher due to a lack of support for muslc-based systems. If you require this feature please use Selenium or the official container For more info read the wiki . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: changedetection: image: lscr.io/linuxserver/changedetection.io:latest container_name: changedetection environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - BASE_URL= #optional volumes: - /path/to/appdata/config:/config ports: - 5000:5000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=changedetection.io \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e BASE_URL= `#optional` \\ -p 5000:5000 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/changedetection.io:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5000 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London BASE_URL= Specify the full URL (including protocol) when running behind a reverse proxy Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it changedetection.io /bin/bash To monitor the logs of the container in realtime: docker logs -f changedetection.io Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' changedetection.io Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/changedetection.io:latest Versions 23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 09.10.22: - Add make as build dep to fix pip jq build on armhf. 07.08.22: - Initial release.","title":"changedetection.io"},{"location":"images/docker-changedetection.io/#linuxserverchangedetectionio","text":"Changedetection.io provides free, open-source web page monitoring, notification and change detection.","title":"linuxserver/changedetection.io"},{"location":"images/docker-changedetection.io/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/changedetection.io:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-changedetection.io/#application-setup","text":"Webui is accessible at http://SERVERIP:PORT Please note that this image does not contain the Playwright content fetcher due to a lack of support for muslc-based systems. If you require this feature please use Selenium or the official container For more info read the wiki .","title":"Application Setup"},{"location":"images/docker-changedetection.io/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-changedetection.io/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: changedetection: image: lscr.io/linuxserver/changedetection.io:latest container_name: changedetection environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - BASE_URL= #optional volumes: - /path/to/appdata/config:/config ports: - 5000:5000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-changedetection.io/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=changedetection.io \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e BASE_URL= `#optional` \\ -p 5000:5000 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/changedetection.io:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-changedetection.io/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-changedetection.io/#ports-p","text":"Parameter Function 5000 WebUI","title":"Ports (-p)"},{"location":"images/docker-changedetection.io/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London BASE_URL= Specify the full URL (including protocol) when running behind a reverse proxy","title":"Environment Variables (-e)"},{"location":"images/docker-changedetection.io/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-changedetection.io/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-changedetection.io/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-changedetection.io/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-changedetection.io/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-changedetection.io/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-changedetection.io/#support-info","text":"Shell access whilst the container is running: docker exec -it changedetection.io /bin/bash To monitor the logs of the container in realtime: docker logs -f changedetection.io Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' changedetection.io Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/changedetection.io:latest","title":"Support Info"},{"location":"images/docker-changedetection.io/#versions","text":"23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 09.10.22: - Add make as build dep to fix pip jq build on armhf. 07.08.22: - Initial release.","title":"Versions"},{"location":"images/docker-chevereto/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend alternative images such as: https://github.com/linuxserver/docker-pixapop/ https://github.com/linuxserver/docker-piwigo/ https://github.com/linuxserver/docker-photoshow/ linuxserver/chevereto Chevereto is an image hosting software that allows you to create a beautiful and full-featured image hosting website on your own server. It's your hosting and your rules, so say goodbye to closures and restrictions. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/chevereto:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Chevereto-Free now has a maintainer! ~~Chevereto-Free will be EOL on 2021-12-31 and no new releases will be produced for it. Our container will continue to be updated until at least that date but we cannot make any assurances beyond it.~~ Access the WebUI at :443. For more information, check out Chevereto Free . Chevereto requires a MariaDB database, we have an image available here if you require it. If you are putting Chevereto behind a reverse proxy and need the Real IP to be passed through, edit /config/nginx/site-confs/default, and set set_real_ip_from to match the IP address/address block of your proxy server(s). Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2\" services: chevereto: image: lscr.io/linuxserver/chevereto container_name: chevereto environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data ports: - 80:80 - 443:443 restart: unless-stopped depends_on: - chevereto-db chevereto-db: image: lscr.io/linuxserver/mariadb container_name: chevereto-db environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MYSQL_ROOT_PASSWORD= - MYSQL_DATABASE=chevereto - MYSQL_USER=chevereto - MYSQL_PASSWORD= volumes: - /path/to/config:/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=chevereto \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ= \\ -p 80:80 \\ -p 443:443 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/chevereto:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http gui 443 https gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ= Timezone (i.e., America/New_York) Volume Mappings ( -v ) Volume Function /config config directory volume mapping /data data directory volume mapping Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it chevereto /bin/bash To monitor the logs of the container in realtime: docker logs -f chevereto Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' chevereto Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/chevereto:latest Versions 13.06.22: - Deprecate. 13.11.21: - Add composer to fix missing dependencies. 21.10.21: - Removed deprecation warning, change reposiory links. 22.07.21: - Rebase to Alpine 3.14. 28.08.20: - Initial Release.","title":"chevereto"},{"location":"images/docker-chevereto/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend alternative images such as: https://github.com/linuxserver/docker-pixapop/ https://github.com/linuxserver/docker-piwigo/ https://github.com/linuxserver/docker-photoshow/","title":"DEPRECATION NOTICE"},{"location":"images/docker-chevereto/#linuxserverchevereto","text":"Chevereto is an image hosting software that allows you to create a beautiful and full-featured image hosting website on your own server. It's your hosting and your rules, so say goodbye to closures and restrictions.","title":"linuxserver/chevereto"},{"location":"images/docker-chevereto/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/chevereto:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-chevereto/#application-setup","text":"Chevereto-Free now has a maintainer! ~~Chevereto-Free will be EOL on 2021-12-31 and no new releases will be produced for it. Our container will continue to be updated until at least that date but we cannot make any assurances beyond it.~~ Access the WebUI at :443. For more information, check out Chevereto Free . Chevereto requires a MariaDB database, we have an image available here if you require it. If you are putting Chevereto behind a reverse proxy and need the Real IP to be passed through, edit /config/nginx/site-confs/default, and set set_real_ip_from to match the IP address/address block of your proxy server(s).","title":"Application Setup"},{"location":"images/docker-chevereto/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-chevereto/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2\" services: chevereto: image: lscr.io/linuxserver/chevereto container_name: chevereto environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data ports: - 80:80 - 443:443 restart: unless-stopped depends_on: - chevereto-db chevereto-db: image: lscr.io/linuxserver/mariadb container_name: chevereto-db environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MYSQL_ROOT_PASSWORD= - MYSQL_DATABASE=chevereto - MYSQL_USER=chevereto - MYSQL_PASSWORD= volumes: - /path/to/config:/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-chevereto/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=chevereto \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ= \\ -p 80:80 \\ -p 443:443 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/chevereto:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-chevereto/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-chevereto/#ports-p","text":"Parameter Function 80 http gui 443 https gui","title":"Ports (-p)"},{"location":"images/docker-chevereto/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ= Timezone (i.e., America/New_York)","title":"Environment Variables (-e)"},{"location":"images/docker-chevereto/#volume-mappings-v","text":"Volume Function /config config directory volume mapping /data data directory volume mapping","title":"Volume Mappings (-v)"},{"location":"images/docker-chevereto/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-chevereto/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-chevereto/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-chevereto/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-chevereto/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-chevereto/#support-info","text":"Shell access whilst the container is running: docker exec -it chevereto /bin/bash To monitor the logs of the container in realtime: docker logs -f chevereto Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' chevereto Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/chevereto:latest","title":"Support Info"},{"location":"images/docker-chevereto/#versions","text":"13.06.22: - Deprecate. 13.11.21: - Add composer to fix missing dependencies. 21.10.21: - Removed deprecation warning, change reposiory links. 22.07.21: - Rebase to Alpine 3.14. 28.08.20: - Initial Release.","title":"Versions"},{"location":"images/docker-ci/","text":"Contact information:- Type Address/Details Discord Discord Forum Linuserver.io forum IRC freenode at #linuxserver.io more information at:- IRC Podcast Covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation! Linuxserver.io Podcast linuxserver/ci This container is not meant for public consumption as it is hard coded to LinuxServer endpoints for storage of resulting reports The purpose of this container is to accept environment variables from our build system linuxserver/pipeline-triggers to perform basic continuous integration on the software being built. Usage The container can be run locally, but it is meant to be integrated into the LinuxServer build process: sudo docker run --rm -i \\ -v /var/run/docker.sock:/var/run/docker.sock \\ -e IMAGE=\"linuxserver/\" \\ -e TAGS=\"\" \\ -e META_TAG= \\ -e BASE= \\ -e SECRET_KEY= \\ -e ACCESS_KEY= \\ -e DOCKER_ENV=\"\" \\ -e WEB_AUTH=\"\" \\ -e WEB_PATH=\". Defaults to ''.\" \\ -e S3_REGION= \\ -e S3_BUCKET= \\ -e WEB_SCREENSHOT_DELAY= -e WEB_SCREENSHOT= \\ -e DELAY_START= \\ -e PORT= \\ -e SSL= \\ -e CI_S6_VERBOSITY= -t lsiodev/ci:latest \\ python3 test_build.py The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"ci"},{"location":"images/docker-ci/#contact-information-","text":"Type Address/Details Discord Discord Forum Linuserver.io forum IRC freenode at #linuxserver.io more information at:- IRC Podcast Covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation! Linuxserver.io Podcast","title":"Contact information:-"},{"location":"images/docker-ci/#linuxserverci","text":"This container is not meant for public consumption as it is hard coded to LinuxServer endpoints for storage of resulting reports The purpose of this container is to accept environment variables from our build system linuxserver/pipeline-triggers to perform basic continuous integration on the software being built.","title":"linuxserver/ci"},{"location":"images/docker-ci/#usage","text":"The container can be run locally, but it is meant to be integrated into the LinuxServer build process: sudo docker run --rm -i \\ -v /var/run/docker.sock:/var/run/docker.sock \\ -e IMAGE=\"linuxserver/\" \\ -e TAGS=\"\" \\ -e META_TAG= \\ -e BASE= \\ -e SECRET_KEY= \\ -e ACCESS_KEY= \\ -e DOCKER_ENV=\"\" \\ -e WEB_AUTH=\"\" \\ -e WEB_PATH=\". Defaults to ''.\" \\ -e S3_REGION= \\ -e S3_BUCKET= \\ -e WEB_SCREENSHOT_DELAY= -e WEB_SCREENSHOT= \\ -e DELAY_START= \\ -e PORT= \\ -e SSL= \\ -e CI_S6_VERBOSITY= -t lsiodev/ci:latest \\ python3 test_build.py The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Usage"},{"location":"images/docker-clarkson/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend looking at Hammond as a replacement: https://github.com/akhilrex/hammond linuxserver/clarkson Clarkson is a web-based dashboard application that gives you a neat and clean interface for logging your fuel fill-ups for all of your vehicles. The application has full multi-user support, as well as multiple vehicles per user. Whenever you fill-up your car or motorcycle, keep the receipt and record the data in Clarkson. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/clarkson should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Application Setup Clarkson requires v5.7.* of MySQL and please ensure MySQL is running before starting this container . It is preferred if you create the clarkson schema before initially running the container, then creating a user with granted permissions for the schema. Creating the schema before running the app is important as the \"clarkson\" user will not have permission to create the schema on your behalf. You can, of course, use the \"root\" user, which has the ability to create schemas automatically, but this is not recommended. CREATE SCHEMA `clarkson`; CREATE USER 'clarkson_user' IDENTIFIED BY 'supersecretpassword'; GRANT ALL ON `clarkson`.* TO 'clarkson_user'; Once running, the container will run an initial MySQL migration, which populates the schema with all tables and procedures. The application will start immediately afterwards. You will need to register an initial user, of which will be the admin of the application. All subsequent users will be standard users. You can disable registrations after the fact by recreating the container with the ENABLE_REGISTRATIONS flag set to false . This will not hide the \"Register\" link, but will disable the functionality. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: clarkson: image: lscr.io/linuxserver/clarkson container_name: clarkson environment: - PUID=1000 - PGID=1000 - MYSQL_HOST= - MYSQL_USERNAME= - MYSQL_PASSWORD= - ENABLE_REGISTRATIONS= - TZ=Europe/London ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=clarkson \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_HOST= \\ -e MYSQL_USERNAME= \\ -e MYSQL_PASSWORD= \\ -e ENABLE_REGISTRATIONS= \\ -e TZ=Europe/London \\ -p 3000:3000 \\ --restart unless-stopped \\ lscr.io/linuxserver/clarkson Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation MYSQL_HOST= Points the backend to the MySQL database. This can be either a docker hostname or an IP. MYSQL_USERNAME= The user with access to the clarkson schema. MYSQL_PASSWORD= The password for the user. ENABLE_REGISTRATIONS= Defaults to false . If set to true , allows new users to register. TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it clarkson /bin/bash To monitor the logs of the container in realtime: docker logs -f clarkson Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' clarkson Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/clarkson Versions 19.01.22: - Deprecate. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 23.03.19: - Updating runtime dependancies for the JRE. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 22.08.18: - Rebase to alpine linux 3.8. 19.02.18: - Initial Release.","title":"clarkson"},{"location":"images/docker-clarkson/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend looking at Hammond as a replacement: https://github.com/akhilrex/hammond","title":"DEPRECATION NOTICE"},{"location":"images/docker-clarkson/#linuxserverclarkson","text":"Clarkson is a web-based dashboard application that gives you a neat and clean interface for logging your fuel fill-ups for all of your vehicles. The application has full multi-user support, as well as multiple vehicles per user. Whenever you fill-up your car or motorcycle, keep the receipt and record the data in Clarkson.","title":"linuxserver/clarkson"},{"location":"images/docker-clarkson/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/clarkson should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-clarkson/#application-setup","text":"Clarkson requires v5.7.* of MySQL and please ensure MySQL is running before starting this container . It is preferred if you create the clarkson schema before initially running the container, then creating a user with granted permissions for the schema. Creating the schema before running the app is important as the \"clarkson\" user will not have permission to create the schema on your behalf. You can, of course, use the \"root\" user, which has the ability to create schemas automatically, but this is not recommended. CREATE SCHEMA `clarkson`; CREATE USER 'clarkson_user' IDENTIFIED BY 'supersecretpassword'; GRANT ALL ON `clarkson`.* TO 'clarkson_user'; Once running, the container will run an initial MySQL migration, which populates the schema with all tables and procedures. The application will start immediately afterwards. You will need to register an initial user, of which will be the admin of the application. All subsequent users will be standard users. You can disable registrations after the fact by recreating the container with the ENABLE_REGISTRATIONS flag set to false . This will not hide the \"Register\" link, but will disable the functionality.","title":"Application Setup"},{"location":"images/docker-clarkson/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-clarkson/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: clarkson: image: lscr.io/linuxserver/clarkson container_name: clarkson environment: - PUID=1000 - PGID=1000 - MYSQL_HOST= - MYSQL_USERNAME= - MYSQL_PASSWORD= - ENABLE_REGISTRATIONS= - TZ=Europe/London ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-clarkson/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=clarkson \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_HOST= \\ -e MYSQL_USERNAME= \\ -e MYSQL_PASSWORD= \\ -e ENABLE_REGISTRATIONS= \\ -e TZ=Europe/London \\ -p 3000:3000 \\ --restart unless-stopped \\ lscr.io/linuxserver/clarkson","title":"docker cli (click here for more info)"},{"location":"images/docker-clarkson/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-clarkson/#ports-p","text":"Parameter Function 3000 WebUI","title":"Ports (-p)"},{"location":"images/docker-clarkson/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation MYSQL_HOST= Points the backend to the MySQL database. This can be either a docker hostname or an IP. MYSQL_USERNAME= The user with access to the clarkson schema. MYSQL_PASSWORD= The password for the user. ENABLE_REGISTRATIONS= Defaults to false . If set to true , allows new users to register. TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-clarkson/#volume-mappings-v","text":"Volume Function","title":"Volume Mappings (-v)"},{"location":"images/docker-clarkson/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-clarkson/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-clarkson/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-clarkson/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-clarkson/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-clarkson/#support-info","text":"Shell access whilst the container is running: docker exec -it clarkson /bin/bash To monitor the logs of the container in realtime: docker logs -f clarkson Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' clarkson Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/clarkson","title":"Support Info"},{"location":"images/docker-clarkson/#versions","text":"19.01.22: - Deprecate. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 23.03.19: - Updating runtime dependancies for the JRE. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 22.08.18: - Rebase to alpine linux 3.8. 19.02.18: - Initial Release.","title":"Versions"},{"location":"images/docker-cloud9/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend looking at our code-server and openvscode-server containers as potential replacements. https://github.com/linuxserver/docker-code-server https://github.com/linuxserver/docker-openvscode-server linuxserver/cloud9 Cloud9 Cloud9 is a complete web based IDE with terminal access. This container is for running their core SDK locally and developing plugins. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/cloud9:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Docker and Compose environment pre-installed go \u2705 Basic Golang environment pre-installed nodejs \u2705 Current stable NodeJS/NPM environment pre-installed python \u2705 Current Python3 environment pre-installed ruby \u2705 Current Ruby environment pre-installed Application Setup Access the webui at http://your-ip:8000, for more information check out here . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: cloud9: image: lscr.io/linuxserver/cloud9:latest container_name: cloud9 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - GITURL=https://github.com/linuxserver/docker-cloud9.git #optional - USERNAME= #optional - PASSWORD= #optional volumes: - /path/to/your/code:/code #optional - /var/run/docker.sock:/var/run/docker.sock #optional ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=cloud9 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e GITURL=https://github.com/linuxserver/docker-cloud9.git `#optional` \\ -e USERNAME= `#optional` \\ -e PASSWORD= `#optional` \\ -p 8000:8000 \\ -v /path/to/your/code:/code `#optional` \\ -v /var/run/docker.sock:/var/run/docker.sock `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/cloud9:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 The port for the Cloud9 web interface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London GITURL=https://github.com/linuxserver/docker-cloud9.git Specify a git repo to checkout on first startup USERNAME= Optionally specify a username for http auth PASSWORD= Optionally specify a password for http auth (if USERNAME and PASSWORD are not set, there will be no http auth) Volume Mappings ( -v ) Volume Function /code Optionally if you want to mount up a local folder of code instead of checking out /var/run/docker.sock Needed if you plan to use Docker or compose commands Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it cloud9 /bin/bash To monitor the logs of the container in realtime: docker logs -f cloud9 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' cloud9 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/cloud9:latest Versions 23.06.22: - Deprecate image. 24.06.21: - Use prebuilt compose binaries for the linuxserver repo. 07.02.20: - Add optional http auth. 02.06.19: - Initial Release.","title":"cloud9"},{"location":"images/docker-cloud9/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend looking at our code-server and openvscode-server containers as potential replacements. https://github.com/linuxserver/docker-code-server https://github.com/linuxserver/docker-openvscode-server","title":"DEPRECATION NOTICE"},{"location":"images/docker-cloud9/#linuxservercloud9","text":"Cloud9 Cloud9 is a complete web based IDE with terminal access. This container is for running their core SDK locally and developing plugins.","title":"linuxserver/cloud9"},{"location":"images/docker-cloud9/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/cloud9:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-cloud9/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Docker and Compose environment pre-installed go \u2705 Basic Golang environment pre-installed nodejs \u2705 Current stable NodeJS/NPM environment pre-installed python \u2705 Current Python3 environment pre-installed ruby \u2705 Current Ruby environment pre-installed","title":"Version Tags"},{"location":"images/docker-cloud9/#application-setup","text":"Access the webui at http://your-ip:8000, for more information check out here .","title":"Application Setup"},{"location":"images/docker-cloud9/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-cloud9/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: cloud9: image: lscr.io/linuxserver/cloud9:latest container_name: cloud9 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - GITURL=https://github.com/linuxserver/docker-cloud9.git #optional - USERNAME= #optional - PASSWORD= #optional volumes: - /path/to/your/code:/code #optional - /var/run/docker.sock:/var/run/docker.sock #optional ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-cloud9/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=cloud9 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e GITURL=https://github.com/linuxserver/docker-cloud9.git `#optional` \\ -e USERNAME= `#optional` \\ -e PASSWORD= `#optional` \\ -p 8000:8000 \\ -v /path/to/your/code:/code `#optional` \\ -v /var/run/docker.sock:/var/run/docker.sock `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/cloud9:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-cloud9/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-cloud9/#ports-p","text":"Parameter Function 8000 The port for the Cloud9 web interface","title":"Ports (-p)"},{"location":"images/docker-cloud9/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London GITURL=https://github.com/linuxserver/docker-cloud9.git Specify a git repo to checkout on first startup USERNAME= Optionally specify a username for http auth PASSWORD= Optionally specify a password for http auth (if USERNAME and PASSWORD are not set, there will be no http auth)","title":"Environment Variables (-e)"},{"location":"images/docker-cloud9/#volume-mappings-v","text":"Volume Function /code Optionally if you want to mount up a local folder of code instead of checking out /var/run/docker.sock Needed if you plan to use Docker or compose commands","title":"Volume Mappings (-v)"},{"location":"images/docker-cloud9/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-cloud9/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-cloud9/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-cloud9/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-cloud9/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-cloud9/#support-info","text":"Shell access whilst the container is running: docker exec -it cloud9 /bin/bash To monitor the logs of the container in realtime: docker logs -f cloud9 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' cloud9 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/cloud9:latest","title":"Support Info"},{"location":"images/docker-cloud9/#versions","text":"23.06.22: - Deprecate image. 24.06.21: - Use prebuilt compose binaries for the linuxserver repo. 07.02.20: - Add optional http auth. 02.06.19: - Initial Release.","title":"Versions"},{"location":"images/docker-code-server/","text":"linuxserver/code-server Code-server is VS Code running on a remote server, accessible through the browser. - Code on your Chromebook, tablet, and laptop with a consistent dev environment. - If you have a Windows or Mac workstation, more easily develop for Linux. - Take advantage of large cloud servers to speed up tests, compilations, downloads, and more. - Preserve battery life when you're on the go. - All intensive computation runs on your server. - You're no longer running excess instances of Chrome. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/code-server:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at http://:8443 . For github integration, drop your ssh key in to /config/.ssh . Then open a terminal from the top menu and set your github username and email via the following commands git config --global user.name \"username\" git config --global user.email \"email address\" Hashed code-server password How to create the hashed password . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: code-server: image: lscr.io/linuxserver/code-server:latest container_name: code-server environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD=password #optional - HASHED_PASSWORD= #optional - SUDO_PASSWORD=password #optional - SUDO_PASSWORD_HASH= #optional - PROXY_DOMAIN=code-server.my.domain #optional - DEFAULT_WORKSPACE=/config/workspace #optional volumes: - /path/to/appdata/config:/config ports: - 8443:8443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=code-server \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD=password `#optional` \\ -e HASHED_PASSWORD= `#optional` \\ -e SUDO_PASSWORD=password `#optional` \\ -e SUDO_PASSWORD_HASH= `#optional` \\ -e PROXY_DOMAIN=code-server.my.domain `#optional` \\ -e DEFAULT_WORKSPACE=/config/workspace `#optional` \\ -p 8443:8443 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/code-server:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8443 web gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PASSWORD=password Optional web gui password, if PASSWORD or HASHED_PASSWORD is not provided, there will be no auth. HASHED_PASSWORD= Optional web gui password, overrides PASSWORD , instructions on how to create it is below. SUDO_PASSWORD=password If this optional variable is set, user will have sudo access in the code-server terminal with the specified password. SUDO_PASSWORD_HASH= Optionally set sudo password via hash (takes priority over SUDO_PASSWORD var). Format is $type$salt$hashed . PROXY_DOMAIN=code-server.my.domain If this optional variable is set, this domain will be proxied for subdomain proxying. See Documentation DEFAULT_WORKSPACE=/config/workspace If this optional variable is set, code-server will open this directory by default Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it code-server /bin/bash To monitor the logs of the container in realtime: docker logs -f code-server Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' code-server Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/code-server:latest Versions 05.10.22: - Install recommended deps to maintain parity with the older images. 29.09.22: - Rebase to jammy, switch to s6v3. Fix chown logic to skip /config/workspace contents. 20.02.22: - Install using the official tarballs. 29.12.21: - Add install-extension as a helper for mods to install extensions. 06.12.21: - Add DEFAULT_WORKSPACE env var. 29.11.21: - Rebase to Ubuntu focal. 16.09.21: - Fix slow chown on large workspace (contents of workspace folder no longer chowned). 11.07.21: - Bump node to 14 to fix builds 08.05.21: - Fix doc link 04.02.20: - Allow setting gui password via hash using env var HASHED_PASSWORD . 23.12.20: - Allow setting sudo password via hash using env var SUDO_PASSWORD_HASH . 29.05.20: - Add --domain-proxy support. 21.05.20: - Shrink images, install via yarn, fix arm32v7 build. 18.05.20: - Switch to multi-arch images, install via npm. 29.04.20: - Update start arguments. 01.04.20: - Structural changes required for v3. 17.01.20: - Fix artifact url retrieval from github. 24.10.19: - Upgrade to v2 builds. 28.09.19: - Update project logo. 21.09.19: - Add development builds/tag. 09.07.19: - Add optional sudo access. 01.07.19: - Add nano. 24.06.19: - Initial Release.","title":"code-server"},{"location":"images/docker-code-server/#linuxservercode-server","text":"Code-server is VS Code running on a remote server, accessible through the browser. - Code on your Chromebook, tablet, and laptop with a consistent dev environment. - If you have a Windows or Mac workstation, more easily develop for Linux. - Take advantage of large cloud servers to speed up tests, compilations, downloads, and more. - Preserve battery life when you're on the go. - All intensive computation runs on your server. - You're no longer running excess instances of Chrome.","title":"linuxserver/code-server"},{"location":"images/docker-code-server/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/code-server:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-code-server/#application-setup","text":"Access the webui at http://:8443 . For github integration, drop your ssh key in to /config/.ssh . Then open a terminal from the top menu and set your github username and email via the following commands git config --global user.name \"username\" git config --global user.email \"email address\"","title":"Application Setup"},{"location":"images/docker-code-server/#hashed-code-server-password","text":"How to create the hashed password .","title":"Hashed code-server password"},{"location":"images/docker-code-server/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-code-server/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: code-server: image: lscr.io/linuxserver/code-server:latest container_name: code-server environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD=password #optional - HASHED_PASSWORD= #optional - SUDO_PASSWORD=password #optional - SUDO_PASSWORD_HASH= #optional - PROXY_DOMAIN=code-server.my.domain #optional - DEFAULT_WORKSPACE=/config/workspace #optional volumes: - /path/to/appdata/config:/config ports: - 8443:8443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-code-server/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=code-server \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD=password `#optional` \\ -e HASHED_PASSWORD= `#optional` \\ -e SUDO_PASSWORD=password `#optional` \\ -e SUDO_PASSWORD_HASH= `#optional` \\ -e PROXY_DOMAIN=code-server.my.domain `#optional` \\ -e DEFAULT_WORKSPACE=/config/workspace `#optional` \\ -p 8443:8443 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/code-server:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-code-server/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-code-server/#ports-p","text":"Parameter Function 8443 web gui","title":"Ports (-p)"},{"location":"images/docker-code-server/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PASSWORD=password Optional web gui password, if PASSWORD or HASHED_PASSWORD is not provided, there will be no auth. HASHED_PASSWORD= Optional web gui password, overrides PASSWORD , instructions on how to create it is below. SUDO_PASSWORD=password If this optional variable is set, user will have sudo access in the code-server terminal with the specified password. SUDO_PASSWORD_HASH= Optionally set sudo password via hash (takes priority over SUDO_PASSWORD var). Format is $type$salt$hashed . PROXY_DOMAIN=code-server.my.domain If this optional variable is set, this domain will be proxied for subdomain proxying. See Documentation DEFAULT_WORKSPACE=/config/workspace If this optional variable is set, code-server will open this directory by default","title":"Environment Variables (-e)"},{"location":"images/docker-code-server/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-code-server/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-code-server/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-code-server/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-code-server/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-code-server/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-code-server/#support-info","text":"Shell access whilst the container is running: docker exec -it code-server /bin/bash To monitor the logs of the container in realtime: docker logs -f code-server Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' code-server Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/code-server:latest","title":"Support Info"},{"location":"images/docker-code-server/#versions","text":"05.10.22: - Install recommended deps to maintain parity with the older images. 29.09.22: - Rebase to jammy, switch to s6v3. Fix chown logic to skip /config/workspace contents. 20.02.22: - Install using the official tarballs. 29.12.21: - Add install-extension as a helper for mods to install extensions. 06.12.21: - Add DEFAULT_WORKSPACE env var. 29.11.21: - Rebase to Ubuntu focal. 16.09.21: - Fix slow chown on large workspace (contents of workspace folder no longer chowned). 11.07.21: - Bump node to 14 to fix builds 08.05.21: - Fix doc link 04.02.20: - Allow setting gui password via hash using env var HASHED_PASSWORD . 23.12.20: - Allow setting sudo password via hash using env var SUDO_PASSWORD_HASH . 29.05.20: - Add --domain-proxy support. 21.05.20: - Shrink images, install via yarn, fix arm32v7 build. 18.05.20: - Switch to multi-arch images, install via npm. 29.04.20: - Update start arguments. 01.04.20: - Structural changes required for v3. 17.01.20: - Fix artifact url retrieval from github. 24.10.19: - Upgrade to v2 builds. 28.09.19: - Update project logo. 21.09.19: - Add development builds/tag. 09.07.19: - Add optional sudo access. 01.07.19: - Add nano. 24.06.19: - Initial Release.","title":"Versions"},{"location":"images/docker-codiad/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. PLEASE MIGRATE TO CLOUD9 IF POSSIBLE linuxserver/cloud9 linuxserver/codiad Codiad is a web-based IDE framework with a small footprint and minimal requirements. We have added a few plugins. More can be added in the marketplace in the WebUI. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/codiad should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=codiad \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/codiad docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: codiad: image: linuxserver/codiad container_name: codiad environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where Codiad stores data. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Support Info Shell access whilst the container is running: docker exec -it codiad /bin/bash To monitor the logs of the container in realtime: docker logs -f codiad Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' codiad Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/codiad Versions 10.06.19: - Deprecate Image. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9, adding ssh client. 16.01.19: - Add pipeline logic and multi arch. 26.09.18: - Add sed to init file to configure projects folder correctly. 04.09.18: - Rebase to alpine linux 3.8. 09.01.18: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 18.02.17: - Rebase to alpine linux 3.5. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 06.11.15: - Initial Release.","title":"codiad"},{"location":"images/docker-codiad/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. PLEASE MIGRATE TO CLOUD9 IF POSSIBLE linuxserver/cloud9","title":"DEPRECATION NOTICE"},{"location":"images/docker-codiad/#linuxservercodiad","text":"Codiad is a web-based IDE framework with a small footprint and minimal requirements. We have added a few plugins. More can be added in the marketplace in the WebUI.","title":"linuxserver/codiad"},{"location":"images/docker-codiad/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/codiad should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-codiad/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-codiad/#docker","text":"docker create \\ --name=codiad \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/codiad","title":"docker"},{"location":"images/docker-codiad/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: codiad: image: linuxserver/codiad container_name: codiad environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-codiad/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-codiad/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-codiad/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-codiad/#volume-mappings-v","text":"Volume Function /config Where Codiad stores data.","title":"Volume Mappings (-v)"},{"location":"images/docker-codiad/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-codiad/#support-info","text":"Shell access whilst the container is running: docker exec -it codiad /bin/bash To monitor the logs of the container in realtime: docker logs -f codiad Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' codiad Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/codiad","title":"Support Info"},{"location":"images/docker-codiad/#versions","text":"10.06.19: - Deprecate Image. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9, adding ssh client. 16.01.19: - Add pipeline logic and multi arch. 26.09.18: - Add sed to init file to configure projects folder correctly. 04.09.18: - Rebase to alpine linux 3.8. 09.01.18: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 18.02.17: - Rebase to alpine linux 3.5. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 06.11.15: - Initial Release.","title":"Versions"},{"location":"images/docker-codimd/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/codimd Codimd gives you access to all your files wherever you are. CodiMD is a real-time, multi-platform collaborative markdown note editor. This means that you can write notes with other people on your desktop, tablet or even on the phone. You can sign-in via multiple auth providers like Facebook, Twitter, GitHub and many more on the homepage. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/codimd should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. version: \"3\" services: mariadb: image: linuxserver/mariadb:latest container_name: codimd_mariadb restart: always volumes: - :/config environment: - MYSQL_ROOT_PASSWORD= - MYSQL_DATABASE=codimd - MYSQL_USER=codimd - MYSQL_PASSWORD= - PGID=1000 - PUID=1000 - TZ=Europe/London codimd: image: linuxserver/codimd:latest container_name: codimd restart: always depends_on: - mariadb volumes: - :/config environment: - DB_HOST=mariadb - DB_USER=codimd - DB_PASS= - DB_NAME=codimd - DB_PORT=3306 - PGID=1000 - PUID=1000 - TZ=Europe/London ports: - \"3000:3000\" docker cli docker run -d \\ --name=codimd \\ -e PUID=1000 \\ -e PGID=1000 \\ -e DB_HOST= \\ -e DB_PORT=3306 \\ -e DB_USER=codimd \\ -e DB_PASS= \\ -e DB_NAME=codimd \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/codimd Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 If you wish to access this container from http://{IP}:${PORT}` this must be left unchanged. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation DB_HOST= Host address of mysql database DB_PORT=3306 Port to access mysql database default is 3306 DB_USER=codimd Database user DB_PASS= Database password DB_NAME=codimd Database name TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config CodiMD config and configurable files Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup THIS IMAGE IS DEPRECATED. CodiMD is rebranded as HedgeDoc and the new docker image is at linuxserver/hedgedoc . CodiMD web interface can be accessed http://${IP}:3000/ , if you want to use a custom domain or anything besides port 3000 you will need to leverage their env settings for callbacks: (specifically for CMD_DOMAIN and CMD_URL_ADDPORT) Full list of CodiMD options For convience we provide a working example using Mysql as a backend in this document, if you do not wish to use our custom environment values or a Mysql database backend feel free to leverage any of the settings laid out in the link above. To run behind a reverse proxy we have a preconfigured config using docker networking included in our LetsEncrypt image and you can read how to use this in the Reverse Proxy Confs repository Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it codimd /bin/bash To monitor the logs of the container in realtime: docker logs -f codimd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' codimd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/codimd Versions 22.12.20: - Deprecate image in favor of the new rebranded image at linuxserver/hedgedoc . 23.05.19: - Initial release","title":"codimd"},{"location":"images/docker-codimd/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-codimd/#linuxservercodimd","text":"Codimd gives you access to all your files wherever you are. CodiMD is a real-time, multi-platform collaborative markdown note editor. This means that you can write notes with other people on your desktop, tablet or even on the phone. You can sign-in via multiple auth providers like Facebook, Twitter, GitHub and many more on the homepage.","title":"linuxserver/codimd"},{"location":"images/docker-codimd/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/codimd should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-codimd/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-codimd/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. version: \"3\" services: mariadb: image: linuxserver/mariadb:latest container_name: codimd_mariadb restart: always volumes: - :/config environment: - MYSQL_ROOT_PASSWORD= - MYSQL_DATABASE=codimd - MYSQL_USER=codimd - MYSQL_PASSWORD= - PGID=1000 - PUID=1000 - TZ=Europe/London codimd: image: linuxserver/codimd:latest container_name: codimd restart: always depends_on: - mariadb volumes: - :/config environment: - DB_HOST=mariadb - DB_USER=codimd - DB_PASS= - DB_NAME=codimd - DB_PORT=3306 - PGID=1000 - PUID=1000 - TZ=Europe/London ports: - \"3000:3000\"","title":"docker-compose (recommended)"},{"location":"images/docker-codimd/#docker-cli","text":"docker run -d \\ --name=codimd \\ -e PUID=1000 \\ -e PGID=1000 \\ -e DB_HOST= \\ -e DB_PORT=3306 \\ -e DB_USER=codimd \\ -e DB_PASS= \\ -e DB_NAME=codimd \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/codimd","title":"docker cli"},{"location":"images/docker-codimd/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-codimd/#ports-p","text":"Parameter Function 3000 If you wish to access this container from http://{IP}:${PORT}` this must be left unchanged.","title":"Ports (-p)"},{"location":"images/docker-codimd/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation DB_HOST= Host address of mysql database DB_PORT=3306 Port to access mysql database default is 3306 DB_USER=codimd Database user DB_PASS= Database password DB_NAME=codimd Database name TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-codimd/#volume-mappings-v","text":"Volume Function /config CodiMD config and configurable files","title":"Volume Mappings (-v)"},{"location":"images/docker-codimd/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-codimd/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-codimd/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-codimd/#application-setup","text":"THIS IMAGE IS DEPRECATED. CodiMD is rebranded as HedgeDoc and the new docker image is at linuxserver/hedgedoc . CodiMD web interface can be accessed http://${IP}:3000/ , if you want to use a custom domain or anything besides port 3000 you will need to leverage their env settings for callbacks: (specifically for CMD_DOMAIN and CMD_URL_ADDPORT) Full list of CodiMD options For convience we provide a working example using Mysql as a backend in this document, if you do not wish to use our custom environment values or a Mysql database backend feel free to leverage any of the settings laid out in the link above. To run behind a reverse proxy we have a preconfigured config using docker networking included in our LetsEncrypt image and you can read how to use this in the Reverse Proxy Confs repository","title":"Application Setup"},{"location":"images/docker-codimd/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-codimd/#support-info","text":"Shell access whilst the container is running: docker exec -it codimd /bin/bash To monitor the logs of the container in realtime: docker logs -f codimd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' codimd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/codimd","title":"Support Info"},{"location":"images/docker-codimd/#versions","text":"22.12.20: - Deprecate image in favor of the new rebranded image at linuxserver/hedgedoc . 23.05.19: - Initial release","title":"Versions"},{"location":"images/docker-cops/","text":"linuxserver/cops Cops by S\u00e9bastien Lucas, stands for Calibre OPDS (and HTML) Php Server. COPS links to your Calibre library database and allows downloading and emailing of books directly from a web browser and provides a OPDS feed to connect to your devices. Changes in your Calibre library are reflected immediately in your COPS pages. See : COPS's home for more details. Don't forget to check the Wiki . Why? (taken from the author's site) In my opinion Calibre is a marvelous tool but is too big and has too much dependencies to be used for its content server. That's the main reason why I coded this OPDS server. I needed a simple tool to be installed on a small server (Seagate Dockstar in my case). I initially thought of Calibre2OPDS but as it generate static file no search was possible. Later I added an simple HTML catalog that should be usable on my Kobo. So COPS's main advantages are : * No need for many dependencies. * No need for a lot of CPU or RAM. * Not much code. * Search is available. * With Dropbox / owncloud it's very easy to have an up to date OPDS server. * It was fun to code. If you want to use the OPDS feed don't forget to specify feed.php at the end of your URL. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/cops:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Unlike other implementations of COPS in a docker container, the linuxserver version gives you access to config_local.php in /config to customise your install to suit your needs, including details of your email account etc to enable emailing of books, it also includes the dependencies required to directly view epub books in your browser. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: cops: image: lscr.io/linuxserver/cops:latest container_name: cops environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/books ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=cops \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ -v :/books \\ --restart unless-stopped \\ lscr.io/linuxserver/cops:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config COPS Application Data. /books Calibre metadata.db location. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it cops /bin/bash To monitor the logs of the container in realtime: docker logs -f cops Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' cops Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/cops:latest Versions 22.11.20: - Pin composer version to 1.10.17. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 27.02.19: - Upgrade packages during install to prevent mismatch with baseimage. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Add multiarch and pipeline logic. 21.08.18: - Rebase to alpine 3.8. 02.07.18: - Add php7-ctype dependency. 08.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 03.04.17: - Add composer packages, reduce layers. 02.04.17: - Updated to version 1.1.0. 05.02.17: - Updated to Alpine 3.5 & PHP7. 24.10.16: - Updated to implement user based config. 24.10.16: - Updated to version 1.0.1. 14.10.16: - Add version layer information. 28.09.16: - Add php5-zlib. 11.09.16: - Add layer badges to README. 29.08.16: - Add php5-opcache. 28.08.16: - Add badges to README. 12.08.16: - Initial Release.","title":"cops"},{"location":"images/docker-cops/#linuxservercops","text":"Cops by S\u00e9bastien Lucas, stands for Calibre OPDS (and HTML) Php Server. COPS links to your Calibre library database and allows downloading and emailing of books directly from a web browser and provides a OPDS feed to connect to your devices. Changes in your Calibre library are reflected immediately in your COPS pages. See : COPS's home for more details. Don't forget to check the Wiki .","title":"linuxserver/cops"},{"location":"images/docker-cops/#why-taken-from-the-authors-site","text":"In my opinion Calibre is a marvelous tool but is too big and has too much dependencies to be used for its content server. That's the main reason why I coded this OPDS server. I needed a simple tool to be installed on a small server (Seagate Dockstar in my case). I initially thought of Calibre2OPDS but as it generate static file no search was possible. Later I added an simple HTML catalog that should be usable on my Kobo. So COPS's main advantages are : * No need for many dependencies. * No need for a lot of CPU or RAM. * Not much code. * Search is available. * With Dropbox / owncloud it's very easy to have an up to date OPDS server. * It was fun to code. If you want to use the OPDS feed don't forget to specify feed.php at the end of your URL.","title":"Why? (taken from the author's site)"},{"location":"images/docker-cops/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/cops:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-cops/#application-setup","text":"Unlike other implementations of COPS in a docker container, the linuxserver version gives you access to config_local.php in /config to customise your install to suit your needs, including details of your email account etc to enable emailing of books, it also includes the dependencies required to directly view epub books in your browser.","title":"Application Setup"},{"location":"images/docker-cops/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-cops/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: cops: image: lscr.io/linuxserver/cops:latest container_name: cops environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/books ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-cops/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=cops \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ -v :/books \\ --restart unless-stopped \\ lscr.io/linuxserver/cops:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-cops/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-cops/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-cops/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-cops/#volume-mappings-v","text":"Volume Function /config COPS Application Data. /books Calibre metadata.db location.","title":"Volume Mappings (-v)"},{"location":"images/docker-cops/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-cops/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-cops/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-cops/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-cops/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-cops/#support-info","text":"Shell access whilst the container is running: docker exec -it cops /bin/bash To monitor the logs of the container in realtime: docker logs -f cops Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' cops Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/cops:latest","title":"Support Info"},{"location":"images/docker-cops/#versions","text":"22.11.20: - Pin composer version to 1.10.17. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 27.02.19: - Upgrade packages during install to prevent mismatch with baseimage. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Add multiarch and pipeline logic. 21.08.18: - Rebase to alpine 3.8. 02.07.18: - Add php7-ctype dependency. 08.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 03.04.17: - Add composer packages, reduce layers. 02.04.17: - Updated to version 1.1.0. 05.02.17: - Updated to Alpine 3.5 & PHP7. 24.10.16: - Updated to implement user based config. 24.10.16: - Updated to version 1.0.1. 14.10.16: - Add version layer information. 28.09.16: - Add php5-zlib. 11.09.16: - Add layer badges to README. 29.08.16: - Add php5-opcache. 28.08.16: - Add badges to README. 12.08.16: - Initial Release.","title":"Versions"},{"location":"images/docker-couchpotato/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. This project is no longer maintained upstream and we will no longer be updating this image. For an alternative try: https://github.com/linuxserver/docker-radarr linuxserver/couchpotato Couchpotato is an automatic NZB and torrent downloader. You can keep a movies I want list and it will search for NZBs/torrents of these movies every X hours. Once a movie is found, it will send it to SABnzbd or download the torrent to a specified directory. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/couchpotato should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Application Setup Access the webui at :5050 , for more information check out CouchPotato . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: couchpotato: image: lscr.io/linuxserver/couchpotato container_name: couchpotato environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/downloads:/downloads - /path/to/movies:/movies ports: - 5050:5050 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=couchpotato \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5050:5050 \\ -v /path/to/appdata/config:/config \\ -v /path/to/downloads:/downloads \\ -v /path/to/movies:/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/couchpotato Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5050 http gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Couchpotato Application Data. /downloads Downloads Folder. /movies Movie Share. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it couchpotato /bin/bash To monitor the logs of the container in realtime: docker logs -f couchpotato Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' couchpotato Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/couchpotato Versions 29.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.01.21: - Rebasing to alpine 3.13. 10.06.19: - Add back unrar & unzip that were accidentally left out during rebase. 06.06.19: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Multi-arch builds. 16.08.18: - Rebase to alpine 3.8. 06.11.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime, add UMASK_SET variable. 12.07.17: - Add inspect commands to README, move to jenkins build and push 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5. 11.11.16: - Stop cp logging to docker log (they are accessible in the webui and the config folder). 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 12.11.15: - Misc Code Cleanup. 02.10.15: - Change to python baseimage. 28.07.15: - Updated to latest baseimage (for testing), and a fix to autoupdate.","title":"couchpotato"},{"location":"images/docker-couchpotato/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. This project is no longer maintained upstream and we will no longer be updating this image. For an alternative try: https://github.com/linuxserver/docker-radarr","title":"DEPRECATION NOTICE"},{"location":"images/docker-couchpotato/#linuxservercouchpotato","text":"Couchpotato is an automatic NZB and torrent downloader. You can keep a movies I want list and it will search for NZBs/torrents of these movies every X hours. Once a movie is found, it will send it to SABnzbd or download the torrent to a specified directory.","title":"linuxserver/couchpotato"},{"location":"images/docker-couchpotato/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/couchpotato should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-couchpotato/#application-setup","text":"Access the webui at :5050 , for more information check out CouchPotato .","title":"Application Setup"},{"location":"images/docker-couchpotato/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-couchpotato/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: couchpotato: image: lscr.io/linuxserver/couchpotato container_name: couchpotato environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/downloads:/downloads - /path/to/movies:/movies ports: - 5050:5050 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-couchpotato/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=couchpotato \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5050:5050 \\ -v /path/to/appdata/config:/config \\ -v /path/to/downloads:/downloads \\ -v /path/to/movies:/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/couchpotato","title":"docker cli (click here for more info)"},{"location":"images/docker-couchpotato/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-couchpotato/#ports-p","text":"Parameter Function 5050 http gui","title":"Ports (-p)"},{"location":"images/docker-couchpotato/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-couchpotato/#volume-mappings-v","text":"Volume Function /config Couchpotato Application Data. /downloads Downloads Folder. /movies Movie Share.","title":"Volume Mappings (-v)"},{"location":"images/docker-couchpotato/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-couchpotato/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-couchpotato/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-couchpotato/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-couchpotato/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-couchpotato/#support-info","text":"Shell access whilst the container is running: docker exec -it couchpotato /bin/bash To monitor the logs of the container in realtime: docker logs -f couchpotato Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' couchpotato Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/couchpotato","title":"Support Info"},{"location":"images/docker-couchpotato/#versions","text":"29.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.01.21: - Rebasing to alpine 3.13. 10.06.19: - Add back unrar & unzip that were accidentally left out during rebase. 06.06.19: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Multi-arch builds. 16.08.18: - Rebase to alpine 3.8. 06.11.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime, add UMASK_SET variable. 12.07.17: - Add inspect commands to README, move to jenkins build and push 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5. 11.11.16: - Stop cp logging to docker log (they are accessible in the webui and the config folder). 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 12.11.15: - Misc Code Cleanup. 02.10.15: - Change to python baseimage. 28.07.15: - Updated to latest baseimage (for testing), and a fix to autoupdate.","title":"Versions"},{"location":"images/docker-daapd/","text":"linuxserver/daapd Daapd (iTunes) media server with support for AirPlay devices, Apple Remote (and compatibles), Chromecast, MPD and internet radio. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/daapd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Map your music folder, open up itunes on the same LAN to see your music there. The web interface is available at http://:3689 For further setup options of remotes etc, check out the daapd website, Owntone . Enable spotify connect server Enable the spotify connect server by creating a pipe named 'spotify' in the root of your mounted music folder (not possible on most network mounts): mkfifo /spotify The spotify connect server should show up as the 'forked-daapd' device in your Spotify application. It is recommended to set the pipe_autostart option to true in your forked-daapd config. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: daapd: image: lscr.io/linuxserver/daapd:latest container_name: daapd network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/music restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=daapd \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v :/config \\ -v :/music \\ --restart unless-stopped \\ lscr.io/linuxserver/daapd:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Networking ( --net ) Parameter Function --net=host Shares host networking with container. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where daapd server stores its config and dbase files. /music Map to your music folder. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it daapd /bin/bash To monitor the logs of the container in realtime: docker logs -f daapd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' daapd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/daapd:latest Versions 31.05.22: - Make sure the user has access to the audio device. 31.05.22: - Add new deps, flex and bison. 12.02.22: - Rebase to Alpine 3.15. 14.09.21: - Enabled librespot. Disabled spotify on ARMv7 10.07.21: - Change of paths to work with the new package name, OwnTone. 02.04.21: - Update upstream repo, again. 30.03.21: - Update upstream repo. 06.10.20: - Enabled Spotify on Alpine 3.12 for X86_64 and ARMv7. 01.06.20: - Rebasing to alpine 3.12. 16.01.20: - Rebase to alpine linux 3.11 and build antlr3c from source. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 14.01.19: - Add pipeline logic and multi arch. 20.08.18: - Rebase to alpine linux 3.8. 09.06.18: - Use buildstage and update dependencies. 05.03.18: - Use updated configure ac and disable avcodecsend to hopefully mitigate crashes with V26. 25.02.18: - Query version before pull and build latest release. 03.01.18: - Deprecate cpu_core routine lack of scaling. 07.12.17: - Rebase to alpine linux 3.7. 03.12.17: - Bump to 25.0, cpu core counting routine for faster builds, linting fixes. 26.05.17: - Rebase to alpine linux 3.6. 06.02.17: - Rebase to alpine linux 3.5. 10.01.17: - Bump to 24.2. 14.10.16: - Add version layer information. 17.09.16: - Rebase to alpine linux, remove redundant spotify support, move to main repository. 28.02.16: - Add chromecast support, bump dependency versions. 04.01.16: - Disable ipv6 by default because in v23.4 it doesn't work in unraid with it set. 17.12.15: - Add in spotify support. 25.11.15: - Initial Release.","title":"daapd"},{"location":"images/docker-daapd/#linuxserverdaapd","text":"Daapd (iTunes) media server with support for AirPlay devices, Apple Remote (and compatibles), Chromecast, MPD and internet radio.","title":"linuxserver/daapd"},{"location":"images/docker-daapd/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/daapd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-daapd/#application-setup","text":"Map your music folder, open up itunes on the same LAN to see your music there. The web interface is available at http://:3689 For further setup options of remotes etc, check out the daapd website, Owntone .","title":"Application Setup"},{"location":"images/docker-daapd/#enable-spotify-connect-server","text":"Enable the spotify connect server by creating a pipe named 'spotify' in the root of your mounted music folder (not possible on most network mounts): mkfifo /spotify The spotify connect server should show up as the 'forked-daapd' device in your Spotify application. It is recommended to set the pipe_autostart option to true in your forked-daapd config.","title":"Enable spotify connect server"},{"location":"images/docker-daapd/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-daapd/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: daapd: image: lscr.io/linuxserver/daapd:latest container_name: daapd network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/music restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-daapd/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=daapd \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v :/config \\ -v :/music \\ --restart unless-stopped \\ lscr.io/linuxserver/daapd:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-daapd/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-daapd/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-daapd/#networking-net","text":"Parameter Function --net=host Shares host networking with container.","title":"Networking (--net)"},{"location":"images/docker-daapd/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-daapd/#volume-mappings-v","text":"Volume Function /config Where daapd server stores its config and dbase files. /music Map to your music folder.","title":"Volume Mappings (-v)"},{"location":"images/docker-daapd/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-daapd/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-daapd/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-daapd/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-daapd/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-daapd/#support-info","text":"Shell access whilst the container is running: docker exec -it daapd /bin/bash To monitor the logs of the container in realtime: docker logs -f daapd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' daapd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/daapd:latest","title":"Support Info"},{"location":"images/docker-daapd/#versions","text":"31.05.22: - Make sure the user has access to the audio device. 31.05.22: - Add new deps, flex and bison. 12.02.22: - Rebase to Alpine 3.15. 14.09.21: - Enabled librespot. Disabled spotify on ARMv7 10.07.21: - Change of paths to work with the new package name, OwnTone. 02.04.21: - Update upstream repo, again. 30.03.21: - Update upstream repo. 06.10.20: - Enabled Spotify on Alpine 3.12 for X86_64 and ARMv7. 01.06.20: - Rebasing to alpine 3.12. 16.01.20: - Rebase to alpine linux 3.11 and build antlr3c from source. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 14.01.19: - Add pipeline logic and multi arch. 20.08.18: - Rebase to alpine linux 3.8. 09.06.18: - Use buildstage and update dependencies. 05.03.18: - Use updated configure ac and disable avcodecsend to hopefully mitigate crashes with V26. 25.02.18: - Query version before pull and build latest release. 03.01.18: - Deprecate cpu_core routine lack of scaling. 07.12.17: - Rebase to alpine linux 3.7. 03.12.17: - Bump to 25.0, cpu core counting routine for faster builds, linting fixes. 26.05.17: - Rebase to alpine linux 3.6. 06.02.17: - Rebase to alpine linux 3.5. 10.01.17: - Bump to 24.2. 14.10.16: - Add version layer information. 17.09.16: - Rebase to alpine linux, remove redundant spotify support, move to main repository. 28.02.16: - Add chromecast support, bump dependency versions. 04.01.16: - Disable ipv6 by default because in v23.4 it doesn't work in unraid with it set. 17.12.15: - Add in spotify support. 25.11.15: - Initial Release.","title":"Versions"},{"location":"images/docker-darktable/","text":"linuxserver/darktable darktable is an open source photography workflow application and raw developer. A virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images and enhance them. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/darktable:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: darktable: image: lscr.io/linuxserver/darktable:latest container_name: darktable security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=darktable \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/darktable:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Darktable desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings and images Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it darktable /bin/bash To monitor the logs of the container in realtime: docker logs -f darktable Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' darktable Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/darktable:latest Versions 23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 31.12.21: - Rebase to Alpine 3.15. 01.10.21: - Rebase to Alpine 3.14. 07.04.21: - Initial release.","title":"darktable"},{"location":"images/docker-darktable/#linuxserverdarktable","text":"darktable is an open source photography workflow application and raw developer. A virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images and enhance them.","title":"linuxserver/darktable"},{"location":"images/docker-darktable/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/darktable:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-darktable/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-darktable/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-darktable/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: darktable: image: lscr.io/linuxserver/darktable:latest container_name: darktable security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-darktable/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=darktable \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/darktable:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-darktable/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-darktable/#ports-p","text":"Parameter Function 3000 Darktable desktop gui.","title":"Ports (-p)"},{"location":"images/docker-darktable/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-darktable/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings and images","title":"Volume Mappings (-v)"},{"location":"images/docker-darktable/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-darktable/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-darktable/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-darktable/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-darktable/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-darktable/#support-info","text":"Shell access whilst the container is running: docker exec -it darktable /bin/bash To monitor the logs of the container in realtime: docker logs -f darktable Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' darktable Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/darktable:latest","title":"Support Info"},{"location":"images/docker-darktable/#versions","text":"23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 31.12.21: - Rebase to Alpine 3.15. 01.10.21: - Rebase to Alpine 3.14. 07.04.21: - Initial release.","title":"Versions"},{"location":"images/docker-davos/","text":"linuxserver/davos Davos is an FTP automation tool that periodically scans given host locations for new files. It can be configured for various purposes, including listening for specific files to appear in the host location, ready for it to download and then move, if required. It also supports completion notifications as well as downstream API calls, to further the workflow. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/davos:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application does not require any set up other than starting the docker container. Further documentation can be found on the davos GitHub repository page . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: davos: image: lscr.io/linuxserver/davos:latest container_name: davos environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/download ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=davos \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 8080:8080 \\ -v :/config \\ -v :/download \\ --restart unless-stopped \\ lscr.io/linuxserver/davos:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 This is the default port that davos runs under Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation Volume Mappings ( -v ) Volume Function /config davos's config location. This is where it stores its database file and logs. /download davos's file download location Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it davos /bin/bash To monitor the logs of the container in realtime: docker logs -f davos Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' davos Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/davos:latest Versions 15.01.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.03.19: - Updating runtime deps due to change in OpenJRE. 08.03.19: - Updating build environment to pass proper build flags and use gradle wrapper. 22.02.19: - Rebasing to alpine 3.9. 18.11.16: - Initial Release.","title":"davos"},{"location":"images/docker-davos/#linuxserverdavos","text":"Davos is an FTP automation tool that periodically scans given host locations for new files. It can be configured for various purposes, including listening for specific files to appear in the host location, ready for it to download and then move, if required. It also supports completion notifications as well as downstream API calls, to further the workflow.","title":"linuxserver/davos"},{"location":"images/docker-davos/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/davos:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-davos/#application-setup","text":"The application does not require any set up other than starting the docker container. Further documentation can be found on the davos GitHub repository page .","title":"Application Setup"},{"location":"images/docker-davos/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-davos/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: davos: image: lscr.io/linuxserver/davos:latest container_name: davos environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/download ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-davos/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=davos \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 8080:8080 \\ -v :/config \\ -v :/download \\ --restart unless-stopped \\ lscr.io/linuxserver/davos:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-davos/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-davos/#ports-p","text":"Parameter Function 8080 This is the default port that davos runs under","title":"Ports (-p)"},{"location":"images/docker-davos/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation","title":"Environment Variables (-e)"},{"location":"images/docker-davos/#volume-mappings-v","text":"Volume Function /config davos's config location. This is where it stores its database file and logs. /download davos's file download location","title":"Volume Mappings (-v)"},{"location":"images/docker-davos/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-davos/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-davos/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-davos/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-davos/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-davos/#support-info","text":"Shell access whilst the container is running: docker exec -it davos /bin/bash To monitor the logs of the container in realtime: docker logs -f davos Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' davos Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/davos:latest","title":"Support Info"},{"location":"images/docker-davos/#versions","text":"15.01.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.03.19: - Updating runtime deps due to change in OpenJRE. 08.03.19: - Updating build environment to pass proper build flags and use gradle wrapper. 22.02.19: - Rebasing to alpine 3.9. 18.11.16: - Initial Release.","title":"Versions"},{"location":"images/docker-ddclient/","text":"linuxserver/ddclient Ddclient is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider. It was originally written by Paul Burry and is now mostly by wimpunk. It has the capability to update more than just dyndns and it can fetch your WAN-ipaddress in a few different ways. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ddclient:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Edit the ddclient.conf file found in your /config volume (also see official ddclient documentation ). This config file has many providers to choose from and you basically just have to uncomment your provider and add username/password where requested. If you modify ddclient.conf, ddclient will automaticcaly restart and read the config. Get dynamic IP from Fritz.Box If ddclient shall fetch the dynamic (public) IP-address from a fritz.box (AVM) add the following line to /config/ddclient.conf : use=cmd, cmd=/etc/ddclient/get-ip-from-fritzbox Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: ddclient: image: lscr.io/linuxserver/ddclient:latest container_name: ddclient environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=ddclient \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ddclient:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where ddclient should store its config files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it ddclient /bin/bash To monitor the logs of the container in realtime: docker logs -f ddclient Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ddclient Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ddclient:latest Versions 20.10.22: - Update build instructions for 3.10.0. Update default ddclient.conf . 15.01.22: - Rebase to Alpine 3.15 15.05.21: - Distribute script 'sample-get-ip-from-fritzbox' from ddclient repo 08.03.21: - Added bind-tools to provide nsupdate 01.06.20: - Rebasing to alpine 3.12. 08.02.20: - Ingest from Github. 06.02.19: - Fix permissions. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.03.19: - Add perl-io-socket-inet6 for ipv6 support. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 22.08.18: - Rebase to alpine 3.8. 10.08.18: - Update to ddclient v3.9.0. For Cloudflare users, please ensure you remove the line server=www.cloudflare.com from your ddclient.conf . 07.12.17: - Rebase to alpine 3.7. 28.05.17: - Rebase to alpine 3.6. 10.02.17: - Rebase to alpine 3.5. 26.11.16: - Update README to new standard and add icon and other small details. 29.08.16: - Initial release.","title":"ddclient"},{"location":"images/docker-ddclient/#linuxserverddclient","text":"Ddclient is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider. It was originally written by Paul Burry and is now mostly by wimpunk. It has the capability to update more than just dyndns and it can fetch your WAN-ipaddress in a few different ways.","title":"linuxserver/ddclient"},{"location":"images/docker-ddclient/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ddclient:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-ddclient/#application-setup","text":"Edit the ddclient.conf file found in your /config volume (also see official ddclient documentation ). This config file has many providers to choose from and you basically just have to uncomment your provider and add username/password where requested. If you modify ddclient.conf, ddclient will automaticcaly restart and read the config.","title":"Application Setup"},{"location":"images/docker-ddclient/#get-dynamic-ip-from-fritzbox","text":"If ddclient shall fetch the dynamic (public) IP-address from a fritz.box (AVM) add the following line to /config/ddclient.conf : use=cmd, cmd=/etc/ddclient/get-ip-from-fritzbox","title":"Get dynamic IP from Fritz.Box"},{"location":"images/docker-ddclient/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-ddclient/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: ddclient: image: lscr.io/linuxserver/ddclient:latest container_name: ddclient environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-ddclient/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=ddclient \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ddclient:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-ddclient/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-ddclient/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-ddclient/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-ddclient/#volume-mappings-v","text":"Volume Function /config Where ddclient should store its config files.","title":"Volume Mappings (-v)"},{"location":"images/docker-ddclient/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-ddclient/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-ddclient/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-ddclient/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-ddclient/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-ddclient/#support-info","text":"Shell access whilst the container is running: docker exec -it ddclient /bin/bash To monitor the logs of the container in realtime: docker logs -f ddclient Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ddclient Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ddclient:latest","title":"Support Info"},{"location":"images/docker-ddclient/#versions","text":"20.10.22: - Update build instructions for 3.10.0. Update default ddclient.conf . 15.01.22: - Rebase to Alpine 3.15 15.05.21: - Distribute script 'sample-get-ip-from-fritzbox' from ddclient repo 08.03.21: - Added bind-tools to provide nsupdate 01.06.20: - Rebasing to alpine 3.12. 08.02.20: - Ingest from Github. 06.02.19: - Fix permissions. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.03.19: - Add perl-io-socket-inet6 for ipv6 support. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 22.08.18: - Rebase to alpine 3.8. 10.08.18: - Update to ddclient v3.9.0. For Cloudflare users, please ensure you remove the line server=www.cloudflare.com from your ddclient.conf . 07.12.17: - Rebase to alpine 3.7. 28.05.17: - Rebase to alpine 3.6. 10.02.17: - Rebase to alpine 3.5. 26.11.16: - Update README to new standard and add icon and other small details. 29.08.16: - Initial release.","title":"Versions"},{"location":"images/docker-deluge/","text":"linuxserver/deluge Deluge is a lightweight, Free Software, cross-platform BitTorrent client. Full Encryption WebUI Plugin System Much more... Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/deluge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The admin interface is available at http://SERVER-IP:8112 with a default user/password of admin/deluge. To change the password (recommended) log in to the web interface and go to Preferences->Interface->Password. Change the inbound port to 6881 (or whichever port you've mapped for the container) under Preferences->Network, otherwise random ports will be used. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: deluge: image: lscr.io/linuxserver/deluge:latest container_name: deluge environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - DELUGE_LOGLEVEL=error #optional volumes: - /path/to/deluge/config:/config - /path/to/your/downloads:/downloads ports: - 8112:8112 - 6881:6881 - 6881:6881/udp restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=deluge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DELUGE_LOGLEVEL=error `#optional` \\ -p 8112:8112 \\ -p 6881:6881 \\ -p 6881:6881/udp \\ -v /path/to/deluge/config:/config \\ -v /path/to/your/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/deluge:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8112 Port for webui 6881 Inbound torrent traffic (See App Setup) 6881/udp Inbound torrent traffic (See App Setup) Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use DELUGE_LOGLEVEL=error set the loglevel output when running Deluge, default is info for deluged and warning for delgued-web Volume Mappings ( -v ) Volume Function /config deluge configs /downloads torrent download directory Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it deluge /bin/bash To monitor the logs of the container in realtime: docker logs -f deluge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' deluge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/deluge:latest Versions 29.11.22: - Restore geoip using py3-geoip as an interim measure. 24.11.22: - Remove GeoIP packages as geoip will not build under Py 3.11 and Deluge still doesn't support geoip2. 22.11.22: - Update GeoIP URL for new IPFS domain. 29.08.22: - Rebase to Alpine Edge again to follow latest releases. 12.08.22: - Bump unrar to 6.1.7. 16.06.22: - Rebase to Alpine 3.16 from edge. 22.02.22: - Rebase to Alpine, config on first startup, add GeoIP. 15.01.22: - Rebase to Focal. 07.06.21: - Remove host networking from readme examples 23.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 09.05.19: - Add python3 requests and future modules. 24.08.19: - Add ability to set LogLevel for Deluge. 09.06.19: - Update to 2.x using deluge ppa. 02.05.19: - Install full version of 7zip. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 15.11.18: - Add deluge-console. 11.11.18: - Rebase to Ubuntu Bionic, add pipeline multiarch logic. 09.04.18: - update to libressl2.7-libssl. 29.03.18: - Rebase to alpine edge. 07.12.17: - Rebase to alpine 3.7. 20.11.17: - Change libressl2.6-libssl repo. 01.07.17: - Add curl package. 26.05.17: - Rebase to alpine 3.6. 29.04.17: - Add variable for user defined umask. 28.04.17: - update to libressl2.5-libssl. 28.12.16: - Rebase to alpine 3.5 baseimage. 17.11.16: - Rebase to edge baseimage. 13.10.16: - Switch to libressl as openssl deprecated from alpine linux and deluge dependency no longer installs 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 30.08.16: - Use pip packages for some critical dependencies. 28.08.16: - Add badges to README. 15.08.16: - Rebase to alpine linux. 09.11.15: - Add unrar and unzip 15.10.15: - Initial Release.","title":"deluge"},{"location":"images/docker-deluge/#linuxserverdeluge","text":"Deluge is a lightweight, Free Software, cross-platform BitTorrent client. Full Encryption WebUI Plugin System Much more...","title":"linuxserver/deluge"},{"location":"images/docker-deluge/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/deluge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-deluge/#application-setup","text":"The admin interface is available at http://SERVER-IP:8112 with a default user/password of admin/deluge. To change the password (recommended) log in to the web interface and go to Preferences->Interface->Password. Change the inbound port to 6881 (or whichever port you've mapped for the container) under Preferences->Network, otherwise random ports will be used.","title":"Application Setup"},{"location":"images/docker-deluge/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-deluge/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: deluge: image: lscr.io/linuxserver/deluge:latest container_name: deluge environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - DELUGE_LOGLEVEL=error #optional volumes: - /path/to/deluge/config:/config - /path/to/your/downloads:/downloads ports: - 8112:8112 - 6881:6881 - 6881:6881/udp restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-deluge/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=deluge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DELUGE_LOGLEVEL=error `#optional` \\ -p 8112:8112 \\ -p 6881:6881 \\ -p 6881:6881/udp \\ -v /path/to/deluge/config:/config \\ -v /path/to/your/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/deluge:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-deluge/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-deluge/#ports-p","text":"Parameter Function 8112 Port for webui 6881 Inbound torrent traffic (See App Setup) 6881/udp Inbound torrent traffic (See App Setup)","title":"Ports (-p)"},{"location":"images/docker-deluge/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use DELUGE_LOGLEVEL=error set the loglevel output when running Deluge, default is info for deluged and warning for delgued-web","title":"Environment Variables (-e)"},{"location":"images/docker-deluge/#volume-mappings-v","text":"Volume Function /config deluge configs /downloads torrent download directory","title":"Volume Mappings (-v)"},{"location":"images/docker-deluge/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-deluge/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-deluge/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-deluge/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-deluge/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-deluge/#support-info","text":"Shell access whilst the container is running: docker exec -it deluge /bin/bash To monitor the logs of the container in realtime: docker logs -f deluge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' deluge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/deluge:latest","title":"Support Info"},{"location":"images/docker-deluge/#versions","text":"29.11.22: - Restore geoip using py3-geoip as an interim measure. 24.11.22: - Remove GeoIP packages as geoip will not build under Py 3.11 and Deluge still doesn't support geoip2. 22.11.22: - Update GeoIP URL for new IPFS domain. 29.08.22: - Rebase to Alpine Edge again to follow latest releases. 12.08.22: - Bump unrar to 6.1.7. 16.06.22: - Rebase to Alpine 3.16 from edge. 22.02.22: - Rebase to Alpine, config on first startup, add GeoIP. 15.01.22: - Rebase to Focal. 07.06.21: - Remove host networking from readme examples 23.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 09.05.19: - Add python3 requests and future modules. 24.08.19: - Add ability to set LogLevel for Deluge. 09.06.19: - Update to 2.x using deluge ppa. 02.05.19: - Install full version of 7zip. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 15.11.18: - Add deluge-console. 11.11.18: - Rebase to Ubuntu Bionic, add pipeline multiarch logic. 09.04.18: - update to libressl2.7-libssl. 29.03.18: - Rebase to alpine edge. 07.12.17: - Rebase to alpine 3.7. 20.11.17: - Change libressl2.6-libssl repo. 01.07.17: - Add curl package. 26.05.17: - Rebase to alpine 3.6. 29.04.17: - Add variable for user defined umask. 28.04.17: - update to libressl2.5-libssl. 28.12.16: - Rebase to alpine 3.5 baseimage. 17.11.16: - Rebase to edge baseimage. 13.10.16: - Switch to libressl as openssl deprecated from alpine linux and deluge dependency no longer installs 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 30.08.16: - Use pip packages for some critical dependencies. 28.08.16: - Add badges to README. 15.08.16: - Rebase to alpine linux. 09.11.15: - Add unrar and unzip 15.10.15: - Initial Release.","title":"Versions"},{"location":"images/docker-digikam/","text":"linuxserver/digikam digiKam : Professional Photo Management with the Power of Open Source Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/digikam:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false . Mysql Internal When using mysql internal mode for the database you will need to click on \"Find\" Button for all the required binaries (mysql_install_db,mysqladmin,mysqld). Then select the binary file and press Open. Keyboard Layouts This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: digikam: image: lscr.io/linuxserver/digikam:latest container_name: digikam network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional volumes: - /path/to/config:/config ports: - 3000:3000 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=digikam \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -p 3000:3000 `#optional` \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/digikam:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 digiKam desktop gui Networking ( --net ) Parameter Function --net=host Use Host Networking Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York. SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores database. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it digikam /bin/bash To monitor the logs of the container in realtime: docker logs -f digikam Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' digikam Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/digikam:latest Versions 21.11.22: - Trigger upon baseimage updates (arch being a rolling distro has too many dependency breaks otherwise). Release version will be the baseimage build date going forward. 20.10.22: - Migrate to s6v3. 07.03.22: - Add Exiftool and firefox for image exports. 20.02.22: - Add MariaDB, expand documentation. 15.02.22: - Rebase to Arch. 27.12.21: - Rebase to focal to resolve dependency issues. 27.03.21: - Download link fixed. 20.05.20: - Initial release.","title":"digikam"},{"location":"images/docker-digikam/#linuxserverdigikam","text":"digiKam : Professional Photo Management with the Power of Open Source","title":"linuxserver/digikam"},{"location":"images/docker-digikam/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/digikam:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-digikam/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false .","title":"Application Setup"},{"location":"images/docker-digikam/#mysql-internal","text":"When using mysql internal mode for the database you will need to click on \"Find\" Button for all the required binaries (mysql_install_db,mysqladmin,mysqld). Then select the binary file and press Open.","title":"Mysql Internal"},{"location":"images/docker-digikam/#keyboard-layouts","text":"This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard","title":"Keyboard Layouts"},{"location":"images/docker-digikam/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-digikam/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: digikam: image: lscr.io/linuxserver/digikam:latest container_name: digikam network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional volumes: - /path/to/config:/config ports: - 3000:3000 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-digikam/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=digikam \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -p 3000:3000 `#optional` \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/digikam:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-digikam/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-digikam/#ports-p","text":"Parameter Function 3000 digiKam desktop gui","title":"Ports (-p)"},{"location":"images/docker-digikam/#networking-net","text":"Parameter Function --net=host Use Host Networking","title":"Networking (--net)"},{"location":"images/docker-digikam/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York. SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options.","title":"Environment Variables (-e)"},{"location":"images/docker-digikam/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores database.","title":"Volume Mappings (-v)"},{"location":"images/docker-digikam/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-digikam/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-digikam/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-digikam/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-digikam/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-digikam/#support-info","text":"Shell access whilst the container is running: docker exec -it digikam /bin/bash To monitor the logs of the container in realtime: docker logs -f digikam Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' digikam Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/digikam:latest","title":"Support Info"},{"location":"images/docker-digikam/#versions","text":"21.11.22: - Trigger upon baseimage updates (arch being a rolling distro has too many dependency breaks otherwise). Release version will be the baseimage build date going forward. 20.10.22: - Migrate to s6v3. 07.03.22: - Add Exiftool and firefox for image exports. 20.02.22: - Add MariaDB, expand documentation. 15.02.22: - Rebase to Arch. 27.12.21: - Rebase to focal to resolve dependency issues. 27.03.21: - Download link fixed. 20.05.20: - Initial release.","title":"Versions"},{"location":"images/docker-dillinger/","text":"linuxserver/dillinger Dillinger is a cloud-enabled, mobile-ready, offline-storage, AngularJS powered HTML5 Markdown editor. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/dillinger:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Application Setup Access the webui at http://your-ip:8080 , keep in mind that storage for this application is in your browser session not server side. Only plugin configurations will ever be stored server side. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: dillinger: image: lscr.io/linuxserver/dillinger:latest container_name: dillinger environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=dillinger \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/dillinger:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 The port for the Dillinger web interface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Dillinger plugin config files Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it dillinger /bin/bash To monitor the logs of the container in realtime: docker logs -f dillinger Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' dillinger Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/dillinger:latest Versions 19.04.22: - Rebase to Alpine. 31.05.19: - Initial Release.","title":"dillinger"},{"location":"images/docker-dillinger/#linuxserverdillinger","text":"Dillinger is a cloud-enabled, mobile-ready, offline-storage, AngularJS powered HTML5 Markdown editor.","title":"linuxserver/dillinger"},{"location":"images/docker-dillinger/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/dillinger:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-dillinger/#application-setup","text":"Access the webui at http://your-ip:8080 , keep in mind that storage for this application is in your browser session not server side. Only plugin configurations will ever be stored server side.","title":"Application Setup"},{"location":"images/docker-dillinger/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-dillinger/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: dillinger: image: lscr.io/linuxserver/dillinger:latest container_name: dillinger environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-dillinger/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=dillinger \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/dillinger:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-dillinger/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-dillinger/#ports-p","text":"Parameter Function 8080 The port for the Dillinger web interface","title":"Ports (-p)"},{"location":"images/docker-dillinger/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-dillinger/#volume-mappings-v","text":"Volume Function /config Dillinger plugin config files","title":"Volume Mappings (-v)"},{"location":"images/docker-dillinger/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-dillinger/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-dillinger/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-dillinger/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-dillinger/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-dillinger/#support-info","text":"Shell access whilst the container is running: docker exec -it dillinger /bin/bash To monitor the logs of the container in realtime: docker logs -f dillinger Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' dillinger Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/dillinger:latest","title":"Support Info"},{"location":"images/docker-dillinger/#versions","text":"19.04.22: - Rebase to Alpine. 31.05.19: - Initial Release.","title":"Versions"},{"location":"images/docker-diskover/","text":"linuxserver/diskover diskover is an open source file system indexer that uses Elasticsearch to index and manage data across heterogeneous storage systems. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/diskover:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This application is dependent on an ElasticSearch instance. Please see the example compose file for additional information. The default username is diskover with the password of darkdata , access the container at http:/// . The UI may be unusable until a valid index has been created. The default diskover-web Constants.php file located at /config/diskover-web.conf.d/Constants.php will need to be edited to allow diskover-web to communicate with the ElasticSearch container. The following entries will need to be edited: * const ES_HOST = elasticsearch * const ES_PORT = 9200 The application doesn't start an index by default. A crontab is created inside of the /config directory and can be set up to run automated indexes of /data . Changes to this crontab file require a restart to apply. You can also manually run an index by executing /app/diskover/diskover.py either in interactive or detached mode: docker exec -u abc -d diskover python3 /app/diskover/diskover.py -i diskover-my_index_name /data Will run an index in the background docker exec -u abc -it diskover python3 /app/diskover/diskover.py -i diskover-my_index_name /data Will run an index in the foreground Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) version: '2' services: diskover: image: lscr.io/linuxserver/diskover container_name: diskover environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - ES_HOST=elasticsearch - ES_PORT=9200 volumes: - /path/to/diskover/config:/config - /path/to/diskover/data:/data ports: - 80:80 mem_limit: 4096m restart: unless-stopped depends_on: - elasticsearch elasticsearch: container_name: elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2 environment: - discovery.type=single-node - xpack.security.enabled=true - bootstrap.memory_lock=true - \"ES_JAVA_OPTS=-Xms1g -Xmx1g\" ulimits: memlock: soft: -1 hard: -1 volumes: - /path/to/esdata:/usr/share/elasticsearch/data ports: - 9200:9200 depends_on: - elasticsearch-helper restart: unless-stopped elasticsearch-helper: image: alpine command: sh -c \"sysctl -w vm.max_map_count=262144\" privileged: true docker cli ( click here for more info ) docker run -d \\ --name=diskover \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e ES_HOST=elasticsearch \\ -e ES_PORT=9200 \\ -e ES_USER=elastic \\ -e ES_PASS=changeme \\ -p 80:80 \\ -v /path/to/diskover/config:/config \\ -v /path/to/diskover/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/diskover:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 diskover Web UI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York ES_HOST=elasticsearch ElasticSearch host (optional) ES_PORT=9200 ElasticSearch port (optional) ES_USER=elastic ElasticSearch username (optional) ES_PASS=changeme ElasticSearch password (optional) Volume Mappings ( -v ) Volume Function /config Persistent config files /data Default mount point to crawl Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it diskover /bin/bash To monitor the logs of the container in realtime: docker logs -f diskover Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' diskover Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/diskover:latest Versions 25.02.22: - Add php7-sqlite3 to support rc4 release. 03.11.21: - Added more support for potential config files. 31.10.21: - Added xpack.security variable to ElasticSearch; added instructions to edit Constants.php in diskover; corrected command needed to manually generate an index in diskover 11.10.21: - Updated to diskover-community v2. 19.11.20: - Fix pip packages. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 12.04.19: - Rebase to Alpine 3.9. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.11.18: - Initial Release.","title":"diskover"},{"location":"images/docker-diskover/#linuxserverdiskover","text":"diskover is an open source file system indexer that uses Elasticsearch to index and manage data across heterogeneous storage systems.","title":"linuxserver/diskover"},{"location":"images/docker-diskover/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/diskover:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-diskover/#application-setup","text":"This application is dependent on an ElasticSearch instance. Please see the example compose file for additional information. The default username is diskover with the password of darkdata , access the container at http:/// . The UI may be unusable until a valid index has been created. The default diskover-web Constants.php file located at /config/diskover-web.conf.d/Constants.php will need to be edited to allow diskover-web to communicate with the ElasticSearch container. The following entries will need to be edited: * const ES_HOST = elasticsearch * const ES_PORT = 9200 The application doesn't start an index by default. A crontab is created inside of the /config directory and can be set up to run automated indexes of /data . Changes to this crontab file require a restart to apply. You can also manually run an index by executing /app/diskover/diskover.py either in interactive or detached mode: docker exec -u abc -d diskover python3 /app/diskover/diskover.py -i diskover-my_index_name /data Will run an index in the background docker exec -u abc -it diskover python3 /app/diskover/diskover.py -i diskover-my_index_name /data Will run an index in the foreground","title":"Application Setup"},{"location":"images/docker-diskover/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-diskover/#docker-compose-recommended-click-here-for-more-info","text":"version: '2' services: diskover: image: lscr.io/linuxserver/diskover container_name: diskover environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - ES_HOST=elasticsearch - ES_PORT=9200 volumes: - /path/to/diskover/config:/config - /path/to/diskover/data:/data ports: - 80:80 mem_limit: 4096m restart: unless-stopped depends_on: - elasticsearch elasticsearch: container_name: elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2 environment: - discovery.type=single-node - xpack.security.enabled=true - bootstrap.memory_lock=true - \"ES_JAVA_OPTS=-Xms1g -Xmx1g\" ulimits: memlock: soft: -1 hard: -1 volumes: - /path/to/esdata:/usr/share/elasticsearch/data ports: - 9200:9200 depends_on: - elasticsearch-helper restart: unless-stopped elasticsearch-helper: image: alpine command: sh -c \"sysctl -w vm.max_map_count=262144\" privileged: true","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-diskover/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=diskover \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e ES_HOST=elasticsearch \\ -e ES_PORT=9200 \\ -e ES_USER=elastic \\ -e ES_PASS=changeme \\ -p 80:80 \\ -v /path/to/diskover/config:/config \\ -v /path/to/diskover/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/diskover:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-diskover/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-diskover/#ports-p","text":"Parameter Function 80 diskover Web UI","title":"Ports (-p)"},{"location":"images/docker-diskover/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York ES_HOST=elasticsearch ElasticSearch host (optional) ES_PORT=9200 ElasticSearch port (optional) ES_USER=elastic ElasticSearch username (optional) ES_PASS=changeme ElasticSearch password (optional)","title":"Environment Variables (-e)"},{"location":"images/docker-diskover/#volume-mappings-v","text":"Volume Function /config Persistent config files /data Default mount point to crawl","title":"Volume Mappings (-v)"},{"location":"images/docker-diskover/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-diskover/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-diskover/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-diskover/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-diskover/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-diskover/#support-info","text":"Shell access whilst the container is running: docker exec -it diskover /bin/bash To monitor the logs of the container in realtime: docker logs -f diskover Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' diskover Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/diskover:latest","title":"Support Info"},{"location":"images/docker-diskover/#versions","text":"25.02.22: - Add php7-sqlite3 to support rc4 release. 03.11.21: - Added more support for potential config files. 31.10.21: - Added xpack.security variable to ElasticSearch; added instructions to edit Constants.php in diskover; corrected command needed to manually generate an index in diskover 11.10.21: - Updated to diskover-community v2. 19.11.20: - Fix pip packages. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 12.04.19: - Rebase to Alpine 3.9. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.11.18: - Initial Release.","title":"Versions"},{"location":"images/docker-doc-builder/","text":"linuxserver/doc-builder Expects to run as part of the LSIO CI process. Not for public consumption. Running against remote: docker run --rm \\ -e CONTAINER_NAME=${CONTAINER_NAME} \\ -v ${TEMPDIR}:/ansible/readme \\ linuxserver/doc-builder:latest Running locally: If you need to test functionality just navigate to the folder with the readme-vars.yml and run: docker run --rm \\ -v $(pwd):/tmp \\ -e LOCAL=true \\ linuxserver/doc-builder:latest The output will be in a GENERATED.md in your current working directory. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"linuxserver/doc-builder"},{"location":"images/docker-doc-builder/#linuxserverdoc-builder","text":"Expects to run as part of the LSIO CI process. Not for public consumption. Running against remote: docker run --rm \\ -e CONTAINER_NAME=${CONTAINER_NAME} \\ -v ${TEMPDIR}:/ansible/readme \\ linuxserver/doc-builder:latest Running locally: If you need to test functionality just navigate to the folder with the readme-vars.yml and run: docker run --rm \\ -v $(pwd):/tmp \\ -e LOCAL=true \\ linuxserver/doc-builder:latest The output will be in a GENERATED.md in your current working directory. The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"linuxserver/doc-builder"},{"location":"images/docker-docker-compose/","text":"The LinuxServer.io team brings you another container release featuring: regular and timely application updates easy user mappings (PGID, PUID) custom base image with s6 overlay weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth regular security updates Find us at: Blog - all the things you can do with our containers including How-To guides, opinions and much more! Discord - realtime support / chat with the community and the team. Discourse - post on our community forum. Fleet - an online web interface which displays all of our maintained images. GitHub - view the source for all of our repositories. Open Collective - please consider helping us by either donating or contributing to our budget linuxserver/docker-compose docker-compose is a tool for defining and running multi-container Docker applications. With Compose, you use a Compose file to configure your application's services. Then, using a single command, you create and start all the services from your configuration. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/docker-compose:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 docker-compose v1 releases alpine \u2705 docker-compose v1 releases with our alpine baseimage v2 \u2705 docker compose v2 releases Usage Docker cli docker run --rm \\ -v /var/run/docker.sock:/var/run/docker.sock \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ lscr.io/linuxserver/docker-compose:latest \\ up You can replace the last line with any docker-compose command and argument, which will be passed to docker-compose inside the image. Recommended method We provide a very convenient script that allows the docker-compose container to run as if it was installed natively: sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose Running these two commands on your docker host once will let you issue commands such as docker-compose up -d and the docker-compose container will do its job behind the scenes. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it docker-compose /bin/bash To monitor the logs of the container in realtime: docker logs -f docker-compose container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' docker-compose image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/docker-compose:latest Updating Info Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image. Below are the instructions for updating containers: Via Docker Run Update the image: docker pull lscr.io/linuxserver/docker-compose:latest You can also remove the old dangling images: docker image prune Building locally If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-docker-compose.git cd docker-docker-compose docker build \\ --no-cache \\ --pull \\ -t lscr.io/linuxserver/docker-compose:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 . Versions 15.03.22: - Add v2 branch. Change master to only fetch v1 releases. Change alpine to only fetch v1 releases. Rebase master to focal. Rebase alpine to 3.15. 17.12.20: - Update run.sh with formatting changes. 04.10.20: - Update run.sh with changes from upstream. 31.08.20: - Update tox and virtualenv. 31.07.20: - Add support for global env var DOCKER_COMPOSE_IMAGE_TAG in the run.sh script. 06.07.20: - Publish docker-compose and docker-cli binaries in Github releases. 01.07.20: - Release alpine based images at alpine tag. 04.06.20: - Bump docker-cli to 19.03.8, auto-detect python3 version. 19.05.20: - Initial Release.","title":"docker-compose"},{"location":"images/docker-docker-compose/#linuxserverdocker-compose","text":"docker-compose is a tool for defining and running multi-container Docker applications. With Compose, you use a Compose file to configure your application's services. Then, using a single command, you create and start all the services from your configuration.","title":"linuxserver/docker-compose"},{"location":"images/docker-docker-compose/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/docker-compose:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-docker-compose/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 docker-compose v1 releases alpine \u2705 docker-compose v1 releases with our alpine baseimage v2 \u2705 docker compose v2 releases","title":"Version Tags"},{"location":"images/docker-docker-compose/#usage","text":"","title":"Usage"},{"location":"images/docker-docker-compose/#docker-cli","text":"docker run --rm \\ -v /var/run/docker.sock:/var/run/docker.sock \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ lscr.io/linuxserver/docker-compose:latest \\ up You can replace the last line with any docker-compose command and argument, which will be passed to docker-compose inside the image.","title":"Docker cli"},{"location":"images/docker-docker-compose/#recommended-method","text":"We provide a very convenient script that allows the docker-compose container to run as if it was installed natively: sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose Running these two commands on your docker host once will let you issue commands such as docker-compose up -d and the docker-compose container will do its job behind the scenes.","title":"Recommended method"},{"location":"images/docker-docker-compose/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-docker-compose/#support-info","text":"Shell access whilst the container is running: docker exec -it docker-compose /bin/bash To monitor the logs of the container in realtime: docker logs -f docker-compose container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' docker-compose image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/docker-compose:latest","title":"Support Info"},{"location":"images/docker-docker-compose/#updating-info","text":"Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image. Below are the instructions for updating containers:","title":"Updating Info"},{"location":"images/docker-docker-compose/#via-docker-run","text":"Update the image: docker pull lscr.io/linuxserver/docker-compose:latest You can also remove the old dangling images: docker image prune","title":"Via Docker Run"},{"location":"images/docker-docker-compose/#building-locally","text":"If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-docker-compose.git cd docker-docker-compose docker build \\ --no-cache \\ --pull \\ -t lscr.io/linuxserver/docker-compose:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 .","title":"Building locally"},{"location":"images/docker-docker-compose/#versions","text":"15.03.22: - Add v2 branch. Change master to only fetch v1 releases. Change alpine to only fetch v1 releases. Rebase master to focal. Rebase alpine to 3.15. 17.12.20: - Update run.sh with formatting changes. 04.10.20: - Update run.sh with changes from upstream. 31.08.20: - Update tox and virtualenv. 31.07.20: - Add support for global env var DOCKER_COMPOSE_IMAGE_TAG in the run.sh script. 06.07.20: - Publish docker-compose and docker-cli binaries in Github releases. 01.07.20: - Release alpine based images at alpine tag. 04.06.20: - Bump docker-cli to 19.03.8, auto-detect python3 version. 19.05.20: - Initial Release.","title":"Versions"},{"location":"images/docker-dokuwiki/","text":"linuxserver/dokuwiki Dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in access controls and authentication connectors make DokuWiki especially useful in the enterprise context and the large number of plugins contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/dokuwiki:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Upon first install go to http://$IP:$PORT/install.php once you have completed the setup, restart the container, login as admin and set \"Use nice URLs\" in the admin/Configuration Settings panel to .htaccess and tick Use slash as namespace separator in URLs to enable nice URLs you will find the webui at http://$IP:$PORT/ , for more info see Dokuwiki Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: dokuwiki: image: lscr.io/linuxserver/dokuwiki:latest container_name: dokuwiki environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 80:80 - 443:443 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=dokuwiki \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/dokuwiki:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Application HTTP Port 443 #optional Application HTTPS Port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it dokuwiki /bin/bash To monitor the logs of the container in realtime: docker logs -f dokuwiki Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' dokuwiki Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/dokuwiki:latest Versions 11.13.22: - Move lib/images/smileys/local and lib/images/interwiki outside of the container for user defined smiley and interwiki icon support. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 20.07.21: - Add php7-dom, fixes minor issues in sprintdoc template. 15.04.21: - Add vendor folder to deny list. 21.02.21: - Store search index outside of container, set absolute (default) path for savedir . 23.01.21: - Rebasing to alpine 3.13. 28.09.20: - Add php7-pdo_sqlite and php7-sqlite3. 23.09.20: - Fix php-local.ini bug introduced in the prior PR. 14.09.20: - Rebase to alpine 3.12. Add php7-ctype, php7-curl, php7-pdo_mysql, php7-pdo_pgsql, php7-pecl-imagick and php7-iconv. Bump upload max filesize and post max size to 100MB. Remove deprecated APP_URL env var. Fix breaking addons. 19.12.19: - Rebasing to alpine 3.11. 01.12.19: - Add php7-ldap package to support LDAP authentication. 28.05.19: - Initial Release.","title":"dokuwiki"},{"location":"images/docker-dokuwiki/#linuxserverdokuwiki","text":"Dokuwiki is a simple to use and highly versatile Open Source wiki software that doesn't require a database. It is loved by users for its clean and readable syntax. The ease of maintenance, backup and integration makes it an administrator's favorite. Built in access controls and authentication connectors make DokuWiki especially useful in the enterprise context and the large number of plugins contributed by its vibrant community allow for a broad range of use cases beyond a traditional wiki.","title":"linuxserver/dokuwiki"},{"location":"images/docker-dokuwiki/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/dokuwiki:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-dokuwiki/#application-setup","text":"Upon first install go to http://$IP:$PORT/install.php once you have completed the setup, restart the container, login as admin and set \"Use nice URLs\" in the admin/Configuration Settings panel to .htaccess and tick Use slash as namespace separator in URLs to enable nice URLs you will find the webui at http://$IP:$PORT/ , for more info see Dokuwiki","title":"Application Setup"},{"location":"images/docker-dokuwiki/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-dokuwiki/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: dokuwiki: image: lscr.io/linuxserver/dokuwiki:latest container_name: dokuwiki environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 80:80 - 443:443 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-dokuwiki/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=dokuwiki \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/dokuwiki:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-dokuwiki/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-dokuwiki/#ports-p","text":"Parameter Function 80 Application HTTP Port 443 #optional Application HTTPS Port","title":"Ports (-p)"},{"location":"images/docker-dokuwiki/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-dokuwiki/#volume-mappings-v","text":"Volume Function /config Configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-dokuwiki/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-dokuwiki/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-dokuwiki/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-dokuwiki/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-dokuwiki/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-dokuwiki/#support-info","text":"Shell access whilst the container is running: docker exec -it dokuwiki /bin/bash To monitor the logs of the container in realtime: docker logs -f dokuwiki Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' dokuwiki Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/dokuwiki:latest","title":"Support Info"},{"location":"images/docker-dokuwiki/#versions","text":"11.13.22: - Move lib/images/smileys/local and lib/images/interwiki outside of the container for user defined smiley and interwiki icon support. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 20.07.21: - Add php7-dom, fixes minor issues in sprintdoc template. 15.04.21: - Add vendor folder to deny list. 21.02.21: - Store search index outside of container, set absolute (default) path for savedir . 23.01.21: - Rebasing to alpine 3.13. 28.09.20: - Add php7-pdo_sqlite and php7-sqlite3. 23.09.20: - Fix php-local.ini bug introduced in the prior PR. 14.09.20: - Rebase to alpine 3.12. Add php7-ctype, php7-curl, php7-pdo_mysql, php7-pdo_pgsql, php7-pecl-imagick and php7-iconv. Bump upload max filesize and post max size to 100MB. Remove deprecated APP_URL env var. Fix breaking addons. 19.12.19: - Rebasing to alpine 3.11. 01.12.19: - Add php7-ldap package to support LDAP authentication. 28.05.19: - Initial Release.","title":"Versions"},{"location":"images/docker-domoticz/","text":"linuxserver/domoticz Domoticz is a Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. Notifications/Alerts can be sent to any mobile device. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/domoticz:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup To configure Domoticz, go to the IP of your docker host on the port you configured (default 8080), and add your hardware in Setup > Hardware. The user manual is available at www.domoticz.com Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: domoticz: image: lscr.io/linuxserver/domoticz:latest container_name: domoticz environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - WEBROOT=domoticz #optional - DBASE= #optional volumes: - :/config ports: - 8080:8080 - 6144:6144 - 1443:1443 devices: - path to device:path to device restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=domoticz \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e WEBROOT=domoticz `#optional` \\ -e DBASE= `#optional` \\ -p 8080:8080 \\ -p 6144:6144 \\ -p 1443:1443 \\ -v :/config \\ --device path to device:path to device \\ --restart unless-stopped \\ lscr.io/linuxserver/domoticz:latest Passing Through USB Devices To get full use of Domoticz, you probably have a USB device you want to pass through. To figure out which device to pass through, you have to connect the device and look in dmesg for the device node created. Issue the command 'dmesg | tail' after you connected your device and you should see something like below. usb 1-1.2: new full-speed USB device number 7 using ehci-pci ftdi_sio 1-1.2:1.0: FTDI USB Serial Device converter detected usb 1-1.2: Detected FT232RL usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0 As you can see above, the device node created is ttyUSB0. It does not say where, but it's almost always in /dev/. The correct tag for passing through this USB device is '--device /dev/ttyUSB0:/dev/ttyUSB0' Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 WebUI 6144 Domoticz communication port. 1443 Domoticz communication port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. WEBROOT=domoticz Sets webroot to domoticz for usage with subfolder reverse proxy. Not needed unless reverse proxying. DBASE= Sets path to database. Do not set unless you know what this does. Volume Mappings ( -v ) Volume Function /config Where Domoticz stores config files and data. Device Mappings ( --device ) Parameter Function path to device For passing through USB devices. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it domoticz /bin/bash To monitor the logs of the container in realtime: docker logs -f domoticz Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' domoticz Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/domoticz:latest Versions 15.10.22: - Remove deprecated legacy stable branches. 05.02.22: - Set default webroot to /. Add env. variable for setting custom databas path. 26.12.20: - Rebase to Ubuntu Focal, see here for troubleshooting armhf. 24.11.19: - Change to using domoticz builtin Lua and MQTT. 03.11.19: - Set capabilities for domoticz binary and move cmake from edge repo. 28.06.19: - Rebasing to alpine 3.10. Add iputils for ping. Fix typo in readme. Fix permissions for custom icons. 12.05.19: - Add boost dependencies and turn off static boost build. Bump to Alpine 3.9. 30.03.19: - Add env variable to set webroot. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 19.02.19: - Fix branch for version logic. 11.02.19: - Add pipeline logic and multi arch. 02.07.18: - Add openssh package. 01.07.18: - Fix backup/restore in webgui. 03.04.18: - Add dependencies for BroadlinkRM2 plugin. 20.01.18: - Move telldus core to repo to prevent build fail when source site goes down. 18.01.18: - Remove logging to syslog in the run command to prevent double logging. 04.01.18: - Deprecate cpu_core routine lack of scaling. 08.12.17: - Rebase to alpine 3.7. 26.11.17: - Use cpu core counting routine to speed up build time. 28.05.17: - Rebase to alpine 3.6. 26.02.17: - Add curl and replace openssl with libressl. 11.02.17: - Update README. 03.01.17: - Initial Release.","title":"domoticz"},{"location":"images/docker-domoticz/#linuxserverdomoticz","text":"Domoticz is a Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. Notifications/Alerts can be sent to any mobile device.","title":"linuxserver/domoticz"},{"location":"images/docker-domoticz/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/domoticz:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-domoticz/#application-setup","text":"To configure Domoticz, go to the IP of your docker host on the port you configured (default 8080), and add your hardware in Setup > Hardware. The user manual is available at www.domoticz.com","title":"Application Setup"},{"location":"images/docker-domoticz/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-domoticz/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: domoticz: image: lscr.io/linuxserver/domoticz:latest container_name: domoticz environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - WEBROOT=domoticz #optional - DBASE= #optional volumes: - :/config ports: - 8080:8080 - 6144:6144 - 1443:1443 devices: - path to device:path to device restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-domoticz/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=domoticz \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e WEBROOT=domoticz `#optional` \\ -e DBASE= `#optional` \\ -p 8080:8080 \\ -p 6144:6144 \\ -p 1443:1443 \\ -v :/config \\ --device path to device:path to device \\ --restart unless-stopped \\ lscr.io/linuxserver/domoticz:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-domoticz/#passing-through-usb-devices","text":"To get full use of Domoticz, you probably have a USB device you want to pass through. To figure out which device to pass through, you have to connect the device and look in dmesg for the device node created. Issue the command 'dmesg | tail' after you connected your device and you should see something like below. usb 1-1.2: new full-speed USB device number 7 using ehci-pci ftdi_sio 1-1.2:1.0: FTDI USB Serial Device converter detected usb 1-1.2: Detected FT232RL usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0 As you can see above, the device node created is ttyUSB0. It does not say where, but it's almost always in /dev/. The correct tag for passing through this USB device is '--device /dev/ttyUSB0:/dev/ttyUSB0'","title":"Passing Through USB Devices"},{"location":"images/docker-domoticz/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-domoticz/#ports-p","text":"Parameter Function 8080 WebUI 6144 Domoticz communication port. 1443 Domoticz communication port.","title":"Ports (-p)"},{"location":"images/docker-domoticz/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. WEBROOT=domoticz Sets webroot to domoticz for usage with subfolder reverse proxy. Not needed unless reverse proxying. DBASE= Sets path to database. Do not set unless you know what this does.","title":"Environment Variables (-e)"},{"location":"images/docker-domoticz/#volume-mappings-v","text":"Volume Function /config Where Domoticz stores config files and data.","title":"Volume Mappings (-v)"},{"location":"images/docker-domoticz/#device-mappings-device","text":"Parameter Function path to device For passing through USB devices.","title":"Device Mappings (--device)"},{"location":"images/docker-domoticz/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-domoticz/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-domoticz/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-domoticz/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-domoticz/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-domoticz/#support-info","text":"Shell access whilst the container is running: docker exec -it domoticz /bin/bash To monitor the logs of the container in realtime: docker logs -f domoticz Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' domoticz Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/domoticz:latest","title":"Support Info"},{"location":"images/docker-domoticz/#versions","text":"15.10.22: - Remove deprecated legacy stable branches. 05.02.22: - Set default webroot to /. Add env. variable for setting custom databas path. 26.12.20: - Rebase to Ubuntu Focal, see here for troubleshooting armhf. 24.11.19: - Change to using domoticz builtin Lua and MQTT. 03.11.19: - Set capabilities for domoticz binary and move cmake from edge repo. 28.06.19: - Rebasing to alpine 3.10. Add iputils for ping. Fix typo in readme. Fix permissions for custom icons. 12.05.19: - Add boost dependencies and turn off static boost build. Bump to Alpine 3.9. 30.03.19: - Add env variable to set webroot. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 19.02.19: - Fix branch for version logic. 11.02.19: - Add pipeline logic and multi arch. 02.07.18: - Add openssh package. 01.07.18: - Fix backup/restore in webgui. 03.04.18: - Add dependencies for BroadlinkRM2 plugin. 20.01.18: - Move telldus core to repo to prevent build fail when source site goes down. 18.01.18: - Remove logging to syslog in the run command to prevent double logging. 04.01.18: - Deprecate cpu_core routine lack of scaling. 08.12.17: - Rebase to alpine 3.7. 26.11.17: - Use cpu core counting routine to speed up build time. 28.05.17: - Rebase to alpine 3.6. 26.02.17: - Add curl and replace openssl with libressl. 11.02.17: - Update README. 03.01.17: - Initial Release.","title":"Versions"},{"location":"images/docker-doplarr/","text":"linuxserver/doplarr Doplarr is an *arr request bot for Discord.\" Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/doplarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Application Setup Start by following the Discord setup instructions from Doplarr's readme. NOTE: The DISCORD__TOKEN environment variable is required to run the container! If you are using Overseerr, fill in the Overseerr API and URL variables, and leave the Radarr/Sonarr variables blank. If you are using Radarr/Sonarr (and not using Overseerr), fill in the Radarr/Sonarr API and URL variables, and leave the Overseerr variables blank. Extra java options can be passed with the JAVA_OPTS environment variable, eg -e JAVA_OPTS=\"-Xmx256m -Xms256m\" . Review and adjust any Optional Settings from Doplarr's readme. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: doplarr: image: lscr.io/linuxserver/doplarr:latest container_name: doplarr environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - DISCORD__TOKEN= - OVERSEERR__API= - OVERSEERR__URL=http://localhost:5055 - RADARR__API= - RADARR__URL=http://localhost:7878 - SONARR__API= - SONARR__URL=http://localhost:8989 - DISCORD__MAX_RESULTS=25 #optional - DISCORD__REQUESTED_MSG_STYLE=:plain #optional - SONARR__QUALITY_PROFILE= #optional - RADARR__QUALITY_PROFILE= #optional - SONARR__ROOTFOLDER= #optional - RADARR__ROOTFOLDER= #optional - SONARR__LANGUAGE_PROFILE= #optional - OVERSEERR__DEFAULT_ID= #optional - PARTIAL_SEASONS=true #optional - LOG_LEVEL=:info #optional - JAVA_OPTS= #optional volumes: - /path/to/appdata/config:/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=doplarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e DISCORD__TOKEN= \\ -e OVERSEERR__API= \\ -e OVERSEERR__URL=http://localhost:5055 \\ -e RADARR__API= \\ -e RADARR__URL=http://localhost:7878 \\ -e SONARR__API= \\ -e SONARR__URL=http://localhost:8989 \\ -e DISCORD__MAX_RESULTS=25 `#optional` \\ -e DISCORD__REQUESTED_MSG_STYLE=:plain `#optional` \\ -e SONARR__QUALITY_PROFILE= `#optional` \\ -e RADARR__QUALITY_PROFILE= `#optional` \\ -e SONARR__ROOTFOLDER= `#optional` \\ -e RADARR__ROOTFOLDER= `#optional` \\ -e SONARR__LANGUAGE_PROFILE= `#optional` \\ -e OVERSEERR__DEFAULT_ID= `#optional` \\ -e PARTIAL_SEASONS=true `#optional` \\ -e LOG_LEVEL=:info `#optional` \\ -e JAVA_OPTS= `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/doplarr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York DISCORD__TOKEN= Specify your discord bot token. OVERSEERR__API= Specify your Overseerr API key. Leave blank if using Radarr/Sonarr. OVERSEERR__URL=http://localhost:5055 Specify your Overseerr URL. Leave blank if using Radarr/Sonarr. RADARR__API= Specify your Radarr API key. Leave blank if using Overseerr. RADARR__URL=http://localhost:7878 Specify your Radarr URL. Leave blank if using Overseerr. SONARR__API= Specify your Sonarr API key. Leave blank if using Overseerr. SONARR__URL=http://localhost:8989 Specify your Sonarr URL. Leave blank if using Overseerr. DISCORD__MAX_RESULTS=25 Sets the maximum size of the search results selection DISCORD__REQUESTED_MSG_STYLE=:plain Sets the style of the request alert message. One of :plain :embed :none SONARR__QUALITY_PROFILE= The name of the quality profile to use by default for Sonarr RADARR__QUALITY_PROFILE= The name of the quality profile to use by default for Radarr SONARR__ROOTFOLDER= The root folder to use by default for Sonarr RADARR__ROOTFOLDER= The root folder to use by default for Radarr SONARR__LANGUAGE_PROFILE= The name of the language profile to use by default for Sonarr OVERSEERR__DEFAULT_ID= The Overseerr user id to use by default if there is no associated discord account for the requester PARTIAL_SEASONS=true Sets whether users can request partial seasons. LOG_LEVEL=:info The log level for the logging backend. This can be changed for debugging purposes. One of trace :debug :info :warn :error :fatal :report JAVA_OPTS= For passing additional java options. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it doplarr /bin/bash To monitor the logs of the container in realtime: docker logs -f doplarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' doplarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/doplarr:latest Versions 01.05.22: - Remove DISCORD__ROLE_ID environment variable, see Permissions Configuration . 30.01.22: - Variable adjustments. 30.01.22: - Initial Release.","title":"doplarr"},{"location":"images/docker-doplarr/#linuxserverdoplarr","text":"Doplarr is an *arr request bot for Discord.\"","title":"linuxserver/doplarr"},{"location":"images/docker-doplarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/doplarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-doplarr/#application-setup","text":"Start by following the Discord setup instructions from Doplarr's readme. NOTE: The DISCORD__TOKEN environment variable is required to run the container! If you are using Overseerr, fill in the Overseerr API and URL variables, and leave the Radarr/Sonarr variables blank. If you are using Radarr/Sonarr (and not using Overseerr), fill in the Radarr/Sonarr API and URL variables, and leave the Overseerr variables blank. Extra java options can be passed with the JAVA_OPTS environment variable, eg -e JAVA_OPTS=\"-Xmx256m -Xms256m\" . Review and adjust any Optional Settings from Doplarr's readme.","title":"Application Setup"},{"location":"images/docker-doplarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-doplarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: doplarr: image: lscr.io/linuxserver/doplarr:latest container_name: doplarr environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - DISCORD__TOKEN= - OVERSEERR__API= - OVERSEERR__URL=http://localhost:5055 - RADARR__API= - RADARR__URL=http://localhost:7878 - SONARR__API= - SONARR__URL=http://localhost:8989 - DISCORD__MAX_RESULTS=25 #optional - DISCORD__REQUESTED_MSG_STYLE=:plain #optional - SONARR__QUALITY_PROFILE= #optional - RADARR__QUALITY_PROFILE= #optional - SONARR__ROOTFOLDER= #optional - RADARR__ROOTFOLDER= #optional - SONARR__LANGUAGE_PROFILE= #optional - OVERSEERR__DEFAULT_ID= #optional - PARTIAL_SEASONS=true #optional - LOG_LEVEL=:info #optional - JAVA_OPTS= #optional volumes: - /path/to/appdata/config:/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-doplarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=doplarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e DISCORD__TOKEN= \\ -e OVERSEERR__API= \\ -e OVERSEERR__URL=http://localhost:5055 \\ -e RADARR__API= \\ -e RADARR__URL=http://localhost:7878 \\ -e SONARR__API= \\ -e SONARR__URL=http://localhost:8989 \\ -e DISCORD__MAX_RESULTS=25 `#optional` \\ -e DISCORD__REQUESTED_MSG_STYLE=:plain `#optional` \\ -e SONARR__QUALITY_PROFILE= `#optional` \\ -e RADARR__QUALITY_PROFILE= `#optional` \\ -e SONARR__ROOTFOLDER= `#optional` \\ -e RADARR__ROOTFOLDER= `#optional` \\ -e SONARR__LANGUAGE_PROFILE= `#optional` \\ -e OVERSEERR__DEFAULT_ID= `#optional` \\ -e PARTIAL_SEASONS=true `#optional` \\ -e LOG_LEVEL=:info `#optional` \\ -e JAVA_OPTS= `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/doplarr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-doplarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-doplarr/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-doplarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York DISCORD__TOKEN= Specify your discord bot token. OVERSEERR__API= Specify your Overseerr API key. Leave blank if using Radarr/Sonarr. OVERSEERR__URL=http://localhost:5055 Specify your Overseerr URL. Leave blank if using Radarr/Sonarr. RADARR__API= Specify your Radarr API key. Leave blank if using Overseerr. RADARR__URL=http://localhost:7878 Specify your Radarr URL. Leave blank if using Overseerr. SONARR__API= Specify your Sonarr API key. Leave blank if using Overseerr. SONARR__URL=http://localhost:8989 Specify your Sonarr URL. Leave blank if using Overseerr. DISCORD__MAX_RESULTS=25 Sets the maximum size of the search results selection DISCORD__REQUESTED_MSG_STYLE=:plain Sets the style of the request alert message. One of :plain :embed :none SONARR__QUALITY_PROFILE= The name of the quality profile to use by default for Sonarr RADARR__QUALITY_PROFILE= The name of the quality profile to use by default for Radarr SONARR__ROOTFOLDER= The root folder to use by default for Sonarr RADARR__ROOTFOLDER= The root folder to use by default for Radarr SONARR__LANGUAGE_PROFILE= The name of the language profile to use by default for Sonarr OVERSEERR__DEFAULT_ID= The Overseerr user id to use by default if there is no associated discord account for the requester PARTIAL_SEASONS=true Sets whether users can request partial seasons. LOG_LEVEL=:info The log level for the logging backend. This can be changed for debugging purposes. One of trace :debug :info :warn :error :fatal :report JAVA_OPTS= For passing additional java options.","title":"Environment Variables (-e)"},{"location":"images/docker-doplarr/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-doplarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-doplarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-doplarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-doplarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-doplarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-doplarr/#support-info","text":"Shell access whilst the container is running: docker exec -it doplarr /bin/bash To monitor the logs of the container in realtime: docker logs -f doplarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' doplarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/doplarr:latest","title":"Support Info"},{"location":"images/docker-doplarr/#versions","text":"01.05.22: - Remove DISCORD__ROLE_ID environment variable, see Permissions Configuration . 30.01.22: - Variable adjustments. 30.01.22: - Initial Release.","title":"Versions"},{"location":"images/docker-doublecommander/","text":"linuxserver/doublecommander Double Commander is a free cross platform open source file manager with two panels side by side. It is inspired by Total Commander and features some new ideas. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/doublecommander:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: doublecommander: image: lscr.io/linuxserver/doublecommander:latest container_name: doublecommander environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=doublecommander \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/doublecommander:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Double Commander desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings. /data Host data directories, mount as many as needed. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it doublecommander /bin/bash To monitor the logs of the container in realtime: docker logs -f doublecommander Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' doublecommander Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/doublecommander:latest Versions 16.09.22: - Migrate to s6v3. 15.02.21: - Rebase to Ubuntu Jammy. 14.12.21: - Rebase to Ubuntu focal. 25.03.20: - Initial release.","title":"doublecommander"},{"location":"images/docker-doublecommander/#linuxserverdoublecommander","text":"Double Commander is a free cross platform open source file manager with two panels side by side. It is inspired by Total Commander and features some new ideas.","title":"linuxserver/doublecommander"},{"location":"images/docker-doublecommander/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/doublecommander:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-doublecommander/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-doublecommander/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-doublecommander/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: doublecommander: image: lscr.io/linuxserver/doublecommander:latest container_name: doublecommander environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-doublecommander/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=doublecommander \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/doublecommander:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-doublecommander/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-doublecommander/#ports-p","text":"Parameter Function 3000 Double Commander desktop gui.","title":"Ports (-p)"},{"location":"images/docker-doublecommander/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-doublecommander/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings. /data Host data directories, mount as many as needed.","title":"Volume Mappings (-v)"},{"location":"images/docker-doublecommander/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-doublecommander/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-doublecommander/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-doublecommander/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-doublecommander/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-doublecommander/#support-info","text":"Shell access whilst the container is running: docker exec -it doublecommander /bin/bash To monitor the logs of the container in realtime: docker logs -f doublecommander Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' doublecommander Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/doublecommander:latest","title":"Support Info"},{"location":"images/docker-doublecommander/#versions","text":"16.09.22: - Migrate to s6v3. 15.02.21: - Rebase to Ubuntu Jammy. 14.12.21: - Rebase to Ubuntu focal. 25.03.20: - Initial release.","title":"Versions"},{"location":"images/docker-duckdns/","text":"linuxserver/duckdns Duckdns is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. The service is completely free, and doesn't require reactivation or forum posts to maintain its existence. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/duckdns:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Go to the duckdns website , register your subdomain(s) and retrieve your token Create a container with your subdomain(s) and token It will update your IP with the DuckDNS service every 5 minutes (with a random jitter) Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: duckdns: image: lscr.io/linuxserver/duckdns:latest container_name: duckdns environment: - PUID=1000 #optional - PGID=1000 #optional - TZ=Europe/London - SUBDOMAINS=subdomain1,subdomain2 - TOKEN=token - LOG_FILE=false #optional volumes: - /path/to/appdata/config:/config #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=duckdns \\ -e PUID=1000 `#optional` \\ -e PGID=1000 `#optional` \\ -e TZ=Europe/London \\ -e SUBDOMAINS=subdomain1,subdomain2 \\ -e TOKEN=token \\ -e LOG_FILE=false `#optional` \\ -v /path/to/appdata/config:/config `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/duckdns:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBDOMAINS=subdomain1,subdomain2 multiple subdomains allowed, comma separated, no spaces TOKEN=token DuckDNS token LOG_FILE=false Set to true to log to file (also need to map /config). Volume Mappings ( -v ) Volume Function /config Used in conjunction with logging to file. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it duckdns /bin/bash To monitor the logs of the container in realtime: docker logs -f duckdns Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' duckdns Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/duckdns:latest Versions 23.09.22: - Rebase to alpine 3.16 and s6v3. 19.09.22: - Rebase to alpine 3.15. 17.05.22: - Don't allow insecure connections and add timeout. 17.05.22: - Add random jitter to update time. 23.02.22: - Append to log file instead of overwriting every time. 03.05.21: - Re-adjust cron timings to prevent peak times, update code formatting. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 13.04.20: - Add donation links for DuckDNS. 19.12.19: - Rebasing to alpine 3.11. 24.09.19: - Fix perms on github and remove chmod that can stall the container. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 08.02.19: - Update readme with optional parameters. 10.12.18: - Fix docker compose example. 15.10.18: - Multi-arch image. 22.08.18: - Rebase to alpine 3.8. 08.12.17: - Rebase to alpine 3.7. 28.05.17: - Rebase to alpine 3.6. 09.02.17: - Rebase to alpine 3.5. 17.11.16: - Initial release.","title":"duckdns"},{"location":"images/docker-duckdns/#linuxserverduckdns","text":"Duckdns is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. The service is completely free, and doesn't require reactivation or forum posts to maintain its existence.","title":"linuxserver/duckdns"},{"location":"images/docker-duckdns/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/duckdns:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-duckdns/#application-setup","text":"Go to the duckdns website , register your subdomain(s) and retrieve your token Create a container with your subdomain(s) and token It will update your IP with the DuckDNS service every 5 minutes (with a random jitter)","title":"Application Setup"},{"location":"images/docker-duckdns/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-duckdns/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: duckdns: image: lscr.io/linuxserver/duckdns:latest container_name: duckdns environment: - PUID=1000 #optional - PGID=1000 #optional - TZ=Europe/London - SUBDOMAINS=subdomain1,subdomain2 - TOKEN=token - LOG_FILE=false #optional volumes: - /path/to/appdata/config:/config #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-duckdns/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=duckdns \\ -e PUID=1000 `#optional` \\ -e PGID=1000 `#optional` \\ -e TZ=Europe/London \\ -e SUBDOMAINS=subdomain1,subdomain2 \\ -e TOKEN=token \\ -e LOG_FILE=false `#optional` \\ -v /path/to/appdata/config:/config `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/duckdns:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-duckdns/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-duckdns/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-duckdns/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBDOMAINS=subdomain1,subdomain2 multiple subdomains allowed, comma separated, no spaces TOKEN=token DuckDNS token LOG_FILE=false Set to true to log to file (also need to map /config).","title":"Environment Variables (-e)"},{"location":"images/docker-duckdns/#volume-mappings-v","text":"Volume Function /config Used in conjunction with logging to file.","title":"Volume Mappings (-v)"},{"location":"images/docker-duckdns/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-duckdns/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-duckdns/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-duckdns/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-duckdns/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-duckdns/#support-info","text":"Shell access whilst the container is running: docker exec -it duckdns /bin/bash To monitor the logs of the container in realtime: docker logs -f duckdns Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' duckdns Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/duckdns:latest","title":"Support Info"},{"location":"images/docker-duckdns/#versions","text":"23.09.22: - Rebase to alpine 3.16 and s6v3. 19.09.22: - Rebase to alpine 3.15. 17.05.22: - Don't allow insecure connections and add timeout. 17.05.22: - Add random jitter to update time. 23.02.22: - Append to log file instead of overwriting every time. 03.05.21: - Re-adjust cron timings to prevent peak times, update code formatting. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 13.04.20: - Add donation links for DuckDNS. 19.12.19: - Rebasing to alpine 3.11. 24.09.19: - Fix perms on github and remove chmod that can stall the container. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 08.02.19: - Update readme with optional parameters. 10.12.18: - Fix docker compose example. 15.10.18: - Multi-arch image. 22.08.18: - Rebase to alpine 3.8. 08.12.17: - Rebase to alpine 3.7. 28.05.17: - Rebase to alpine 3.6. 09.02.17: - Rebase to alpine 3.5. 17.11.16: - Initial release.","title":"Versions"},{"location":"images/docker-duplicati/","text":"linuxserver/duplicati Duplicati works with standard protocols like FTP, SSH, WebDAV as well as popular services like Microsoft OneDrive, Amazon Cloud Drive & S3, Google Drive, box.com, Mega, hubiC and many others. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/duplicati:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Beta releases of Duplicati development \u2705 Canary releases of Duplicati Application Setup The webui is at :8200 , create backup jobs etc via the webui, for local backups select /backups as the destination. For more information see Duplicati . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: duplicati: image: lscr.io/linuxserver/duplicati:latest container_name: duplicati environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CLI_ARGS= #optional volumes: - :/config - :/backups - :/source ports: - 8200:8200 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=duplicati \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CLI_ARGS= `#optional` \\ -p 8200:8200 \\ -v :/config \\ -v :/backups \\ -v :/source \\ --restart unless-stopped \\ lscr.io/linuxserver/duplicati:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8200 http gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London CLI_ARGS= Optionally specify any CLI variables you want to launch the app with Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /backups Path to store local backups. /source Path to source for files to backup. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it duplicati /bin/bash To monitor the logs of the container in realtime: docker logs -f duplicati Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' duplicati Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/duplicati:latest Versions 03.08.22: - Deprecate armhf. 25.04.22: - Rebase to mono:focal. 01.08.19: - Rebase to Linuxserver LTS mono version. 16.07.19: - Allow for additional command line arguments in an environment variable. 28.06.19: - Rebase to bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 28.02.19: - Allow access from all hostnames, clarify info on image tags. 13.01.19: - Use jq instead of awk in dockerfiles. 11.01.19: - Multi-arch image. 09.12.17: - Fix continuation lines. 31.08.17: - Build only beta or release versions (thanks deasmi). 24.04.17: - Initial release.","title":"duplicati"},{"location":"images/docker-duplicati/#linuxserverduplicati","text":"Duplicati works with standard protocols like FTP, SSH, WebDAV as well as popular services like Microsoft OneDrive, Amazon Cloud Drive & S3, Google Drive, box.com, Mega, hubiC and many others.","title":"linuxserver/duplicati"},{"location":"images/docker-duplicati/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/duplicati:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-duplicati/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Beta releases of Duplicati development \u2705 Canary releases of Duplicati","title":"Version Tags"},{"location":"images/docker-duplicati/#application-setup","text":"The webui is at :8200 , create backup jobs etc via the webui, for local backups select /backups as the destination. For more information see Duplicati .","title":"Application Setup"},{"location":"images/docker-duplicati/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-duplicati/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: duplicati: image: lscr.io/linuxserver/duplicati:latest container_name: duplicati environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CLI_ARGS= #optional volumes: - :/config - :/backups - :/source ports: - 8200:8200 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-duplicati/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=duplicati \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CLI_ARGS= `#optional` \\ -p 8200:8200 \\ -v :/config \\ -v :/backups \\ -v :/source \\ --restart unless-stopped \\ lscr.io/linuxserver/duplicati:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-duplicati/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-duplicati/#ports-p","text":"Parameter Function 8200 http gui","title":"Ports (-p)"},{"location":"images/docker-duplicati/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London CLI_ARGS= Optionally specify any CLI variables you want to launch the app with","title":"Environment Variables (-e)"},{"location":"images/docker-duplicati/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /backups Path to store local backups. /source Path to source for files to backup.","title":"Volume Mappings (-v)"},{"location":"images/docker-duplicati/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-duplicati/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-duplicati/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-duplicati/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-duplicati/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-duplicati/#support-info","text":"Shell access whilst the container is running: docker exec -it duplicati /bin/bash To monitor the logs of the container in realtime: docker logs -f duplicati Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' duplicati Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/duplicati:latest","title":"Support Info"},{"location":"images/docker-duplicati/#versions","text":"03.08.22: - Deprecate armhf. 25.04.22: - Rebase to mono:focal. 01.08.19: - Rebase to Linuxserver LTS mono version. 16.07.19: - Allow for additional command line arguments in an environment variable. 28.06.19: - Rebase to bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 28.02.19: - Allow access from all hostnames, clarify info on image tags. 13.01.19: - Use jq instead of awk in dockerfiles. 11.01.19: - Multi-arch image. 09.12.17: - Fix continuation lines. 31.08.17: - Build only beta or release versions (thanks deasmi). 24.04.17: - Initial release.","title":"Versions"},{"location":"images/docker-emby/","text":"linuxserver/emby Emby organizes video, music, live TV, and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone emby Media Server. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/emby:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable emby releases beta \u2705 Beta emby releases Application Setup Webui can be found at http://:8096 Emby has very complete and verbose documentation located here . Hardware acceleration users for Intel Quicksync and AMD VAAPI will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the emby docker. OpenMAX (Raspberry Pi) Hardware acceleration users for Raspberry Pi OpenMAX will need to mount their /dev/vchiq video device inside of the container and their system OpenMax libs by passing the following options when running or creating the container: --device=/dev/vchiq:/dev/vchiq -v /opt/vc/lib:/opt/vc/lib V4L2 (Raspberry Pi) Hardware acceleration users for Raspberry Pi V4L2 will need to mount their /dev/video1X devices inside of the container by passing the following options when running or creating the container: --device=/dev/video10:/dev/video10 --device=/dev/video11:/dev/video11 --device=/dev/video12:/dev/video12 Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: emby: image: lscr.io/linuxserver/emby:latest container_name: emby environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/library:/config - /path/to/tvshows:/data/tvshows - /path/to/movies:/data/movies - /opt/vc/lib:/opt/vc/lib #optional ports: - 8096:8096 - 8920:8920 #optional devices: - /dev/dri:/dev/dri #optional - /dev/vchiq:/dev/vchiq #optional - /dev/video10:/dev/video10 #optional - /dev/video11:/dev/video11 #optional - /dev/video12:/dev/video12 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=emby \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8096:8096 \\ -p 8920:8920 `#optional` \\ -v /path/to/library:/config \\ -v /path/to/tvshows:/data/tvshows \\ -v /path/to/movies:/data/movies \\ -v /opt/vc/lib:/opt/vc/lib `#optional` \\ --device /dev/dri:/dev/dri `#optional` \\ --device /dev/vchiq:/dev/vchiq `#optional` \\ --device /dev/video10:/dev/video10 `#optional` \\ --device /dev/video11:/dev/video11 `#optional` \\ --device /dev/video12:/dev/video12 `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/emby:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8096 Http webUI. 8920 Https webUI (you need to setup your own certificate). Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Emby data storage location. This can grow very large, 50gb+ is likely for a large collection. /data/tvshows Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. /data/movies Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. /opt/vc/lib Path for Raspberry Pi OpenMAX libs optional . Device Mappings ( --device ) Parameter Function /dev/dri Only needed if you want to use your Intel or AMD GPU for hardware accelerated video encoding (vaapi). /dev/vchiq Only needed if you want to use your Raspberry Pi OpenMax video encoding (Bellagio). /dev/video10 Only needed if you want to use your Raspberry Pi V4L2 video encoding. /dev/video11 Only needed if you want to use your Raspberry Pi V4L2 video encoding. /dev/video12 Only needed if you want to use your Raspberry Pi V4L2 video encoding. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it emby /bin/bash To monitor the logs of the container in realtime: docker logs -f emby Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' emby Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/emby:latest Versions 26.09.22: - Update chown behavior. 18.09.22: - Migrate to s6v3, rebase to Ubuntu Jammy. 19.05.21: - Structural changes upstream. 17.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. Remove no longer used mapping for /transcode. 21.12.20: - Rebase to Focal, see here for troubleshooting armhf. 03.11.20: - Fix issue with missing samba folder. 13.11.20: - Fix issue with samba and ffmpeg. 03.07.20: - Add support for amd vaapi hw transcode. 29.02.20: - Add v4l2 support on Raspberry Pi. 26.02.20: - Add openmax support on Raspberry Pi. 15.02.20: - Allow restarting emby from the gui (also allows for auto restarts after addon updates). 02.10.19: - Improve permission fixing for render and dvb devices. 13.08.19: - Add umask environment variable. 24.06.19: - Fix typos in readme. 30.05.19: - Initial release.","title":"emby"},{"location":"images/docker-emby/#linuxserveremby","text":"Emby organizes video, music, live TV, and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone emby Media Server.","title":"linuxserver/emby"},{"location":"images/docker-emby/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/emby:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-emby/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable emby releases beta \u2705 Beta emby releases","title":"Version Tags"},{"location":"images/docker-emby/#application-setup","text":"Webui can be found at http://:8096 Emby has very complete and verbose documentation located here . Hardware acceleration users for Intel Quicksync and AMD VAAPI will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the emby docker.","title":"Application Setup"},{"location":"images/docker-emby/#openmax-raspberry-pi","text":"Hardware acceleration users for Raspberry Pi OpenMAX will need to mount their /dev/vchiq video device inside of the container and their system OpenMax libs by passing the following options when running or creating the container: --device=/dev/vchiq:/dev/vchiq -v /opt/vc/lib:/opt/vc/lib","title":"OpenMAX (Raspberry Pi)"},{"location":"images/docker-emby/#v4l2-raspberry-pi","text":"Hardware acceleration users for Raspberry Pi V4L2 will need to mount their /dev/video1X devices inside of the container by passing the following options when running or creating the container: --device=/dev/video10:/dev/video10 --device=/dev/video11:/dev/video11 --device=/dev/video12:/dev/video12","title":"V4L2 (Raspberry Pi)"},{"location":"images/docker-emby/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-emby/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: emby: image: lscr.io/linuxserver/emby:latest container_name: emby environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/library:/config - /path/to/tvshows:/data/tvshows - /path/to/movies:/data/movies - /opt/vc/lib:/opt/vc/lib #optional ports: - 8096:8096 - 8920:8920 #optional devices: - /dev/dri:/dev/dri #optional - /dev/vchiq:/dev/vchiq #optional - /dev/video10:/dev/video10 #optional - /dev/video11:/dev/video11 #optional - /dev/video12:/dev/video12 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-emby/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=emby \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8096:8096 \\ -p 8920:8920 `#optional` \\ -v /path/to/library:/config \\ -v /path/to/tvshows:/data/tvshows \\ -v /path/to/movies:/data/movies \\ -v /opt/vc/lib:/opt/vc/lib `#optional` \\ --device /dev/dri:/dev/dri `#optional` \\ --device /dev/vchiq:/dev/vchiq `#optional` \\ --device /dev/video10:/dev/video10 `#optional` \\ --device /dev/video11:/dev/video11 `#optional` \\ --device /dev/video12:/dev/video12 `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/emby:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-emby/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-emby/#ports-p","text":"Parameter Function 8096 Http webUI. 8920 Https webUI (you need to setup your own certificate).","title":"Ports (-p)"},{"location":"images/docker-emby/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-emby/#volume-mappings-v","text":"Volume Function /config Emby data storage location. This can grow very large, 50gb+ is likely for a large collection. /data/tvshows Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. /data/movies Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. /opt/vc/lib Path for Raspberry Pi OpenMAX libs optional .","title":"Volume Mappings (-v)"},{"location":"images/docker-emby/#device-mappings-device","text":"Parameter Function /dev/dri Only needed if you want to use your Intel or AMD GPU for hardware accelerated video encoding (vaapi). /dev/vchiq Only needed if you want to use your Raspberry Pi OpenMax video encoding (Bellagio). /dev/video10 Only needed if you want to use your Raspberry Pi V4L2 video encoding. /dev/video11 Only needed if you want to use your Raspberry Pi V4L2 video encoding. /dev/video12 Only needed if you want to use your Raspberry Pi V4L2 video encoding.","title":"Device Mappings (--device)"},{"location":"images/docker-emby/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-emby/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-emby/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-emby/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-emby/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-emby/#support-info","text":"Shell access whilst the container is running: docker exec -it emby /bin/bash To monitor the logs of the container in realtime: docker logs -f emby Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' emby Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/emby:latest","title":"Support Info"},{"location":"images/docker-emby/#versions","text":"26.09.22: - Update chown behavior. 18.09.22: - Migrate to s6v3, rebase to Ubuntu Jammy. 19.05.21: - Structural changes upstream. 17.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. Remove no longer used mapping for /transcode. 21.12.20: - Rebase to Focal, see here for troubleshooting armhf. 03.11.20: - Fix issue with missing samba folder. 13.11.20: - Fix issue with samba and ffmpeg. 03.07.20: - Add support for amd vaapi hw transcode. 29.02.20: - Add v4l2 support on Raspberry Pi. 26.02.20: - Add openmax support on Raspberry Pi. 15.02.20: - Allow restarting emby from the gui (also allows for auto restarts after addon updates). 02.10.19: - Improve permission fixing for render and dvb devices. 13.08.19: - Add umask environment variable. 24.06.19: - Fix typos in readme. 30.05.19: - Initial release.","title":"Versions"},{"location":"images/docker-embystat/","text":"linuxserver/embystat Embystat is a personal web server that can calculate all kinds of statistics from your (local) Emby server. Just install this on your server and let him calculate all kinds of fun stuff. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/embystat:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at :6555 . Follow the setup wizard on initial install. Then configure the required services. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: embystat: image: lscr.io/linuxserver/embystat:latest container_name: embystat environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 6555:6555 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=embystat \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6555:6555 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/embystat:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 6555 web gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it embystat /bin/bash To monitor the logs of the container in realtime: docker logs -f embystat Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' embystat Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/embystat:latest Versions 11.06.22: - Rebase to focal, update disable updates flag. 08.04.20: - Structural changes for beta18. 04.12.19: - Disable in app updates. 12.11.19: - Multi-arch builds. 10.09.19: - Initial Release.","title":"embystat"},{"location":"images/docker-embystat/#linuxserverembystat","text":"Embystat is a personal web server that can calculate all kinds of statistics from your (local) Emby server. Just install this on your server and let him calculate all kinds of fun stuff.","title":"linuxserver/embystat"},{"location":"images/docker-embystat/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/embystat:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-embystat/#application-setup","text":"Access the webui at :6555 . Follow the setup wizard on initial install. Then configure the required services.","title":"Application Setup"},{"location":"images/docker-embystat/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-embystat/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: embystat: image: lscr.io/linuxserver/embystat:latest container_name: embystat environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 6555:6555 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-embystat/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=embystat \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6555:6555 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/embystat:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-embystat/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-embystat/#ports-p","text":"Parameter Function 6555 web gui","title":"Ports (-p)"},{"location":"images/docker-embystat/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-embystat/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-embystat/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-embystat/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-embystat/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-embystat/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-embystat/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-embystat/#support-info","text":"Shell access whilst the container is running: docker exec -it embystat /bin/bash To monitor the logs of the container in realtime: docker logs -f embystat Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' embystat Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/embystat:latest","title":"Support Info"},{"location":"images/docker-embystat/#versions","text":"11.06.22: - Rebase to focal, update disable updates flag. 08.04.20: - Structural changes for beta18. 04.12.19: - Disable in app updates. 12.11.19: - Multi-arch builds. 10.09.19: - Initial Release.","title":"Versions"},{"location":"images/docker-emulatorjs/","text":"linuxserver/emulatorjs Emulatorjs - In browser web based emulation portable to nearly any device for many retro consoles. A mix of emulators is used between Libretro and EmulatorJS. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/emulatorjs:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The Backend can be accessed at: http://yourhost:3000/ The first thing you will need to do is click to download the default art/configs from this interface, this will setup a skeleton directory in your /data mount. From there add roms to the respective roms directories and follow the on screen instructions to add them to your web frontend running on port 80. The frontend application has been initially optimized around being used with a standard gamepad (more specifically for modern Xbox consoles that have chromium based Edge browsers). The navigation revolves around the up/down/left/right keys to browse the menus and launch games. Mobile browsers will function, just keep in mind compatibility will be reduced especially for CD based games. It is important to note that some of the current emulators used for this frontend are obfuscated code, efforts are being made to reverse engineer it but you should know it can potentially reach out to third party services if you manually enable features like netplay (this should never happen in a stock setup). The point of this message is that on top of the de-obfuscation effort there is also effort to stop using binary blobs and shift to built from source libretro emscripten blobs, for now this web based emulation stack is the best for useability and compatibility. We are in the process to transitioning to libretro cores for emulators, currently 27/30 emulators have been replaced. For Xbox users please click the select button a couple times after launching a game to ensure the B button does not trigger a \"back\" action in the browser. (official name \"view button\" it is the two small squares) Exiting the controller mode and back to browser controls can be triggered by holding the start button for 3 seconds. (official name \"menu button\" the three lines) You will be unable to use features like save states and modify controller layouts on the emulatorjs based emulators currently as I have not determined a methodology of re-entering controller mode once you exit it. All normal game saves will function given you exit the game play screen cleanly using the B button for back this includes multi disc games for psx. Your game saves are stored in browser storage by hostname so if you make any changes to your local hosted setup (port or IP) the saves will not follow with it. For libretro based emulators you can use the button combination start+select+L+R to access the libretro menu and change settings/save or load/etc. We know about most of the oddities like crackling sound for some emulators, rendering issues, and games unreliably auto launching to fullscreen. In general full CD games on the Xbox web browser do not seem to work due to their size if you have a chd/pbp less than 450 megs it will run. Edge on Xbox has some kind of undocumented ram limitation of about a gigabyte. Until all emulators are transitioned to libretro cores the oddities of using self hosted EmulatorJS will not be something that can or should be solved using hacky workarounds interacting with obfuscated code. Just keep in mind these are full blown machine emulators running in Javascript in a browser, do not expect bare metal performance. Mounting in existing rom directories can be achieved by pointing to the default folder structure, IE lets say you would like to mount your NES library: -v /path/to/nes/roms:/data/nes/roms The folder names are: * 3do * arcade * atari2600 * atari7800 * colecovision * doom * gb * gba * gbc * jaguar * lynx * msx * n64 * nds * nes * ngp * odyssey2 * pce * psx * sega32x * segaCD * segaGG * segaMD * segaMS * segaSaturn * segaSG * snes * vb * vectrex * ws Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: emulatorjs: image: lscr.io/linuxserver/emulatorjs:latest container_name: emulatorjs environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional volumes: - /path/to/config:/config - /path/to/data:/data ports: - 3000:3000 - 80:80 - 4001:4001 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=emulatorjs \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -p 3000:3000 \\ -p 80:80 \\ -p 4001:4001 `#optional` \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/emulatorjs:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Rom/artwork management interface, used to generate/manage config files and download artwork 80 Emulation frontend containing static web files used to browse and launch games 4001 IPFS peering port, if you want to participate in the P2P network to distribute frontend artwork please forward this to the Internet Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder for reverse proxies IE '/FOLDER/' Volume Mappings ( -v ) Volume Function /config Path to store user profiles /data Path to store roms/artwork Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it emulatorjs /bin/bash To monitor the logs of the container in realtime: docker logs -f emulatorjs Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' emulatorjs Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/emulatorjs:latest Versions 24.11.22: - Update IPFS links for chdman. 04.04.22: - Ingest pre-built chdman bins during build time. 23.02.22: - Update ingestion point for emulatorjs bins. 25.01.22: - Allow users to mount in existing rom directories. 14.01.22: - Add profile paths and rebase to Alpine 3.15. 04.01.22: - Add headers needed for Threaded emulators. 29.11.21: - Add wasm mime type to NGINX. 26.11.21: - Configure IPFS in a lower power mode, use homebuilt blobs for emu cores. 19.11.21: - Pin retroarch version. 14.11.21: - Update default cores to ingest. 23.10.21: - Initial release.","title":"emulatorjs"},{"location":"images/docker-emulatorjs/#linuxserveremulatorjs","text":"Emulatorjs - In browser web based emulation portable to nearly any device for many retro consoles. A mix of emulators is used between Libretro and EmulatorJS.","title":"linuxserver/emulatorjs"},{"location":"images/docker-emulatorjs/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/emulatorjs:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-emulatorjs/#application-setup","text":"The Backend can be accessed at: http://yourhost:3000/ The first thing you will need to do is click to download the default art/configs from this interface, this will setup a skeleton directory in your /data mount. From there add roms to the respective roms directories and follow the on screen instructions to add them to your web frontend running on port 80. The frontend application has been initially optimized around being used with a standard gamepad (more specifically for modern Xbox consoles that have chromium based Edge browsers). The navigation revolves around the up/down/left/right keys to browse the menus and launch games. Mobile browsers will function, just keep in mind compatibility will be reduced especially for CD based games. It is important to note that some of the current emulators used for this frontend are obfuscated code, efforts are being made to reverse engineer it but you should know it can potentially reach out to third party services if you manually enable features like netplay (this should never happen in a stock setup). The point of this message is that on top of the de-obfuscation effort there is also effort to stop using binary blobs and shift to built from source libretro emscripten blobs, for now this web based emulation stack is the best for useability and compatibility. We are in the process to transitioning to libretro cores for emulators, currently 27/30 emulators have been replaced. For Xbox users please click the select button a couple times after launching a game to ensure the B button does not trigger a \"back\" action in the browser. (official name \"view button\" it is the two small squares) Exiting the controller mode and back to browser controls can be triggered by holding the start button for 3 seconds. (official name \"menu button\" the three lines) You will be unable to use features like save states and modify controller layouts on the emulatorjs based emulators currently as I have not determined a methodology of re-entering controller mode once you exit it. All normal game saves will function given you exit the game play screen cleanly using the B button for back this includes multi disc games for psx. Your game saves are stored in browser storage by hostname so if you make any changes to your local hosted setup (port or IP) the saves will not follow with it. For libretro based emulators you can use the button combination start+select+L+R to access the libretro menu and change settings/save or load/etc. We know about most of the oddities like crackling sound for some emulators, rendering issues, and games unreliably auto launching to fullscreen. In general full CD games on the Xbox web browser do not seem to work due to their size if you have a chd/pbp less than 450 megs it will run. Edge on Xbox has some kind of undocumented ram limitation of about a gigabyte. Until all emulators are transitioned to libretro cores the oddities of using self hosted EmulatorJS will not be something that can or should be solved using hacky workarounds interacting with obfuscated code. Just keep in mind these are full blown machine emulators running in Javascript in a browser, do not expect bare metal performance. Mounting in existing rom directories can be achieved by pointing to the default folder structure, IE lets say you would like to mount your NES library: -v /path/to/nes/roms:/data/nes/roms The folder names are: * 3do * arcade * atari2600 * atari7800 * colecovision * doom * gb * gba * gbc * jaguar * lynx * msx * n64 * nds * nes * ngp * odyssey2 * pce * psx * sega32x * segaCD * segaGG * segaMD * segaMS * segaSaturn * segaSG * snes * vb * vectrex * ws","title":"Application Setup"},{"location":"images/docker-emulatorjs/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-emulatorjs/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: emulatorjs: image: lscr.io/linuxserver/emulatorjs:latest container_name: emulatorjs environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional volumes: - /path/to/config:/config - /path/to/data:/data ports: - 3000:3000 - 80:80 - 4001:4001 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-emulatorjs/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=emulatorjs \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -p 3000:3000 \\ -p 80:80 \\ -p 4001:4001 `#optional` \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/emulatorjs:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-emulatorjs/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-emulatorjs/#ports-p","text":"Parameter Function 3000 Rom/artwork management interface, used to generate/manage config files and download artwork 80 Emulation frontend containing static web files used to browse and launch games 4001 IPFS peering port, if you want to participate in the P2P network to distribute frontend artwork please forward this to the Internet","title":"Ports (-p)"},{"location":"images/docker-emulatorjs/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder for reverse proxies IE '/FOLDER/'","title":"Environment Variables (-e)"},{"location":"images/docker-emulatorjs/#volume-mappings-v","text":"Volume Function /config Path to store user profiles /data Path to store roms/artwork","title":"Volume Mappings (-v)"},{"location":"images/docker-emulatorjs/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-emulatorjs/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-emulatorjs/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-emulatorjs/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-emulatorjs/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-emulatorjs/#support-info","text":"Shell access whilst the container is running: docker exec -it emulatorjs /bin/bash To monitor the logs of the container in realtime: docker logs -f emulatorjs Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' emulatorjs Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/emulatorjs:latest","title":"Support Info"},{"location":"images/docker-emulatorjs/#versions","text":"24.11.22: - Update IPFS links for chdman. 04.04.22: - Ingest pre-built chdman bins during build time. 23.02.22: - Update ingestion point for emulatorjs bins. 25.01.22: - Allow users to mount in existing rom directories. 14.01.22: - Add profile paths and rebase to Alpine 3.15. 04.01.22: - Add headers needed for Threaded emulators. 29.11.21: - Add wasm mime type to NGINX. 26.11.21: - Configure IPFS in a lower power mode, use homebuilt blobs for emu cores. 19.11.21: - Pin retroarch version. 14.11.21: - Update default cores to ingest. 23.10.21: - Initial release.","title":"Versions"},{"location":"images/docker-endlessh/","text":"linuxserver/endlessh Endlessh is an SSH tarpit that very slowly sends an endless, random SSH banner. It keeps SSH clients locked up for hours or even days at a time. The purpose is to put your real SSH server on another port and then let the script kiddies get stuck in this tarpit instead of bothering a real server. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/endlessh:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The app listens on the port mapped for ssh connections. To log to file, set the environment variable LOGFILE to true and map a volume for /config . The logs will be under /config/logs/endlessh . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: endlessh: image: lscr.io/linuxserver/endlessh:latest container_name: endlessh environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MSDELAY=10000 #optional - MAXLINES=32 #optional - MAXCLIENTS=4096 #optional - LOGFILE=false #optional - BINDFAMILY= #optional volumes: - /path/to/appdata:/config #optional ports: - 22:2222 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=endlessh \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MSDELAY=10000 `#optional` \\ -e MAXLINES=32 `#optional` \\ -e MAXCLIENTS=4096 `#optional` \\ -e LOGFILE=false `#optional` \\ -e BINDFAMILY= `#optional` \\ -p 22:2222 \\ -v /path/to/appdata:/config `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/endlessh:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 2222 ssh port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London MSDELAY=10000 The endless banner is sent one line at a time. This is the delay in milliseconds between individual lines. MAXLINES=32 The length of each line is randomized. This controls the maximum length of each line. Shorter lines may keep clients on for longer if they give up after a certain number of bytes. MAXCLIENTS=4096 Maximum number of connections to accept at a time. Connections beyond this are not immediately rejected, but will wait in the queue. LOGFILE=false By default, the app logs to container log. If this is set to true , the log will be output to file under /config/logs/endlessh ( /config needs to be mapped). BINDFAMILY= By default, the app binds to IPv4 and IPv6 addresses. Set it to 4 or 6 to bind to IPv4 only or IPv6 only, respectively. Leave blank to bind to both. Volume Mappings ( -v ) Volume Function /config Required if LOGFILE is set to true . Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it endlessh /bin/bash To monitor the logs of the container in realtime: docker logs -f endlessh Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' endlessh Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/endlessh:latest Versions 23.09.22: - Migrate to s6v3. 20.07.22: - Rebase to Alpine 3.16. 16.04.22: - Rebase to Alpine 3.15. 07.10.21: - Fix typo on MAXLINES var. 08.06.21: - Add BINDFAMILY option. 16.04.21: - Initial Release.","title":"endlessh"},{"location":"images/docker-endlessh/#linuxserverendlessh","text":"Endlessh is an SSH tarpit that very slowly sends an endless, random SSH banner. It keeps SSH clients locked up for hours or even days at a time. The purpose is to put your real SSH server on another port and then let the script kiddies get stuck in this tarpit instead of bothering a real server.","title":"linuxserver/endlessh"},{"location":"images/docker-endlessh/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/endlessh:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-endlessh/#application-setup","text":"The app listens on the port mapped for ssh connections. To log to file, set the environment variable LOGFILE to true and map a volume for /config . The logs will be under /config/logs/endlessh .","title":"Application Setup"},{"location":"images/docker-endlessh/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-endlessh/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: endlessh: image: lscr.io/linuxserver/endlessh:latest container_name: endlessh environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MSDELAY=10000 #optional - MAXLINES=32 #optional - MAXCLIENTS=4096 #optional - LOGFILE=false #optional - BINDFAMILY= #optional volumes: - /path/to/appdata:/config #optional ports: - 22:2222 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-endlessh/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=endlessh \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MSDELAY=10000 `#optional` \\ -e MAXLINES=32 `#optional` \\ -e MAXCLIENTS=4096 `#optional` \\ -e LOGFILE=false `#optional` \\ -e BINDFAMILY= `#optional` \\ -p 22:2222 \\ -v /path/to/appdata:/config `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/endlessh:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-endlessh/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-endlessh/#ports-p","text":"Parameter Function 2222 ssh port","title":"Ports (-p)"},{"location":"images/docker-endlessh/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London MSDELAY=10000 The endless banner is sent one line at a time. This is the delay in milliseconds between individual lines. MAXLINES=32 The length of each line is randomized. This controls the maximum length of each line. Shorter lines may keep clients on for longer if they give up after a certain number of bytes. MAXCLIENTS=4096 Maximum number of connections to accept at a time. Connections beyond this are not immediately rejected, but will wait in the queue. LOGFILE=false By default, the app logs to container log. If this is set to true , the log will be output to file under /config/logs/endlessh ( /config needs to be mapped). BINDFAMILY= By default, the app binds to IPv4 and IPv6 addresses. Set it to 4 or 6 to bind to IPv4 only or IPv6 only, respectively. Leave blank to bind to both.","title":"Environment Variables (-e)"},{"location":"images/docker-endlessh/#volume-mappings-v","text":"Volume Function /config Required if LOGFILE is set to true .","title":"Volume Mappings (-v)"},{"location":"images/docker-endlessh/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-endlessh/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-endlessh/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-endlessh/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-endlessh/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-endlessh/#support-info","text":"Shell access whilst the container is running: docker exec -it endlessh /bin/bash To monitor the logs of the container in realtime: docker logs -f endlessh Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' endlessh Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/endlessh:latest","title":"Support Info"},{"location":"images/docker-endlessh/#versions","text":"23.09.22: - Migrate to s6v3. 20.07.22: - Rebase to Alpine 3.16. 16.04.22: - Rebase to Alpine 3.15. 07.10.21: - Fix typo on MAXLINES var. 08.06.21: - Add BINDFAMILY option. 16.04.21: - Initial Release.","title":"Versions"},{"location":"images/docker-fail2ban/","text":"linuxserver/fail2ban Fail2ban is a daemon to ban hosts that cause multiple authentication errors. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/fail2ban:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This container is designed to allow fail2ban to function at the host level, as well as at the docker container level. If you are running applications on the host, you will need to set the chain to INPUT in the jail for that application. Configuration Files On first run, the container will create a number of folders and files in /config . The default configurations for fail2ban are all disabled by default. Please refer to the Configuration README , which can be viewed in our repository, or in your config folder at /config/fail2ban/README.md . Remote Logs All jails require the ability to read the application log files. We recommend mounting each application's log folder as a volume to the container (illustrated by the optional volumes in our documentation). Mounting individual log files can cause issues and is not recommended. The /remotelogs path is designed to act as a parent for all log files you would like fail2ban to be able to use. Each log file should be mounted in a subfolder underneath /remotelogs , ex: - /remotelogs/nginx/ would mount a folder containing the nginx logs to the container Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: fail2ban: image: lscr.io/linuxserver/fail2ban:latest container_name: fail2ban cap_add: - NET_ADMIN - NET_RAW network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata/config:/config - /var/log:/var/log:ro - /path/to/airsonic/log:/remotelogs/airsonic:ro #optional - /path/to/apache2/log:/remotelogs/apache2:ro #optional - /path/to/authelia/log:/remotelogs/authelia:ro #optional - /path/to/emby/log:/remotelogs/emby:ro #optional - /path/to/filebrowser/log:/remotelogs/filebrowser:ro #optional - /path/to/homeassistant/log:/remotelogs/homeassistant:ro #optional - /path/to/lighttpd/log:/remotelogs/lighttpd:ro #optional - /path/to/nextcloud/log:/remotelogs/nextcloud:ro #optional - /path/to/nginx/log:/remotelogs/nginx:ro #optional - /path/to/nzbget/log:/remotelogs/nzbget:ro #optional - /path/to/overseerr/log:/remotelogs/overseerr:ro #optional - /path/to/prowlarr/log:/remotelogs/prowlarr:ro #optional - /path/to/radarr/log:/remotelogs/radarr:ro #optional - /path/to/sabnzbd/log:/remotelogs/sabnzbd:ro #optional - /path/to/sonarr/log:/remotelogs/sonarr:ro #optional - /path/to/unificontroller/log:/remotelogs/unificontroller:ro #optional - /path/to/vaultwarden/log:/remotelogs/vaultwarden:ro #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=fail2ban \\ --net=host \\ --cap-add=NET_ADMIN \\ --cap-add=NET_RAW \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -v /path/to/appdata/config:/config \\ -v /var/log:/var/log:ro \\ -v /path/to/airsonic/log:/remotelogs/airsonic:ro `#optional` \\ -v /path/to/apache2/log:/remotelogs/apache2:ro `#optional` \\ -v /path/to/authelia/log:/remotelogs/authelia:ro `#optional` \\ -v /path/to/emby/log:/remotelogs/emby:ro `#optional` \\ -v /path/to/filebrowser/log:/remotelogs/filebrowser:ro `#optional` \\ -v /path/to/homeassistant/log:/remotelogs/homeassistant:ro `#optional` \\ -v /path/to/lighttpd/log:/remotelogs/lighttpd:ro `#optional` \\ -v /path/to/nextcloud/log:/remotelogs/nextcloud:ro `#optional` \\ -v /path/to/nginx/log:/remotelogs/nginx:ro `#optional` \\ -v /path/to/nzbget/log:/remotelogs/nzbget:ro `#optional` \\ -v /path/to/overseerr/log:/remotelogs/overseerr:ro `#optional` \\ -v /path/to/prowlarr/log:/remotelogs/prowlarr:ro `#optional` \\ -v /path/to/radarr/log:/remotelogs/radarr:ro `#optional` \\ -v /path/to/sabnzbd/log:/remotelogs/sabnzbd:ro `#optional` \\ -v /path/to/sonarr/log:/remotelogs/sonarr:ro `#optional` \\ -v /path/to/unificontroller/log:/remotelogs/unificontroller:ro `#optional` \\ -v /path/to/vaultwarden/log:/remotelogs/vaultwarden:ro `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/fail2ban:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Networking ( --net ) Parameter Function --net=host Shares host networking with container. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /var/log:ro Host logs. Mounted as Read Only. /remotelogs/airsonic:ro Optional path to airsonic log folder. Mounted as Read Only. /remotelogs/apache2:ro Optional path to apache2 log folder. Mounted as Read Only. /remotelogs/authelia:ro Optional path to authelia log folder. Mounted as Read Only. /remotelogs/emby:ro Optional path to emby log folder. Mounted as Read Only. /remotelogs/filebrowser:ro Optional path to filebrowser log folder. Mounted as Read Only. /remotelogs/homeassistant:ro Optional path to homeassistant log folder. Mounted as Read Only. /remotelogs/lighttpd:ro Optional path to lighttpd log folder. Mounted as Read Only. /remotelogs/nextcloud:ro Optional path to nextcloud log folder. Mounted as Read Only. /remotelogs/nginx:ro Optional path to nginx log folder. Mounted as Read Only. /remotelogs/nzbget:ro Optional path to nzbget log folder. Mounted as Read Only. /remotelogs/overseerr:ro Optional path to overseerr log folder. Mounted as Read Only. /remotelogs/prowlarr:ro Optional path to prowlarr log folder. Mounted as Read Only. /remotelogs/radarr:ro Optional path to radarr log folder. Mounted as Read Only. /remotelogs/sabnzbd:ro Optional path to sabnzbd log folder. Mounted as Read Only. /remotelogs/sonarr:ro Optional path to sonarr log folder. Mounted as Read Only. /remotelogs/unificontroller:ro Optional path to unificontroller log folder. Mounted as Read Only. /remotelogs/vaultwarden:ro Optional path to vaultwarden log folder. Mounted as Read Only. Miscellaneous Options Parameter Function Portainer notice {% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %} Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it fail2ban /bin/bash To monitor the logs of the container in realtime: docker logs -f fail2ban Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' fail2ban Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/fail2ban:latest Versions 15.12.22: - Rebase to Alpine 3.17, Add ssmtp and whois packages. Symlink config to allow live reloading. 25.08.22: - Update README to clarify remote log information. 09.08.22: - Initial Release.","title":"fail2ban"},{"location":"images/docker-fail2ban/#linuxserverfail2ban","text":"Fail2ban is a daemon to ban hosts that cause multiple authentication errors.","title":"linuxserver/fail2ban"},{"location":"images/docker-fail2ban/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/fail2ban:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-fail2ban/#application-setup","text":"This container is designed to allow fail2ban to function at the host level, as well as at the docker container level. If you are running applications on the host, you will need to set the chain to INPUT in the jail for that application.","title":"Application Setup"},{"location":"images/docker-fail2ban/#configuration-files","text":"On first run, the container will create a number of folders and files in /config . The default configurations for fail2ban are all disabled by default. Please refer to the Configuration README , which can be viewed in our repository, or in your config folder at /config/fail2ban/README.md .","title":"Configuration Files"},{"location":"images/docker-fail2ban/#remote-logs","text":"All jails require the ability to read the application log files. We recommend mounting each application's log folder as a volume to the container (illustrated by the optional volumes in our documentation). Mounting individual log files can cause issues and is not recommended. The /remotelogs path is designed to act as a parent for all log files you would like fail2ban to be able to use. Each log file should be mounted in a subfolder underneath /remotelogs , ex: - /remotelogs/nginx/ would mount a folder containing the nginx logs to the container","title":"Remote Logs"},{"location":"images/docker-fail2ban/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-fail2ban/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: fail2ban: image: lscr.io/linuxserver/fail2ban:latest container_name: fail2ban cap_add: - NET_ADMIN - NET_RAW network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata/config:/config - /var/log:/var/log:ro - /path/to/airsonic/log:/remotelogs/airsonic:ro #optional - /path/to/apache2/log:/remotelogs/apache2:ro #optional - /path/to/authelia/log:/remotelogs/authelia:ro #optional - /path/to/emby/log:/remotelogs/emby:ro #optional - /path/to/filebrowser/log:/remotelogs/filebrowser:ro #optional - /path/to/homeassistant/log:/remotelogs/homeassistant:ro #optional - /path/to/lighttpd/log:/remotelogs/lighttpd:ro #optional - /path/to/nextcloud/log:/remotelogs/nextcloud:ro #optional - /path/to/nginx/log:/remotelogs/nginx:ro #optional - /path/to/nzbget/log:/remotelogs/nzbget:ro #optional - /path/to/overseerr/log:/remotelogs/overseerr:ro #optional - /path/to/prowlarr/log:/remotelogs/prowlarr:ro #optional - /path/to/radarr/log:/remotelogs/radarr:ro #optional - /path/to/sabnzbd/log:/remotelogs/sabnzbd:ro #optional - /path/to/sonarr/log:/remotelogs/sonarr:ro #optional - /path/to/unificontroller/log:/remotelogs/unificontroller:ro #optional - /path/to/vaultwarden/log:/remotelogs/vaultwarden:ro #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-fail2ban/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=fail2ban \\ --net=host \\ --cap-add=NET_ADMIN \\ --cap-add=NET_RAW \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -v /path/to/appdata/config:/config \\ -v /var/log:/var/log:ro \\ -v /path/to/airsonic/log:/remotelogs/airsonic:ro `#optional` \\ -v /path/to/apache2/log:/remotelogs/apache2:ro `#optional` \\ -v /path/to/authelia/log:/remotelogs/authelia:ro `#optional` \\ -v /path/to/emby/log:/remotelogs/emby:ro `#optional` \\ -v /path/to/filebrowser/log:/remotelogs/filebrowser:ro `#optional` \\ -v /path/to/homeassistant/log:/remotelogs/homeassistant:ro `#optional` \\ -v /path/to/lighttpd/log:/remotelogs/lighttpd:ro `#optional` \\ -v /path/to/nextcloud/log:/remotelogs/nextcloud:ro `#optional` \\ -v /path/to/nginx/log:/remotelogs/nginx:ro `#optional` \\ -v /path/to/nzbget/log:/remotelogs/nzbget:ro `#optional` \\ -v /path/to/overseerr/log:/remotelogs/overseerr:ro `#optional` \\ -v /path/to/prowlarr/log:/remotelogs/prowlarr:ro `#optional` \\ -v /path/to/radarr/log:/remotelogs/radarr:ro `#optional` \\ -v /path/to/sabnzbd/log:/remotelogs/sabnzbd:ro `#optional` \\ -v /path/to/sonarr/log:/remotelogs/sonarr:ro `#optional` \\ -v /path/to/unificontroller/log:/remotelogs/unificontroller:ro `#optional` \\ -v /path/to/vaultwarden/log:/remotelogs/vaultwarden:ro `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/fail2ban:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-fail2ban/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-fail2ban/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-fail2ban/#networking-net","text":"Parameter Function --net=host Shares host networking with container.","title":"Networking (--net)"},{"location":"images/docker-fail2ban/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York","title":"Environment Variables (-e)"},{"location":"images/docker-fail2ban/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /var/log:ro Host logs. Mounted as Read Only. /remotelogs/airsonic:ro Optional path to airsonic log folder. Mounted as Read Only. /remotelogs/apache2:ro Optional path to apache2 log folder. Mounted as Read Only. /remotelogs/authelia:ro Optional path to authelia log folder. Mounted as Read Only. /remotelogs/emby:ro Optional path to emby log folder. Mounted as Read Only. /remotelogs/filebrowser:ro Optional path to filebrowser log folder. Mounted as Read Only. /remotelogs/homeassistant:ro Optional path to homeassistant log folder. Mounted as Read Only. /remotelogs/lighttpd:ro Optional path to lighttpd log folder. Mounted as Read Only. /remotelogs/nextcloud:ro Optional path to nextcloud log folder. Mounted as Read Only. /remotelogs/nginx:ro Optional path to nginx log folder. Mounted as Read Only. /remotelogs/nzbget:ro Optional path to nzbget log folder. Mounted as Read Only. /remotelogs/overseerr:ro Optional path to overseerr log folder. Mounted as Read Only. /remotelogs/prowlarr:ro Optional path to prowlarr log folder. Mounted as Read Only. /remotelogs/radarr:ro Optional path to radarr log folder. Mounted as Read Only. /remotelogs/sabnzbd:ro Optional path to sabnzbd log folder. Mounted as Read Only. /remotelogs/sonarr:ro Optional path to sonarr log folder. Mounted as Read Only. /remotelogs/unificontroller:ro Optional path to unificontroller log folder. Mounted as Read Only. /remotelogs/vaultwarden:ro Optional path to vaultwarden log folder. Mounted as Read Only.","title":"Volume Mappings (-v)"},{"location":"images/docker-fail2ban/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-fail2ban/#portainer-notice","text":"{% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %}","title":"Portainer notice"},{"location":"images/docker-fail2ban/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-fail2ban/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-fail2ban/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-fail2ban/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-fail2ban/#support-info","text":"Shell access whilst the container is running: docker exec -it fail2ban /bin/bash To monitor the logs of the container in realtime: docker logs -f fail2ban Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' fail2ban Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/fail2ban:latest","title":"Support Info"},{"location":"images/docker-fail2ban/#versions","text":"15.12.22: - Rebase to Alpine 3.17, Add ssmtp and whois packages. Symlink config to allow live reloading. 25.08.22: - Update README to clarify remote log information. 09.08.22: - Initial Release.","title":"Versions"},{"location":"images/docker-feed2toot/","text":"linuxserver/feed2toot Feed2toot automatically parses rss feeds, identifies new posts and posts them on the Mastodon social network. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/feed2toot:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Run docker run --rm -it -w /config -v /path/to/data:/config -e PUID=1000 -e PGID=1000 lscr.io/linuxserver/feed2toot /usr/bin/register_feed2toot_app to generate credential files (be sure to set the correct volume path and PUID/PGID values). Edit the feed2toot.ini in /config to configure your instance name and RSS feeds. See the feed2toot docs for more information. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: feed2toot: image: lscr.io/linuxserver/feed2toot:latest container_name: feed2toot environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - FEED_LIMIT=5 #optional volumes: - /path/to/data:/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=feed2toot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e FEED_LIMIT=5 `#optional` \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/feed2toot:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. FEED_LIMIT=5 Limit number of RSS entries published at each execution. Volume Mappings ( -v ) Volume Function /config Local path for feed2toot config files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it feed2toot /bin/bash To monitor the logs of the container in realtime: docker logs -f feed2toot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' feed2toot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/feed2toot:latest Versions 14.11.22: - Initial Release.","title":"feed2toot"},{"location":"images/docker-feed2toot/#linuxserverfeed2toot","text":"Feed2toot automatically parses rss feeds, identifies new posts and posts them on the Mastodon social network.","title":"linuxserver/feed2toot"},{"location":"images/docker-feed2toot/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/feed2toot:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-feed2toot/#application-setup","text":"Run docker run --rm -it -w /config -v /path/to/data:/config -e PUID=1000 -e PGID=1000 lscr.io/linuxserver/feed2toot /usr/bin/register_feed2toot_app to generate credential files (be sure to set the correct volume path and PUID/PGID values). Edit the feed2toot.ini in /config to configure your instance name and RSS feeds. See the feed2toot docs for more information.","title":"Application Setup"},{"location":"images/docker-feed2toot/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-feed2toot/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: feed2toot: image: lscr.io/linuxserver/feed2toot:latest container_name: feed2toot environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - FEED_LIMIT=5 #optional volumes: - /path/to/data:/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-feed2toot/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=feed2toot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e FEED_LIMIT=5 `#optional` \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/feed2toot:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-feed2toot/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-feed2toot/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-feed2toot/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. FEED_LIMIT=5 Limit number of RSS entries published at each execution.","title":"Environment Variables (-e)"},{"location":"images/docker-feed2toot/#volume-mappings-v","text":"Volume Function /config Local path for feed2toot config files.","title":"Volume Mappings (-v)"},{"location":"images/docker-feed2toot/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-feed2toot/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-feed2toot/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-feed2toot/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-feed2toot/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-feed2toot/#support-info","text":"Shell access whilst the container is running: docker exec -it feed2toot /bin/bash To monitor the logs of the container in realtime: docker logs -f feed2toot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' feed2toot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/feed2toot:latest","title":"Support Info"},{"location":"images/docker-feed2toot/#versions","text":"14.11.22: - Initial Release.","title":"Versions"},{"location":"images/docker-ffmpeg/","text":"The LinuxServer.io team brings you another container release featuring :- regular and timely application updates easy user mappings (PGID, PUID) custom base image with s6 overlay weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth regular security updates Find us at: * Blog - all the things you can do with our containers including How-To guides, opinions and much more! * Discord - realtime support / chat with the community and the team. * Discourse - post on our community forum. * Fleet - an online web interface which displays all of our maintained images. * Podcast - on hiatus. Coming back soon (late 2018). * Open Collective - please consider helping us by either donating or contributing to our budget FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ffmpeg:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Usage Unlike most of our container library this image is meant to be run ephemerally from the command line parsing user input for a custom FFmpeg command. You will need to understand some Docker basics to use this image and be familiar with how to construct an FFmpeg command. In the commands below we will be bind mounting our current working directory from the CLI to /config, the assumption is that input.mkv is in your current working directory. If an input file is detected we will run FFmpeg as that user/group so the output file will match it's permissions. The image supports Hardware acceleration on x86 pay close attention to the variables for the examples below. Basic Transcode docker run --rm -it \\ -v $(pwd):/config \\ linuxserver/ffmpeg \\ -i /config/input.mkv \\ -c:v libx264 \\ -b:v 4M \\ -vf scale=1280:720 \\ -c:a copy \\ /config/output.mkv Hardware accelerated (VAAPI) docker run --rm -it \\ --device=/dev/dri:/dev/dri \\ -v $(pwd):/config \\ linuxserver/ffmpeg \\ -vaapi_device /dev/dri/renderD128 \\ -i /config/input.mkv \\ -c:v h264_vaapi \\ -b:v 4M \\ -vf 'format=nv12|vaapi,hwupload,scale_vaapi=w=1280:h=720' \\ -c:a copy \\ /config/output.mkv Nvidia Hardware accelerated docker run --rm -it \\ --runtime=nvidia \\ -v $(pwd):/config \\ linuxserver/ffmpeg \\ -hwaccel nvdec \\ -i /config/input.mkv \\ -c:v h264_nvenc \\ -b:v 4M \\ -vf scale=1280:720 \\ -c:a copy \\ /config/output.mkv Building locally If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-ffmpeg.git cd docker-ffmpeg docker build \\ --no-cache \\ --pull \\ -t linuxserver/ffmpeg:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 . Versions 19.06.22: - Rebase to Focal. 26.08.21: - Add support for libOpenCL. 01.07.21: - Bump to 4.4. 17.06.20: - Bump to 4.3. 16.06.20: - Add support for libvmaf. 01.08.19: - Initial release.","title":"ffmpeg"},{"location":"images/docker-ffmpeg/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ffmpeg:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-ffmpeg/#usage","text":"Unlike most of our container library this image is meant to be run ephemerally from the command line parsing user input for a custom FFmpeg command. You will need to understand some Docker basics to use this image and be familiar with how to construct an FFmpeg command. In the commands below we will be bind mounting our current working directory from the CLI to /config, the assumption is that input.mkv is in your current working directory. If an input file is detected we will run FFmpeg as that user/group so the output file will match it's permissions. The image supports Hardware acceleration on x86 pay close attention to the variables for the examples below.","title":"Usage"},{"location":"images/docker-ffmpeg/#basic-transcode","text":"docker run --rm -it \\ -v $(pwd):/config \\ linuxserver/ffmpeg \\ -i /config/input.mkv \\ -c:v libx264 \\ -b:v 4M \\ -vf scale=1280:720 \\ -c:a copy \\ /config/output.mkv","title":"Basic Transcode"},{"location":"images/docker-ffmpeg/#hardware-accelerated-vaapi","text":"docker run --rm -it \\ --device=/dev/dri:/dev/dri \\ -v $(pwd):/config \\ linuxserver/ffmpeg \\ -vaapi_device /dev/dri/renderD128 \\ -i /config/input.mkv \\ -c:v h264_vaapi \\ -b:v 4M \\ -vf 'format=nv12|vaapi,hwupload,scale_vaapi=w=1280:h=720' \\ -c:a copy \\ /config/output.mkv","title":"Hardware accelerated (VAAPI)"},{"location":"images/docker-ffmpeg/#nvidia-hardware-accelerated","text":"docker run --rm -it \\ --runtime=nvidia \\ -v $(pwd):/config \\ linuxserver/ffmpeg \\ -hwaccel nvdec \\ -i /config/input.mkv \\ -c:v h264_nvenc \\ -b:v 4M \\ -vf scale=1280:720 \\ -c:a copy \\ /config/output.mkv","title":"Nvidia Hardware accelerated"},{"location":"images/docker-ffmpeg/#building-locally","text":"If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-ffmpeg.git cd docker-ffmpeg docker build \\ --no-cache \\ --pull \\ -t linuxserver/ffmpeg:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 .","title":"Building locally"},{"location":"images/docker-ffmpeg/#versions","text":"19.06.22: - Rebase to Focal. 26.08.21: - Add support for libOpenCL. 01.07.21: - Bump to 4.4. 17.06.20: - Bump to 4.3. 16.06.20: - Add support for libvmaf. 01.08.19: - Initial release.","title":"Versions"},{"location":"images/docker-filezilla/","text":"linuxserver/filezilla FIleZilla Client is a fast and reliable cross-platform FTP, FTPS and SFTP client with lots of useful features and an intuitive graphical user interface. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/filezilla:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: filezilla: image: lscr.io/linuxserver/filezilla:latest container_name: filezilla security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=filezilla \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/filezilla:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 FileZilla desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores local files and settings Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it filezilla /bin/bash To monitor the logs of the container in realtime: docker logs -f filezilla Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' filezilla Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/filezilla:latest Versions 21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 23.12.21: - Rebase to Alpine 3.15. 26.09.21: - Rebase to Alpine 3.14. 18.04.21: - Initial release.","title":"filezilla"},{"location":"images/docker-filezilla/#linuxserverfilezilla","text":"FIleZilla Client is a fast and reliable cross-platform FTP, FTPS and SFTP client with lots of useful features and an intuitive graphical user interface.","title":"linuxserver/filezilla"},{"location":"images/docker-filezilla/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/filezilla:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-filezilla/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-filezilla/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-filezilla/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: filezilla: image: lscr.io/linuxserver/filezilla:latest container_name: filezilla security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-filezilla/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=filezilla \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/filezilla:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-filezilla/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-filezilla/#ports-p","text":"Parameter Function 3000 FileZilla desktop gui.","title":"Ports (-p)"},{"location":"images/docker-filezilla/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-filezilla/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores local files and settings","title":"Volume Mappings (-v)"},{"location":"images/docker-filezilla/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-filezilla/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-filezilla/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-filezilla/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-filezilla/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-filezilla/#support-info","text":"Shell access whilst the container is running: docker exec -it filezilla /bin/bash To monitor the logs of the container in realtime: docker logs -f filezilla Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' filezilla Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/filezilla:latest","title":"Support Info"},{"location":"images/docker-filezilla/#versions","text":"21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 23.12.21: - Rebase to Alpine 3.15. 26.09.21: - Rebase to Alpine 3.14. 18.04.21: - Initial release.","title":"Versions"},{"location":"images/docker-firefox/","text":"linuxserver/firefox Firefox Browser, also known as Mozilla Firefox or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. Firefox uses the Gecko layout engine to render web pages, which implements current and anticipated web standards. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/firefox:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: firefox: image: lscr.io/linuxserver/firefox:latest container_name: firefox security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 shm_size: \"1gb\" restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=firefox \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --shm-size=\"1gb\" \\ --restart unless-stopped \\ lscr.io/linuxserver/firefox:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Firefox desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores local files and settings Miscellaneous Options Parameter Function --shm-size= This is needed for any modern website to function like youtube. --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it firefox /bin/bash To monitor the logs of the container in realtime: docker logs -f firefox Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' firefox Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/firefox:latest Versions 21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 23.12.21: - Rebase to Alpine 3.15, stop using ESR. 26.09.21: - Rebase to Alpine 3.14. 19.04.21: - Initial release.","title":"firefox"},{"location":"images/docker-firefox/#linuxserverfirefox","text":"Firefox Browser, also known as Mozilla Firefox or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. Firefox uses the Gecko layout engine to render web pages, which implements current and anticipated web standards.","title":"linuxserver/firefox"},{"location":"images/docker-firefox/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/firefox:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-firefox/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-firefox/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-firefox/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: firefox: image: lscr.io/linuxserver/firefox:latest container_name: firefox security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 shm_size: \"1gb\" restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-firefox/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=firefox \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --shm-size=\"1gb\" \\ --restart unless-stopped \\ lscr.io/linuxserver/firefox:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-firefox/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-firefox/#ports-p","text":"Parameter Function 3000 Firefox desktop gui.","title":"Ports (-p)"},{"location":"images/docker-firefox/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-firefox/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores local files and settings","title":"Volume Mappings (-v)"},{"location":"images/docker-firefox/#miscellaneous-options","text":"Parameter Function --shm-size= This is needed for any modern website to function like youtube. --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-firefox/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-firefox/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-firefox/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-firefox/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-firefox/#support-info","text":"Shell access whilst the container is running: docker exec -it firefox /bin/bash To monitor the logs of the container in realtime: docker logs -f firefox Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' firefox Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/firefox:latest","title":"Support Info"},{"location":"images/docker-firefox/#versions","text":"21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 23.12.21: - Rebase to Alpine 3.15, stop using ESR. 26.09.21: - Rebase to Alpine 3.14. 19.04.21: - Initial release.","title":"Versions"},{"location":"images/docker-fleet/","text":"linuxserver/fleet Fleet provides an online web interface which displays a set of maintained images from one or more owned repositories. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/fleet:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Navigate to http://your_ip_here:8080 to display the home page. If DATABASE is selected as the preferred authentication process, ensure that you set up an initial user via http://your_ip_here:8080/setup . Once done, that page will no longer be available. A restart is preferable as it will remove the page altogether. Once complete, you can log into the app via http://your_ip_here:8080/login to manage your repositories. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: fleet: image: lscr.io/linuxserver/fleet:latest container_name: fleet environment: - PUID=1000 - PGID=1000 - fleet_admin_authentication_type=DATABASE - fleet_database_url=jdbc:mariadb://:3306/fleet - fleet_database_username=fleet_user - fleet_database_password=dbuserpassword - fleet_admin_secret=randomstring #optional volumes: - :/config ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=fleet \\ -e PUID=1000 \\ -e PGID=1000 \\ -e fleet_admin_authentication_type=DATABASE \\ -e fleet_database_url=jdbc:mariadb://:3306/fleet \\ -e fleet_database_username=fleet_user \\ -e fleet_database_password=dbuserpassword \\ -e fleet_admin_secret=randomstring `#optional` \\ -p 8080:8080 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/fleet:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Http port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation fleet_admin_authentication_type=DATABASE A switch to define how Fleet manages user logins. If set to DATABASE, see the related optional params. Can be set to either DATABASE or PROPERTIES. fleet_database_url=jdbc:mariadb://:3306/fleet The full JDBC connection string to the Fleet database fleet_database_username=fleet_user The username with the relevant GRANT permissions for the database fleet_database_password=dbuserpassword The database user's password. fleet_admin_secret=randomstring A string used as part of the password key derivation process. Volume Mappings ( -v ) Volume Function /config The primary config file and rolling log files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it fleet /bin/bash To monitor the logs of the container in realtime: docker logs -f fleet Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' fleet Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/fleet:latest Versions 02.05.22: - Rebase to Alpine 3.15. 13.12.21: - Add mitigations for CVE-2021-44228 26.04.20: - Updated to keep in line with v2.0.0 branch of Fleet 19.12.19: - Rebasing to alpine 3.11. 02.07.19: - Rebasing to alpine 3.10. 02.07.19: - Stop container if fleet fails. 19.05.19: - Use new base images for arm versions. 01.04.19: - Initial Release","title":"fleet"},{"location":"images/docker-fleet/#linuxserverfleet","text":"Fleet provides an online web interface which displays a set of maintained images from one or more owned repositories.","title":"linuxserver/fleet"},{"location":"images/docker-fleet/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/fleet:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-fleet/#application-setup","text":"Navigate to http://your_ip_here:8080 to display the home page. If DATABASE is selected as the preferred authentication process, ensure that you set up an initial user via http://your_ip_here:8080/setup . Once done, that page will no longer be available. A restart is preferable as it will remove the page altogether. Once complete, you can log into the app via http://your_ip_here:8080/login to manage your repositories.","title":"Application Setup"},{"location":"images/docker-fleet/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-fleet/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: fleet: image: lscr.io/linuxserver/fleet:latest container_name: fleet environment: - PUID=1000 - PGID=1000 - fleet_admin_authentication_type=DATABASE - fleet_database_url=jdbc:mariadb://:3306/fleet - fleet_database_username=fleet_user - fleet_database_password=dbuserpassword - fleet_admin_secret=randomstring #optional volumes: - :/config ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-fleet/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=fleet \\ -e PUID=1000 \\ -e PGID=1000 \\ -e fleet_admin_authentication_type=DATABASE \\ -e fleet_database_url=jdbc:mariadb://:3306/fleet \\ -e fleet_database_username=fleet_user \\ -e fleet_database_password=dbuserpassword \\ -e fleet_admin_secret=randomstring `#optional` \\ -p 8080:8080 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/fleet:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-fleet/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-fleet/#ports-p","text":"Parameter Function 8080 Http port","title":"Ports (-p)"},{"location":"images/docker-fleet/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation fleet_admin_authentication_type=DATABASE A switch to define how Fleet manages user logins. If set to DATABASE, see the related optional params. Can be set to either DATABASE or PROPERTIES. fleet_database_url=jdbc:mariadb://:3306/fleet The full JDBC connection string to the Fleet database fleet_database_username=fleet_user The username with the relevant GRANT permissions for the database fleet_database_password=dbuserpassword The database user's password. fleet_admin_secret=randomstring A string used as part of the password key derivation process.","title":"Environment Variables (-e)"},{"location":"images/docker-fleet/#volume-mappings-v","text":"Volume Function /config The primary config file and rolling log files.","title":"Volume Mappings (-v)"},{"location":"images/docker-fleet/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-fleet/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-fleet/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-fleet/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-fleet/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-fleet/#support-info","text":"Shell access whilst the container is running: docker exec -it fleet /bin/bash To monitor the logs of the container in realtime: docker logs -f fleet Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' fleet Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/fleet:latest","title":"Support Info"},{"location":"images/docker-fleet/#versions","text":"02.05.22: - Rebase to Alpine 3.15. 13.12.21: - Add mitigations for CVE-2021-44228 26.04.20: - Updated to keep in line with v2.0.0 branch of Fleet 19.12.19: - Rebasing to alpine 3.11. 02.07.19: - Rebasing to alpine 3.10. 02.07.19: - Stop container if fleet fails. 19.05.19: - Use new base images for arm versions. 01.04.19: - Initial Release","title":"Versions"},{"location":"images/docker-foldingathome/","text":"linuxserver/foldingathome Folding@home is a distributed computing project for simulating protein dynamics, including the process of protein folding and the movements of proteins implicated in a variety of diseases. It brings together citizen scientists who volunteer to run simulations of protein dynamics on their personal computers. Insights from this data are helping scientists to better understand biology, and providing new opportunities for developing therapeutics. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/foldingathome:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Application Setup This image sets up the Folding@home client. The interface is available at http://your-ip:7396 . The built-in webserver provides very basic control (ie. GPUs are only active when set to Medium or higher). For more fine grained control of individual devices, you can use the FAHControl app on a different device and connect remotely via port 36330 (no password). There are a couple of minor issues with the webgui: - If you get an \"ERR_EMPTY_RESPONSE\" error when trying to access via IP, it's most likely due to a clash of cookies/cache. Try opening in an incgnito window. - If you're getting a constant refresh of the window but no display of info, try a force refresh via shft-F5 or ctrl-F5 . GPU Hardware Acceleration Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the foldingathome docker container. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: foldingathome: image: lscr.io/linuxserver/foldingathome:latest container_name: foldingathome environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 7396:7396 - 36330:36330 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=foldingathome \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 7396:7396 \\ -p 36330:36330 `#optional` \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/foldingathome:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 7396 Folding@home web gui. 36330 Optional port for connecting remotely via FAHControl app (no password). Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where Folding@home should store its database and config. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it foldingathome /bin/bash To monitor the logs of the container in realtime: docker logs -f foldingathome Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' foldingathome Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/foldingathome:latest Versions 14.12.22: - Rebase to Ubuntu Jammy, migrate to s6v3. 15.01.22: - Rebase to Ubuntu Focal. Add arm64v8 builds (cpu only). Increase verbosity about gpu driver permission settings. 09.01.21: - Add nvidia.icd. 14.04.20: - Add Folding@home donation links. 20.03.20: - Initial release.","title":"foldingathome"},{"location":"images/docker-foldingathome/#linuxserverfoldingathome","text":"Folding@home is a distributed computing project for simulating protein dynamics, including the process of protein folding and the movements of proteins implicated in a variety of diseases. It brings together citizen scientists who volunteer to run simulations of protein dynamics on their personal computers. Insights from this data are helping scientists to better understand biology, and providing new opportunities for developing therapeutics.","title":"linuxserver/foldingathome"},{"location":"images/docker-foldingathome/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/foldingathome:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-foldingathome/#application-setup","text":"This image sets up the Folding@home client. The interface is available at http://your-ip:7396 . The built-in webserver provides very basic control (ie. GPUs are only active when set to Medium or higher). For more fine grained control of individual devices, you can use the FAHControl app on a different device and connect remotely via port 36330 (no password). There are a couple of minor issues with the webgui: - If you get an \"ERR_EMPTY_RESPONSE\" error when trying to access via IP, it's most likely due to a clash of cookies/cache. Try opening in an incgnito window. - If you're getting a constant refresh of the window but no display of info, try a force refresh via shft-F5 or ctrl-F5 .","title":"Application Setup"},{"location":"images/docker-foldingathome/#gpu-hardware-acceleration","text":"","title":"GPU Hardware Acceleration"},{"location":"images/docker-foldingathome/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the foldingathome docker container.","title":"Nvidia"},{"location":"images/docker-foldingathome/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-foldingathome/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: foldingathome: image: lscr.io/linuxserver/foldingathome:latest container_name: foldingathome environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 7396:7396 - 36330:36330 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-foldingathome/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=foldingathome \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 7396:7396 \\ -p 36330:36330 `#optional` \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/foldingathome:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-foldingathome/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-foldingathome/#ports-p","text":"Parameter Function 7396 Folding@home web gui. 36330 Optional port for connecting remotely via FAHControl app (no password).","title":"Ports (-p)"},{"location":"images/docker-foldingathome/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-foldingathome/#volume-mappings-v","text":"Volume Function /config Where Folding@home should store its database and config.","title":"Volume Mappings (-v)"},{"location":"images/docker-foldingathome/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-foldingathome/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-foldingathome/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-foldingathome/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-foldingathome/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-foldingathome/#support-info","text":"Shell access whilst the container is running: docker exec -it foldingathome /bin/bash To monitor the logs of the container in realtime: docker logs -f foldingathome Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' foldingathome Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/foldingathome:latest","title":"Support Info"},{"location":"images/docker-foldingathome/#versions","text":"14.12.22: - Rebase to Ubuntu Jammy, migrate to s6v3. 15.01.22: - Rebase to Ubuntu Focal. Add arm64v8 builds (cpu only). Increase verbosity about gpu driver permission settings. 09.01.21: - Add nvidia.icd. 14.04.20: - Add Folding@home donation links. 20.03.20: - Initial release.","title":"Versions"},{"location":"images/docker-freshrss/","text":"linuxserver/freshrss Freshrss is a free, self-hostable aggregator for rss feeds. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/freshrss:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui set up wizard at http://serverIP:port For external databases, create a user and database in your mysql/mariadb server (not root) and then follow the setup wizard in the webui. Use the IP address for \"host\" of your database server. Additional extensions can be dropped into /config/www/freshrss/extensions and will be active after container restart. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: freshrss: image: lscr.io/linuxserver/freshrss:latest container_name: freshrss environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=freshrss \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/freshrss:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Local storage for freshrss site files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it freshrss /bin/bash To monitor the logs of the container in realtime: docker logs -f freshrss Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' freshrss Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/freshrss:latest Versions 21.10.22: - Fix cron init to properly migrate existing installations to new app location. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 31.03.20: - Internalize app and enable updates for existing users, allow user customized crontab. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Add multi arch and pipeline logic. 05.09.18: - Rebase to alpine linux 3.8. 17.03.18: - Update nginx config to resolve api not working. 08.01.18: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 23.02.17: - Rebase to alpine linux 3.5 and nginx. 14.10.16: - Add version layer information. 08.10.16: - Add Sqlite support for standalone operation. 27.09.16: - Fix for cron job. 11.09.16: - Add layer badges to README. 23.11.15: - Update dependencies to latest requirements. 21.08.15: - Initial Release.","title":"freshrss"},{"location":"images/docker-freshrss/#linuxserverfreshrss","text":"Freshrss is a free, self-hostable aggregator for rss feeds.","title":"linuxserver/freshrss"},{"location":"images/docker-freshrss/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/freshrss:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-freshrss/#application-setup","text":"Access the webui set up wizard at http://serverIP:port For external databases, create a user and database in your mysql/mariadb server (not root) and then follow the setup wizard in the webui. Use the IP address for \"host\" of your database server. Additional extensions can be dropped into /config/www/freshrss/extensions and will be active after container restart.","title":"Application Setup"},{"location":"images/docker-freshrss/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-freshrss/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: freshrss: image: lscr.io/linuxserver/freshrss:latest container_name: freshrss environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-freshrss/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=freshrss \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/freshrss:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-freshrss/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-freshrss/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-freshrss/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-freshrss/#volume-mappings-v","text":"Volume Function /config Local storage for freshrss site files.","title":"Volume Mappings (-v)"},{"location":"images/docker-freshrss/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-freshrss/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-freshrss/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-freshrss/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-freshrss/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-freshrss/#support-info","text":"Shell access whilst the container is running: docker exec -it freshrss /bin/bash To monitor the logs of the container in realtime: docker logs -f freshrss Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' freshrss Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/freshrss:latest","title":"Support Info"},{"location":"images/docker-freshrss/#versions","text":"21.10.22: - Fix cron init to properly migrate existing installations to new app location. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 31.03.20: - Internalize app and enable updates for existing users, allow user customized crontab. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Add multi arch and pipeline logic. 05.09.18: - Rebase to alpine linux 3.8. 17.03.18: - Update nginx config to resolve api not working. 08.01.18: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 23.02.17: - Rebase to alpine linux 3.5 and nginx. 14.10.16: - Add version layer information. 08.10.16: - Add Sqlite support for standalone operation. 27.09.16: - Fix for cron job. 11.09.16: - Add layer badges to README. 23.11.15: - Update dependencies to latest requirements. 21.08.15: - Initial Release.","title":"Versions"},{"location":"images/docker-gazee/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/gazee Gazee is a WebApp Comic Reader for your favorite digital comics. Reach and read your comic library from any web connected device with a modern web browser. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/gazee should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v6-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=gazee \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 4242:4242 \\ -v :/config \\ -v :/comics \\ -v :/mylar \\ -v :/certs \\ --restart unless-stopped \\ linuxserver/gazee docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: gazee: image: linuxserver/gazee container_name: gazee environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/comics - :/mylar - :/certs ports: - 4242:4242 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4242 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation Volume Mappings ( -v ) Volume Function /config Where Gazee should store config files. /comics Path to comics folder. /mylar Path to Mylar DB. /certs Where SSL certs should be stored. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup Webui can be found at your-ip:4242 Default username and password for the web interface: Username: admin Password: gazee Click the gear icon to go to the settings page. Change the default admin password or add a new admin and remove the admin user altogether. Comic path should be set to /comics Optional Mylar DB path should be set to /mylar Optional path for certificates and keys should be set to /certs After you update the settings, Gazee will restart and begin an intial scan of your comic library. Happy Reading! Support Info Shell access whilst the container is running: docker exec -it gazee /bin/bash To monitor the logs of the container in realtime: docker logs -f gazee Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' gazee Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/gazee Versions 27.03.19: - Deprecate image and get in semi working state. 11.02.19: - Add pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 30.12.17: - Ensure version 11 of cherrypy. 07.12.17: - Initial Release.","title":"gazee"},{"location":"images/docker-gazee/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-gazee/#linuxservergazee","text":"Gazee is a WebApp Comic Reader for your favorite digital comics. Reach and read your comic library from any web connected device with a modern web browser.","title":"linuxserver/gazee"},{"location":"images/docker-gazee/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/gazee should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v6-latest","title":"Supported Architectures"},{"location":"images/docker-gazee/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-gazee/#docker","text":"docker create \\ --name=gazee \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 4242:4242 \\ -v :/config \\ -v :/comics \\ -v :/mylar \\ -v :/certs \\ --restart unless-stopped \\ linuxserver/gazee","title":"docker"},{"location":"images/docker-gazee/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: gazee: image: linuxserver/gazee container_name: gazee environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/comics - :/mylar - :/certs ports: - 4242:4242 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-gazee/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-gazee/#ports-p","text":"Parameter Function 4242 WebUI","title":"Ports (-p)"},{"location":"images/docker-gazee/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation","title":"Environment Variables (-e)"},{"location":"images/docker-gazee/#volume-mappings-v","text":"Volume Function /config Where Gazee should store config files. /comics Path to comics folder. /mylar Path to Mylar DB. /certs Where SSL certs should be stored.","title":"Volume Mappings (-v)"},{"location":"images/docker-gazee/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-gazee/#application-setup","text":"Webui can be found at your-ip:4242 Default username and password for the web interface: Username: admin Password: gazee Click the gear icon to go to the settings page. Change the default admin password or add a new admin and remove the admin user altogether. Comic path should be set to /comics Optional Mylar DB path should be set to /mylar Optional path for certificates and keys should be set to /certs After you update the settings, Gazee will restart and begin an intial scan of your comic library. Happy Reading!","title":"Application Setup"},{"location":"images/docker-gazee/#support-info","text":"Shell access whilst the container is running: docker exec -it gazee /bin/bash To monitor the logs of the container in realtime: docker logs -f gazee Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' gazee Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/gazee","title":"Support Info"},{"location":"images/docker-gazee/#versions","text":"27.03.19: - Deprecate image and get in semi working state. 11.02.19: - Add pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 30.12.17: - Ensure version 11 of cherrypy. 07.12.17: - Initial Release.","title":"Versions"},{"location":"images/docker-gmail-order-bot/","text":"lsiodev/gmail-order-bot Gmail-order-bot - A bot used to leverage a Gmail account as an order messaging service to consume email orders from Nano Checkout and process them using any custom logic you choose. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/lsiodev/gmail-order-bot:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This container is for developers only! We make pre-defined bots we use in our workflow, but you have to have an underlying understanding of javascript and some basic Docker skills to use it. The entire basis of this is to act as middleware between your email address receiving orders from https://checkout.linuxserver.io and send them to some external service. The bot will archive any messages that do not come from orders@nanocheckout.com with valid DKIM signatures, so definetly do not use this on a personal account. The concept behind this bot and using email as a destination for orders is to serve normal users that simply want an email for an order out of the box and provide a free messaging queue akin to something like RabbitMQ for people that want to automate order ingestion. By default we include bots we use that will be copied over on first container run, for example a simple discord ping when an order is received with the order details: const Discord = require('discord.js'); const YAML = require('yaml'); const discordtoken = process.env.DISCORD_TOKEN; const roomid = process.env.DISCORD_ROOM exports.orderbot = async function(order) { return new Promise(resolve => { const client = new Discord.Client(); client.login(discordtoken); client.on('ready', async () => { delete order.rawpayload await client.channels.cache.get(roomid.toString()).send(YAML.stringify(order)); client.destroy(); resolve(true) }) }); } This code will be passed an order object containing all the order details parsed from the email message. Here we use custom env variables to set application settings to connect up to and send a message to discord. In order to use this bot you will need to perform the following setup steps: 1. Create a dedicated gmail account to use for https://checkout.linuxserver.io 2. Enable API access to this Gmail account by clicking on Enable the Gmail API here https://developers.google.com/gmail/api/quickstart/nodejs 3. Save your credentials.json file from that action to the folder you will be bind mounting as /config 4. Run docker run --rm -it -u $(id -u ${USER}):$(id -g ${USER}) -v /path/to/data:/config --entrypoint /config.sh lsiodev/gmail-order-bot 5. Go to the URL prompted and enter the key you get from it. 6. Start the container using the run/compose example in this readme. When the container starts if you are using a custom bot located in /config/bots it will install the node modules included in it's package.json, do not use system level node modules this container is Alpine based and it will cause conflicts. From there the bot will loop in for your defined timeout and pull in emails and spit out orders to your destination. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: gmail-order-bot: image: lscr.io/lsiodev/gmail-order-bot:latest container_name: gmail-order-bot environment: - PUID=1000 - PGID=1000 - BOT_NAME=discord - LOOP_TIME=60 volumes: - /path/to/data:/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=gmail-order-bot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e BOT_NAME=discord \\ -e LOOP_TIME=60 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/lsiodev/gmail-order-bot:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation BOT_NAME=discord On successful order receive send the order payload to this bot (default bots are located in root/defaults/bots) LOOP_TIME=60 Time in seconds to reach into gmail and get new messages to process Volume Mappings ( -v ) Volume Function /config Path to gmail tokens and custom/default bots Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it gmail-order-bot /bin/bash To monitor the logs of the container in realtime: docker logs -f gmail-order-bot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' gmail-order-bot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/lsiodev/gmail-order-bot:latest Versions 06.07.20: - Initial Release.","title":"gmail-order-bot"},{"location":"images/docker-gmail-order-bot/#lsiodevgmail-order-bot","text":"Gmail-order-bot - A bot used to leverage a Gmail account as an order messaging service to consume email orders from Nano Checkout and process them using any custom logic you choose.","title":"lsiodev/gmail-order-bot"},{"location":"images/docker-gmail-order-bot/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/lsiodev/gmail-order-bot:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-gmail-order-bot/#application-setup","text":"This container is for developers only! We make pre-defined bots we use in our workflow, but you have to have an underlying understanding of javascript and some basic Docker skills to use it. The entire basis of this is to act as middleware between your email address receiving orders from https://checkout.linuxserver.io and send them to some external service. The bot will archive any messages that do not come from orders@nanocheckout.com with valid DKIM signatures, so definetly do not use this on a personal account. The concept behind this bot and using email as a destination for orders is to serve normal users that simply want an email for an order out of the box and provide a free messaging queue akin to something like RabbitMQ for people that want to automate order ingestion. By default we include bots we use that will be copied over on first container run, for example a simple discord ping when an order is received with the order details: const Discord = require('discord.js'); const YAML = require('yaml'); const discordtoken = process.env.DISCORD_TOKEN; const roomid = process.env.DISCORD_ROOM exports.orderbot = async function(order) { return new Promise(resolve => { const client = new Discord.Client(); client.login(discordtoken); client.on('ready', async () => { delete order.rawpayload await client.channels.cache.get(roomid.toString()).send(YAML.stringify(order)); client.destroy(); resolve(true) }) }); } This code will be passed an order object containing all the order details parsed from the email message. Here we use custom env variables to set application settings to connect up to and send a message to discord. In order to use this bot you will need to perform the following setup steps: 1. Create a dedicated gmail account to use for https://checkout.linuxserver.io 2. Enable API access to this Gmail account by clicking on Enable the Gmail API here https://developers.google.com/gmail/api/quickstart/nodejs 3. Save your credentials.json file from that action to the folder you will be bind mounting as /config 4. Run docker run --rm -it -u $(id -u ${USER}):$(id -g ${USER}) -v /path/to/data:/config --entrypoint /config.sh lsiodev/gmail-order-bot 5. Go to the URL prompted and enter the key you get from it. 6. Start the container using the run/compose example in this readme. When the container starts if you are using a custom bot located in /config/bots it will install the node modules included in it's package.json, do not use system level node modules this container is Alpine based and it will cause conflicts. From there the bot will loop in for your defined timeout and pull in emails and spit out orders to your destination.","title":"Application Setup"},{"location":"images/docker-gmail-order-bot/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-gmail-order-bot/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: gmail-order-bot: image: lscr.io/lsiodev/gmail-order-bot:latest container_name: gmail-order-bot environment: - PUID=1000 - PGID=1000 - BOT_NAME=discord - LOOP_TIME=60 volumes: - /path/to/data:/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-gmail-order-bot/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=gmail-order-bot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e BOT_NAME=discord \\ -e LOOP_TIME=60 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/lsiodev/gmail-order-bot:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-gmail-order-bot/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-gmail-order-bot/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-gmail-order-bot/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation BOT_NAME=discord On successful order receive send the order payload to this bot (default bots are located in root/defaults/bots) LOOP_TIME=60 Time in seconds to reach into gmail and get new messages to process","title":"Environment Variables (-e)"},{"location":"images/docker-gmail-order-bot/#volume-mappings-v","text":"Volume Function /config Path to gmail tokens and custom/default bots","title":"Volume Mappings (-v)"},{"location":"images/docker-gmail-order-bot/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-gmail-order-bot/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-gmail-order-bot/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-gmail-order-bot/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-gmail-order-bot/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-gmail-order-bot/#support-info","text":"Shell access whilst the container is running: docker exec -it gmail-order-bot /bin/bash To monitor the logs of the container in realtime: docker logs -f gmail-order-bot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' gmail-order-bot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/lsiodev/gmail-order-bot:latest","title":"Support Info"},{"location":"images/docker-gmail-order-bot/#versions","text":"06.07.20: - Initial Release.","title":"Versions"},{"location":"images/docker-grav/","text":"linuxserver/grav Grav is a Fast, Simple, and Flexible, file-based Web-platform. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/grav:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup For more information check out the Grav documentation . Our image includes the grav-admin plugin. To use the CLI tools you need to pass the working directory as part of your exec command (or use an interactive shell), e.g. docker exec -it -w /app/www/public/grav-admin grav bin/gpm Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: grav: image: lscr.io/linuxserver/grav:latest container_name: grav environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata/config:/config ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=grav \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/grav:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Port for web frontend Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it grav /bin/bash To monitor the logs of the container in realtime: docker logs -f grav Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' grav Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/grav:latest Versions 11.12.22: - Rebase to Alpine 3.17, PHP 8.1. 05.09.22: - All php to read envs passed to container. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 03.09.21: - Added support for Redis caching. 01.07.21: - Rebase to Alpine 3.14. 09.04.21: - Initial Release.","title":"grav"},{"location":"images/docker-grav/#linuxservergrav","text":"Grav is a Fast, Simple, and Flexible, file-based Web-platform.","title":"linuxserver/grav"},{"location":"images/docker-grav/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/grav:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-grav/#application-setup","text":"For more information check out the Grav documentation . Our image includes the grav-admin plugin. To use the CLI tools you need to pass the working directory as part of your exec command (or use an interactive shell), e.g. docker exec -it -w /app/www/public/grav-admin grav bin/gpm","title":"Application Setup"},{"location":"images/docker-grav/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-grav/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: grav: image: lscr.io/linuxserver/grav:latest container_name: grav environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata/config:/config ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-grav/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=grav \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/grav:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-grav/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-grav/#ports-p","text":"Parameter Function 80 Port for web frontend","title":"Ports (-p)"},{"location":"images/docker-grav/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York","title":"Environment Variables (-e)"},{"location":"images/docker-grav/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-grav/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-grav/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-grav/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-grav/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-grav/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-grav/#support-info","text":"Shell access whilst the container is running: docker exec -it grav /bin/bash To monitor the logs of the container in realtime: docker logs -f grav Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' grav Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/grav:latest","title":"Support Info"},{"location":"images/docker-grav/#versions","text":"11.12.22: - Rebase to Alpine 3.17, PHP 8.1. 05.09.22: - All php to read envs passed to container. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 03.09.21: - Added support for Redis caching. 01.07.21: - Rebase to Alpine 3.14. 09.04.21: - Initial Release.","title":"Versions"},{"location":"images/docker-grocy/","text":"linuxserver/grocy Grocy is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utility. Keep track of your purchases, how much food you are wasting, what chores need doing and what batteries need charging with this proudly Open Source tool For more information on grocy visit their website and check it out: https://grocy.info Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/grocy:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Grocy is simple to get running. Configure the container with instructions below, start it, and you can then access it by visiting http://your.ip:9283 - once the page loads, you can log in with the default username and password of admin / admin Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: grocy: image: lscr.io/linuxserver/grocy:latest container_name: grocy environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 9283:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=grocy \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9283:80 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/grocy:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 will map the container's port 80 to port 9283 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London for specifying your timezone Volume Mappings ( -v ) Volume Function /config this will store any uploaded data on the docker host Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it grocy /bin/bash To monitor the logs of the container in realtime: docker logs -f grocy Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' grocy Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/grocy:latest Versions 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 22.08.21: - Rebase to Alpine 3.14 and PHP 8. 25.07.21: - Add 'int','json' and 'zlib' PHP extensions. 10.05.21: - Reduce image size. 08.04.21: - Update docs to reflect jenkins builder changes. 17.02.21: - Rebasing to alpine 3.13. 26.01.21: - Add 'ldap' PHP extension. 22.12.20: - Add 'ctype' PHP extension. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 22.09.19: - Add 'gd' PHP extension. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 27.12.18: - Initial Release.","title":"grocy"},{"location":"images/docker-grocy/#linuxservergrocy","text":"Grocy is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utility. Keep track of your purchases, how much food you are wasting, what chores need doing and what batteries need charging with this proudly Open Source tool For more information on grocy visit their website and check it out: https://grocy.info","title":"linuxserver/grocy"},{"location":"images/docker-grocy/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/grocy:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-grocy/#application-setup","text":"Grocy is simple to get running. Configure the container with instructions below, start it, and you can then access it by visiting http://your.ip:9283 - once the page loads, you can log in with the default username and password of admin / admin","title":"Application Setup"},{"location":"images/docker-grocy/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-grocy/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: grocy: image: lscr.io/linuxserver/grocy:latest container_name: grocy environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 9283:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-grocy/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=grocy \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9283:80 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/grocy:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-grocy/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-grocy/#ports-p","text":"Parameter Function 80 will map the container's port 80 to port 9283 on the host","title":"Ports (-p)"},{"location":"images/docker-grocy/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London for specifying your timezone","title":"Environment Variables (-e)"},{"location":"images/docker-grocy/#volume-mappings-v","text":"Volume Function /config this will store any uploaded data on the docker host","title":"Volume Mappings (-v)"},{"location":"images/docker-grocy/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-grocy/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-grocy/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-grocy/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-grocy/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-grocy/#support-info","text":"Shell access whilst the container is running: docker exec -it grocy /bin/bash To monitor the logs of the container in realtime: docker logs -f grocy Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' grocy Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/grocy:latest","title":"Support Info"},{"location":"images/docker-grocy/#versions","text":"20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 22.08.21: - Rebase to Alpine 3.14 and PHP 8. 25.07.21: - Add 'int','json' and 'zlib' PHP extensions. 10.05.21: - Reduce image size. 08.04.21: - Update docs to reflect jenkins builder changes. 17.02.21: - Rebasing to alpine 3.13. 26.01.21: - Add 'ldap' PHP extension. 22.12.20: - Add 'ctype' PHP extension. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 22.09.19: - Add 'gd' PHP extension. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 27.12.18: - Initial Release.","title":"Versions"},{"location":"images/docker-guacd/","text":"linuxserver/guacd Guacd - Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. This container is only the backend server component needed to use The official or 3rd party HTML5 frontends. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/guacd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This is a backend only service, to leverage Guacd server you need to use either the official Java frontend guacamole-client or an open source alternative like guacamole-lite . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: guacd: image: lscr.io/linuxserver/guacd:latest container_name: guacd ports: - 4822:4822 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=guacd \\ -p 4822:4822 \\ --restart unless-stopped \\ lscr.io/linuxserver/guacd:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4822 Port Guacamole server listens on Environment Variables ( -e ) Env Function Volume Mappings ( -v ) Volume Function Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it guacd /bin/bash To monitor the logs of the container in realtime: docker logs -f guacd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' guacd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/guacd:latest Versions 11.03.22: - Bump to 1.4.0. 15.05.21: - Add terminus font for SSH support. 08.05.21: - Bump to 1.3.0, rebase to Alpine. 27.07.20: - Bump to 1.2.0. 17.04.20: - Bump back 1.1.0, rebase to focal 08.02.20: - Bump to 1.1.0. 25.05.19: - Initial Release.","title":"guacd"},{"location":"images/docker-guacd/#linuxserverguacd","text":"Guacd - Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. This container is only the backend server component needed to use The official or 3rd party HTML5 frontends.","title":"linuxserver/guacd"},{"location":"images/docker-guacd/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/guacd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-guacd/#application-setup","text":"This is a backend only service, to leverage Guacd server you need to use either the official Java frontend guacamole-client or an open source alternative like guacamole-lite .","title":"Application Setup"},{"location":"images/docker-guacd/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-guacd/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: guacd: image: lscr.io/linuxserver/guacd:latest container_name: guacd ports: - 4822:4822 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-guacd/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=guacd \\ -p 4822:4822 \\ --restart unless-stopped \\ lscr.io/linuxserver/guacd:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-guacd/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-guacd/#ports-p","text":"Parameter Function 4822 Port Guacamole server listens on","title":"Ports (-p)"},{"location":"images/docker-guacd/#environment-variables-e","text":"Env Function","title":"Environment Variables (-e)"},{"location":"images/docker-guacd/#volume-mappings-v","text":"Volume Function","title":"Volume Mappings (-v)"},{"location":"images/docker-guacd/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-guacd/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-guacd/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-guacd/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-guacd/#support-info","text":"Shell access whilst the container is running: docker exec -it guacd /bin/bash To monitor the logs of the container in realtime: docker logs -f guacd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' guacd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/guacd:latest","title":"Support Info"},{"location":"images/docker-guacd/#versions","text":"11.03.22: - Bump to 1.4.0. 15.05.21: - Add terminus font for SSH support. 08.05.21: - Bump to 1.3.0, rebase to Alpine. 27.07.20: - Bump to 1.2.0. 17.04.20: - Bump back 1.1.0, rebase to focal 08.02.20: - Bump to 1.1.0. 25.05.19: - Initial Release.","title":"Versions"},{"location":"images/docker-habridge/","text":"linuxserver/habridge Habridge emulates Philips Hue API to other home automation gateways such as an Amazon Echo/Dot Gen 1 (gen 2 has issues discovering ha-bridge) or other systems that support Philips Hue. The Bridge handles basic commands such as \"On\", \"Off\" and \"brightness\" commands of the hue protocol. This bridge can control most devices that have a distinct API. In the cases of systems that require authorization and/or have APIs that cannot be handled in the current method, a module may need to be built. The Harmony Hub is such a module and so is the Nest module. The Bridge has helpers to build devices for the gateway for the Logitech Harmony Hub, Vera, Vera Lite or Vera Edge, Nest, Somfy Tahoma, Home Assistant, Domoticz, MQTT, HAL, Fibaro, HomeWizard, LIFX, OpenHAB, FHEM, Broadlink and the ability to proxy all of your real Hue bridges behind this bridge. This bridge was built to help put the Internet of Things together. For more information about how to use this software have a look at their Wiki https://github.com/bwssytems/ha-bridge/wiki Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/habridge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup To set up the ha-bridge simply go to http://localhost:8080. Once you are in the webui you can add devices and configure ha-bridge to your liking. For information on how to configure ha-bridge, go to their wiki at https://github.com/bwssytems/ha-bridge/wiki Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: habridge: image: lscr.io/linuxserver/habridge:latest container_name: habridge environment: - PUID=1000 - PGID=1000 - SEC_KEY= - TZ=Europe/London volumes: - :/config ports: - 8080:8080 - 50000:50000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=habridge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e SEC_KEY= \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -p 50000:50000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/habridge:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 WebUI 50000 HABridge communication port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation SEC_KEY= Key used to secure communication. TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where HABridge stores config files and data. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it habridge /bin/bash To monitor the logs of the container in realtime: docker logs -f habridge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' habridge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/habridge:latest Versions 11.12.22: - Rebasing to alpine 3.17. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 28.08.18: - Rebase to alpine 3.8. 12.04.18: - Add workaround to bind to port 80 if needed. 08.04.18: - Initial Release.","title":"habridge"},{"location":"images/docker-habridge/#linuxserverhabridge","text":"Habridge emulates Philips Hue API to other home automation gateways such as an Amazon Echo/Dot Gen 1 (gen 2 has issues discovering ha-bridge) or other systems that support Philips Hue. The Bridge handles basic commands such as \"On\", \"Off\" and \"brightness\" commands of the hue protocol. This bridge can control most devices that have a distinct API. In the cases of systems that require authorization and/or have APIs that cannot be handled in the current method, a module may need to be built. The Harmony Hub is such a module and so is the Nest module. The Bridge has helpers to build devices for the gateway for the Logitech Harmony Hub, Vera, Vera Lite or Vera Edge, Nest, Somfy Tahoma, Home Assistant, Domoticz, MQTT, HAL, Fibaro, HomeWizard, LIFX, OpenHAB, FHEM, Broadlink and the ability to proxy all of your real Hue bridges behind this bridge. This bridge was built to help put the Internet of Things together. For more information about how to use this software have a look at their Wiki https://github.com/bwssytems/ha-bridge/wiki","title":"linuxserver/habridge"},{"location":"images/docker-habridge/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/habridge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-habridge/#application-setup","text":"To set up the ha-bridge simply go to http://localhost:8080. Once you are in the webui you can add devices and configure ha-bridge to your liking. For information on how to configure ha-bridge, go to their wiki at https://github.com/bwssytems/ha-bridge/wiki","title":"Application Setup"},{"location":"images/docker-habridge/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-habridge/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: habridge: image: lscr.io/linuxserver/habridge:latest container_name: habridge environment: - PUID=1000 - PGID=1000 - SEC_KEY= - TZ=Europe/London volumes: - :/config ports: - 8080:8080 - 50000:50000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-habridge/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=habridge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e SEC_KEY= \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -p 50000:50000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/habridge:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-habridge/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-habridge/#ports-p","text":"Parameter Function 8080 WebUI 50000 HABridge communication port.","title":"Ports (-p)"},{"location":"images/docker-habridge/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation SEC_KEY= Key used to secure communication. TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-habridge/#volume-mappings-v","text":"Volume Function /config Where HABridge stores config files and data.","title":"Volume Mappings (-v)"},{"location":"images/docker-habridge/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-habridge/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-habridge/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-habridge/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-habridge/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-habridge/#support-info","text":"Shell access whilst the container is running: docker exec -it habridge /bin/bash To monitor the logs of the container in realtime: docker logs -f habridge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' habridge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/habridge:latest","title":"Support Info"},{"location":"images/docker-habridge/#versions","text":"11.12.22: - Rebasing to alpine 3.17. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 28.08.18: - Rebase to alpine 3.8. 12.04.18: - Add workaround to bind to port 80 if needed. 08.04.18: - Initial Release.","title":"Versions"},{"location":"images/docker-headphones/","text":"linuxserver/headphones Headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, \u00b5Torrent and Blackhole. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/headphones:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: headphones: image: lscr.io/linuxserver/headphones:latest container_name: headphones environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads - :/music ports: - 8181:8181 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=headphones \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8181:8181 \\ -v :/config \\ -v :/downloads \\ -v :/music \\ --restart unless-stopped \\ lscr.io/linuxserver/headphones:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8181 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. /downloads ISOs. /music Your music directory. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it headphones /bin/bash To monitor the logs of the container in realtime: docker logs -f headphones Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' headphones Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/headphones:latest Versions 02.02.22: - Rebasing to alpine 3.15. Updating to Python 3. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 09.05.19: - Add default UTC timezone if user does not set it. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 18.08.18: - Rebase to alpine 3.8. 03.04.18: - Remove forced port and update README. 05.01.18: - Deprecate cpu_core routine lack of scaling. 12.12.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Add flac package to handle FLAC based .cue. 25.05.17: - Rebase to alpine 3.6. 03.05.17: - Reduce layer, replace broken source for shntool. 07.02.17: - Rebase to alpine 3.5. 23.12.16: - Fix capitalisation in README. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README, compile shntool. 08.08.16: - Rebase to alpine linux. 18.07.15: - Inital Release","title":"headphones"},{"location":"images/docker-headphones/#linuxserverheadphones","text":"Headphones is an automated music downloader for NZB and Torrent, written in Python. It supports SABnzbd, NZBget, Transmission, \u00b5Torrent and Blackhole.","title":"linuxserver/headphones"},{"location":"images/docker-headphones/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/headphones:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-headphones/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-headphones/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: headphones: image: lscr.io/linuxserver/headphones:latest container_name: headphones environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads - :/music ports: - 8181:8181 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-headphones/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=headphones \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8181:8181 \\ -v :/config \\ -v :/downloads \\ -v :/music \\ --restart unless-stopped \\ lscr.io/linuxserver/headphones:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-headphones/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-headphones/#ports-p","text":"Parameter Function 8181 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-headphones/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-headphones/#volume-mappings-v","text":"Volume Function /config Configuration files. /downloads ISOs. /music Your music directory.","title":"Volume Mappings (-v)"},{"location":"images/docker-headphones/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-headphones/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-headphones/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-headphones/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-headphones/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-headphones/#support-info","text":"Shell access whilst the container is running: docker exec -it headphones /bin/bash To monitor the logs of the container in realtime: docker logs -f headphones Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' headphones Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/headphones:latest","title":"Support Info"},{"location":"images/docker-headphones/#versions","text":"02.02.22: - Rebasing to alpine 3.15. Updating to Python 3. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 09.05.19: - Add default UTC timezone if user does not set it. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 18.08.18: - Rebase to alpine 3.8. 03.04.18: - Remove forced port and update README. 05.01.18: - Deprecate cpu_core routine lack of scaling. 12.12.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Add flac package to handle FLAC based .cue. 25.05.17: - Rebase to alpine 3.6. 03.05.17: - Reduce layer, replace broken source for shntool. 07.02.17: - Rebase to alpine 3.5. 23.12.16: - Fix capitalisation in README. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README, compile shntool. 08.08.16: - Rebase to alpine linux. 18.07.15: - Inital Release","title":"Versions"},{"location":"images/docker-healthchecks/","text":"linuxserver/healthchecks Healthchecks is a watchdog for your cron jobs. It's a web server that listens for pings from your cron jobs, plus a web interface. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/healthchecks:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the WebUI at :8000. For more information, check out Healthchecks . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: healthchecks: image: lscr.io/linuxserver/healthchecks:latest container_name: healthchecks environment: - PUID=1000 - PGID=1000 - SITE_ROOT= - SITE_NAME= - DEFAULT_FROM_EMAIL= - EMAIL_HOST= - EMAIL_PORT= - EMAIL_HOST_USER= - EMAIL_HOST_PASSWORD= - EMAIL_USE_TLS= - SUPERUSER_EMAIL= - SUPERUSER_PASSWORD= - REGENERATE_SETTINGS= #optional - SITE_LOGO_URL= #optional - ALLOWED_HOSTS= #optional - SECRET_KEY= #optional - APPRISE_ENABLED= #optional - DEBUG= #optional volumes: - /path/to/data:/config ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=healthchecks \\ -e PUID=1000 \\ -e PGID=1000 \\ -e SITE_ROOT= \\ -e SITE_NAME= \\ -e DEFAULT_FROM_EMAIL= \\ -e EMAIL_HOST= \\ -e EMAIL_PORT= \\ -e EMAIL_HOST_USER= \\ -e EMAIL_HOST_PASSWORD= \\ -e EMAIL_USE_TLS= \\ -e SUPERUSER_EMAIL= \\ -e SUPERUSER_PASSWORD= \\ -e REGENERATE_SETTINGS= `#optional` \\ -e SITE_LOGO_URL= `#optional` \\ -e ALLOWED_HOSTS= `#optional` \\ -e SECRET_KEY= `#optional` \\ -e APPRISE_ENABLED= `#optional` \\ -e DEBUG= `#optional` \\ -p 8000:8000 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/healthchecks:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 will map the container's port 8000 to port 8000 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation SITE_ROOT= The site's top-level URL and the port it listens to if differrent than 80 or 443 (e.g., https://healthchecks.example.com:8000) SITE_NAME= The site's name (e.g., \"Example Corp HealthChecks\") DEFAULT_FROM_EMAIL= From email for alerts EMAIL_HOST= SMTP host EMAIL_PORT= SMTP port EMAIL_HOST_USER= SMTP user EMAIL_HOST_PASSWORD= SMTP password EMAIL_USE_TLS= Use TLS for SMTP ( True or False ) SUPERUSER_EMAIL= Superuser email SUPERUSER_PASSWORD= Superuser password REGENERATE_SETTINGS= Defaults to False. Set to true to always override the local_settings.py file with values from environment variables. Do not set to True if you have made manual modifications to this file. SITE_LOGO_URL= Full URL to custom site logo ALLOWED_HOSTS= Array of valid hostnames for the server [\"test.com\",\"test2.com\"] (default: [\"*\"] ) SECRET_KEY= A secret key used for cryptographic signing. Will generate a secure value if one is not supplied APPRISE_ENABLED= Defaults to False. A boolean that turns on/off the Apprise integration (https://github.com/caronc/apprise) DEBUG= Defaults to True. Debug mode relaxes CSRF protections and increases logging verbosity but should be disabled for production instances as it will impact performance and security. Volume Mappings ( -v ) Volume Function /config Database and healthchecks config directory Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it healthchecks /bin/bash To monitor the logs of the container in realtime: docker logs -f healthchecks Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' healthchecks Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/healthchecks:latest Versions 18.10.22: - Add curl-dev to fix broken pip builds. 11.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 27.09.22: - Fix sending of Email Reports 08.01.22: - Fix CSRF setting for Django 4.0 (introduced in v1.25.0) 11.11.21: - Add Apprise to Docker as in v1.24.0 10.09.21: - Fix creation of superuser 07.08.21: - Update custom logo handling to support changes in v1.22.0 11.07.21: - Rebase to Alpine 3.14. 18.05.21: - Add linuxserver wheel index. 11.01.21: - Add libffi-dev to allow building of python cryptography lib. 19.07.20: - Rebasing to alpine 3.12, fixed 'ALLOWED_HOSTS' bug, now defaults to wildcard 19.12.19: - Rebasing to alpine 3.11. 31.10.19: - Add postgres client and fix config for CSRF. 23.10.19: - Allow to create superuser 28.06.19: - Rebasing to alpine 3.10. 12.04.19: - Rebase to Alpine 3.9. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 14.02.19: - Adding mysql libs needed for using a database. 11.10.18: - adding pipeline logic and multi arching release 15.11.17: - git pull is now in Dockerfile so each tagged container contains the same code version 17.10.17: - Fixed local_settings.py output 27.09.17: - Initial Release.","title":"healthchecks"},{"location":"images/docker-healthchecks/#linuxserverhealthchecks","text":"Healthchecks is a watchdog for your cron jobs. It's a web server that listens for pings from your cron jobs, plus a web interface.","title":"linuxserver/healthchecks"},{"location":"images/docker-healthchecks/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/healthchecks:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-healthchecks/#application-setup","text":"Access the WebUI at :8000. For more information, check out Healthchecks .","title":"Application Setup"},{"location":"images/docker-healthchecks/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-healthchecks/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: healthchecks: image: lscr.io/linuxserver/healthchecks:latest container_name: healthchecks environment: - PUID=1000 - PGID=1000 - SITE_ROOT= - SITE_NAME= - DEFAULT_FROM_EMAIL= - EMAIL_HOST= - EMAIL_PORT= - EMAIL_HOST_USER= - EMAIL_HOST_PASSWORD= - EMAIL_USE_TLS= - SUPERUSER_EMAIL= - SUPERUSER_PASSWORD= - REGENERATE_SETTINGS= #optional - SITE_LOGO_URL= #optional - ALLOWED_HOSTS= #optional - SECRET_KEY= #optional - APPRISE_ENABLED= #optional - DEBUG= #optional volumes: - /path/to/data:/config ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-healthchecks/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=healthchecks \\ -e PUID=1000 \\ -e PGID=1000 \\ -e SITE_ROOT= \\ -e SITE_NAME= \\ -e DEFAULT_FROM_EMAIL= \\ -e EMAIL_HOST= \\ -e EMAIL_PORT= \\ -e EMAIL_HOST_USER= \\ -e EMAIL_HOST_PASSWORD= \\ -e EMAIL_USE_TLS= \\ -e SUPERUSER_EMAIL= \\ -e SUPERUSER_PASSWORD= \\ -e REGENERATE_SETTINGS= `#optional` \\ -e SITE_LOGO_URL= `#optional` \\ -e ALLOWED_HOSTS= `#optional` \\ -e SECRET_KEY= `#optional` \\ -e APPRISE_ENABLED= `#optional` \\ -e DEBUG= `#optional` \\ -p 8000:8000 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/healthchecks:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-healthchecks/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-healthchecks/#ports-p","text":"Parameter Function 8000 will map the container's port 8000 to port 8000 on the host","title":"Ports (-p)"},{"location":"images/docker-healthchecks/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation SITE_ROOT= The site's top-level URL and the port it listens to if differrent than 80 or 443 (e.g., https://healthchecks.example.com:8000) SITE_NAME= The site's name (e.g., \"Example Corp HealthChecks\") DEFAULT_FROM_EMAIL= From email for alerts EMAIL_HOST= SMTP host EMAIL_PORT= SMTP port EMAIL_HOST_USER= SMTP user EMAIL_HOST_PASSWORD= SMTP password EMAIL_USE_TLS= Use TLS for SMTP ( True or False ) SUPERUSER_EMAIL= Superuser email SUPERUSER_PASSWORD= Superuser password REGENERATE_SETTINGS= Defaults to False. Set to true to always override the local_settings.py file with values from environment variables. Do not set to True if you have made manual modifications to this file. SITE_LOGO_URL= Full URL to custom site logo ALLOWED_HOSTS= Array of valid hostnames for the server [\"test.com\",\"test2.com\"] (default: [\"*\"] ) SECRET_KEY= A secret key used for cryptographic signing. Will generate a secure value if one is not supplied APPRISE_ENABLED= Defaults to False. A boolean that turns on/off the Apprise integration (https://github.com/caronc/apprise) DEBUG= Defaults to True. Debug mode relaxes CSRF protections and increases logging verbosity but should be disabled for production instances as it will impact performance and security.","title":"Environment Variables (-e)"},{"location":"images/docker-healthchecks/#volume-mappings-v","text":"Volume Function /config Database and healthchecks config directory","title":"Volume Mappings (-v)"},{"location":"images/docker-healthchecks/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-healthchecks/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-healthchecks/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-healthchecks/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-healthchecks/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-healthchecks/#support-info","text":"Shell access whilst the container is running: docker exec -it healthchecks /bin/bash To monitor the logs of the container in realtime: docker logs -f healthchecks Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' healthchecks Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/healthchecks:latest","title":"Support Info"},{"location":"images/docker-healthchecks/#versions","text":"18.10.22: - Add curl-dev to fix broken pip builds. 11.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 27.09.22: - Fix sending of Email Reports 08.01.22: - Fix CSRF setting for Django 4.0 (introduced in v1.25.0) 11.11.21: - Add Apprise to Docker as in v1.24.0 10.09.21: - Fix creation of superuser 07.08.21: - Update custom logo handling to support changes in v1.22.0 11.07.21: - Rebase to Alpine 3.14. 18.05.21: - Add linuxserver wheel index. 11.01.21: - Add libffi-dev to allow building of python cryptography lib. 19.07.20: - Rebasing to alpine 3.12, fixed 'ALLOWED_HOSTS' bug, now defaults to wildcard 19.12.19: - Rebasing to alpine 3.11. 31.10.19: - Add postgres client and fix config for CSRF. 23.10.19: - Allow to create superuser 28.06.19: - Rebasing to alpine 3.10. 12.04.19: - Rebase to Alpine 3.9. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 14.02.19: - Adding mysql libs needed for using a database. 11.10.18: - adding pipeline logic and multi arching release 15.11.17: - git pull is now in Dockerfile so each tagged container contains the same code version 17.10.17: - Fixed local_settings.py output 27.09.17: - Initial Release.","title":"Versions"},{"location":"images/docker-hedgedoc/","text":"linuxserver/hedgedoc HedgeDoc gives you access to all your files wherever you are. HedgeDoc is a real-time, multi-platform collaborative markdown note editor. This means that you can write notes with other people on your desktop, tablet or even on the phone. You can sign-in via multiple auth providers like Facebook, Twitter, GitHub and many more on the homepage. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/hedgedoc:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup HedgeDoc web interface can be accessed http://${IP}:3000/ , if you want to use a custom domain or anything besides port 3000 you will need to leverage their env settings for callbacks: (specifically for CMD_DOMAIN, CMD_PORT and CMD_URL_ADDPORT) Full list of HedgeDoc options For convience we provide a working example using Mysql as a backend in this document, if you do not wish to use our custom environment values or a Mysql database backend feel free to leverage any of the settings laid out in the link above. To run behind a reverse proxy we have a preconfigured config using docker networking included in our SWAG image and you can read how to use this in the Reverse Proxy Confs repository Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: hedgedoc: image: lscr.io/linuxserver/hedgedoc:latest container_name: hedgedoc environment: - PUID=1000 - PGID=1000 - DB_HOST= - DB_PORT=3306 - DB_USER=hedgedoc - DB_PASS= - DB_NAME=hedgedoc - TZ=Europe/London - CMD_DOMAIN=localhost - CMD_URL_ADDPORT=false #optional - CMD_PROTOCOL_USESSL=false #optional - CMD_PORT=3000 #optional - CMD_ALLOW_ORIGIN=['localhost'] #optional volumes: - /path/to/appdata:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=hedgedoc \\ -e PUID=1000 \\ -e PGID=1000 \\ -e DB_HOST= \\ -e DB_PORT=3306 \\ -e DB_USER=hedgedoc \\ -e DB_PASS= \\ -e DB_NAME=hedgedoc \\ -e TZ=Europe/London \\ -e CMD_DOMAIN=localhost \\ -e CMD_URL_ADDPORT=false `#optional` \\ -e CMD_PROTOCOL_USESSL=false `#optional` \\ -e CMD_PORT=3000 `#optional` \\ -e CMD_ALLOW_ORIGIN=['localhost'] `#optional` \\ -p 3000:3000 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/hedgedoc:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Web gui port (internal port also needs to be changed if accessing at port other than 80, 443 and 3000). Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation DB_HOST= Host address of mysql database DB_PORT=3306 Port to access mysql database default is 3306 DB_USER=hedgedoc Database user DB_PASS= Database password DB_NAME=hedgedoc Database name TZ=Europe/London Specify a timezone to use EG Europe/London. CMD_DOMAIN=localhost The address the gui will be accessed at (ie. 192.168.1.1 or hedgedoc.domain.com ). CMD_URL_ADDPORT=false Set to true if using a port other than 80 or 443 . CMD_PROTOCOL_USESSL=false Set to true if accessing over https via reverse proxy. CMD_PORT=3000 If you wish to access hedgedoc at a port different than 80, 443 or 3000, you need to set this to that port (ie. CMD_PORT=5000 ) and change the port mapping accordingly (5000:5000). CMD_ALLOW_ORIGIN=['localhost'] Comma-separated list of allowed hostnames Volume Mappings ( -v ) Volume Function /config HedgeDoc config and configurable files Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it hedgedoc /bin/bash To monitor the logs of the container in realtime: docker logs -f hedgedoc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' hedgedoc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/hedgedoc:latest Versions 02.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 10.04.22: - Use python3 to build node sqlite3. 10.02.22: - Rebase to Alpine 3.15. 09.02.22: - Add optional var CMD_PORT that is needed for accessing at port other than 80, 443 and 3000. 09.12.21: - Add optional var CMD_PROTOCOL_USESSL that is needed for reverse proxy. 07.12.21: - Rebase to ubuntu focal. Update to node 16. Make sure uploads are persistent. 15.10.21: - Add required env var CMD_DOMAIN . 05.05.21: - Remove symlinking some folders from config to /opt/hedgedoc/public. 03.05.21: - Remove deprecated sequalizerc step. 22.12.20: - Initial release","title":"hedgedoc"},{"location":"images/docker-hedgedoc/#linuxserverhedgedoc","text":"HedgeDoc gives you access to all your files wherever you are. HedgeDoc is a real-time, multi-platform collaborative markdown note editor. This means that you can write notes with other people on your desktop, tablet or even on the phone. You can sign-in via multiple auth providers like Facebook, Twitter, GitHub and many more on the homepage.","title":"linuxserver/hedgedoc"},{"location":"images/docker-hedgedoc/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/hedgedoc:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-hedgedoc/#application-setup","text":"HedgeDoc web interface can be accessed http://${IP}:3000/ , if you want to use a custom domain or anything besides port 3000 you will need to leverage their env settings for callbacks: (specifically for CMD_DOMAIN, CMD_PORT and CMD_URL_ADDPORT) Full list of HedgeDoc options For convience we provide a working example using Mysql as a backend in this document, if you do not wish to use our custom environment values or a Mysql database backend feel free to leverage any of the settings laid out in the link above. To run behind a reverse proxy we have a preconfigured config using docker networking included in our SWAG image and you can read how to use this in the Reverse Proxy Confs repository","title":"Application Setup"},{"location":"images/docker-hedgedoc/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-hedgedoc/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: hedgedoc: image: lscr.io/linuxserver/hedgedoc:latest container_name: hedgedoc environment: - PUID=1000 - PGID=1000 - DB_HOST= - DB_PORT=3306 - DB_USER=hedgedoc - DB_PASS= - DB_NAME=hedgedoc - TZ=Europe/London - CMD_DOMAIN=localhost - CMD_URL_ADDPORT=false #optional - CMD_PROTOCOL_USESSL=false #optional - CMD_PORT=3000 #optional - CMD_ALLOW_ORIGIN=['localhost'] #optional volumes: - /path/to/appdata:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-hedgedoc/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=hedgedoc \\ -e PUID=1000 \\ -e PGID=1000 \\ -e DB_HOST= \\ -e DB_PORT=3306 \\ -e DB_USER=hedgedoc \\ -e DB_PASS= \\ -e DB_NAME=hedgedoc \\ -e TZ=Europe/London \\ -e CMD_DOMAIN=localhost \\ -e CMD_URL_ADDPORT=false `#optional` \\ -e CMD_PROTOCOL_USESSL=false `#optional` \\ -e CMD_PORT=3000 `#optional` \\ -e CMD_ALLOW_ORIGIN=['localhost'] `#optional` \\ -p 3000:3000 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/hedgedoc:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-hedgedoc/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-hedgedoc/#ports-p","text":"Parameter Function 3000 Web gui port (internal port also needs to be changed if accessing at port other than 80, 443 and 3000).","title":"Ports (-p)"},{"location":"images/docker-hedgedoc/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation DB_HOST= Host address of mysql database DB_PORT=3306 Port to access mysql database default is 3306 DB_USER=hedgedoc Database user DB_PASS= Database password DB_NAME=hedgedoc Database name TZ=Europe/London Specify a timezone to use EG Europe/London. CMD_DOMAIN=localhost The address the gui will be accessed at (ie. 192.168.1.1 or hedgedoc.domain.com ). CMD_URL_ADDPORT=false Set to true if using a port other than 80 or 443 . CMD_PROTOCOL_USESSL=false Set to true if accessing over https via reverse proxy. CMD_PORT=3000 If you wish to access hedgedoc at a port different than 80, 443 or 3000, you need to set this to that port (ie. CMD_PORT=5000 ) and change the port mapping accordingly (5000:5000). CMD_ALLOW_ORIGIN=['localhost'] Comma-separated list of allowed hostnames","title":"Environment Variables (-e)"},{"location":"images/docker-hedgedoc/#volume-mappings-v","text":"Volume Function /config HedgeDoc config and configurable files","title":"Volume Mappings (-v)"},{"location":"images/docker-hedgedoc/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-hedgedoc/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-hedgedoc/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-hedgedoc/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-hedgedoc/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-hedgedoc/#support-info","text":"Shell access whilst the container is running: docker exec -it hedgedoc /bin/bash To monitor the logs of the container in realtime: docker logs -f hedgedoc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' hedgedoc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/hedgedoc:latest","title":"Support Info"},{"location":"images/docker-hedgedoc/#versions","text":"02.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 10.04.22: - Use python3 to build node sqlite3. 10.02.22: - Rebase to Alpine 3.15. 09.02.22: - Add optional var CMD_PORT that is needed for accessing at port other than 80, 443 and 3000. 09.12.21: - Add optional var CMD_PROTOCOL_USESSL that is needed for reverse proxy. 07.12.21: - Rebase to ubuntu focal. Update to node 16. Make sure uploads are persistent. 15.10.21: - Add required env var CMD_DOMAIN . 05.05.21: - Remove symlinking some folders from config to /opt/hedgedoc/public. 03.05.21: - Remove deprecated sequalizerc step. 22.12.20: - Initial release","title":"Versions"},{"location":"images/docker-heimdall/","text":"linuxserver/heimdall Heimdall is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/heimdall:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Heimdall releases. development \u2705 Latest commit from the github 2.x branch. Application Setup Access the web gui at http://SERVERIP:PORT Adding password protection This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd . Replace with a username of your choice and you will be asked to enter a password. Uncomment the basic auth lines in /config/nginx/site-confs/default.conf and restart the container. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: heimdall: image: lscr.io/linuxserver/heimdall:latest container_name: heimdall environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 80:80 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=heimdall \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/heimdall:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http gui 443 https gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it heimdall /bin/bash To monitor the logs of the container in realtime: docker logs -f heimdall Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' heimdall Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/heimdall:latest Versions 14.11.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 04.11.22: - Build commits to upstream branch 2.x for the development tag. 13.03.21: - Make searchproviders.yaml user configurable. 10.02.21: - Revert to alpine 3.12 as php 7.4 broke laravel. 10.02.21: - Rebasing to alpine 3.13. 17.08.20: - Add php7-curl. 01.06.20: - Rebasing to alpine 3.12. 17.01.20: - Use nginx from baseimage. 19.12.19: - Rebasing to alpine 3.11. 16.07.19: - Save laravel.log to /config/log/heimdall. 28.06.19: - Rebasing to alpine 3.10. 01.04.19: - Fix permission detect logic. 26.03.19: - Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 15.03.19: - Clarify docker image tags in readme. 22.02.19: - Rebasing to alpine 3.9. 16.01.18: - Generate random app key in .env for new installs. 20.11.18: - Upgrade baseimage packages during build. 04.11.18: - Add php7-zip. 31.10.18: - Add queue service. 17.10.18: - Symlink avatars folder. 16.10.18: - Updated fastcgi_params for user login support. 07.10.18: - Symlink .env rather than copy. It now resides under /config/www 30.09.18: - Multi-arch image. Move .env to /config . 05.09.18: - Rebase to alpine linux 3.8. 06.03.18: - Use password protection if htpasswd is set. Existing users can delete their default site config at /config/nginx/site-confs/default.conf and restart the container, a new default site config with htpasswd support will be created in its place 12.02.18: - Initial Release.","title":"heimdall"},{"location":"images/docker-heimdall/#linuxserverheimdall","text":"Heimdall is a way to organise all those links to your most used web sites and web applications in a simple way. Simplicity is the key to Heimdall. Why not use it as your browser start page? It even has the ability to include a search bar using either Google, Bing or DuckDuckGo.","title":"linuxserver/heimdall"},{"location":"images/docker-heimdall/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/heimdall:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-heimdall/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Heimdall releases. development \u2705 Latest commit from the github 2.x branch.","title":"Version Tags"},{"location":"images/docker-heimdall/#application-setup","text":"Access the web gui at http://SERVERIP:PORT","title":"Application Setup"},{"location":"images/docker-heimdall/#adding-password-protection","text":"This image now supports password protection through htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it heimdall htpasswd -c /config/nginx/.htpasswd . Replace with a username of your choice and you will be asked to enter a password. Uncomment the basic auth lines in /config/nginx/site-confs/default.conf and restart the container.","title":"Adding password protection"},{"location":"images/docker-heimdall/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-heimdall/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: heimdall: image: lscr.io/linuxserver/heimdall:latest container_name: heimdall environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 80:80 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-heimdall/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=heimdall \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/heimdall:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-heimdall/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-heimdall/#ports-p","text":"Parameter Function 80 http gui 443 https gui","title":"Ports (-p)"},{"location":"images/docker-heimdall/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-heimdall/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-heimdall/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-heimdall/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-heimdall/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-heimdall/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-heimdall/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-heimdall/#support-info","text":"Shell access whilst the container is running: docker exec -it heimdall /bin/bash To monitor the logs of the container in realtime: docker logs -f heimdall Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' heimdall Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/heimdall:latest","title":"Support Info"},{"location":"images/docker-heimdall/#versions","text":"14.11.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 04.11.22: - Build commits to upstream branch 2.x for the development tag. 13.03.21: - Make searchproviders.yaml user configurable. 10.02.21: - Revert to alpine 3.12 as php 7.4 broke laravel. 10.02.21: - Rebasing to alpine 3.13. 17.08.20: - Add php7-curl. 01.06.20: - Rebasing to alpine 3.12. 17.01.20: - Use nginx from baseimage. 19.12.19: - Rebasing to alpine 3.11. 16.07.19: - Save laravel.log to /config/log/heimdall. 28.06.19: - Rebasing to alpine 3.10. 01.04.19: - Fix permission detect logic. 26.03.19: - Install Heimdall during container start to prevent delayed start due to overlayfs bug with recursive chown. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 15.03.19: - Clarify docker image tags in readme. 22.02.19: - Rebasing to alpine 3.9. 16.01.18: - Generate random app key in .env for new installs. 20.11.18: - Upgrade baseimage packages during build. 04.11.18: - Add php7-zip. 31.10.18: - Add queue service. 17.10.18: - Symlink avatars folder. 16.10.18: - Updated fastcgi_params for user login support. 07.10.18: - Symlink .env rather than copy. It now resides under /config/www 30.09.18: - Multi-arch image. Move .env to /config . 05.09.18: - Rebase to alpine linux 3.8. 06.03.18: - Use password protection if htpasswd is set. Existing users can delete their default site config at /config/nginx/site-confs/default.conf and restart the container, a new default site config with htpasswd support will be created in its place 12.02.18: - Initial Release.","title":"Versions"},{"location":"images/docker-homeassistant/","text":"linuxserver/homeassistant Home Assistant Core - Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/homeassistant:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This image is based on Home Assistant Core. The Webui can be found at http://your-ip:8123 . Follow the wizard to set up Home Assistant. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: homeassistant: image: lscr.io/linuxserver/homeassistant:latest container_name: homeassistant network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 8123:8123 #optional devices: - /path/to/device:/path/to/device #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=homeassistant \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8123:8123 `#optional` \\ -v /path/to/data:/config \\ --device /path/to/device:/path/to/device `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/homeassistant:latest Host vs. Bridge Home Assistant can discover and automatically configure zeroconf / mDNS and UPnP devices on your network. In order for this to work you must create the container with --net=host . Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8123 Application WebUI, only use this if you are not using host mode. Networking ( --net ) Parameter Function --net=host Shares host networking with container. Required for some devices to be discovered by Home Assistant. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify your TimeZone e.g. Europe/London. Volume Mappings ( -v ) Volume Function /config Home Assistant config storage path. Device Mappings ( --device ) Parameter Function /path/to/device For passing through USB, serial or gpio devices. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it homeassistant /bin/bash To monitor the logs of the container in realtime: docker logs -f homeassistant Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' homeassistant Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/homeassistant:latest Versions 16.11.22: - Fix the dep conflict for google calendar. 23.09.22: - Migrate to s6v3. 29.07.22: - Improve usb device permission fix. 07.07.22: - Rebase to alpine 3.16, switch to cp310 wheels. 07.05.22: - Build matplotlib with the same Numpy version as HA req. 31.03.22: - Install pycups. 07.03.22: - Install PySwitchbot. 02.03.22: - Update pip and use legacy resolver, clean up temp python files, reduce image size. 04.02.22: - Always compile grpcio on arm32v7 due to pypi pushing a glibc only wheel. 12.12.21: - Use the new build.yaml to determine HA base version. 25.09.21: - Use the new lsio homeassistant wheel repo, instead of the HA wheels. 13.09.21: - Build psycopg locally as the HA provided wheel does not seem to work properly. 13.09.21: - Fix setcap in service. Build CISO8601 locally as the HA provided wheel does not seem to work properly. 12.09.21: - Rebase to alpine 3.14. Build on native armhf. 09.08.21: - Fixed broken build caused by missing dependency. 01.07.21: - Remove HACS dependencies as it caused a crash in Home-assistant. 25.02.21: - Add python dependencies from homeassistant base image. 07.02.21: - Fix building from the wrong requirement file. Add ssh client & external DB libs. 06.02.21: - Add iputils so ping works as non root user. 30.01.21: - Initial Release.","title":"homeassistant"},{"location":"images/docker-homeassistant/#linuxserverhomeassistant","text":"Home Assistant Core - Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.","title":"linuxserver/homeassistant"},{"location":"images/docker-homeassistant/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/homeassistant:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-homeassistant/#application-setup","text":"This image is based on Home Assistant Core. The Webui can be found at http://your-ip:8123 . Follow the wizard to set up Home Assistant.","title":"Application Setup"},{"location":"images/docker-homeassistant/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-homeassistant/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: homeassistant: image: lscr.io/linuxserver/homeassistant:latest container_name: homeassistant network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 8123:8123 #optional devices: - /path/to/device:/path/to/device #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-homeassistant/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=homeassistant \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8123:8123 `#optional` \\ -v /path/to/data:/config \\ --device /path/to/device:/path/to/device `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/homeassistant:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-homeassistant/#host-vs-bridge","text":"Home Assistant can discover and automatically configure zeroconf / mDNS and UPnP devices on your network. In order for this to work you must create the container with --net=host .","title":"Host vs. Bridge"},{"location":"images/docker-homeassistant/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-homeassistant/#ports-p","text":"Parameter Function 8123 Application WebUI, only use this if you are not using host mode.","title":"Ports (-p)"},{"location":"images/docker-homeassistant/#networking-net","text":"Parameter Function --net=host Shares host networking with container. Required for some devices to be discovered by Home Assistant.","title":"Networking (--net)"},{"location":"images/docker-homeassistant/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify your TimeZone e.g. Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-homeassistant/#volume-mappings-v","text":"Volume Function /config Home Assistant config storage path.","title":"Volume Mappings (-v)"},{"location":"images/docker-homeassistant/#device-mappings-device","text":"Parameter Function /path/to/device For passing through USB, serial or gpio devices.","title":"Device Mappings (--device)"},{"location":"images/docker-homeassistant/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-homeassistant/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-homeassistant/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-homeassistant/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-homeassistant/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-homeassistant/#support-info","text":"Shell access whilst the container is running: docker exec -it homeassistant /bin/bash To monitor the logs of the container in realtime: docker logs -f homeassistant Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' homeassistant Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/homeassistant:latest","title":"Support Info"},{"location":"images/docker-homeassistant/#versions","text":"16.11.22: - Fix the dep conflict for google calendar. 23.09.22: - Migrate to s6v3. 29.07.22: - Improve usb device permission fix. 07.07.22: - Rebase to alpine 3.16, switch to cp310 wheels. 07.05.22: - Build matplotlib with the same Numpy version as HA req. 31.03.22: - Install pycups. 07.03.22: - Install PySwitchbot. 02.03.22: - Update pip and use legacy resolver, clean up temp python files, reduce image size. 04.02.22: - Always compile grpcio on arm32v7 due to pypi pushing a glibc only wheel. 12.12.21: - Use the new build.yaml to determine HA base version. 25.09.21: - Use the new lsio homeassistant wheel repo, instead of the HA wheels. 13.09.21: - Build psycopg locally as the HA provided wheel does not seem to work properly. 13.09.21: - Fix setcap in service. Build CISO8601 locally as the HA provided wheel does not seem to work properly. 12.09.21: - Rebase to alpine 3.14. Build on native armhf. 09.08.21: - Fixed broken build caused by missing dependency. 01.07.21: - Remove HACS dependencies as it caused a crash in Home-assistant. 25.02.21: - Add python dependencies from homeassistant base image. 07.02.21: - Fix building from the wrong requirement file. Add ssh client & external DB libs. 06.02.21: - Add iputils so ping works as non root user. 30.01.21: - Initial Release.","title":"Versions"},{"location":"images/docker-htpcmanager/","text":"linuxserver/htpcmanager Htpcmanager is a front end for many htpc related applications. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/htpcmanager:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The webui is found at port 8085. Smartmontools and psutil have not been included, you can safely ignore the warning error in the log. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: htpcmanager: image: lscr.io/linuxserver/htpcmanager:latest container_name: htpcmanager environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 8085:8085 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=htpcmanager \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8085:8085 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/htpcmanager:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8085 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it htpcmanager /bin/bash To monitor the logs of the container in realtime: docker logs -f htpcmanager Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' htpcmanager Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/htpcmanager:latest Versions 24.08.22: - Rebase to alpine 3.15, use linuxserver.io wheel repo. 08.04.21: - Fix build. 10.02.21: - Rebasing to alpine 3.13. 26.10.20: - Rebase to alpine 3.12, python3, change upstream project 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 12.12.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 07.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 26.09.16: - Add back cherrypy after removal from baseimage. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 14.01.15: - Remove hardcoded loglevel from the run command, set in webui 19.09.15: - Initial Release.","title":"htpcmanager"},{"location":"images/docker-htpcmanager/#linuxserverhtpcmanager","text":"Htpcmanager is a front end for many htpc related applications.","title":"linuxserver/htpcmanager"},{"location":"images/docker-htpcmanager/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/htpcmanager:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-htpcmanager/#application-setup","text":"The webui is found at port 8085. Smartmontools and psutil have not been included, you can safely ignore the warning error in the log.","title":"Application Setup"},{"location":"images/docker-htpcmanager/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-htpcmanager/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: htpcmanager: image: lscr.io/linuxserver/htpcmanager:latest container_name: htpcmanager environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 8085:8085 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-htpcmanager/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=htpcmanager \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8085:8085 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/htpcmanager:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-htpcmanager/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-htpcmanager/#ports-p","text":"Parameter Function 8085 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-htpcmanager/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-htpcmanager/#volume-mappings-v","text":"Volume Function /config Configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-htpcmanager/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-htpcmanager/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-htpcmanager/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-htpcmanager/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-htpcmanager/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-htpcmanager/#support-info","text":"Shell access whilst the container is running: docker exec -it htpcmanager /bin/bash To monitor the logs of the container in realtime: docker logs -f htpcmanager Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' htpcmanager Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/htpcmanager:latest","title":"Support Info"},{"location":"images/docker-htpcmanager/#versions","text":"24.08.22: - Rebase to alpine 3.15, use linuxserver.io wheel repo. 08.04.21: - Fix build. 10.02.21: - Rebasing to alpine 3.13. 26.10.20: - Rebase to alpine 3.12, python3, change upstream project 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 12.12.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 07.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 26.09.16: - Add back cherrypy after removal from baseimage. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 14.01.15: - Remove hardcoded loglevel from the run command, set in webui 19.09.15: - Initial Release.","title":"Versions"},{"location":"images/docker-hydra/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/hydra Hydra is a meta search for NZB indexers and the \"spiritual successor\" to NZBmegasearcH. It provides easy access to a number of raw and newznab based indexers. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/hydra should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: hydra: image: lscr.io/linuxserver/hydra container_name: hydra environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads ports: - 5075:5075 restart: unless-stopped docker cli docker run -d \\ --name=hydra \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5075:5075 \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/hydra Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5075 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where hydra should store config files. /downloads NZB download folder. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup THIS IMAGE HAS BEEN DEPRECATED. Please use linuxserver/nzbhydra2 instead. The web interface is at :5075 , to set up indexers and connections to your nzb download applications. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it hydra /bin/bash To monitor the logs of the container in realtime: docker logs -f hydra Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' hydra Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/hydra Versions 04.11.19: - Deprecated. Please use linuxserver/nzbhydra2 instead. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 12.12.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 07.11.16: - Move git clone internal to the container,point config, database and log to use same locations for existing users. 14.10.16: - Add version layer information. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 25.01.16: - Initial Release.","title":"hydra"},{"location":"images/docker-hydra/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-hydra/#linuxserverhydra","text":"Hydra is a meta search for NZB indexers and the \"spiritual successor\" to NZBmegasearcH. It provides easy access to a number of raw and newznab based indexers.","title":"linuxserver/hydra"},{"location":"images/docker-hydra/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/hydra should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-hydra/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-hydra/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: hydra: image: lscr.io/linuxserver/hydra container_name: hydra environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads ports: - 5075:5075 restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-hydra/#docker-cli","text":"docker run -d \\ --name=hydra \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5075:5075 \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/hydra","title":"docker cli"},{"location":"images/docker-hydra/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-hydra/#ports-p","text":"Parameter Function 5075 WebUI","title":"Ports (-p)"},{"location":"images/docker-hydra/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-hydra/#volume-mappings-v","text":"Volume Function /config Where hydra should store config files. /downloads NZB download folder.","title":"Volume Mappings (-v)"},{"location":"images/docker-hydra/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-hydra/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-hydra/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-hydra/#application-setup","text":"THIS IMAGE HAS BEEN DEPRECATED. Please use linuxserver/nzbhydra2 instead. The web interface is at :5075 , to set up indexers and connections to your nzb download applications.","title":"Application Setup"},{"location":"images/docker-hydra/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-hydra/#support-info","text":"Shell access whilst the container is running: docker exec -it hydra /bin/bash To monitor the logs of the container in realtime: docker logs -f hydra Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' hydra Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/hydra","title":"Support Info"},{"location":"images/docker-hydra/#versions","text":"04.11.19: - Deprecated. Please use linuxserver/nzbhydra2 instead. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Add pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 12.12.17: - Rebase to alpine 3.7. 20.07.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 07.11.16: - Move git clone internal to the container,point config, database and log to use same locations for existing users. 14.10.16: - Add version layer information. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 25.01.16: - Initial Release.","title":"Versions"},{"location":"images/docker-hydra2/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We will continue releases with a new image under the correct name: linuxserver/nzbhydra2. linuxserver/hydra2 Hydra2 is a meta search application for NZB indexers, the \"spiritual successor\" to NZBmegasearcH, and an evolution of the original application NZBHydra . It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. NOTE: The last version that supports migration is linuxserver/hydra2:v2.10.2-ls49 Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/hydra2 should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Version Tags This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest Stable releases dev Prereleases from their GitHub Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=hydra2 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5076:5076 \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ linuxserver/hydra2 docker-compose Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: hydra2: image: linuxserver/hydra2 container_name: hydra2 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads ports: - 5076:5076 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5076 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where hydra2 should store config files. /downloads NZB download folder. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup The web interface is at :5076 , to set up indexers and connections to your nzb download applications. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above. Support Info Shell access whilst the container is running: docker exec -it hydra2 /bin/bash To monitor the logs of the container in realtime: docker logs -f hydra2 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' hydra2 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/hydra2 Versions 19.04.20: - Deprecated. New repo at linuxserver/docker-nzbhydra2 . 08.01.20: - Switch to python3. 05.01.20: - Add dev tag for prereleases. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch. 18.08.18: - Bump java version to 10, (bionic currently refers to it as version 11). 10.08.18: - Rebase to ubuntu bionic. 15.04.18: - Change to port 5076 in the Dockerfile. 11.01.18: - Initial Release.","title":"hydra2"},{"location":"images/docker-hydra2/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We will continue releases with a new image under the correct name: linuxserver/nzbhydra2.","title":"DEPRECATION NOTICE"},{"location":"images/docker-hydra2/#linuxserverhydra2","text":"Hydra2 is a meta search application for NZB indexers, the \"spiritual successor\" to NZBmegasearcH, and an evolution of the original application NZBHydra . It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. NOTE: The last version that supports migration is linuxserver/hydra2:v2.10.2-ls49","title":"linuxserver/hydra2"},{"location":"images/docker-hydra2/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/hydra2 should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-hydra2/#version-tags","text":"This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest Stable releases dev Prereleases from their GitHub","title":"Version Tags"},{"location":"images/docker-hydra2/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-hydra2/#docker","text":"docker create \\ --name=hydra2 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5076:5076 \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ linuxserver/hydra2","title":"docker"},{"location":"images/docker-hydra2/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: hydra2: image: linuxserver/hydra2 container_name: hydra2 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads ports: - 5076:5076 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-hydra2/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-hydra2/#ports-p","text":"Parameter Function 5076 WebUI","title":"Ports (-p)"},{"location":"images/docker-hydra2/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-hydra2/#volume-mappings-v","text":"Volume Function /config Where hydra2 should store config files. /downloads NZB download folder.","title":"Volume Mappings (-v)"},{"location":"images/docker-hydra2/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-hydra2/#application-setup","text":"The web interface is at :5076 , to set up indexers and connections to your nzb download applications.","title":"Application Setup"},{"location":"images/docker-hydra2/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above.","title":"Docker Mods"},{"location":"images/docker-hydra2/#support-info","text":"Shell access whilst the container is running: docker exec -it hydra2 /bin/bash To monitor the logs of the container in realtime: docker logs -f hydra2 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' hydra2 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/hydra2","title":"Support Info"},{"location":"images/docker-hydra2/#versions","text":"19.04.20: - Deprecated. New repo at linuxserver/docker-nzbhydra2 . 08.01.20: - Switch to python3. 05.01.20: - Add dev tag for prereleases. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch. 18.08.18: - Bump java version to 10, (bionic currently refers to it as version 11). 10.08.18: - Rebase to ubuntu bionic. 15.04.18: - Change to port 5076 in the Dockerfile. 11.01.18: - Initial Release.","title":"Versions"},{"location":"images/docker-ipfs/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Please use the official IPFS container here: https://hub.docker.com/r/ipfs/go-ipfs When this project started the web interface was not integrated well with the default IPFS server. Now it is great and well maintained, hosting it on a static webserver does not make much sense anymore. linuxserver/ipfs Ipfs - A peer-to-peer hypermedia protocol designed to make the web faster, safer, and more open. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ipfs should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Application Setup In order to push files beyond your local gateway you have to make sure port 4001 is forwarded to the internet. This is required for IPFS peers to reach in and grab your files so public gateways can serve them. Access the webui at http://localhost , if not using localhost scroll to the bottom of the page and set the API Address setting to IE http://192.168.1.10:5001 , from there you can upload and manage files you push to IPFS. Your gateway to access IPFS files is http://localhost:8080/ipfs/YOUR-FILE-HASH-HERE . You can also simply use public IPFS gateways like: * Cloudflare - https://cloudflare-ipfs.com/ipfs/YOUR-FILE-HASH-HERE * IPFS.io - https://ipfs.io/ipfs/YOUR-FILE-HASH-HERE * Eternum.io - https://ipfs.eternum.io/ipfs/YOUR-FILE-HASH-HERE Cloudflare is a solid option as they actually edge cache the files on their CDN so even if your node pinning the item goes down for periods of time their cache will last up to a month. For more on using IPFS please read the docs here Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: ipfs: image: lscr.io/linuxserver/ipfs container_name: ipfs environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 80:80 - 4001:4001 - 5001:5001 - 8080:8080 - 443:443 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=ipfs \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 4001:4001 \\ -p 5001:5001 \\ -p 8080:8080 \\ -p 443:443 `#optional` \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ipfs Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 The port for the IPFS web UI 4001 Peering port, this is the only port you should expose to the internet 5001 API port, the clientside webUI needs to be able to talk to this from whatever machine your web browser is on 8080 Gateway Port, actually serves IPFS content 443 HTTPS port for web UI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config IPFS storage and config files/logs Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it ipfs /bin/bash To monitor the logs of the container in realtime: docker logs -f ipfs Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ipfs Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ipfs Versions 02.02.22: - Deprecate. 19.09.21: - Build webui from source. Update code formatting. Rebase to Alpine 3.14. 01.04.21: - Add migration bins to image to support upgrades. 24.02.20: - Rebase to Alpine 3.13. 09.07.19: - Initial version.","title":"ipfs"},{"location":"images/docker-ipfs/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. Please use the official IPFS container here: https://hub.docker.com/r/ipfs/go-ipfs When this project started the web interface was not integrated well with the default IPFS server. Now it is great and well maintained, hosting it on a static webserver does not make much sense anymore.","title":"DEPRECATION NOTICE"},{"location":"images/docker-ipfs/#linuxserveripfs","text":"Ipfs - A peer-to-peer hypermedia protocol designed to make the web faster, safer, and more open.","title":"linuxserver/ipfs"},{"location":"images/docker-ipfs/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ipfs should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-ipfs/#application-setup","text":"In order to push files beyond your local gateway you have to make sure port 4001 is forwarded to the internet. This is required for IPFS peers to reach in and grab your files so public gateways can serve them. Access the webui at http://localhost , if not using localhost scroll to the bottom of the page and set the API Address setting to IE http://192.168.1.10:5001 , from there you can upload and manage files you push to IPFS. Your gateway to access IPFS files is http://localhost:8080/ipfs/YOUR-FILE-HASH-HERE . You can also simply use public IPFS gateways like: * Cloudflare - https://cloudflare-ipfs.com/ipfs/YOUR-FILE-HASH-HERE * IPFS.io - https://ipfs.io/ipfs/YOUR-FILE-HASH-HERE * Eternum.io - https://ipfs.eternum.io/ipfs/YOUR-FILE-HASH-HERE Cloudflare is a solid option as they actually edge cache the files on their CDN so even if your node pinning the item goes down for periods of time their cache will last up to a month. For more on using IPFS please read the docs here","title":"Application Setup"},{"location":"images/docker-ipfs/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-ipfs/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: ipfs: image: lscr.io/linuxserver/ipfs container_name: ipfs environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 80:80 - 4001:4001 - 5001:5001 - 8080:8080 - 443:443 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-ipfs/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=ipfs \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 4001:4001 \\ -p 5001:5001 \\ -p 8080:8080 \\ -p 443:443 `#optional` \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ipfs","title":"docker cli (click here for more info)"},{"location":"images/docker-ipfs/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-ipfs/#ports-p","text":"Parameter Function 80 The port for the IPFS web UI 4001 Peering port, this is the only port you should expose to the internet 5001 API port, the clientside webUI needs to be able to talk to this from whatever machine your web browser is on 8080 Gateway Port, actually serves IPFS content 443 HTTPS port for web UI","title":"Ports (-p)"},{"location":"images/docker-ipfs/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-ipfs/#volume-mappings-v","text":"Volume Function /config IPFS storage and config files/logs","title":"Volume Mappings (-v)"},{"location":"images/docker-ipfs/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-ipfs/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-ipfs/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-ipfs/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-ipfs/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-ipfs/#support-info","text":"Shell access whilst the container is running: docker exec -it ipfs /bin/bash To monitor the logs of the container in realtime: docker logs -f ipfs Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ipfs Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ipfs","title":"Support Info"},{"location":"images/docker-ipfs/#versions","text":"02.02.22: - Deprecate. 19.09.21: - Build webui from source. Update code formatting. Rebase to Alpine 3.14. 01.04.21: - Add migration bins to image to support upgrades. 24.02.20: - Rebase to Alpine 3.13. 09.07.19: - Initial version.","title":"Versions"},{"location":"images/docker-jackett/","text":"linuxserver/jackett Jackett works as a proxy server: it translates queries from apps (Sonarr, SickRage, CouchPotato, Mylar, etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/jackett:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Jackett Releases development \u2705 Latest Jackett Releases Application Setup The web interface is at :9117 , configure various trackers and connections to other apps there. More info at Jackett . Disable autoupdates in the webui to prevent jackett crashing, the image is refreshed when new versions are released. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: jackett: image: lscr.io/linuxserver/jackett:latest container_name: jackett environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - AUTO_UPDATE=true #optional - RUN_OPTS= #optional volumes: - :/config - :/downloads ports: - 9117:9117 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=jackett \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e AUTO_UPDATE=true `#optional` \\ -e RUN_OPTS= `#optional` \\ -p 9117:9117 \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/jackett:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 9117 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. AUTO_UPDATE=true Allow Jackett to update inside of the container (currently recommended by Jackett and enabled by default) RUN_OPTS= Optionally specify additional arguments to be passed. Volume Mappings ( -v ) Volume Function /config Where Jackett should store its config file. /downloads Path to torrent blackhole. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it jackett /bin/bash To monitor the logs of the container in realtime: docker logs -f jackett Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' jackett Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/jackett:latest Versions 10.05.22: - Rebase to Ubuntu Focal. 24.05.20: - Allow user to optionally enable auto updates. 31.12.19: - Remove agressive startup chowning. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.03.19: - Switch to net-core builds of jackett, not dependant on mono and smaller images. 11.02.19: - Add pipeline logic and multi arch. 11.06.18: - Ensure root ownership of Jackett files. 13.12.17: - Fix continuation lines. 17.04.17: - Switch to using inhouse mono baseimage, ubuntu xenial based. 09.02.17: - Rebase to alpine 3.5. 29.10.16: - Call python2 from edge main to satisfy new mono dependency. 14.10.16: - Add version layer information. 22.09.16: - Remove autoupdate, tidy up Dockerfile. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 06.08.16: - Rebase to alpine linux for smaller image. 25.01.16: - Initial Release.","title":"jackett"},{"location":"images/docker-jackett/#linuxserverjackett","text":"Jackett works as a proxy server: it translates queries from apps (Sonarr, SickRage, CouchPotato, Mylar, etc) into tracker-site-specific http queries, parses the html response, then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches. Jackett is a single repository of maintained indexer scraping & translation logic - removing the burden from other apps.","title":"linuxserver/jackett"},{"location":"images/docker-jackett/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/jackett:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-jackett/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Jackett Releases development \u2705 Latest Jackett Releases","title":"Version Tags"},{"location":"images/docker-jackett/#application-setup","text":"The web interface is at :9117 , configure various trackers and connections to other apps there. More info at Jackett . Disable autoupdates in the webui to prevent jackett crashing, the image is refreshed when new versions are released.","title":"Application Setup"},{"location":"images/docker-jackett/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-jackett/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: jackett: image: lscr.io/linuxserver/jackett:latest container_name: jackett environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - AUTO_UPDATE=true #optional - RUN_OPTS= #optional volumes: - :/config - :/downloads ports: - 9117:9117 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-jackett/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=jackett \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e AUTO_UPDATE=true `#optional` \\ -e RUN_OPTS= `#optional` \\ -p 9117:9117 \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/jackett:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-jackett/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-jackett/#ports-p","text":"Parameter Function 9117 WebUI","title":"Ports (-p)"},{"location":"images/docker-jackett/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. AUTO_UPDATE=true Allow Jackett to update inside of the container (currently recommended by Jackett and enabled by default) RUN_OPTS= Optionally specify additional arguments to be passed.","title":"Environment Variables (-e)"},{"location":"images/docker-jackett/#volume-mappings-v","text":"Volume Function /config Where Jackett should store its config file. /downloads Path to torrent blackhole.","title":"Volume Mappings (-v)"},{"location":"images/docker-jackett/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-jackett/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-jackett/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-jackett/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-jackett/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-jackett/#support-info","text":"Shell access whilst the container is running: docker exec -it jackett /bin/bash To monitor the logs of the container in realtime: docker logs -f jackett Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' jackett Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/jackett:latest","title":"Support Info"},{"location":"images/docker-jackett/#versions","text":"10.05.22: - Rebase to Ubuntu Focal. 24.05.20: - Allow user to optionally enable auto updates. 31.12.19: - Remove agressive startup chowning. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.03.19: - Switch to net-core builds of jackett, not dependant on mono and smaller images. 11.02.19: - Add pipeline logic and multi arch. 11.06.18: - Ensure root ownership of Jackett files. 13.12.17: - Fix continuation lines. 17.04.17: - Switch to using inhouse mono baseimage, ubuntu xenial based. 09.02.17: - Rebase to alpine 3.5. 29.10.16: - Call python2 from edge main to satisfy new mono dependency. 14.10.16: - Add version layer information. 22.09.16: - Remove autoupdate, tidy up Dockerfile. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 06.08.16: - Rebase to alpine linux for smaller image. 25.01.16: - Initial Release.","title":"Versions"},{"location":"images/docker-jellyfin/","text":"linuxserver/jellyfin Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/jellyfin:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Jellyfin releases nightly \u2705 Nightly Jellyfin releases Application Setup Webui can be found at http://:8096 More information can be found on the official documentation here . Hardware Acceleration Intel Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the jellyfin docker container. OpenMAX (Raspberry Pi) Hardware acceleration users for Raspberry Pi MMAL/OpenMAX will need to mount their /dev/vcsm and /dev/vchiq video devices inside of the container and their system OpenMax libs by passing the following options when running or creating the container: --device=/dev/vcsm:/dev/vcsm --device=/dev/vchiq:/dev/vchiq -v /opt/vc/lib:/opt/vc/lib V4L2 (Raspberry Pi) Hardware acceleration users for Raspberry Pi V4L2 will need to mount their /dev/video1X devices inside of the container by passing the following options when running or creating the container: --device=/dev/video10:/dev/video10 --device=/dev/video11:/dev/video11 --device=/dev/video12:/dev/video12 Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - JELLYFIN_PublishedServerUrl=192.168.0.5 #optional volumes: - /path/to/library:/config - /path/to/tvseries:/data/tvshows - /path/to/movies:/data/movies ports: - 8096:8096 - 8920:8920 #optional - 7359:7359/udp #optional - 1900:1900/udp #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=jellyfin \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e JELLYFIN_PublishedServerUrl=192.168.0.5 `#optional` \\ -p 8096:8096 \\ -p 8920:8920 `#optional` \\ -p 7359:7359/udp `#optional` \\ -p 1900:1900/udp `#optional` \\ -v /path/to/library:/config \\ -v /path/to/tvseries:/data/tvshows \\ -v /path/to/movies:/data/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/jellyfin:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8096 Http webUI. 8920 Optional - Https webUI (you need to set up your own certificate). 7359/udp Optional - Allows clients to discover Jellyfin on the local network. 1900/udp Optional - Service discovery used by DNLA and clients. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use (e.g. Europe/London). JELLYFIN_PublishedServerUrl=192.168.0.5 Set the autodiscovery response domain or IP address. Volume Mappings ( -v ) Volume Function /config Jellyfin data storage location. This can grow very large, 50gb+ is likely for a large collection. /data/tvshows Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. /data/movies Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Optional Parameters The official documentation for ports has additional ports that can provide auto discovery. Service Discovery ( 1900/udp ) - Since client auto-discover would break if this option were configurable, you cannot change this in the settings at this time. DLNA also uses this port and is required to be in the local subnet. Client Discovery ( 7359/udp ) - Allows clients to discover Jellyfin on the local network. A broadcast message to this port with \"Who is Jellyfin Server?\" will get a JSON response that includes the server address, ID, and name. -p 7359:7359/udp \\ -p 1900:1900/udp \\ The official documentation for environmentals has additional environmentals that can provide additional configurability such as migrating to the native Jellyfin image. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it jellyfin /bin/bash To monitor the logs of the container in realtime: docker logs -f jellyfin Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' jellyfin Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/jellyfin:latest Versions 07.12.22: - Rebase master to Jammy, migrate to s6v3. 11.06.22: - Switch to upstream repo's ffmpeg5 build. 05.01.22: - Specify Intel iHD driver versions to avoid mismatched libva errors. 25.12.21: - Fix video device group perms error message. 10.12.21: - Rework readme, disable template sync. 22.09.21: - Pull only the server, web and ffmpeg packages instead of the wrapper. 23.06.21: - Add log message if device permissions are incorrect. Pin jellyfin dependency versions to prevent upstream apt repo issues. Deprecate the bionic tag. 21.05.21: - Add nvidia.icd file to fix missing tonemapping using Nvidia HW. 20.01.21: - Add Jellyfin Binary Environmentals 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.11.20: - Rebase to Focal, branch off Bionic. 22.07.20: - Ingest releases from Jellyfin repo. 28.04.20: - Replace MMAL/OMX dependency device /dev/vc-mem with /dev/vcsm as the former was not sufficient for raspbian. 11.04.20: - Enable hw decode (mmal) on Raspberry Pi, update readme instructions, add donation info, create missing default transcodes folder. 11.03.20: - Add Pi V4L2 support, remove optional transcode mapping (location is selected in the gui, defaults to path under /config ). 30.01.20: - Add nightly tag. 09.01.20: - Add Pi OpenMax support. 02.10.19: - Improve permission fixing for render & dvb devices. 31.07.19: - Add AMD drivers for vaapi support on x86. 13.06.19: - Add Intel drivers for vaapi support on x86. 07.06.19: - Initial release.","title":"jellyfin"},{"location":"images/docker-jellyfin/#linuxserverjellyfin","text":"Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it.","title":"linuxserver/jellyfin"},{"location":"images/docker-jellyfin/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/jellyfin:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-jellyfin/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Jellyfin releases nightly \u2705 Nightly Jellyfin releases","title":"Version Tags"},{"location":"images/docker-jellyfin/#application-setup","text":"Webui can be found at http://:8096 More information can be found on the official documentation here .","title":"Application Setup"},{"location":"images/docker-jellyfin/#hardware-acceleration","text":"","title":"Hardware Acceleration"},{"location":"images/docker-jellyfin/#intel","text":"Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel"},{"location":"images/docker-jellyfin/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the jellyfin docker container.","title":"Nvidia"},{"location":"images/docker-jellyfin/#openmax-raspberry-pi","text":"Hardware acceleration users for Raspberry Pi MMAL/OpenMAX will need to mount their /dev/vcsm and /dev/vchiq video devices inside of the container and their system OpenMax libs by passing the following options when running or creating the container: --device=/dev/vcsm:/dev/vcsm --device=/dev/vchiq:/dev/vchiq -v /opt/vc/lib:/opt/vc/lib","title":"OpenMAX (Raspberry Pi)"},{"location":"images/docker-jellyfin/#v4l2-raspberry-pi","text":"Hardware acceleration users for Raspberry Pi V4L2 will need to mount their /dev/video1X devices inside of the container by passing the following options when running or creating the container: --device=/dev/video10:/dev/video10 --device=/dev/video11:/dev/video11 --device=/dev/video12:/dev/video12","title":"V4L2 (Raspberry Pi)"},{"location":"images/docker-jellyfin/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-jellyfin/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: jellyfin: image: lscr.io/linuxserver/jellyfin:latest container_name: jellyfin environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - JELLYFIN_PublishedServerUrl=192.168.0.5 #optional volumes: - /path/to/library:/config - /path/to/tvseries:/data/tvshows - /path/to/movies:/data/movies ports: - 8096:8096 - 8920:8920 #optional - 7359:7359/udp #optional - 1900:1900/udp #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-jellyfin/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=jellyfin \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e JELLYFIN_PublishedServerUrl=192.168.0.5 `#optional` \\ -p 8096:8096 \\ -p 8920:8920 `#optional` \\ -p 7359:7359/udp `#optional` \\ -p 1900:1900/udp `#optional` \\ -v /path/to/library:/config \\ -v /path/to/tvseries:/data/tvshows \\ -v /path/to/movies:/data/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/jellyfin:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-jellyfin/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-jellyfin/#ports-p","text":"Parameter Function 8096 Http webUI. 8920 Optional - Https webUI (you need to set up your own certificate). 7359/udp Optional - Allows clients to discover Jellyfin on the local network. 1900/udp Optional - Service discovery used by DNLA and clients.","title":"Ports (-p)"},{"location":"images/docker-jellyfin/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use (e.g. Europe/London). JELLYFIN_PublishedServerUrl=192.168.0.5 Set the autodiscovery response domain or IP address.","title":"Environment Variables (-e)"},{"location":"images/docker-jellyfin/#volume-mappings-v","text":"Volume Function /config Jellyfin data storage location. This can grow very large, 50gb+ is likely for a large collection. /data/tvshows Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc. /data/movies Media goes here. Add as many as needed e.g. /data/movies , /data/tv , etc.","title":"Volume Mappings (-v)"},{"location":"images/docker-jellyfin/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-jellyfin/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-jellyfin/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-jellyfin/#optional-parameters","text":"The official documentation for ports has additional ports that can provide auto discovery. Service Discovery ( 1900/udp ) - Since client auto-discover would break if this option were configurable, you cannot change this in the settings at this time. DLNA also uses this port and is required to be in the local subnet. Client Discovery ( 7359/udp ) - Allows clients to discover Jellyfin on the local network. A broadcast message to this port with \"Who is Jellyfin Server?\" will get a JSON response that includes the server address, ID, and name. -p 7359:7359/udp \\ -p 1900:1900/udp \\ The official documentation for environmentals has additional environmentals that can provide additional configurability such as migrating to the native Jellyfin image.","title":"Optional Parameters"},{"location":"images/docker-jellyfin/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-jellyfin/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-jellyfin/#support-info","text":"Shell access whilst the container is running: docker exec -it jellyfin /bin/bash To monitor the logs of the container in realtime: docker logs -f jellyfin Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' jellyfin Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/jellyfin:latest","title":"Support Info"},{"location":"images/docker-jellyfin/#versions","text":"07.12.22: - Rebase master to Jammy, migrate to s6v3. 11.06.22: - Switch to upstream repo's ffmpeg5 build. 05.01.22: - Specify Intel iHD driver versions to avoid mismatched libva errors. 25.12.21: - Fix video device group perms error message. 10.12.21: - Rework readme, disable template sync. 22.09.21: - Pull only the server, web and ffmpeg packages instead of the wrapper. 23.06.21: - Add log message if device permissions are incorrect. Pin jellyfin dependency versions to prevent upstream apt repo issues. Deprecate the bionic tag. 21.05.21: - Add nvidia.icd file to fix missing tonemapping using Nvidia HW. 20.01.21: - Add Jellyfin Binary Environmentals 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.11.20: - Rebase to Focal, branch off Bionic. 22.07.20: - Ingest releases from Jellyfin repo. 28.04.20: - Replace MMAL/OMX dependency device /dev/vc-mem with /dev/vcsm as the former was not sufficient for raspbian. 11.04.20: - Enable hw decode (mmal) on Raspberry Pi, update readme instructions, add donation info, create missing default transcodes folder. 11.03.20: - Add Pi V4L2 support, remove optional transcode mapping (location is selected in the gui, defaults to path under /config ). 30.01.20: - Add nightly tag. 09.01.20: - Add Pi OpenMax support. 02.10.19: - Improve permission fixing for render & dvb devices. 31.07.19: - Add AMD drivers for vaapi support on x86. 13.06.19: - Add Intel drivers for vaapi support on x86. 07.06.19: - Initial release.","title":"Versions"},{"location":"images/docker-jenkins-builder/","text":"linuxserver/jenkins-builder Expects to run as part of the LSIO CI process. Not for public consumption. Running against remote project docker run --rm \\ -e CONTAINER_NAME=${CONTAINER_NAME} \\ -v ${TEMPDIR}:/ansible/jenkins \\ lscr.io/linuxserver/jenkins-builder:latest Running against local project If you need to test functionality just navigate to the folder with the jenkins-vars.yml and run: docker pull lscr.io/linuxserver/jenkins-builder:latest && \\ docker run --rm \\ -v $(pwd):/tmp \\ -e LOCAL=true \\ -e PUID=$(id -u) -e PGID=$(id -g) \\ lscr.io/linuxserver/jenkins-builder:latest && \\ rm -rf .jenkins-external Newly generated files (including README.md , Jenkinsfile , issue templates, etc.) will overwrite the existing files in your current working directory. Building locally If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-jenkins-builder.git cd docker-jenkins-builder docker build \\ --no-cache \\ --pull \\ -t lscr.io/linuxserver/jenkins-builder:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 . Versions The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"jenkins-builder"},{"location":"images/docker-jenkins-builder/#linuxserverjenkins-builder","text":"Expects to run as part of the LSIO CI process. Not for public consumption.","title":"linuxserver/jenkins-builder"},{"location":"images/docker-jenkins-builder/#running-against-remote-project","text":"docker run --rm \\ -e CONTAINER_NAME=${CONTAINER_NAME} \\ -v ${TEMPDIR}:/ansible/jenkins \\ lscr.io/linuxserver/jenkins-builder:latest","title":"Running against remote project"},{"location":"images/docker-jenkins-builder/#running-against-local-project","text":"If you need to test functionality just navigate to the folder with the jenkins-vars.yml and run: docker pull lscr.io/linuxserver/jenkins-builder:latest && \\ docker run --rm \\ -v $(pwd):/tmp \\ -e LOCAL=true \\ -e PUID=$(id -u) -e PGID=$(id -g) \\ lscr.io/linuxserver/jenkins-builder:latest && \\ rm -rf .jenkins-external Newly generated files (including README.md , Jenkinsfile , issue templates, etc.) will overwrite the existing files in your current working directory.","title":"Running against local project"},{"location":"images/docker-jenkins-builder/#building-locally","text":"If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-jenkins-builder.git cd docker-jenkins-builder docker build \\ --no-cache \\ --pull \\ -t lscr.io/linuxserver/jenkins-builder:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 .","title":"Building locally"},{"location":"images/docker-jenkins-builder/#versions","text":"The following line is only in this repo for loop testing: { date: \"01.01.50:\", desc: \"I am the release message for this internal repo.\" }","title":"Versions"},{"location":"images/docker-kanzi/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/kanzi Kanzi , formerly titled Kodi-Alexa, this custom skill is the ultimate voice remote control for navigating Kodi. It can do anything you can think of (100+ intents). This container also contains lexigram-cli to setup Kanzi with an Amazon Developer Account and automatically deploy it to Amazon. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/kanzi:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Initial setup Once you start the container for the first time, you need to perform some steps before use. Create an Amazon Developer Account here. Open a terminal in the /config directory of the docker container docker exec -itw /config kanzi bash Enter lexigram login --no-browser true to setup your AWS credentials and copy the URL into a browser, login to your Amazon Developer Account and copy/paste the resulting authorisation code back into the terminal and press enter. Edit the file kodi.config according to your local setup and this will be used by the included gunicorn server to respond to requests. Restart the container to automatically deploy the Kanzi skill. Reverse proxy this container with our LetsEncrypt container which contains preconfigured templates for reverse proxying the Kanzi container on either a subdomain or subfolder utilising Docker custom networking. Alternatively, if you already have an Nginx reverse proxy set up, you can use one of these location blocks to reverse proxy Kanzi to a subfolder or subdomain respectively. Subfolder location /kanzi { rewrite ^/kanzi/(.*) /$1 break; proxy_pass https://$IP-ADDRESS:8000; proxy_redirect https://$IP-ADDRESS:8000 /kanzi; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Host $server_name; } Subdomain location / { proxy_pass https://$IP-ADDRESS:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Host $server_name; } Strict reverse proxies This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: kanzi: image: lscr.io/linuxserver/kanzi:latest container_name: kanzi environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - INVOCATION_NAME=kanzi - URL_ENDPOINT=https://server.com/kanzi/ volumes: - :/config ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=kanzi \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e INVOCATION_NAME=kanzi \\ -e URL_ENDPOINT=https://server.com/kanzi/ \\ -p 8000:8000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/kanzi:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 Application Port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. INVOCATION_NAME=kanzi Specify an invocation name for this skill, use either kanzi or kod. URL_ENDPOINT=https://server.com/kanzi/ Specify the URL at which the webserver is reachable either https://kanzi.server.com/ or https://server.com/kanzi/ Note the trailing slash MUST be included. Volume Mappings ( -v ) Volume Function /config Configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it kanzi /bin/bash To monitor the logs of the container in realtime: docker logs -f kanzi Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' kanzi Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/kanzi:latest Versions 20.06.22: - Deprecate image. 13.04.19: - Initial Release.","title":"kanzi"},{"location":"images/docker-kanzi/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-kanzi/#linuxserverkanzi","text":"Kanzi , formerly titled Kodi-Alexa, this custom skill is the ultimate voice remote control for navigating Kodi. It can do anything you can think of (100+ intents). This container also contains lexigram-cli to setup Kanzi with an Amazon Developer Account and automatically deploy it to Amazon.","title":"linuxserver/kanzi"},{"location":"images/docker-kanzi/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/kanzi:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-kanzi/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-kanzi/#initial-setup","text":"Once you start the container for the first time, you need to perform some steps before use. Create an Amazon Developer Account here. Open a terminal in the /config directory of the docker container docker exec -itw /config kanzi bash Enter lexigram login --no-browser true to setup your AWS credentials and copy the URL into a browser, login to your Amazon Developer Account and copy/paste the resulting authorisation code back into the terminal and press enter. Edit the file kodi.config according to your local setup and this will be used by the included gunicorn server to respond to requests. Restart the container to automatically deploy the Kanzi skill. Reverse proxy this container with our LetsEncrypt container which contains preconfigured templates for reverse proxying the Kanzi container on either a subdomain or subfolder utilising Docker custom networking. Alternatively, if you already have an Nginx reverse proxy set up, you can use one of these location blocks to reverse proxy Kanzi to a subfolder or subdomain respectively. Subfolder location /kanzi { rewrite ^/kanzi/(.*) /$1 break; proxy_pass https://$IP-ADDRESS:8000; proxy_redirect https://$IP-ADDRESS:8000 /kanzi; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Host $server_name; } Subdomain location / { proxy_pass https://$IP-ADDRESS:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Host $server_name; }","title":"Initial setup"},{"location":"images/docker-kanzi/#strict-reverse-proxies","text":"This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-kanzi/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-kanzi/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: kanzi: image: lscr.io/linuxserver/kanzi:latest container_name: kanzi environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - INVOCATION_NAME=kanzi - URL_ENDPOINT=https://server.com/kanzi/ volumes: - :/config ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-kanzi/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=kanzi \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e INVOCATION_NAME=kanzi \\ -e URL_ENDPOINT=https://server.com/kanzi/ \\ -p 8000:8000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/kanzi:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-kanzi/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-kanzi/#ports-p","text":"Parameter Function 8000 Application Port","title":"Ports (-p)"},{"location":"images/docker-kanzi/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. INVOCATION_NAME=kanzi Specify an invocation name for this skill, use either kanzi or kod. URL_ENDPOINT=https://server.com/kanzi/ Specify the URL at which the webserver is reachable either https://kanzi.server.com/ or https://server.com/kanzi/ Note the trailing slash MUST be included.","title":"Environment Variables (-e)"},{"location":"images/docker-kanzi/#volume-mappings-v","text":"Volume Function /config Configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-kanzi/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-kanzi/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-kanzi/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-kanzi/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-kanzi/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-kanzi/#support-info","text":"Shell access whilst the container is running: docker exec -it kanzi /bin/bash To monitor the logs of the container in realtime: docker logs -f kanzi Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' kanzi Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/kanzi:latest","title":"Support Info"},{"location":"images/docker-kanzi/#versions","text":"20.06.22: - Deprecate image. 13.04.19: - Initial Release.","title":"Versions"},{"location":"images/docker-kasm/","text":"linuxserver/kasm Kasm Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services. Kasm uses devops-enabled Containerized Desktop Infrastructure (CDI) to create on-demand, disposable, docker containers that are accessible via web browser. Example use-cases include Remote Browser Isolation (RBI), Data Loss Prevention (DLP), Desktop as a Service (DaaS), Secure Remote Access Services (RAS), and Open Source Intelligence (OSINT) collections. The rendering of the graphical-based containers is powered by the open-source project KasmVNC . Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/kasm:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Kasm releases develop \u2705 Tip of develop Application Setup This container uses Docker in Docker and requires being run in privileged mode. This container also requires an initial setup that runs on port 3000. Unlike other containers the web interface port (default 443) needs to be set for the env variable KASM_PORT and both the inside and outside port IE for 4443 KASM_PORT=4443 -p 4443:4443 Unraid users due to the DinD storage layer /opt/ should be mounted directly to a disk IE /mnt/disk1/appdata/path or optimally with a cache disk at /mnt/cache/appdata/path Access the installation wizard at https:// your ip :3000 and follow the instructions there. Once setup is complete access https:// your ip :443 and login with the credentials you entered during setup. The default users are: admin@kasm.local user@kasm.local Currently Synology systems are not supported due to them blocking CPU scheduling in their Kernel. GPU Support During installation an option will be presented to force all Workspace containers to mount in and use a specific GPU. If using an NVIDIA GPU you will need to pass -e NVIDIA_VISIBLE_DEVICES=all or --gpus all and have the NVIDIA Container Runtime installed on the host. Also if using NVIDIA, Kasm Workspaces has native NVIDIA support so you can optionally opt to simply use that instead of he manual override during installation. Gamepad support In order to properly create virtual Gamepads you will need to mount from your host /dev/input and /run/udev/data . Please see HERE for instructions on enabling gamepad support. Persistant profiles In order to use persistant profiles in Workspaces you will need to mount in a folder to use from your host to /profiles . From there when configuring a workspace you can set the Persistant Profile Path to IE /profiles/ubuntu-focal/{username}/ , more infomation can be found HERE . Strict reverse proxies This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: kasm: image: lscr.io/linuxserver/kasm:latest container_name: kasm privileged: true environment: - KASM_PORT=443 - TZ=Europe/London - DOCKER_HUB_USERNAME=USER #optional - DOCKER_HUB_PASSWORD=PASS #optional volumes: - /path/to/data:/opt - /path/to/profiles:/profiles #optional - /dev/input:/dev/input #optional - /run/udev/data:/run/udev/data #optional ports: - 3000:3000 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=kasm \\ --privileged \\ -e KASM_PORT=443 \\ -e TZ=Europe/London \\ -e DOCKER_HUB_USERNAME=USER `#optional` \\ -e DOCKER_HUB_PASSWORD=PASS `#optional` \\ -p 3000:3000 \\ -p 443:443 \\ -v /path/to/data:/opt \\ -v /path/to/profiles:/profiles `#optional` \\ -v /dev/input:/dev/input `#optional` \\ -v /run/udev/data:/run/udev/data `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/kasm:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Kasm Installation wizard. (https) 443 Kasm Workspaces interface. (https) Environment Variables ( -e ) Env Function KASM_PORT=443 Specify the port you bind to the outside for Kasm Workspaces. TZ=Europe/London Specify a timezone to use EG Europe/London. DOCKER_HUB_USERNAME=USER Optionally specify a DockerHub Username to pull private images. DOCKER_HUB_PASSWORD=PASS Optionally specify a DockerHub password to pull private images. Volume Mappings ( -v ) Volume Function /opt Docker and installation storage. /profiles Optionally specify a path for persistent profile storage. /dev/input Optional for gamepad support. /run/udev/data Optional for gamepad support. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it kasm /bin/bash To monitor the logs of the container in realtime: docker logs -f kasm Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' kasm Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/kasm:latest Versions 05.11.22: - Rebase to Jammy, add support for GPUs, add support for Gamepads. 23.09.22: - Migrate to s6v3. 02.07.22: - Initial Release.","title":"kasm"},{"location":"images/docker-kasm/#linuxserverkasm","text":"Kasm Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services. Kasm uses devops-enabled Containerized Desktop Infrastructure (CDI) to create on-demand, disposable, docker containers that are accessible via web browser. Example use-cases include Remote Browser Isolation (RBI), Data Loss Prevention (DLP), Desktop as a Service (DaaS), Secure Remote Access Services (RAS), and Open Source Intelligence (OSINT) collections. The rendering of the graphical-based containers is powered by the open-source project KasmVNC .","title":"linuxserver/kasm"},{"location":"images/docker-kasm/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/kasm:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-kasm/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Kasm releases develop \u2705 Tip of develop","title":"Version Tags"},{"location":"images/docker-kasm/#application-setup","text":"This container uses Docker in Docker and requires being run in privileged mode. This container also requires an initial setup that runs on port 3000. Unlike other containers the web interface port (default 443) needs to be set for the env variable KASM_PORT and both the inside and outside port IE for 4443 KASM_PORT=4443 -p 4443:4443 Unraid users due to the DinD storage layer /opt/ should be mounted directly to a disk IE /mnt/disk1/appdata/path or optimally with a cache disk at /mnt/cache/appdata/path Access the installation wizard at https:// your ip :3000 and follow the instructions there. Once setup is complete access https:// your ip :443 and login with the credentials you entered during setup. The default users are: admin@kasm.local user@kasm.local Currently Synology systems are not supported due to them blocking CPU scheduling in their Kernel.","title":"Application Setup"},{"location":"images/docker-kasm/#gpu-support","text":"During installation an option will be presented to force all Workspace containers to mount in and use a specific GPU. If using an NVIDIA GPU you will need to pass -e NVIDIA_VISIBLE_DEVICES=all or --gpus all and have the NVIDIA Container Runtime installed on the host. Also if using NVIDIA, Kasm Workspaces has native NVIDIA support so you can optionally opt to simply use that instead of he manual override during installation.","title":"GPU Support"},{"location":"images/docker-kasm/#gamepad-support","text":"In order to properly create virtual Gamepads you will need to mount from your host /dev/input and /run/udev/data . Please see HERE for instructions on enabling gamepad support.","title":"Gamepad support"},{"location":"images/docker-kasm/#persistant-profiles","text":"In order to use persistant profiles in Workspaces you will need to mount in a folder to use from your host to /profiles . From there when configuring a workspace you can set the Persistant Profile Path to IE /profiles/ubuntu-focal/{username}/ , more infomation can be found HERE .","title":"Persistant profiles"},{"location":"images/docker-kasm/#strict-reverse-proxies","text":"This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-kasm/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-kasm/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: kasm: image: lscr.io/linuxserver/kasm:latest container_name: kasm privileged: true environment: - KASM_PORT=443 - TZ=Europe/London - DOCKER_HUB_USERNAME=USER #optional - DOCKER_HUB_PASSWORD=PASS #optional volumes: - /path/to/data:/opt - /path/to/profiles:/profiles #optional - /dev/input:/dev/input #optional - /run/udev/data:/run/udev/data #optional ports: - 3000:3000 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-kasm/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=kasm \\ --privileged \\ -e KASM_PORT=443 \\ -e TZ=Europe/London \\ -e DOCKER_HUB_USERNAME=USER `#optional` \\ -e DOCKER_HUB_PASSWORD=PASS `#optional` \\ -p 3000:3000 \\ -p 443:443 \\ -v /path/to/data:/opt \\ -v /path/to/profiles:/profiles `#optional` \\ -v /dev/input:/dev/input `#optional` \\ -v /run/udev/data:/run/udev/data `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/kasm:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-kasm/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-kasm/#ports-p","text":"Parameter Function 3000 Kasm Installation wizard. (https) 443 Kasm Workspaces interface. (https)","title":"Ports (-p)"},{"location":"images/docker-kasm/#environment-variables-e","text":"Env Function KASM_PORT=443 Specify the port you bind to the outside for Kasm Workspaces. TZ=Europe/London Specify a timezone to use EG Europe/London. DOCKER_HUB_USERNAME=USER Optionally specify a DockerHub Username to pull private images. DOCKER_HUB_PASSWORD=PASS Optionally specify a DockerHub password to pull private images.","title":"Environment Variables (-e)"},{"location":"images/docker-kasm/#volume-mappings-v","text":"Volume Function /opt Docker and installation storage. /profiles Optionally specify a path for persistent profile storage. /dev/input Optional for gamepad support. /run/udev/data Optional for gamepad support.","title":"Volume Mappings (-v)"},{"location":"images/docker-kasm/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-kasm/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-kasm/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-kasm/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-kasm/#support-info","text":"Shell access whilst the container is running: docker exec -it kasm /bin/bash To monitor the logs of the container in realtime: docker logs -f kasm Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' kasm Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/kasm:latest","title":"Support Info"},{"location":"images/docker-kasm/#versions","text":"05.11.22: - Rebase to Jammy, add support for GPUs, add support for Gamepads. 23.09.22: - Migrate to s6v3. 02.07.22: - Initial Release.","title":"Versions"},{"location":"images/docker-kdenlive/","text":"linuxserver/kdenlive Kdenlive is a powerful free and open source cross-platform video editing program made by the KDE community. Feature rich and production ready. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/kdenlive:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: * http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false . Hardware Acceleration (x86_64 only) In order to perform hardware transcoding you will need to mount a video device into the container. Some of the default hardware rendering/transcode profiles will point to devices in /dev/dri for vaapi_device . Make sure the profile you are using points to the correct device in the container. IE if you have intel integrated graphics along with an Nvdia or AMD video card you might have renderD128, renderD129, etc. To check which device is which use vainfo from inside the container: (right click the desktop and open xterm) vainfo --display drm --device /dev/dri/renderD128 Intel/ATI/AMD To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container. Keyboard Layouts This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: kdenlive: image: lscr.io/linuxserver/kdenlive:latest container_name: kdenlive security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional volumes: - /path/to/config:/config ports: - 3000:3000 devices: - /dev/dri:/dev/dri #optional shm_size: \"1gb\" #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=kdenlive \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --device /dev/dri:/dev/dri `#optional` \\ --shm-size=\"1gb\" `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/kdenlive:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Kdenlive desktop gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores local files and settings Device Mappings ( --device ) Parameter Function /dev/dri Add this for hardware acceleration (Linux hosts only) Miscellaneous Options Parameter Function --shm-size= This might be needed to prevent crashing --security-opt seccomp=unconfined For Docker Engine only, this may be required depending on your Docker and storage configuration. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it kdenlive /bin/bash To monitor the logs of the container in realtime: docker logs -f kdenlive Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' kdenlive Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/kdenlive:latest Versions 16.09.22: - Migrate to s6v3. 09.03.22: - Update seccomp explanation. 07.03.22: - Initial release.","title":"kdenlive"},{"location":"images/docker-kdenlive/#linuxserverkdenlive","text":"Kdenlive is a powerful free and open source cross-platform video editing program made by the KDE community. Feature rich and production ready.","title":"linuxserver/kdenlive"},{"location":"images/docker-kdenlive/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/kdenlive:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-kdenlive/#application-setup","text":"The application can be accessed at: * http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false .","title":"Application Setup"},{"location":"images/docker-kdenlive/#hardware-acceleration-x86_64-only","text":"In order to perform hardware transcoding you will need to mount a video device into the container. Some of the default hardware rendering/transcode profiles will point to devices in /dev/dri for vaapi_device . Make sure the profile you are using points to the correct device in the container. IE if you have intel integrated graphics along with an Nvdia or AMD video card you might have renderD128, renderD129, etc. To check which device is which use vainfo from inside the container: (right click the desktop and open xterm) vainfo --display drm --device /dev/dri/renderD128","title":"Hardware Acceleration (x86_64 only)"},{"location":"images/docker-kdenlive/#intelatiamd","text":"To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel/ATI/AMD"},{"location":"images/docker-kdenlive/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container.","title":"Nvidia"},{"location":"images/docker-kdenlive/#keyboard-layouts","text":"This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard","title":"Keyboard Layouts"},{"location":"images/docker-kdenlive/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-kdenlive/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: kdenlive: image: lscr.io/linuxserver/kdenlive:latest container_name: kdenlive security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional volumes: - /path/to/config:/config ports: - 3000:3000 devices: - /dev/dri:/dev/dri #optional shm_size: \"1gb\" #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-kdenlive/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=kdenlive \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --device /dev/dri:/dev/dri `#optional` \\ --shm-size=\"1gb\" `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/kdenlive:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-kdenlive/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-kdenlive/#ports-p","text":"Parameter Function 3000 Kdenlive desktop gui","title":"Ports (-p)"},{"location":"images/docker-kdenlive/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options.","title":"Environment Variables (-e)"},{"location":"images/docker-kdenlive/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores local files and settings","title":"Volume Mappings (-v)"},{"location":"images/docker-kdenlive/#device-mappings-device","text":"Parameter Function /dev/dri Add this for hardware acceleration (Linux hosts only)","title":"Device Mappings (--device)"},{"location":"images/docker-kdenlive/#miscellaneous-options","text":"Parameter Function --shm-size= This might be needed to prevent crashing --security-opt seccomp=unconfined For Docker Engine only, this may be required depending on your Docker and storage configuration.","title":"Miscellaneous Options"},{"location":"images/docker-kdenlive/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-kdenlive/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-kdenlive/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-kdenlive/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-kdenlive/#support-info","text":"Shell access whilst the container is running: docker exec -it kdenlive /bin/bash To monitor the logs of the container in realtime: docker logs -f kdenlive Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' kdenlive Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/kdenlive:latest","title":"Support Info"},{"location":"images/docker-kdenlive/#versions","text":"16.09.22: - Migrate to s6v3. 09.03.22: - Update seccomp explanation. 07.03.22: - Initial release.","title":"Versions"},{"location":"images/docker-lazylibrarian/","text":"linuxserver/lazylibrarian Lazylibrarian is a program to follow authors and grab metadata for all your digital reading needs. It uses a combination of Goodreads Librarything and optionally GoogleBooks as sources for author info and book info. This container is based on the DobyTang fork. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/lazylibrarian:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at http://:5299/home , for more information check out Lazylibrarian . Calibredb import 64bit only We have implemented the optional ability to pull in the dependencies to enable the Calibredb import program:, this means if you don't require this feature the container isn't uneccessarily bloated but should you require it, it is easily available. This optional layer will be rebuilt automatically on our CI pipeline upon new Calibre releases so you can stay up to date. To use this option add the optional environmental variable as detailed in the docker-mods section to pull an addition docker layer to enable ebook conversion and then in the LazyLibrarian config page (Processing:Calibredb import program:) set the path to converter tool to /usr/bin/calibredb ffmpeg By adding linuxserver/mods:lazylibrarian-ffmpeg to your DOCKER_MODS environment variable you can install ffmpeg into your container on startup. This allows you to use the audiobook conversion features of LazyLibrarian. You can enable it in the Web UI under Settings > Processing > External Programs by setting the ffmpeg path to ffmpeg . Media folders We have set /books as optional path , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional path if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: lazylibrarian: image: lscr.io/linuxserver/lazylibrarian:latest container_name: lazylibrarian environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - DOCKER_MODS=linuxserver/calibre-web:calibre|linuxserver/mods:lazylibrarian-ffmpeg #optional volumes: - /path/to/data:/config - /path/to/downloads/:/downloads - /path/to/data/:/books #optional ports: - 5299:5299 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=lazylibrarian \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DOCKER_MODS=linuxserver/calibre-web:calibre|linuxserver/mods:lazylibrarian-ffmpeg `#optional` \\ -p 5299:5299 \\ -v /path/to/data:/config \\ -v /path/to/downloads/:/downloads \\ -v /path/to/data/:/books `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/lazylibrarian:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5299 The port for the LazyLibrarian webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London DOCKER_MODS=linuxserver/calibre-web:calibre|linuxserver/mods:lazylibrarian-ffmpeg Allows additional functionality to be added, e.g. the Calibredb import program (optional, more info below) Volume Mappings ( -v ) Volume Function /config LazyLibrarian config /downloads Download location /books Books location Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it lazylibrarian /bin/bash To monitor the logs of the container in realtime: docker logs -f lazylibrarian Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lazylibrarian Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/lazylibrarian:latest Versions 07.12.22: - Rebase to Ubuntu Jammy, migrate to s6v3. Use pyproject.toml for deps. Build unrar from source. 27.09.22: - Switch to Levenshtein , add cmake as build dep on armhf. 07.05.22: - Rebase to Ubuntu Focal. 22.05.21: - Make the paths clearer to the user, remove optional volume. 17.05.21: - Add linuxserver wheel index. 23.10.19: - Changed gitlab download link. 23.10.19: - Add python module Pillow. 31.07.19: - Add pyopenssl, remove git dependency during build time. 09.07.19: - Rebase to Ubuntu Bionic, enables Calibre docker mod. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 05.03.19: - Added apprise python package. 22.02.19: - Rebasing to alpine 3.9. 10.12.18: - Moved to Pipeline Building 16.08.18: - Rebase to alpine 3.8 05.01.18: - Deprecate cpu_core routine lack of scaling 12.12.17: - Rebase to alpine 3.7 21.07.17: - Internal git pull instead of at runtime 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5 30.01.17: - Compile libunrar.so to allow reading of .cbr format files 12.01.17: - Add ghostscript package, allows magazine covers to be created etc 14.10.16: - Add version layer information 03.10.16: - Fix non-persistent settings and make log folder 28.09.16: - Inital Release","title":"lazylibrarian"},{"location":"images/docker-lazylibrarian/#linuxserverlazylibrarian","text":"Lazylibrarian is a program to follow authors and grab metadata for all your digital reading needs. It uses a combination of Goodreads Librarything and optionally GoogleBooks as sources for author info and book info. This container is based on the DobyTang fork.","title":"linuxserver/lazylibrarian"},{"location":"images/docker-lazylibrarian/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/lazylibrarian:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-lazylibrarian/#application-setup","text":"Access the webui at http://:5299/home , for more information check out Lazylibrarian .","title":"Application Setup"},{"location":"images/docker-lazylibrarian/#calibredb-import","text":"64bit only We have implemented the optional ability to pull in the dependencies to enable the Calibredb import program:, this means if you don't require this feature the container isn't uneccessarily bloated but should you require it, it is easily available. This optional layer will be rebuilt automatically on our CI pipeline upon new Calibre releases so you can stay up to date. To use this option add the optional environmental variable as detailed in the docker-mods section to pull an addition docker layer to enable ebook conversion and then in the LazyLibrarian config page (Processing:Calibredb import program:) set the path to converter tool to /usr/bin/calibredb","title":"Calibredb import"},{"location":"images/docker-lazylibrarian/#ffmpeg","text":"By adding linuxserver/mods:lazylibrarian-ffmpeg to your DOCKER_MODS environment variable you can install ffmpeg into your container on startup. This allows you to use the audiobook conversion features of LazyLibrarian. You can enable it in the Web UI under Settings > Processing > External Programs by setting the ffmpeg path to ffmpeg .","title":"ffmpeg"},{"location":"images/docker-lazylibrarian/#media-folders","text":"We have set /books as optional path , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional path if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Media folders"},{"location":"images/docker-lazylibrarian/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-lazylibrarian/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: lazylibrarian: image: lscr.io/linuxserver/lazylibrarian:latest container_name: lazylibrarian environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - DOCKER_MODS=linuxserver/calibre-web:calibre|linuxserver/mods:lazylibrarian-ffmpeg #optional volumes: - /path/to/data:/config - /path/to/downloads/:/downloads - /path/to/data/:/books #optional ports: - 5299:5299 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-lazylibrarian/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=lazylibrarian \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DOCKER_MODS=linuxserver/calibre-web:calibre|linuxserver/mods:lazylibrarian-ffmpeg `#optional` \\ -p 5299:5299 \\ -v /path/to/data:/config \\ -v /path/to/downloads/:/downloads \\ -v /path/to/data/:/books `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/lazylibrarian:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-lazylibrarian/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-lazylibrarian/#ports-p","text":"Parameter Function 5299 The port for the LazyLibrarian webinterface","title":"Ports (-p)"},{"location":"images/docker-lazylibrarian/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London DOCKER_MODS=linuxserver/calibre-web:calibre|linuxserver/mods:lazylibrarian-ffmpeg Allows additional functionality to be added, e.g. the Calibredb import program (optional, more info below)","title":"Environment Variables (-e)"},{"location":"images/docker-lazylibrarian/#volume-mappings-v","text":"Volume Function /config LazyLibrarian config /downloads Download location /books Books location","title":"Volume Mappings (-v)"},{"location":"images/docker-lazylibrarian/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-lazylibrarian/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-lazylibrarian/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-lazylibrarian/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-lazylibrarian/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-lazylibrarian/#support-info","text":"Shell access whilst the container is running: docker exec -it lazylibrarian /bin/bash To monitor the logs of the container in realtime: docker logs -f lazylibrarian Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lazylibrarian Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/lazylibrarian:latest","title":"Support Info"},{"location":"images/docker-lazylibrarian/#versions","text":"07.12.22: - Rebase to Ubuntu Jammy, migrate to s6v3. Use pyproject.toml for deps. Build unrar from source. 27.09.22: - Switch to Levenshtein , add cmake as build dep on armhf. 07.05.22: - Rebase to Ubuntu Focal. 22.05.21: - Make the paths clearer to the user, remove optional volume. 17.05.21: - Add linuxserver wheel index. 23.10.19: - Changed gitlab download link. 23.10.19: - Add python module Pillow. 31.07.19: - Add pyopenssl, remove git dependency during build time. 09.07.19: - Rebase to Ubuntu Bionic, enables Calibre docker mod. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 05.03.19: - Added apprise python package. 22.02.19: - Rebasing to alpine 3.9. 10.12.18: - Moved to Pipeline Building 16.08.18: - Rebase to alpine 3.8 05.01.18: - Deprecate cpu_core routine lack of scaling 12.12.17: - Rebase to alpine 3.7 21.07.17: - Internal git pull instead of at runtime 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5 30.01.17: - Compile libunrar.so to allow reading of .cbr format files 12.01.17: - Add ghostscript package, allows magazine covers to be created etc 14.10.16: - Add version layer information 03.10.16: - Fix non-persistent settings and make log folder 28.09.16: - Inital Release","title":"Versions"},{"location":"images/docker-ldap-auth/","text":"linuxserver/ldap-auth Ldap-auth software is for authenticating users who request protected resources from servers proxied by nginx. It includes a daemon (ldap-auth) that communicates with an authentication server, and a webserver daemon that generates an authentication cookie based on the user\u2019s credentials. The daemons are written in Python for use with a Lightweight Directory Access Protocol (LDAP) authentication server (OpenLDAP or Microsoft Windows Active Directory 2003 and 2012). Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ldap-auth:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This container itself does not have any settings and it relies on the pertinent information passed through in http headers of incoming requests. Make sure that your webserver is set up with the right config. Here's a sample config: nginx-ldap-auth.conf . Unlike the upstream project, this image encodes the cookie information with fernet, using a randomly generated key during container creation (or optionally user defined). Also unlike the upstream project, this image serves the login page at /ldaplogin (as well as /login ) to prevent clashes with reverse proxied apps that may also use /login for their internal auth. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: ldap-auth: image: lscr.io/linuxserver/ldap-auth:latest container_name: ldap-auth environment: - TZ=Europe/London - FERNETKEY= #optional - CERTFILE= #optional - KEYFILE= #optional ports: - 8888:8888 - 9000:9000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=ldap-auth \\ -e TZ=Europe/London \\ -e FERNETKEY= `#optional` \\ -e CERTFILE= `#optional` \\ -e KEYFILE= `#optional` \\ -p 8888:8888 \\ -p 9000:9000 \\ --restart unless-stopped \\ lscr.io/linuxserver/ldap-auth:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8888 the port for ldap auth daemon 9000 the port for ldap login page Environment Variables ( -e ) Env Function TZ=Europe/London Specify a timezone to use EG Europe/London FERNETKEY= Optionally define a custom fernet key, has to be base64-encoded 32-byte (only needed if container is frequently recreated, or if using multi-node setups, invalidating previous authentications) CERTFILE= Point this to a certificate file to enable HTTP over SSL (HTTPS) for the ldap auth daemon KEYFILE= Point this to the private key file, matching the certificate file referred to in CERTFILE Volume Mappings ( -v ) Volume Function Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it ldap-auth /bin/bash To monitor the logs of the container in realtime: docker logs -f ldap-auth Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ldap-auth Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ldap-auth:latest Versions 19.09.22: - Rebase to alpine 3.15. 14.05.21: - Add linuxserver wheel index. 12.02.21: - Clean up cargo/rust cache. 10.02.21: - Rebasing to alpine 3.13. 08.09.20: - Set form action correctly. 30.07.20: - Fix bug related to unset optional CERTFILE and KEYFILE vars. 27.07.20: - Add support for HTTP over SSL (HTTPS). 21.07.20: - Add support for optional user defined fernet key. 02.06.20: - Rebasing to alpine 3.12, serve login page at /ldaplogin as well as /login , to prevent clashes with reverese proxied apps. 17.05.20: - Add support for self-signed CA certs. 20.02.20: - Switch to python3. 19.12.19: - Rebasing to alpine 3.11. 01.07.19: - Fall back to base64 encoding when basic http auth is used. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 18.09.18: - Update pip 14.09.18: - Add TZ parameter, remove unnecessary PUID/PGID params 11.08.18: - Initial release.","title":"ldap-auth"},{"location":"images/docker-ldap-auth/#linuxserverldap-auth","text":"Ldap-auth software is for authenticating users who request protected resources from servers proxied by nginx. It includes a daemon (ldap-auth) that communicates with an authentication server, and a webserver daemon that generates an authentication cookie based on the user\u2019s credentials. The daemons are written in Python for use with a Lightweight Directory Access Protocol (LDAP) authentication server (OpenLDAP or Microsoft Windows Active Directory 2003 and 2012).","title":"linuxserver/ldap-auth"},{"location":"images/docker-ldap-auth/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ldap-auth:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-ldap-auth/#application-setup","text":"This container itself does not have any settings and it relies on the pertinent information passed through in http headers of incoming requests. Make sure that your webserver is set up with the right config. Here's a sample config: nginx-ldap-auth.conf . Unlike the upstream project, this image encodes the cookie information with fernet, using a randomly generated key during container creation (or optionally user defined). Also unlike the upstream project, this image serves the login page at /ldaplogin (as well as /login ) to prevent clashes with reverse proxied apps that may also use /login for their internal auth.","title":"Application Setup"},{"location":"images/docker-ldap-auth/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-ldap-auth/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: ldap-auth: image: lscr.io/linuxserver/ldap-auth:latest container_name: ldap-auth environment: - TZ=Europe/London - FERNETKEY= #optional - CERTFILE= #optional - KEYFILE= #optional ports: - 8888:8888 - 9000:9000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-ldap-auth/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=ldap-auth \\ -e TZ=Europe/London \\ -e FERNETKEY= `#optional` \\ -e CERTFILE= `#optional` \\ -e KEYFILE= `#optional` \\ -p 8888:8888 \\ -p 9000:9000 \\ --restart unless-stopped \\ lscr.io/linuxserver/ldap-auth:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-ldap-auth/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-ldap-auth/#ports-p","text":"Parameter Function 8888 the port for ldap auth daemon 9000 the port for ldap login page","title":"Ports (-p)"},{"location":"images/docker-ldap-auth/#environment-variables-e","text":"Env Function TZ=Europe/London Specify a timezone to use EG Europe/London FERNETKEY= Optionally define a custom fernet key, has to be base64-encoded 32-byte (only needed if container is frequently recreated, or if using multi-node setups, invalidating previous authentications) CERTFILE= Point this to a certificate file to enable HTTP over SSL (HTTPS) for the ldap auth daemon KEYFILE= Point this to the private key file, matching the certificate file referred to in CERTFILE","title":"Environment Variables (-e)"},{"location":"images/docker-ldap-auth/#volume-mappings-v","text":"Volume Function","title":"Volume Mappings (-v)"},{"location":"images/docker-ldap-auth/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-ldap-auth/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-ldap-auth/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-ldap-auth/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-ldap-auth/#support-info","text":"Shell access whilst the container is running: docker exec -it ldap-auth /bin/bash To monitor the logs of the container in realtime: docker logs -f ldap-auth Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ldap-auth Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ldap-auth:latest","title":"Support Info"},{"location":"images/docker-ldap-auth/#versions","text":"19.09.22: - Rebase to alpine 3.15. 14.05.21: - Add linuxserver wheel index. 12.02.21: - Clean up cargo/rust cache. 10.02.21: - Rebasing to alpine 3.13. 08.09.20: - Set form action correctly. 30.07.20: - Fix bug related to unset optional CERTFILE and KEYFILE vars. 27.07.20: - Add support for HTTP over SSL (HTTPS). 21.07.20: - Add support for optional user defined fernet key. 02.06.20: - Rebasing to alpine 3.12, serve login page at /ldaplogin as well as /login , to prevent clashes with reverese proxied apps. 17.05.20: - Add support for self-signed CA certs. 20.02.20: - Switch to python3. 19.12.19: - Rebasing to alpine 3.11. 01.07.19: - Fall back to base64 encoding when basic http auth is used. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 18.09.18: - Update pip 14.09.18: - Add TZ parameter, remove unnecessary PUID/PGID params 11.08.18: - Initial release.","title":"Versions"},{"location":"images/docker-letsencrypt/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. IMPORTANT NOTICE: THIS IMAGE HAS BEEN DEPRECATED AND THE PROJECT IS MOVED TO A NEW REPO Due to a trademark related request, this image is moved to a new repo on Docker Hub and GitHub . This is a breaking change and you need to manually update. Apologies for the the disruption. Switching existing implementations over to the new image is very easy, just follow these simple steps: https://github.com/linuxserver/docker-swag#migrating-from-the-old-linuxserverletsencrypt-image This repository will be archived and builds for the image will no longer be created at the end of 2020 linuxserver/letsencrypt SWAG - Secure Web-server And Gateway (formerly known as letsencrypt, no relation to Let's Encrypt\u2122) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes. It also contains fail2ban for intrusion prevention. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/letsencrypt should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container. docker docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=yourdomain.url \\ -e SUBDOMAINS=www, \\ -e VALIDATION=http \\ -e DNSPLUGIN=cloudflare `#optional` \\ -e PROPAGATION= `#optional` \\ -e DUCKDNSTOKEN= `#optional` \\ -e EMAIL= `#optional` \\ -e ONLY_SUBDOMAINS=false `#optional` \\ -e EXTRA_DOMAINS= `#optional` \\ -e STAGING=false `#optional` \\ -p 443:443 \\ -p 80:80 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ linuxserver/letsencrypt docker-compose Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: swag: image: linuxserver/letsencrypt container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=yourdomain.url - SUBDOMAINS=www, - VALIDATION=http - DNSPLUGIN=cloudflare #optional - PROPAGATION= #optional - DUCKDNSTOKEN= #optional - EMAIL= #optional - ONLY_SUBDOMAINS=false #optional - EXTRA_DOMAINS= #optional - STAGING=false #optional volumes: - /path/to/appdata/config:/config ports: - 443:443 - 80:80 #optional restart: unless-stopped Parameters Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Parameter Function -p 443 Https port -p 80 Http port (required for http validation and http -> https redirect) -e PUID=1000 for UserID - see below for explanation -e PGID=1000 for GroupID - see below for explanation -e TZ=Europe/London Specify a timezone to use EG Europe/London. -e URL=yourdomain.url Top url you have control over ( customdomain.com if you own it, or customsubdomain.ddnsprovider.com if dynamic dns). -e SUBDOMAINS=www, Subdomains you'd like the cert to cover (comma separated, no spaces) ie. www,ftp,cloud . For a wildcard cert, set this exactly to wildcard (wildcard cert is available via dns and duckdns validation only) -e VALIDATION=http Certbot validation method to use, options are http , dns or duckdns ( dns method also requires DNSPLUGIN variable set) ( duckdns method requires DUCKDNSTOKEN variable set, and the SUBDOMAINS variable must be either empty or set to wildcard ). -e DNSPLUGIN=cloudflare Required if VALIDATION is set to dns . Options are aliyun , cloudflare , cloudxns , cpanel , digitalocean , dnsimple , dnsmadeeasy , domeneshop , gandi , google , inwx , linode , luadns , nsone , ovh , rfc2136 , route53 and transip . Also need to enter the credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf . -e PROPAGATION= Optionally override (in seconds) the default propagation time for the dns plugins. -e DUCKDNSTOKEN= Required if VALIDATION is set to duckdns . Retrieve your token from https://www.duckdns.org -e EMAIL= Optional e-mail address used for cert expiration notifications. -e ONLY_SUBDOMAINS=false If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to true -e EXTRA_DOMAINS= Additional fully qualified domain names (comma separated, no spaces) ie. extradomain.com,subdomain.anotherdomain.org,*.anotherdomain.org -e STAGING=false Set to true to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes. -v /config All the config files including the webroot reside here. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup Validation and initial setup Before running this container, make sure that the url and subdomains are properly forwarded to this container's host, and that port 443 (and/or 80) is not being used by another service on the host (NAS gui, another webserver, etc.). For http validation, port 80 on the internet side of the router should be forwarded to this container's port 80 For dns validation, make sure to enter your credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf Cloudflare provides free accounts for managing dns and is very easy to use with this image. Make sure that it is set up for \"dns only\" instead of \"dns + proxy\" Google dns plugin is meant to be used with \"Google Cloud DNS\", a paid enterprise product, and not for \"Google Domains DNS\" For duckdns validation, either leave the SUBDOMAINS variable empty or set it to wildcard , and set the DUCKDNSTOKEN variable with your duckdns token. Due to a limitation of duckdns, the resulting cert will only cover either main subdomain (ie. yoursubdomain.duckdns.org ), or sub-subdomains (ie. *.yoursubdomain.duckdns.org ), but will not both at the same time. You can use our duckdns image to update your IP on duckdns.org. --cap-add=NET_ADMIN is required for fail2ban to modify iptables If you need a dynamic dns provider, you can use the free provider duckdns.org where the URL will be yoursubdomain.duckdns.org and the SUBDOMAINS can be www,ftp,cloud with http validation, or wildcard with dns validation. After setup, navigate to https://yourdomain.url to access the default homepage (http access through port 80 is disabled by default, you can enable it by editing the default site config at /config/nginx/site-confs/default ). Certs are checked nightly and if expiration is within 30 days, renewal is attempted. If your cert is about to expire in less than 30 days, check the logs under /config/log/letsencrypt to see why the renewals have been failing. It is recommended to input your e-mail in docker parameters so you receive expiration notices from Let's Encrypt in those circumstances. Security and password protection The container detects changes to url and subdomains, revokes existing certs and generates new ones during start. The container provides a pre-generated 4096-bit dhparams.pem (rotated weekly via Jenkins job ) for new instances, however you may generate your own by running docker exec letsencrypt openssl dhparam -out /config/nginx/dhparams.pem 4096 WARNING: This takes a very long time If you'd like to password protect your sites, you can use htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it letsencrypt htpasswd -c /config/nginx/.htpasswd You can add multiple user:pass to .htpasswd . For the first user, use the above command, for others, use the above command without the -c flag, as it will force deletion of the existing .htpasswd and creation of a new one You can also use ldap auth for security and access control. A sample, user configurable ldap.conf is provided, and it requires the separate image linuxserver/ldap-auth to communicate with an ldap server. Site config and reverse proxy The default site config resides at /config/nginx/site-confs/default . Feel free to modify this file, and you can add other conf files to this directory. However, if you delete the default file, a new default will be created on container start. Preset reverse proxy config files are added for popular apps. See the README.md file under /config/nginx/proxy_confs for instructions on how to enable them. The preset confs reside in and get imported from this repo . If you wish to hide your site from search engine crawlers, you may find it useful to add this configuration line to your site config, within the server block, above the line where ssl.conf is included add_header X-Robots-Tag \"noindex, nofollow, nosnippet, noarchive\"; This will ask Google et al not to index and list your site. Be careful with this, as you will eventually be de-listed if you leave this line in on a site you wish to be present on search engines If you wish to redirect http to https, you must expose port 80 Using certs in other containers This container includes auto-generated pfx and private-fullchain-bundle pem certs that are needed by other apps like Emby and Znc. To use these certs in other containers, do either of the following: (Easier) Mount the container's config folder in other containers (ie. -v /path-to-le-config:/le-ssl ) and in the other containers, use the cert location /le-ssl/keys/letsencrypt/ (More secure) Mount the letsencrypt folder etc/letsencrypt that resides under /config in other containers (ie. -v /path-to-le-config/etc/letsencrypt:/le-ssl ) and in the other containers, use the cert location /le-ssl/live// (This is more secure because the first method shares the entire letsencrypt config folder with other containers, including the www files, whereas the second method only shares the ssl certs) These certs include: cert.pem , chain.pem , fullchain.pem and privkey.pem , which are generated by Let's Encrypt and used by nginx and various other apps privkey.pfx , a format supported by Microsoft and commonly used by dotnet apps such as Emby Server (no password) priv-fullchain-bundle.pem , a pem cert that bundles the private key and the fullchain, used by apps like ZNC Using fail2ban This container includes fail2ban set up with 3 jails by default: nginx-http-auth nginx-badbots nginx-botsearch To enable or disable other jails, modify the file /config/fail2ban/jail.local To modify filters and actions, instead of editing the .conf files, create .local files with the same name and edit those because .conf files get overwritten when the actions and filters are updated. .local files will append whatever's in the .conf files (ie. nginx-http-auth.conf --> nginx-http-auth.local ) You can check which jails are active via docker exec -it swag fail2ban-client status You can check the status of a specific jail via docker exec -it swag fail2ban-client status You can unban an IP via docker exec -it swag fail2ban-client set unbanip A list of commands can be found here: https://www.fail2ban.org/wiki/index.php/Commands Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above. Support Info Shell access whilst the container is running: docker exec -it swag /bin/bash To monitor the logs of the container in realtime: docker logs -f swag container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' swag image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/letsencrypt Updating Info Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image. Below are the instructions for updating containers: Via Docker Run/Create Update the image: docker pull linuxserver/letsencrypt Stop the running container: docker stop swag Delete the container: docker rm swag Recreate a new container with the same docker create parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved) Start the new container: docker start swag You can also remove the old dangling images: docker image prune Via Docker Compose Update all images: docker-compose pull or update a single image: docker-compose pull swag Let compose update all containers as necessary: docker-compose up -d or update a single container: docker-compose up -d swag You can also remove the old dangling images: docker image prune Via Watchtower auto-updater (especially useful if you don't remember the original parameters) Pull the latest image at its tag and replace it with the same env variables in one run: docker run --rm \\ -v /var/run/docker.sock:/var/run/docker.sock \\ containrrr/watchtower \\ --run-once swag Note: We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using Docker Compose. You can also remove the old dangling images: docker image prune Building locally If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-letsencrypt.git cd docker-letsencrypt docker build \\ --no-cache \\ --pull \\ -t linuxserver/letsencrypt:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 . Versions 28.07.20: - Start transition to new name, SWAG. 17.06.20: - Reformat ssl.conf. Pull in pre-generated dhparams.pem from DO Spaces. Deprecate DHLEVEL param. 01.06.20: - Rebasing to alpine 3.12, change ldap login address to /ldaplogin to avoid clashes (existing users need to manually update). 31.05.20: - Tweak Authelia confs (existing users can delete authelia-server.conf and authelia-location.conf , and restart to update). 23.05.20: - Add support for Authelia. 15.05.20: - Remove php7-pecl-imagick due to upstream issues. Add support for Geoip2 auto db retrieval. 10.05.20: - Added support for fail2ban deny statements. 04.05.20: - Allow for optionally setting propagation time for dns plugins. Add repo version of whois to replace the built-in busybox version. Update jail.local to change default fail2ban ban action to more widely supported iptables-allports . 13.04.20: - Update cloudflare.ini with token info. 11.03.20: - Add php7-sodium. 06.03.20: - Implement cert renewal attempt during container start (only if the cert is already expired or will expire within the next 24 hours, otherwise it will be attempted at 2:08am). 05.03.20: - Use port and proto upstream variables for ldap and default sample confs. 24.02.20: - Remove world/group read permissions in dns-conf. 23.02.20: - Add aliyun dns validation plugin. 28.01.20: - Deprecate tls-sni validation method, remove from docs. 27.01.20: - Add support for cpanel dns validation. 10.01.20: - Add support for domeneshop dns validation. 07.01.20: - Update ciphers from Mozilla ssl-config recommendations. 01.01.20: - Add support for gandi dns validation. 31.12.19: - GeoIP2 databases now require personal license keys to download. Auto download is disabled and log message is added. 19.12.19: - Rebasing to alpine 3.11. 19.12.19: - Increase large_client_header_buffers in nginx.conf to prevent 414 errors. 18.12.19: - Add php7-imap and php7-pecl-apcu. 11.12.19: - Fix Google Cloud DNS to use .json file for authentication. 20.11.19: - Fix cryptography version mismatch due to pip issue. 17.11.19: - Add php7-pdo_odbc. 17.11.19: - Add transip dns validation plugin. 27.10.19: - Turn off lua resty core to get rid of error message in the log (existing users will have to delete /config/nginx/nginx.conf and restart the container). 26.10.19: - Add new package for stream-geoip2, remove geoip2 module patch. 24.10.19: - Add php7-pecl-imagick. 23.10.19: - Update Host header in proxy.conf to fix CSRF issues. 12.10.19: - Add linode dns validation plugin. 23.09.19: - Move GeoIP2 db to /config to make it persistent. 14.08.19: - Add inwx dns validation plugin. 06.08.19: - Add php7-ftp. 04.08.19: - Add php7-bcmath, php7-pear, php7-xmlrpc. 02.08.19: - Add php7-ldap, remove geoip v1(deprecated). 01.08.19: - Mark https redirect block as default_server (effective only for new installs). 31.07.19: - Create GeoIP2 databse (libmaxminddb) during container start if it doesn't exist. 30.07.19: - Support main domain via duckdns validation. 29.07.19: - Enable http to https redirect by default (effective only for new installs). 01.07.19: - Patch geoip2 module until upstream is fixed. 30.06.19: - Add geoip2 module. 28.06.19: - Rebasing to alpine 3.10. 19.06.19: - Set resolver to docker dns in ssl.conf. 29.05.19: - Compensate for changes to the reverse-proxy-confs repo. 26.05.19: - Remove botocore/urllib patch. 08.05.19: - Remove default.conf when nginx is upgraded in downstream image. 30.04.19: - Add php-redis. 12.04.19: - Rebase aarch64 image to 3.9. 25.03.19: - Rebase aarch64 image back to 3.8 due to python issues (specifically with fail2ban), switch packages to python 3 on amd64 and armhf, clean up pip/python cache to shrink image size. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.03.19: - Add TLSv1.3 to ssl.conf. 02.03.19: - Add php intl and posix modules. 27.02.19: - Add gnupg package. 22.02.19: - Rebase to alpine 3.9. 03.02.19: - Removed memcached due to seccomp errors. Let us know if you need to re-enable memcached. 28.01.19: - Add pipeline logic and multi arch. 21.01.19: - Remove client_body_max from proxy.conf (existing users need to manually update). 09.01.19: - Remove tls v1 and v1.1 from default ssl.conf, update ciphers (existing users need to manually update). 30.12.18: - Fix bundle key generation. 19.12.18: - Add ipv6 and http/2 support to default site config. 08.12.18: - Had to remove cert renewal during container start due to certbot's new undocumented feature of up to 8 minute random delay. 03.12.18: - Fix silly bug resetting the duckdns token. 02.12.18: - Add dns validation support for ovh. 20.11.18: - Externalize reverse proxy confs to separate github repo linuxserver/reverse-proxy-confs , update baseimage packages during build 19.11.18: - Add php opcache package. 12.11.18: - Add support for duckdns wildcard certs via dns validation 31.10.18: - Add various preset proxy confs and fix others (thanks @nemchik and @hijxf) 02.10.18: - Fix fail2ban instructions and logrotate conf 11.09.18: - Add various preset proxy confs and fix others (thanks @nemchik and @LeoVerto) 04.09.18: - Linting fixes. 30.08.18: - Add support for ldap auth, add proxy confs for bazarr, couchpotato, headphones, lidarr and plex subfolder (thanks @nemchik and @jedahan) 21.08.18: - Rebase to alpine 3.8, add info on search engine de-listing 08.08.18: - Add subdomain proxy conf for plex, update emby proxy confs 25.07.18: - Add subdomain proxy conf for syncthing 23.07.18: - Remove backwards compatibility and set default validation method to http. Update portainer proxy config to fix websockets. Add unifi proxy conf. 31.05.18: - Update ssl.conf and proxy.conf for tighter security (thanks @nemchik) 30.05.18: - Add reverse proxy configs for jackett, monitorr, nzbget, nzbletsencrypt, organizr, portainer and transmission (thanks @nemchik) 18.05.18: - Add more info on certs and unraid reverse proxy config 11.05.18: - Add php pgsql support 24.04.18: - Auto generate a private key + fullchain bundle pem that is needed by certain apps 20.04.18: - Add standardized optional reverse proxy conf files 19.04.18: - Bind memcached to localhost only, add php7-sqlite3 08.04.18: - Fix renewal hooks 29.03.18: - Create pfx cert after renewal for dns validation (previous version only created it for http and tls, an oversight) 29.03.18: - Fix staging for v2 api 13.03.18: - Support for wildcard cert with dns validation added. Switched to v2 api for ACME. 21.02.18: - Reduce shellcheck directives by renaming secondary variables 20.02.18: - Sanitize variables, increase log verbosity 01.02.18: - Big changes. VALIDATION parameter added for choosing certbot validation methods, including dns through official plugins. HTTPVAL is deprecated. STAGING parameter added for testing. Backwards compatibility for the short term. Since tls-sni is disabled by letsencrypt, most users will have to change their settings and adopt the new parameters within the next 90 days. Reorganized the nginx default config, split ssl settings into new ssl.conf 13.01.18: - Re-enable ipv6 due to update to fail2ban 0.10.1. Existing users can enable ipv6 by deleting /config/fail2ban/action.d/iptables-common.local and restarting the container after updating the image 11.01.18: - Halt the container if validation fails instead of a stop (so restart=always doesn't get users throttled with Let's Encrypt) 10.01.18: - Add option for http validation on port 80 05.01.18: - Rebase to alpine 3.7 04.11.17: - Add php7 soap module 31.10.17: - Add php7 exif and xmlreader modules 25.09.17: - Manage fail2ban via s6 24.09.17: - Add memcached service 01.09.17: - --privileged is no longer required as long as --cap-add=NET_ADMIN is added, instructions modified accordingly, disabled fail2ban ipv6 actions due to requiring access to host kernel modules 31.08.17: - Add php7-phar 14.07.17: - Enable modules dynamically in nginx.conf 06.07.17: - Add support for multiple domains (thanks @oznu) 22.06.17: - Add various nginx modules and enable all modules in the default nginx.conf 16.06.17: - Update deprecated certbot option for https validation, make e-mail entry optional, update readme 05.06.17: - Add php7-bz2 27.05.17: - Rebase to alpine 3.6. 03.05.17: - Fix log permissions. 18.04.17: - Add php7-sockets, update fail2ban filter and action defaults 27.02.17: - Add php7-dom, php7-iconv and php7-pdo_sqlite 21.02.17: - Add php7-xml 10.02.17: - Switch to alpine 3.5 base and php7, add php zlib module and all nginx modules 13.01.17: - Add php5-ctype and php5-openssl 04.01.17: - Add php5-mysqli and php5-pdo_mysql 22.11.16: - Add gd and mcrypt packages 21.11.16: - Add curl package 07.11.16: - Initial Release","title":"letsencrypt"},{"location":"images/docker-letsencrypt/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-letsencrypt/#important-notice-this-image-has-been-deprecated-and-the-project-is-moved-to-a-new-repo","text":"Due to a trademark related request, this image is moved to a new repo on Docker Hub and GitHub . This is a breaking change and you need to manually update. Apologies for the the disruption. Switching existing implementations over to the new image is very easy, just follow these simple steps: https://github.com/linuxserver/docker-swag#migrating-from-the-old-linuxserverletsencrypt-image","title":"IMPORTANT NOTICE: THIS IMAGE HAS BEEN DEPRECATED AND THE PROJECT IS MOVED TO A NEW REPO"},{"location":"images/docker-letsencrypt/#this-repository-will-be-archived-and-builds-for-the-image-will-no-longer-be-created-at-the-end-of-2020","text":"","title":"This repository will be archived and builds for the image will no longer be created at the end of 2020"},{"location":"images/docker-letsencrypt/#linuxserverletsencrypt","text":"SWAG - Secure Web-server And Gateway (formerly known as letsencrypt, no relation to Let's Encrypt\u2122) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes. It also contains fail2ban for intrusion prevention.","title":"linuxserver/letsencrypt"},{"location":"images/docker-letsencrypt/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/letsencrypt should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-letsencrypt/#usage","text":"Here are some example snippets to help you get started creating a container.","title":"Usage"},{"location":"images/docker-letsencrypt/#docker","text":"docker create \\ --name=swag \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=yourdomain.url \\ -e SUBDOMAINS=www, \\ -e VALIDATION=http \\ -e DNSPLUGIN=cloudflare `#optional` \\ -e PROPAGATION= `#optional` \\ -e DUCKDNSTOKEN= `#optional` \\ -e EMAIL= `#optional` \\ -e ONLY_SUBDOMAINS=false `#optional` \\ -e EXTRA_DOMAINS= `#optional` \\ -e STAGING=false `#optional` \\ -p 443:443 \\ -p 80:80 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ linuxserver/letsencrypt","title":"docker"},{"location":"images/docker-letsencrypt/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: swag: image: linuxserver/letsencrypt container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=yourdomain.url - SUBDOMAINS=www, - VALIDATION=http - DNSPLUGIN=cloudflare #optional - PROPAGATION= #optional - DUCKDNSTOKEN= #optional - EMAIL= #optional - ONLY_SUBDOMAINS=false #optional - EXTRA_DOMAINS= #optional - STAGING=false #optional volumes: - /path/to/appdata/config:/config ports: - 443:443 - 80:80 #optional restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-letsencrypt/#parameters","text":"Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Parameter Function -p 443 Https port -p 80 Http port (required for http validation and http -> https redirect) -e PUID=1000 for UserID - see below for explanation -e PGID=1000 for GroupID - see below for explanation -e TZ=Europe/London Specify a timezone to use EG Europe/London. -e URL=yourdomain.url Top url you have control over ( customdomain.com if you own it, or customsubdomain.ddnsprovider.com if dynamic dns). -e SUBDOMAINS=www, Subdomains you'd like the cert to cover (comma separated, no spaces) ie. www,ftp,cloud . For a wildcard cert, set this exactly to wildcard (wildcard cert is available via dns and duckdns validation only) -e VALIDATION=http Certbot validation method to use, options are http , dns or duckdns ( dns method also requires DNSPLUGIN variable set) ( duckdns method requires DUCKDNSTOKEN variable set, and the SUBDOMAINS variable must be either empty or set to wildcard ). -e DNSPLUGIN=cloudflare Required if VALIDATION is set to dns . Options are aliyun , cloudflare , cloudxns , cpanel , digitalocean , dnsimple , dnsmadeeasy , domeneshop , gandi , google , inwx , linode , luadns , nsone , ovh , rfc2136 , route53 and transip . Also need to enter the credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf . -e PROPAGATION= Optionally override (in seconds) the default propagation time for the dns plugins. -e DUCKDNSTOKEN= Required if VALIDATION is set to duckdns . Retrieve your token from https://www.duckdns.org -e EMAIL= Optional e-mail address used for cert expiration notifications. -e ONLY_SUBDOMAINS=false If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to true -e EXTRA_DOMAINS= Additional fully qualified domain names (comma separated, no spaces) ie. extradomain.com,subdomain.anotherdomain.org,*.anotherdomain.org -e STAGING=false Set to true to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes. -v /config All the config files including the webroot reside here.","title":"Parameters"},{"location":"images/docker-letsencrypt/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-letsencrypt/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-letsencrypt/#user-group-identifiers","text":"When using volumes ( -v flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-letsencrypt/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-letsencrypt/#validation-and-initial-setup","text":"Before running this container, make sure that the url and subdomains are properly forwarded to this container's host, and that port 443 (and/or 80) is not being used by another service on the host (NAS gui, another webserver, etc.). For http validation, port 80 on the internet side of the router should be forwarded to this container's port 80 For dns validation, make sure to enter your credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf Cloudflare provides free accounts for managing dns and is very easy to use with this image. Make sure that it is set up for \"dns only\" instead of \"dns + proxy\" Google dns plugin is meant to be used with \"Google Cloud DNS\", a paid enterprise product, and not for \"Google Domains DNS\" For duckdns validation, either leave the SUBDOMAINS variable empty or set it to wildcard , and set the DUCKDNSTOKEN variable with your duckdns token. Due to a limitation of duckdns, the resulting cert will only cover either main subdomain (ie. yoursubdomain.duckdns.org ), or sub-subdomains (ie. *.yoursubdomain.duckdns.org ), but will not both at the same time. You can use our duckdns image to update your IP on duckdns.org. --cap-add=NET_ADMIN is required for fail2ban to modify iptables If you need a dynamic dns provider, you can use the free provider duckdns.org where the URL will be yoursubdomain.duckdns.org and the SUBDOMAINS can be www,ftp,cloud with http validation, or wildcard with dns validation. After setup, navigate to https://yourdomain.url to access the default homepage (http access through port 80 is disabled by default, you can enable it by editing the default site config at /config/nginx/site-confs/default ). Certs are checked nightly and if expiration is within 30 days, renewal is attempted. If your cert is about to expire in less than 30 days, check the logs under /config/log/letsencrypt to see why the renewals have been failing. It is recommended to input your e-mail in docker parameters so you receive expiration notices from Let's Encrypt in those circumstances.","title":"Validation and initial setup"},{"location":"images/docker-letsencrypt/#security-and-password-protection","text":"The container detects changes to url and subdomains, revokes existing certs and generates new ones during start. The container provides a pre-generated 4096-bit dhparams.pem (rotated weekly via Jenkins job ) for new instances, however you may generate your own by running docker exec letsencrypt openssl dhparam -out /config/nginx/dhparams.pem 4096 WARNING: This takes a very long time If you'd like to password protect your sites, you can use htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it letsencrypt htpasswd -c /config/nginx/.htpasswd You can add multiple user:pass to .htpasswd . For the first user, use the above command, for others, use the above command without the -c flag, as it will force deletion of the existing .htpasswd and creation of a new one You can also use ldap auth for security and access control. A sample, user configurable ldap.conf is provided, and it requires the separate image linuxserver/ldap-auth to communicate with an ldap server.","title":"Security and password protection"},{"location":"images/docker-letsencrypt/#site-config-and-reverse-proxy","text":"The default site config resides at /config/nginx/site-confs/default . Feel free to modify this file, and you can add other conf files to this directory. However, if you delete the default file, a new default will be created on container start. Preset reverse proxy config files are added for popular apps. See the README.md file under /config/nginx/proxy_confs for instructions on how to enable them. The preset confs reside in and get imported from this repo . If you wish to hide your site from search engine crawlers, you may find it useful to add this configuration line to your site config, within the server block, above the line where ssl.conf is included add_header X-Robots-Tag \"noindex, nofollow, nosnippet, noarchive\"; This will ask Google et al not to index and list your site. Be careful with this, as you will eventually be de-listed if you leave this line in on a site you wish to be present on search engines If you wish to redirect http to https, you must expose port 80","title":"Site config and reverse proxy"},{"location":"images/docker-letsencrypt/#using-certs-in-other-containers","text":"This container includes auto-generated pfx and private-fullchain-bundle pem certs that are needed by other apps like Emby and Znc. To use these certs in other containers, do either of the following: (Easier) Mount the container's config folder in other containers (ie. -v /path-to-le-config:/le-ssl ) and in the other containers, use the cert location /le-ssl/keys/letsencrypt/ (More secure) Mount the letsencrypt folder etc/letsencrypt that resides under /config in other containers (ie. -v /path-to-le-config/etc/letsencrypt:/le-ssl ) and in the other containers, use the cert location /le-ssl/live// (This is more secure because the first method shares the entire letsencrypt config folder with other containers, including the www files, whereas the second method only shares the ssl certs) These certs include: cert.pem , chain.pem , fullchain.pem and privkey.pem , which are generated by Let's Encrypt and used by nginx and various other apps privkey.pfx , a format supported by Microsoft and commonly used by dotnet apps such as Emby Server (no password) priv-fullchain-bundle.pem , a pem cert that bundles the private key and the fullchain, used by apps like ZNC","title":"Using certs in other containers"},{"location":"images/docker-letsencrypt/#using-fail2ban","text":"This container includes fail2ban set up with 3 jails by default: nginx-http-auth nginx-badbots nginx-botsearch To enable or disable other jails, modify the file /config/fail2ban/jail.local To modify filters and actions, instead of editing the .conf files, create .local files with the same name and edit those because .conf files get overwritten when the actions and filters are updated. .local files will append whatever's in the .conf files (ie. nginx-http-auth.conf --> nginx-http-auth.local ) You can check which jails are active via docker exec -it swag fail2ban-client status You can check the status of a specific jail via docker exec -it swag fail2ban-client status You can unban an IP via docker exec -it swag fail2ban-client set unbanip A list of commands can be found here: https://www.fail2ban.org/wiki/index.php/Commands","title":"Using fail2ban"},{"location":"images/docker-letsencrypt/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above.","title":"Docker Mods"},{"location":"images/docker-letsencrypt/#support-info","text":"Shell access whilst the container is running: docker exec -it swag /bin/bash To monitor the logs of the container in realtime: docker logs -f swag container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' swag image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/letsencrypt","title":"Support Info"},{"location":"images/docker-letsencrypt/#updating-info","text":"Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image. Below are the instructions for updating containers:","title":"Updating Info"},{"location":"images/docker-letsencrypt/#via-docker-runcreate","text":"Update the image: docker pull linuxserver/letsencrypt Stop the running container: docker stop swag Delete the container: docker rm swag Recreate a new container with the same docker create parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved) Start the new container: docker start swag You can also remove the old dangling images: docker image prune","title":"Via Docker Run/Create"},{"location":"images/docker-letsencrypt/#via-docker-compose","text":"Update all images: docker-compose pull or update a single image: docker-compose pull swag Let compose update all containers as necessary: docker-compose up -d or update a single container: docker-compose up -d swag You can also remove the old dangling images: docker image prune","title":"Via Docker Compose"},{"location":"images/docker-letsencrypt/#via-watchtower-auto-updater-especially-useful-if-you-dont-remember-the-original-parameters","text":"Pull the latest image at its tag and replace it with the same env variables in one run: docker run --rm \\ -v /var/run/docker.sock:/var/run/docker.sock \\ containrrr/watchtower \\ --run-once swag Note: We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using Docker Compose. You can also remove the old dangling images: docker image prune","title":"Via Watchtower auto-updater (especially useful if you don't remember the original parameters)"},{"location":"images/docker-letsencrypt/#building-locally","text":"If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-letsencrypt.git cd docker-letsencrypt docker build \\ --no-cache \\ --pull \\ -t linuxserver/letsencrypt:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 .","title":"Building locally"},{"location":"images/docker-letsencrypt/#versions","text":"28.07.20: - Start transition to new name, SWAG. 17.06.20: - Reformat ssl.conf. Pull in pre-generated dhparams.pem from DO Spaces. Deprecate DHLEVEL param. 01.06.20: - Rebasing to alpine 3.12, change ldap login address to /ldaplogin to avoid clashes (existing users need to manually update). 31.05.20: - Tweak Authelia confs (existing users can delete authelia-server.conf and authelia-location.conf , and restart to update). 23.05.20: - Add support for Authelia. 15.05.20: - Remove php7-pecl-imagick due to upstream issues. Add support for Geoip2 auto db retrieval. 10.05.20: - Added support for fail2ban deny statements. 04.05.20: - Allow for optionally setting propagation time for dns plugins. Add repo version of whois to replace the built-in busybox version. Update jail.local to change default fail2ban ban action to more widely supported iptables-allports . 13.04.20: - Update cloudflare.ini with token info. 11.03.20: - Add php7-sodium. 06.03.20: - Implement cert renewal attempt during container start (only if the cert is already expired or will expire within the next 24 hours, otherwise it will be attempted at 2:08am). 05.03.20: - Use port and proto upstream variables for ldap and default sample confs. 24.02.20: - Remove world/group read permissions in dns-conf. 23.02.20: - Add aliyun dns validation plugin. 28.01.20: - Deprecate tls-sni validation method, remove from docs. 27.01.20: - Add support for cpanel dns validation. 10.01.20: - Add support for domeneshop dns validation. 07.01.20: - Update ciphers from Mozilla ssl-config recommendations. 01.01.20: - Add support for gandi dns validation. 31.12.19: - GeoIP2 databases now require personal license keys to download. Auto download is disabled and log message is added. 19.12.19: - Rebasing to alpine 3.11. 19.12.19: - Increase large_client_header_buffers in nginx.conf to prevent 414 errors. 18.12.19: - Add php7-imap and php7-pecl-apcu. 11.12.19: - Fix Google Cloud DNS to use .json file for authentication. 20.11.19: - Fix cryptography version mismatch due to pip issue. 17.11.19: - Add php7-pdo_odbc. 17.11.19: - Add transip dns validation plugin. 27.10.19: - Turn off lua resty core to get rid of error message in the log (existing users will have to delete /config/nginx/nginx.conf and restart the container). 26.10.19: - Add new package for stream-geoip2, remove geoip2 module patch. 24.10.19: - Add php7-pecl-imagick. 23.10.19: - Update Host header in proxy.conf to fix CSRF issues. 12.10.19: - Add linode dns validation plugin. 23.09.19: - Move GeoIP2 db to /config to make it persistent. 14.08.19: - Add inwx dns validation plugin. 06.08.19: - Add php7-ftp. 04.08.19: - Add php7-bcmath, php7-pear, php7-xmlrpc. 02.08.19: - Add php7-ldap, remove geoip v1(deprecated). 01.08.19: - Mark https redirect block as default_server (effective only for new installs). 31.07.19: - Create GeoIP2 databse (libmaxminddb) during container start if it doesn't exist. 30.07.19: - Support main domain via duckdns validation. 29.07.19: - Enable http to https redirect by default (effective only for new installs). 01.07.19: - Patch geoip2 module until upstream is fixed. 30.06.19: - Add geoip2 module. 28.06.19: - Rebasing to alpine 3.10. 19.06.19: - Set resolver to docker dns in ssl.conf. 29.05.19: - Compensate for changes to the reverse-proxy-confs repo. 26.05.19: - Remove botocore/urllib patch. 08.05.19: - Remove default.conf when nginx is upgraded in downstream image. 30.04.19: - Add php-redis. 12.04.19: - Rebase aarch64 image to 3.9. 25.03.19: - Rebase aarch64 image back to 3.8 due to python issues (specifically with fail2ban), switch packages to python 3 on amd64 and armhf, clean up pip/python cache to shrink image size. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.03.19: - Add TLSv1.3 to ssl.conf. 02.03.19: - Add php intl and posix modules. 27.02.19: - Add gnupg package. 22.02.19: - Rebase to alpine 3.9. 03.02.19: - Removed memcached due to seccomp errors. Let us know if you need to re-enable memcached. 28.01.19: - Add pipeline logic and multi arch. 21.01.19: - Remove client_body_max from proxy.conf (existing users need to manually update). 09.01.19: - Remove tls v1 and v1.1 from default ssl.conf, update ciphers (existing users need to manually update). 30.12.18: - Fix bundle key generation. 19.12.18: - Add ipv6 and http/2 support to default site config. 08.12.18: - Had to remove cert renewal during container start due to certbot's new undocumented feature of up to 8 minute random delay. 03.12.18: - Fix silly bug resetting the duckdns token. 02.12.18: - Add dns validation support for ovh. 20.11.18: - Externalize reverse proxy confs to separate github repo linuxserver/reverse-proxy-confs , update baseimage packages during build 19.11.18: - Add php opcache package. 12.11.18: - Add support for duckdns wildcard certs via dns validation 31.10.18: - Add various preset proxy confs and fix others (thanks @nemchik and @hijxf) 02.10.18: - Fix fail2ban instructions and logrotate conf 11.09.18: - Add various preset proxy confs and fix others (thanks @nemchik and @LeoVerto) 04.09.18: - Linting fixes. 30.08.18: - Add support for ldap auth, add proxy confs for bazarr, couchpotato, headphones, lidarr and plex subfolder (thanks @nemchik and @jedahan) 21.08.18: - Rebase to alpine 3.8, add info on search engine de-listing 08.08.18: - Add subdomain proxy conf for plex, update emby proxy confs 25.07.18: - Add subdomain proxy conf for syncthing 23.07.18: - Remove backwards compatibility and set default validation method to http. Update portainer proxy config to fix websockets. Add unifi proxy conf. 31.05.18: - Update ssl.conf and proxy.conf for tighter security (thanks @nemchik) 30.05.18: - Add reverse proxy configs for jackett, monitorr, nzbget, nzbletsencrypt, organizr, portainer and transmission (thanks @nemchik) 18.05.18: - Add more info on certs and unraid reverse proxy config 11.05.18: - Add php pgsql support 24.04.18: - Auto generate a private key + fullchain bundle pem that is needed by certain apps 20.04.18: - Add standardized optional reverse proxy conf files 19.04.18: - Bind memcached to localhost only, add php7-sqlite3 08.04.18: - Fix renewal hooks 29.03.18: - Create pfx cert after renewal for dns validation (previous version only created it for http and tls, an oversight) 29.03.18: - Fix staging for v2 api 13.03.18: - Support for wildcard cert with dns validation added. Switched to v2 api for ACME. 21.02.18: - Reduce shellcheck directives by renaming secondary variables 20.02.18: - Sanitize variables, increase log verbosity 01.02.18: - Big changes. VALIDATION parameter added for choosing certbot validation methods, including dns through official plugins. HTTPVAL is deprecated. STAGING parameter added for testing. Backwards compatibility for the short term. Since tls-sni is disabled by letsencrypt, most users will have to change their settings and adopt the new parameters within the next 90 days. Reorganized the nginx default config, split ssl settings into new ssl.conf 13.01.18: - Re-enable ipv6 due to update to fail2ban 0.10.1. Existing users can enable ipv6 by deleting /config/fail2ban/action.d/iptables-common.local and restarting the container after updating the image 11.01.18: - Halt the container if validation fails instead of a stop (so restart=always doesn't get users throttled with Let's Encrypt) 10.01.18: - Add option for http validation on port 80 05.01.18: - Rebase to alpine 3.7 04.11.17: - Add php7 soap module 31.10.17: - Add php7 exif and xmlreader modules 25.09.17: - Manage fail2ban via s6 24.09.17: - Add memcached service 01.09.17: - --privileged is no longer required as long as --cap-add=NET_ADMIN is added, instructions modified accordingly, disabled fail2ban ipv6 actions due to requiring access to host kernel modules 31.08.17: - Add php7-phar 14.07.17: - Enable modules dynamically in nginx.conf 06.07.17: - Add support for multiple domains (thanks @oznu) 22.06.17: - Add various nginx modules and enable all modules in the default nginx.conf 16.06.17: - Update deprecated certbot option for https validation, make e-mail entry optional, update readme 05.06.17: - Add php7-bz2 27.05.17: - Rebase to alpine 3.6. 03.05.17: - Fix log permissions. 18.04.17: - Add php7-sockets, update fail2ban filter and action defaults 27.02.17: - Add php7-dom, php7-iconv and php7-pdo_sqlite 21.02.17: - Add php7-xml 10.02.17: - Switch to alpine 3.5 base and php7, add php zlib module and all nginx modules 13.01.17: - Add php5-ctype and php5-openssl 04.01.17: - Add php5-mysqli and php5-pdo_mysql 22.11.16: - Add gd and mcrypt packages 21.11.16: - Add curl package 07.11.16: - Initial Release","title":"Versions"},{"location":"images/docker-libreoffice/","text":"linuxserver/libreoffice LibreOffice is a free and powerful office suite, and a successor to OpenOffice.org (commonly known as OpenOffice). Its clean interface and feature-rich tools help you unleash your creativity and enhance your productivity. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/libreoffice:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: libreoffice: image: lscr.io/linuxserver/libreoffice:latest container_name: libreoffice security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=libreoffice \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/libreoffice:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 LibreOffice desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings and documents Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it libreoffice /bin/bash To monitor the logs of the container in realtime: docker logs -f libreoffice Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' libreoffice Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/libreoffice:latest Versions 21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 23.12.21: - Rebase to Alpine 3.15. 26.09.21: - Rebase to Alpine 3.14. 05.04.21: - Initial release.","title":"libreoffice"},{"location":"images/docker-libreoffice/#linuxserverlibreoffice","text":"LibreOffice is a free and powerful office suite, and a successor to OpenOffice.org (commonly known as OpenOffice). Its clean interface and feature-rich tools help you unleash your creativity and enhance your productivity.","title":"linuxserver/libreoffice"},{"location":"images/docker-libreoffice/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/libreoffice:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-libreoffice/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-libreoffice/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-libreoffice/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: libreoffice: image: lscr.io/linuxserver/libreoffice:latest container_name: libreoffice security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-libreoffice/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=libreoffice \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/libreoffice:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-libreoffice/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-libreoffice/#ports-p","text":"Parameter Function 3000 LibreOffice desktop gui.","title":"Ports (-p)"},{"location":"images/docker-libreoffice/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-libreoffice/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings and documents","title":"Volume Mappings (-v)"},{"location":"images/docker-libreoffice/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-libreoffice/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-libreoffice/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-libreoffice/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-libreoffice/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-libreoffice/#support-info","text":"Shell access whilst the container is running: docker exec -it libreoffice /bin/bash To monitor the logs of the container in realtime: docker logs -f libreoffice Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' libreoffice Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/libreoffice:latest","title":"Support Info"},{"location":"images/docker-libreoffice/#versions","text":"21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 23.12.21: - Rebase to Alpine 3.15. 26.09.21: - Rebase to Alpine 3.14. 05.04.21: - Initial release.","title":"Versions"},{"location":"images/docker-libresonic/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. PLEASE USE AIRSONIC linuxserver/airsonic linuxserver/libresonic Libresonic is a free, web-based media streamer, providing ubiqutious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/libresonic should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=libresonic \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH= `#optional` \\ -p 4040:4040 \\ -v :/config \\ -v :/music \\ -v :/playlists \\ -v :/podcasts \\ -v :/media `#optional` \\ --restart unless-stopped \\ linuxserver/libresonic docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: libresonic: image: linuxserver/libresonic container_name: libresonic environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH= #optional volumes: - :/config - :/music - :/playlists - :/podcasts volumes: - :/media #optional ports: - 4040:4040 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4040 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH= For setting url-base in reverse proxy setups. Volume Mappings ( -v ) Volume Function /config Configuration file location. /music Location of music. /playlists Location for playlists to be saved to. /podcasts Location of podcasts. /media Location of other media. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup Access WebUI at :4040 . Default user/pass is admin/admin Support Info Shell access whilst the container is running: docker exec -it libresonic /bin/bash To monitor the logs of the container in realtime: docker logs -f libresonic Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' libresonic Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/libresonic Versions 24.03.19: - Switching to new Base images, shift to arm32v7 tag. 15.01.19: - Pull war from github, adding pipeline multi arch builds. 05.01.19: - Linting fixes. 27.08.18: - Rebase to ubuntu bionic. 12.12.17: - Rebase to alpine 3.7. 11.07.17: - Rebase to alpine 3.6. 12.05.17: - Add annotation timeout (primarily for armhf and lower powered hosts). 08.02.17: - Rebase to alpine 3.5. 04.12.16: - Update jetty runner version. 29.11.16: - Switch to building from release tags following v6.1 stable release. 17.11.16: - Initial Release.","title":"libresonic"},{"location":"images/docker-libresonic/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. PLEASE USE AIRSONIC linuxserver/airsonic","title":"DEPRECATION NOTICE"},{"location":"images/docker-libresonic/#linuxserverlibresonic","text":"Libresonic is a free, web-based media streamer, providing ubiqutious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room.","title":"linuxserver/libresonic"},{"location":"images/docker-libresonic/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/libresonic should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-libresonic/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-libresonic/#docker","text":"docker create \\ --name=libresonic \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONTEXT_PATH= `#optional` \\ -p 4040:4040 \\ -v :/config \\ -v :/music \\ -v :/playlists \\ -v :/podcasts \\ -v :/media `#optional` \\ --restart unless-stopped \\ linuxserver/libresonic","title":"docker"},{"location":"images/docker-libresonic/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: libresonic: image: linuxserver/libresonic container_name: libresonic environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONTEXT_PATH= #optional volumes: - :/config - :/music - :/playlists - :/podcasts volumes: - :/media #optional ports: - 4040:4040 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-libresonic/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-libresonic/#ports-p","text":"Parameter Function 4040 WebUI","title":"Ports (-p)"},{"location":"images/docker-libresonic/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CONTEXT_PATH= For setting url-base in reverse proxy setups.","title":"Environment Variables (-e)"},{"location":"images/docker-libresonic/#volume-mappings-v","text":"Volume Function /config Configuration file location. /music Location of music. /playlists Location for playlists to be saved to. /podcasts Location of podcasts. /media Location of other media.","title":"Volume Mappings (-v)"},{"location":"images/docker-libresonic/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-libresonic/#application-setup","text":"Access WebUI at :4040 . Default user/pass is admin/admin","title":"Application Setup"},{"location":"images/docker-libresonic/#support-info","text":"Shell access whilst the container is running: docker exec -it libresonic /bin/bash To monitor the logs of the container in realtime: docker logs -f libresonic Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' libresonic Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/libresonic","title":"Support Info"},{"location":"images/docker-libresonic/#versions","text":"24.03.19: - Switching to new Base images, shift to arm32v7 tag. 15.01.19: - Pull war from github, adding pipeline multi arch builds. 05.01.19: - Linting fixes. 27.08.18: - Rebase to ubuntu bionic. 12.12.17: - Rebase to alpine 3.7. 11.07.17: - Rebase to alpine 3.6. 12.05.17: - Add annotation timeout (primarily for armhf and lower powered hosts). 08.02.17: - Rebase to alpine 3.5. 04.12.16: - Update jetty runner version. 29.11.16: - Switch to building from release tags following v6.1 stable release. 17.11.16: - Initial Release.","title":"Versions"},{"location":"images/docker-librespeed/","text":"linuxserver/librespeed Librespeed is a very lightweight Speedtest implemented in Javascript, using XMLHttpRequest and Web Workers. No Flash, No Java, No Websocket, No Bullshit. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/librespeed:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the speedtest webui at http://SERVERIP . The results database can be accessed at http://SERVERIP/results/stats.php with the password set. The default template used is based on example-singleServer-full.html . However, all templates are provided for reference at /config/www/ . Feel free to customize /config/www/index.html as you like. Delete the file and restart to go back to the image default. You can optionally place customized speedtest.js and speedtest_worker.js files under /config/www and they will supersede the defaults after a container start. Keep in mind that once you do so, they will no longer be updated. You can delete them and recreate the container to go back to the image defaults. If you are setting up a mysql or postgresql database, you first need to import the tables into your database as described at the following link https://github.com/librespeed/speedtest/blob/master/doc.md#creating-the-database To enable a custom results page set the environment variable CUSTOM_RESULTS=true and start (or restart) the container at least once for /config/www/results/index.php to be created and modify this file to your liking. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: librespeed: image: lscr.io/linuxserver/librespeed:latest container_name: librespeed environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD=PASSWORD - CUSTOM_RESULTS=false #optional - DB_TYPE=sqlite #optional - DB_NAME=DB_NAME #optional - DB_HOSTNAME=DB_HOSTNAME #optional - DB_USERNAME=DB_USERNAME #optional - DB_PASSWORD=DB_PASSWORD #optional - DB_PORT=DB_PORT #optional volumes: - /path/to/appdata/config:/config ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=librespeed \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD=PASSWORD \\ -e CUSTOM_RESULTS=false `#optional` \\ -e DB_TYPE=sqlite `#optional` \\ -e DB_NAME=DB_NAME `#optional` \\ -e DB_HOSTNAME=DB_HOSTNAME `#optional` \\ -e DB_USERNAME=DB_USERNAME `#optional` \\ -e DB_PASSWORD=DB_PASSWORD `#optional` \\ -e DB_PORT=DB_PORT `#optional` \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/librespeed:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 web gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PASSWORD=PASSWORD Set the password for the results database. CUSTOM_RESULTS=false (optional) set to true to enable custom results page in /config/www/results/index.php . DB_TYPE=sqlite Defaults to sqlite , can also be set to mysql or postgresql . DB_NAME=DB_NAME Database name. Required for mysql and pgsql. DB_HOSTNAME=DB_HOSTNAME Database address. Required for mysql and pgsql. DB_USERNAME=DB_USERNAME Database username. Required for mysql and pgsql. DB_PASSWORD=DB_PASSWORD Database password. Required for mysql and pgsql. DB_PORT=DB_PORT Database port. Required for mysql. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it librespeed /bin/bash To monitor the logs of the container in realtime: docker logs -f librespeed Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' librespeed Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/librespeed:latest Versions 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 01.03.21: - Fix up database settings. Make sure index.html is recreated. 28.02.21: - Added php7-ctype. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 29.04.20: - Add donation links for LibreSpeed to Github sponsor button and container log. 09.01.20: - Initial Release.","title":"librespeed"},{"location":"images/docker-librespeed/#linuxserverlibrespeed","text":"Librespeed is a very lightweight Speedtest implemented in Javascript, using XMLHttpRequest and Web Workers. No Flash, No Java, No Websocket, No Bullshit.","title":"linuxserver/librespeed"},{"location":"images/docker-librespeed/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/librespeed:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-librespeed/#application-setup","text":"Access the speedtest webui at http://SERVERIP . The results database can be accessed at http://SERVERIP/results/stats.php with the password set. The default template used is based on example-singleServer-full.html . However, all templates are provided for reference at /config/www/ . Feel free to customize /config/www/index.html as you like. Delete the file and restart to go back to the image default. You can optionally place customized speedtest.js and speedtest_worker.js files under /config/www and they will supersede the defaults after a container start. Keep in mind that once you do so, they will no longer be updated. You can delete them and recreate the container to go back to the image defaults. If you are setting up a mysql or postgresql database, you first need to import the tables into your database as described at the following link https://github.com/librespeed/speedtest/blob/master/doc.md#creating-the-database To enable a custom results page set the environment variable CUSTOM_RESULTS=true and start (or restart) the container at least once for /config/www/results/index.php to be created and modify this file to your liking.","title":"Application Setup"},{"location":"images/docker-librespeed/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-librespeed/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: librespeed: image: lscr.io/linuxserver/librespeed:latest container_name: librespeed environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PASSWORD=PASSWORD - CUSTOM_RESULTS=false #optional - DB_TYPE=sqlite #optional - DB_NAME=DB_NAME #optional - DB_HOSTNAME=DB_HOSTNAME #optional - DB_USERNAME=DB_USERNAME #optional - DB_PASSWORD=DB_PASSWORD #optional - DB_PORT=DB_PORT #optional volumes: - /path/to/appdata/config:/config ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-librespeed/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=librespeed \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PASSWORD=PASSWORD \\ -e CUSTOM_RESULTS=false `#optional` \\ -e DB_TYPE=sqlite `#optional` \\ -e DB_NAME=DB_NAME `#optional` \\ -e DB_HOSTNAME=DB_HOSTNAME `#optional` \\ -e DB_USERNAME=DB_USERNAME `#optional` \\ -e DB_PASSWORD=DB_PASSWORD `#optional` \\ -e DB_PORT=DB_PORT `#optional` \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/librespeed:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-librespeed/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-librespeed/#ports-p","text":"Parameter Function 80 web gui","title":"Ports (-p)"},{"location":"images/docker-librespeed/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PASSWORD=PASSWORD Set the password for the results database. CUSTOM_RESULTS=false (optional) set to true to enable custom results page in /config/www/results/index.php . DB_TYPE=sqlite Defaults to sqlite , can also be set to mysql or postgresql . DB_NAME=DB_NAME Database name. Required for mysql and pgsql. DB_HOSTNAME=DB_HOSTNAME Database address. Required for mysql and pgsql. DB_USERNAME=DB_USERNAME Database username. Required for mysql and pgsql. DB_PASSWORD=DB_PASSWORD Database password. Required for mysql and pgsql. DB_PORT=DB_PORT Database port. Required for mysql.","title":"Environment Variables (-e)"},{"location":"images/docker-librespeed/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-librespeed/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-librespeed/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-librespeed/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-librespeed/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-librespeed/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-librespeed/#support-info","text":"Shell access whilst the container is running: docker exec -it librespeed /bin/bash To monitor the logs of the container in realtime: docker logs -f librespeed Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' librespeed Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/librespeed:latest","title":"Support Info"},{"location":"images/docker-librespeed/#versions","text":"20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 01.03.21: - Fix up database settings. Make sure index.html is recreated. 28.02.21: - Added php7-ctype. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 29.04.20: - Add donation links for LibreSpeed to Github sponsor button and container log. 09.01.20: - Initial Release.","title":"Versions"},{"location":"images/docker-lidarr/","text":"linuxserver/lidarr Lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new tracks from your favorite artists and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/lidarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Lidarr releases. develop \u2705 Develop Lidarr Releases. nightly \u2705 Nightly Lidarr Releases. Application Setup Access the webui at :8686 , for more information check out Lidarr . Special Note: Following our current folder structure will result in an inability to hardlink from your downloads to your Music folder because they are on seperate volumes. To support hardlinking, simply ensure that the Music and downloads data are on a single volume. For example, if you have /mnt/storage/Music and /mnt/storage/downloads/completed/Music, you would want something like /mnt/storage:/media for your volume. Then you can hardlink from /media/downloads/completed to /media/Music. Another item to keep in mind, is that within lidarr itself, you should then map your download client folder to your lidarr folder: Settings -> Download Client -> advanced -> remote path mappings. I input the host of my download client (matches the download client defined) remote path is /downloads/Music (relative to the internal container path) and local path is /media/downloads/completed/Music, assuming you have folders to seperate your downloaded data types. Media folders We have set /music and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: lidarr: image: lscr.io/linuxserver/lidarr:latest container_name: lidarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/music:/music #optional - /path/to/downloads:/downloads #optional ports: - 8686:8686 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=lidarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8686:8686 \\ -v /path/to/appdata/config:/config \\ -v /path/to/music:/music `#optional` \\ -v /path/to/downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/lidarr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8686 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files for Lidarr. /music Music files (See note in Application setup). /downloads Path to your download folder for music (See note in Application setup). Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it lidarr /bin/bash To monitor the logs of the container in realtime: docker logs -f lidarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lidarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/lidarr:latest Versions 06.06.22: - Rebase master branch to Alpine 3.15. 06.05.22: - Rebase master branch to Focal. 06.05.22: - Rebase develop branch to Alpine. 04.02.22: - Rebase nightly branch to Alpine, deprecate nightly-alpine branch. 30.12.21: - Add nightly-alpine branch. 01.08.21: - Add libchromaprint-tools. 11.07.21: - Make the paths clearer to the user. 18.04.21: - Switch latest tag to net core. 25.01.21: - Publish develop tag. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 18.04.20: - Removed /downloads and /music volumes from Dockerfiles. 05.04.20: - Move app to /app. 01.08.19: - Rebase to Linuxserver LTS mono version. 13.06.19: - Add env variable for setting umask. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 08.03.19: - Rebase to Bionic, use proposed endpoint for libchromaprint. 26.01.19: - Add pipeline logic and multi arch. 22.04.18: - Switch to beta builds. 17.03.18: - Add ENV XDG_CONFIG_HOME=\"/config/xdg\" to Dockerfile for signalr fix. 27.02.18: - Use json to query for new version. 23.02.18: - Initial Release.","title":"lidarr"},{"location":"images/docker-lidarr/#linuxserverlidarr","text":"Lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new tracks from your favorite artists and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.","title":"linuxserver/lidarr"},{"location":"images/docker-lidarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/lidarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-lidarr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Lidarr releases. develop \u2705 Develop Lidarr Releases. nightly \u2705 Nightly Lidarr Releases.","title":"Version Tags"},{"location":"images/docker-lidarr/#application-setup","text":"Access the webui at :8686 , for more information check out Lidarr . Special Note: Following our current folder structure will result in an inability to hardlink from your downloads to your Music folder because they are on seperate volumes. To support hardlinking, simply ensure that the Music and downloads data are on a single volume. For example, if you have /mnt/storage/Music and /mnt/storage/downloads/completed/Music, you would want something like /mnt/storage:/media for your volume. Then you can hardlink from /media/downloads/completed to /media/Music. Another item to keep in mind, is that within lidarr itself, you should then map your download client folder to your lidarr folder: Settings -> Download Client -> advanced -> remote path mappings. I input the host of my download client (matches the download client defined) remote path is /downloads/Music (relative to the internal container path) and local path is /media/downloads/completed/Music, assuming you have folders to seperate your downloaded data types.","title":"Application Setup"},{"location":"images/docker-lidarr/#media-folders","text":"We have set /music and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Media folders"},{"location":"images/docker-lidarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-lidarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: lidarr: image: lscr.io/linuxserver/lidarr:latest container_name: lidarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/music:/music #optional - /path/to/downloads:/downloads #optional ports: - 8686:8686 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-lidarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=lidarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8686:8686 \\ -v /path/to/appdata/config:/config \\ -v /path/to/music:/music `#optional` \\ -v /path/to/downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/lidarr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-lidarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-lidarr/#ports-p","text":"Parameter Function 8686 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-lidarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-lidarr/#volume-mappings-v","text":"Volume Function /config Configuration files for Lidarr. /music Music files (See note in Application setup). /downloads Path to your download folder for music (See note in Application setup).","title":"Volume Mappings (-v)"},{"location":"images/docker-lidarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-lidarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-lidarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-lidarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-lidarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-lidarr/#support-info","text":"Shell access whilst the container is running: docker exec -it lidarr /bin/bash To monitor the logs of the container in realtime: docker logs -f lidarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lidarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/lidarr:latest","title":"Support Info"},{"location":"images/docker-lidarr/#versions","text":"06.06.22: - Rebase master branch to Alpine 3.15. 06.05.22: - Rebase master branch to Focal. 06.05.22: - Rebase develop branch to Alpine. 04.02.22: - Rebase nightly branch to Alpine, deprecate nightly-alpine branch. 30.12.21: - Add nightly-alpine branch. 01.08.21: - Add libchromaprint-tools. 11.07.21: - Make the paths clearer to the user. 18.04.21: - Switch latest tag to net core. 25.01.21: - Publish develop tag. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 18.04.20: - Removed /downloads and /music volumes from Dockerfiles. 05.04.20: - Move app to /app. 01.08.19: - Rebase to Linuxserver LTS mono version. 13.06.19: - Add env variable for setting umask. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 08.03.19: - Rebase to Bionic, use proposed endpoint for libchromaprint. 26.01.19: - Add pipeline logic and multi arch. 22.04.18: - Switch to beta builds. 17.03.18: - Add ENV XDG_CONFIG_HOME=\"/config/xdg\" to Dockerfile for signalr fix. 27.02.18: - Use json to query for new version. 23.02.18: - Initial Release.","title":"Versions"},{"location":"images/docker-limnoria/","text":"linuxserver/limnoria Limnoria A robust, full-featured, and user/programmer-friendly Python IRC bot, with many existing plugins. Successor of the well-known Supybot. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/limnoria:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup New Configuration If you do not have an existing config you will need to start the container and then run the following wizard command: docker exec -it -w /config -u abc limnoria limnoria-wizard Existing Configuration If you have an existing config, adjust the directory settings in your conf file as follows: supybot.directories.backup: /config/backup supybot.directories.conf: /config/conf supybot.directories.data: /config/data supybot.directories.data.tmp: /config/data/tmp supybot.directories.data.web: /config/web supybot.directories.log: /config/logs supybot.directories.plugins: /config/plugins NOTE: These are not grouped together in the file. You will need to search your conf file for the variables. Then place your conf file and any of your existing directories in /config and start up the container. Plugin Requirements The container will pip install any requirements.txt it finds in the /config/plugins folder on startup. If you install a plugin using the PluginDownloader that includes a requirements.txt you can execute a shell into the container and then use pip install /config/plugins/ThePlugin/requirements.txt or restart the container and the requirements will be installed. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: limnoria: image: lscr.io/linuxserver/limnoria:latest container_name: limnoria environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - path/to/config:/config ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=limnoria \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -v path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/limnoria:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Port for Limnoria's web interface. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where Limnoria config is stored. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it limnoria /bin/bash To monitor the logs of the container in realtime: docker logs -f limnoria Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' limnoria Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/limnoria:latest Versions 19.09.22: - Rebase to alpine 3.15. 25.05.21: - Install plugin requirements on container init. 17.05.21: - Add linuxserver wheel index. 13.02.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 13.01.20: - Initial Release.","title":"limnoria"},{"location":"images/docker-limnoria/#linuxserverlimnoria","text":"Limnoria A robust, full-featured, and user/programmer-friendly Python IRC bot, with many existing plugins. Successor of the well-known Supybot.","title":"linuxserver/limnoria"},{"location":"images/docker-limnoria/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/limnoria:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-limnoria/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-limnoria/#new-configuration","text":"If you do not have an existing config you will need to start the container and then run the following wizard command: docker exec -it -w /config -u abc limnoria limnoria-wizard","title":"New Configuration"},{"location":"images/docker-limnoria/#existing-configuration","text":"If you have an existing config, adjust the directory settings in your conf file as follows: supybot.directories.backup: /config/backup supybot.directories.conf: /config/conf supybot.directories.data: /config/data supybot.directories.data.tmp: /config/data/tmp supybot.directories.data.web: /config/web supybot.directories.log: /config/logs supybot.directories.plugins: /config/plugins NOTE: These are not grouped together in the file. You will need to search your conf file for the variables. Then place your conf file and any of your existing directories in /config and start up the container.","title":"Existing Configuration"},{"location":"images/docker-limnoria/#plugin-requirements","text":"The container will pip install any requirements.txt it finds in the /config/plugins folder on startup. If you install a plugin using the PluginDownloader that includes a requirements.txt you can execute a shell into the container and then use pip install /config/plugins/ThePlugin/requirements.txt or restart the container and the requirements will be installed.","title":"Plugin Requirements"},{"location":"images/docker-limnoria/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-limnoria/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: limnoria: image: lscr.io/linuxserver/limnoria:latest container_name: limnoria environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - path/to/config:/config ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-limnoria/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=limnoria \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -v path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/limnoria:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-limnoria/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-limnoria/#ports-p","text":"Parameter Function 8080 Port for Limnoria's web interface.","title":"Ports (-p)"},{"location":"images/docker-limnoria/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-limnoria/#volume-mappings-v","text":"Volume Function /config Where Limnoria config is stored.","title":"Volume Mappings (-v)"},{"location":"images/docker-limnoria/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-limnoria/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-limnoria/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-limnoria/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-limnoria/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-limnoria/#support-info","text":"Shell access whilst the container is running: docker exec -it limnoria /bin/bash To monitor the logs of the container in realtime: docker logs -f limnoria Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' limnoria Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/limnoria:latest","title":"Support Info"},{"location":"images/docker-limnoria/#versions","text":"19.09.22: - Rebase to alpine 3.15. 25.05.21: - Install plugin requirements on container init. 17.05.21: - Add linuxserver wheel index. 13.02.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 13.01.20: - Initial Release.","title":"Versions"},{"location":"images/docker-lychee/","text":"linuxserver/lychee Lychee is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.\" UPGRADE WARNING Please note that the v4 upgrade process resets ALL password-protected albums. Any albums that were made public with a password will need to be re-secured. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/lychee:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This image will not work with a prefilled /pictures mount, lychee wants total control over this folder Setup mysql/mariadb and account via the webui, accessible at http://SERVERIP:PORT More info at lychee . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) version: \"3\" services: mariadb: image: lscr.io/linuxserver/mariadb:latest container_name: lychee_mariadb restart: always volumes: - /path/to/mariadb/data:/config environment: - MYSQL_ROOT_PASSWORD=rootpassword - MYSQL_DATABASE=lychee - MYSQL_USER=lychee - MYSQL_PASSWORD=dbpassword - PGID=1000 - PUID=1000 - TZ=Europe/London lychee: image: lscr.io/linuxserver/lychee:latest container_name: lychee restart: always depends_on: - mariadb volumes: - /path/to/config:/config - /path/to/pictures:/pictures environment: - DB_HOST=mariadb - DB_USERNAME=lychee - DB_PASSWORD=dbpassword - DB_DATABASE=lychee - DB_PORT=3306 - PGID=1000 - PUID=1000 - TZ=Europe/London ports: - 80:80 docker cli ( click here for more info ) docker run -d \\ --name=lychee \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DB_HOST=mariadb \\ -e DB_USERNAME=lychee \\ -e DB_PASSWORD=dbpassword \\ -e DB_DATABASE=lychee \\ -p 80:80 \\ -v /path/to/config:/config \\ -v /path/to/pictures:/pictures \\ --restart unless-stopped \\ lscr.io/linuxserver/lychee:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London DB_HOST=mariadb for specifying the database host DB_USERNAME=lychee for specifying the database user DB_PASSWORD=dbpassword for specifying the database password DB_DATABASE=lychee for specifying the database to be used Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /pictures Where lychee will store uploaded data. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it lychee /bin/bash To monitor the logs of the container in realtime: docker logs -f lychee Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lychee Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/lychee:latest Versions 04.12.21: - Rebase to alpine 3.15 with php8. 13.05.21: - Make readme clearer. 18.04.21: - Add php-intl for v4.3. 31.01.21: - Add jpegoptim. 15.01.21: - Rebase to alpine 3.13, add php7-ctype. 10.07.20: - Upgrade to Lychee v4 and rebased to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 23.10.19: - Increase fastcgi timeouts (existing users need to manually update). 19.09.19: - Update project website url. 28.06.19: - Rebasing to alpine 3.10. 05.05.19: - Rebase to alpine 3.9, use new armv7 image format. 21.01.18: - Added ffmpeg for video thumbnail creation, switched to installing zip release instead of source tarball, created small thumbnails folder, switched to dynamic readme. 14.01.19: - Adding pipeline logic and multi arch.. 04.09.18: - Rebase to alpine 3.8, switch to LycheeOrg repository. 08.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 12.02.17: - Initial Release.","title":"lychee"},{"location":"images/docker-lychee/#linuxserverlychee","text":"Lychee is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.\"","title":"linuxserver/lychee"},{"location":"images/docker-lychee/#upgrade-warning","text":"Please note that the v4 upgrade process resets ALL password-protected albums. Any albums that were made public with a password will need to be re-secured.","title":"UPGRADE WARNING"},{"location":"images/docker-lychee/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/lychee:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-lychee/#application-setup","text":"This image will not work with a prefilled /pictures mount, lychee wants total control over this folder Setup mysql/mariadb and account via the webui, accessible at http://SERVERIP:PORT More info at lychee .","title":"Application Setup"},{"location":"images/docker-lychee/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-lychee/#docker-compose-recommended-click-here-for-more-info","text":"version: \"3\" services: mariadb: image: lscr.io/linuxserver/mariadb:latest container_name: lychee_mariadb restart: always volumes: - /path/to/mariadb/data:/config environment: - MYSQL_ROOT_PASSWORD=rootpassword - MYSQL_DATABASE=lychee - MYSQL_USER=lychee - MYSQL_PASSWORD=dbpassword - PGID=1000 - PUID=1000 - TZ=Europe/London lychee: image: lscr.io/linuxserver/lychee:latest container_name: lychee restart: always depends_on: - mariadb volumes: - /path/to/config:/config - /path/to/pictures:/pictures environment: - DB_HOST=mariadb - DB_USERNAME=lychee - DB_PASSWORD=dbpassword - DB_DATABASE=lychee - DB_PORT=3306 - PGID=1000 - PUID=1000 - TZ=Europe/London ports: - 80:80","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-lychee/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=lychee \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e DB_HOST=mariadb \\ -e DB_USERNAME=lychee \\ -e DB_PASSWORD=dbpassword \\ -e DB_DATABASE=lychee \\ -p 80:80 \\ -v /path/to/config:/config \\ -v /path/to/pictures:/pictures \\ --restart unless-stopped \\ lscr.io/linuxserver/lychee:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-lychee/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-lychee/#ports-p","text":"Parameter Function 80 http gui","title":"Ports (-p)"},{"location":"images/docker-lychee/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London DB_HOST=mariadb for specifying the database host DB_USERNAME=lychee for specifying the database user DB_PASSWORD=dbpassword for specifying the database password DB_DATABASE=lychee for specifying the database to be used","title":"Environment Variables (-e)"},{"location":"images/docker-lychee/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /pictures Where lychee will store uploaded data.","title":"Volume Mappings (-v)"},{"location":"images/docker-lychee/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-lychee/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-lychee/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-lychee/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-lychee/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-lychee/#support-info","text":"Shell access whilst the container is running: docker exec -it lychee /bin/bash To monitor the logs of the container in realtime: docker logs -f lychee Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lychee Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/lychee:latest","title":"Support Info"},{"location":"images/docker-lychee/#versions","text":"04.12.21: - Rebase to alpine 3.15 with php8. 13.05.21: - Make readme clearer. 18.04.21: - Add php-intl for v4.3. 31.01.21: - Add jpegoptim. 15.01.21: - Rebase to alpine 3.13, add php7-ctype. 10.07.20: - Upgrade to Lychee v4 and rebased to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 23.10.19: - Increase fastcgi timeouts (existing users need to manually update). 19.09.19: - Update project website url. 28.06.19: - Rebasing to alpine 3.10. 05.05.19: - Rebase to alpine 3.9, use new armv7 image format. 21.01.18: - Added ffmpeg for video thumbnail creation, switched to installing zip release instead of source tarball, created small thumbnails folder, switched to dynamic readme. 14.01.19: - Adding pipeline logic and multi arch.. 04.09.18: - Rebase to alpine 3.8, switch to LycheeOrg repository. 08.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 12.02.17: - Initial Release.","title":"Versions"},{"location":"images/docker-mariadb/","text":"linuxserver/mariadb Mariadb is one of the most popular database servers. Made by the original developers of MySQL. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mariadb:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup If you didn't set a password during installation, (see logs for warning) use mysqladmin -u root password to set one at the docker prompt... NOTE changing the MYSQL_ROOT_PASSWORD variable after the container has set up the initial databases has no effect, use the mysqladmin tool to change your mariadb password. NOTE if you want to use (MYSQL_DATABASE MYSQL_USER MYSQL_PASSWORD) all three of these variables need to be set you cannot pick and choose. Unraid users, it is advisable to edit the template/webui after setup and remove reference to this variable. Find custom.cnf in /config for config changes (restart container for them to take effect) , the databases in /config/databases and the log in /config/log/myqsl Loading passwords and users from files The MYSQL_ROOT_PASSWORD MYSQL_DATABASE MYSQL_USER MYSQL_PASSWORD REMOTE_SQL env values can be set in a file: /config/env Using the following format: MYSQL_ROOT_PASSWORD=\"ROOT_ACCESS_PASSWORD\" MYSQL_DATABASE=\"USER_DB_NAME\" MYSQL_USER=\"MYSQL_USER\" MYSQL_PASSWORD=\"DATABASE_PASSWORD\" REMOTE_SQL=\"http://URL1/your.sql,https://URL2/your.sql\" These settings can be mixed and matched with Docker ENV settings as you require, but the settings in the file will always take precedence. Bootstrapping a new instance We support a one time run of custom sql files on init. In order to use this place *.sql files in: /config/initdb.d/ This will have the same effect as setting the REMOTE_SQL environment variable. The sql will only be run on the containers first boot and setup. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: mariadb: image: lscr.io/linuxserver/mariadb:latest container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD - TZ=Europe/London - MYSQL_DATABASE=USER_DB_NAME #optional - MYSQL_USER=MYSQL_USER #optional - MYSQL_PASSWORD=DATABASE_PASSWORD #optional - REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql #optional volumes: - path_to_data:/config ports: - 3306:3306 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=mariadb \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD \\ -e TZ=Europe/London \\ -e MYSQL_DATABASE=USER_DB_NAME `#optional` \\ -e MYSQL_USER=MYSQL_USER `#optional` \\ -e MYSQL_PASSWORD=DATABASE_PASSWORD `#optional` \\ -e REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql `#optional` \\ -p 3306:3306 \\ -v path_to_data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mariadb:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3306 Mariadb listens on this port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD Set this to root password for installation (minimum 4 characters & non-alphanumeric passwords must be properly escaped). TZ=Europe/London Specify a timezone to use EG Europe/London. MYSQL_DATABASE=USER_DB_NAME Specify the name of a database to be created on image startup. MYSQL_USER=MYSQL_USER This user will have superuser access to the database specified by MYSQL_DATABASE (do not use root here). MYSQL_PASSWORD=DATABASE_PASSWORD Set this to the password you want to use for you MYSQL_USER (minimum 4 characters & non-alphanumeric passwords must be properly escaped). REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql Set this to ingest sql files from an http/https endpoint (comma seperated array). Volume Mappings ( -v ) Volume Function /config Contains the db itself and all assorted settings. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it mariadb /bin/bash To monitor the logs of the container in realtime: docker logs -f mariadb Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mariadb Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mariadb:latest Versions 11.10.22: - Rebase master to Alpine 3.16, migrate to s6v3, remove password escape logic which caused problems for a small subset of users. 06.07.21: - Rebase master to alpine. 03.07.21: - Rebase to 3.14. 08.02.21: - Fix new installs. 08.02.21: - Rebase to alpine. Add mariadb-backup. 08.02.21: - Release alpine tag. The alpine release will replace the latest tag in the near future. 27.10.19: - Bump to 10.4, ability use custom sql on initial init ,defining root passwords via file. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 07.03.19: - Add ability to setup a database and default user on first spinup. 26.01.19: - Add pipeline logic and multi arch. 10.09.18: - Rebase to ubuntu bionic and use 10.3 mariadb repository. 09.12.17: - Fix continuation lines. 12.09.17: - Gracefully shut down mariadb. 27.10.16: - Implement linting suggestions on database init script. 11.10.16: - Rebase to ubuntu xenial, add version labelling. 09.03.16: - Update to mariadb 10.1. Change to use custom.cnf over my.cnf in /config. Restructured init files to change config options on startup, rather than in the dockerfile. 26.01.16: - Change user of mysqld_safe script to abc, better unclean shutdown handling on restart. 23.12.15: - Remove autoupdating, between some version updates the container breaks. 12.08.15: - Initial Release.","title":"mariadb"},{"location":"images/docker-mariadb/#linuxservermariadb","text":"Mariadb is one of the most popular database servers. Made by the original developers of MySQL.","title":"linuxserver/mariadb"},{"location":"images/docker-mariadb/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mariadb:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-mariadb/#application-setup","text":"If you didn't set a password during installation, (see logs for warning) use mysqladmin -u root password to set one at the docker prompt... NOTE changing the MYSQL_ROOT_PASSWORD variable after the container has set up the initial databases has no effect, use the mysqladmin tool to change your mariadb password. NOTE if you want to use (MYSQL_DATABASE MYSQL_USER MYSQL_PASSWORD) all three of these variables need to be set you cannot pick and choose. Unraid users, it is advisable to edit the template/webui after setup and remove reference to this variable. Find custom.cnf in /config for config changes (restart container for them to take effect) , the databases in /config/databases and the log in /config/log/myqsl","title":"Application Setup"},{"location":"images/docker-mariadb/#loading-passwords-and-users-from-files","text":"The MYSQL_ROOT_PASSWORD MYSQL_DATABASE MYSQL_USER MYSQL_PASSWORD REMOTE_SQL env values can be set in a file: /config/env Using the following format: MYSQL_ROOT_PASSWORD=\"ROOT_ACCESS_PASSWORD\" MYSQL_DATABASE=\"USER_DB_NAME\" MYSQL_USER=\"MYSQL_USER\" MYSQL_PASSWORD=\"DATABASE_PASSWORD\" REMOTE_SQL=\"http://URL1/your.sql,https://URL2/your.sql\" These settings can be mixed and matched with Docker ENV settings as you require, but the settings in the file will always take precedence.","title":"Loading passwords and users from files"},{"location":"images/docker-mariadb/#bootstrapping-a-new-instance","text":"We support a one time run of custom sql files on init. In order to use this place *.sql files in: /config/initdb.d/ This will have the same effect as setting the REMOTE_SQL environment variable. The sql will only be run on the containers first boot and setup.","title":"Bootstrapping a new instance"},{"location":"images/docker-mariadb/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-mariadb/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: mariadb: image: lscr.io/linuxserver/mariadb:latest container_name: mariadb environment: - PUID=1000 - PGID=1000 - MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD - TZ=Europe/London - MYSQL_DATABASE=USER_DB_NAME #optional - MYSQL_USER=MYSQL_USER #optional - MYSQL_PASSWORD=DATABASE_PASSWORD #optional - REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql #optional volumes: - path_to_data:/config ports: - 3306:3306 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-mariadb/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=mariadb \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD \\ -e TZ=Europe/London \\ -e MYSQL_DATABASE=USER_DB_NAME `#optional` \\ -e MYSQL_USER=MYSQL_USER `#optional` \\ -e MYSQL_PASSWORD=DATABASE_PASSWORD `#optional` \\ -e REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql `#optional` \\ -p 3306:3306 \\ -v path_to_data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mariadb:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-mariadb/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-mariadb/#ports-p","text":"Parameter Function 3306 Mariadb listens on this port.","title":"Ports (-p)"},{"location":"images/docker-mariadb/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation MYSQL_ROOT_PASSWORD=ROOT_ACCESS_PASSWORD Set this to root password for installation (minimum 4 characters & non-alphanumeric passwords must be properly escaped). TZ=Europe/London Specify a timezone to use EG Europe/London. MYSQL_DATABASE=USER_DB_NAME Specify the name of a database to be created on image startup. MYSQL_USER=MYSQL_USER This user will have superuser access to the database specified by MYSQL_DATABASE (do not use root here). MYSQL_PASSWORD=DATABASE_PASSWORD Set this to the password you want to use for you MYSQL_USER (minimum 4 characters & non-alphanumeric passwords must be properly escaped). REMOTE_SQL=http://URL1/your.sql,https://URL2/your.sql Set this to ingest sql files from an http/https endpoint (comma seperated array).","title":"Environment Variables (-e)"},{"location":"images/docker-mariadb/#volume-mappings-v","text":"Volume Function /config Contains the db itself and all assorted settings.","title":"Volume Mappings (-v)"},{"location":"images/docker-mariadb/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-mariadb/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-mariadb/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-mariadb/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-mariadb/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-mariadb/#support-info","text":"Shell access whilst the container is running: docker exec -it mariadb /bin/bash To monitor the logs of the container in realtime: docker logs -f mariadb Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mariadb Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mariadb:latest","title":"Support Info"},{"location":"images/docker-mariadb/#versions","text":"11.10.22: - Rebase master to Alpine 3.16, migrate to s6v3, remove password escape logic which caused problems for a small subset of users. 06.07.21: - Rebase master to alpine. 03.07.21: - Rebase to 3.14. 08.02.21: - Fix new installs. 08.02.21: - Rebase to alpine. Add mariadb-backup. 08.02.21: - Release alpine tag. The alpine release will replace the latest tag in the near future. 27.10.19: - Bump to 10.4, ability use custom sql on initial init ,defining root passwords via file. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 07.03.19: - Add ability to setup a database and default user on first spinup. 26.01.19: - Add pipeline logic and multi arch. 10.09.18: - Rebase to ubuntu bionic and use 10.3 mariadb repository. 09.12.17: - Fix continuation lines. 12.09.17: - Gracefully shut down mariadb. 27.10.16: - Implement linting suggestions on database init script. 11.10.16: - Rebase to ubuntu xenial, add version labelling. 09.03.16: - Update to mariadb 10.1. Change to use custom.cnf over my.cnf in /config. Restructured init files to change config options on startup, rather than in the dockerfile. 26.01.16: - Change user of mysqld_safe script to abc, better unclean shutdown handling on restart. 23.12.15: - Remove autoupdating, between some version updates the container breaks. 12.08.15: - Initial Release.","title":"Versions"},{"location":"images/docker-mastodon/","text":"linuxserver/mastodon Mastodon is a free, open-source social network server based on ActivityPub where users can follow friends and discover new ones.. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mastodon:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases. develop \u2705 Pre-releases only . Application Setup To generate keys for SECRET_KEY_BASE & OTP_SECRET run docker run --rm -it -w /app/www --entrypoint rake lscr.io/linuxserver/mastodon secret once for each. To generate keys for VAPID_PRIVATE_KEY & VAPID_PUBLIC_KEY run docker run --rm -it -w /app/www --entrypoint rake lscr.io/linuxserver/mastodon mastodon:webpush:generate_vapid_key To use tootctl you can run something like docker exec -it -w /app/www mastodon bin/tootctl This container requires separate postgres and redis instances to run. We support all of the official environment variables for configuration. In place of adding them all to your run/compose you can use an env file such as this example from the upstream project. For more information check out the mastodon documentation . Strict reverse proxies This image automatically redirects to https with a self-signed certificate. If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: mastodon: image: lscr.io/linuxserver/mastodon:latest container_name: mastodon environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - LOCAL_DOMAIN=example.com - REDIS_HOST=redis - REDIS_PORT=6379 - DB_HOST=db - DB_USER=mastodon - DB_NAME=mastodon - DB_PASS=mastodon - DB_PORT=5432 - ES_ENABLED=false - SECRET_KEY_BASE= - OTP_SECRET= - VAPID_PRIVATE_KEY= - VAPID_PUBLIC_KEY= - SMTP_SERVER=mail.example.com - SMTP_PORT=25 - SMTP_LOGIN= - SMTP_PASSWORD= - SMTP_FROM_ADDRESS=notifications@example.com - S3_ENABLED=false - WEB_DOMAIN=mastodon.example.com #optional - ES_HOST=es #optional - ES_PORT=9200 #optional - ES_USER=elastic #optional - ES_PASS=elastic #optional - S3_BUCKET= #optional - AWS_ACCESS_KEY_ID= #optional - AWS_SECRET_ACCESS_KEY= #optional - S3_ALIAS_HOST= #optional volumes: - /path/to/appdata/config:/config ports: - 80:80 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=mastodon \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e LOCAL_DOMAIN=example.com \\ -e REDIS_HOST=redis \\ -e REDIS_PORT=6379 \\ -e DB_HOST=db \\ -e DB_USER=mastodon \\ -e DB_NAME=mastodon \\ -e DB_PASS=mastodon \\ -e DB_PORT=5432 \\ -e ES_ENABLED=false \\ -e SECRET_KEY_BASE= \\ -e OTP_SECRET= \\ -e VAPID_PRIVATE_KEY= \\ -e VAPID_PUBLIC_KEY= \\ -e SMTP_SERVER=mail.example.com \\ -e SMTP_PORT=25 \\ -e SMTP_LOGIN= \\ -e SMTP_PASSWORD= \\ -e SMTP_FROM_ADDRESS=notifications@example.com \\ -e S3_ENABLED=false \\ -e WEB_DOMAIN=mastodon.example.com `#optional` \\ -e ES_HOST=es `#optional` \\ -e ES_PORT=9200 `#optional` \\ -e ES_USER=elastic `#optional` \\ -e ES_PASS=elastic `#optional` \\ -e S3_BUCKET= `#optional` \\ -e AWS_ACCESS_KEY_ID= `#optional` \\ -e AWS_SECRET_ACCESS_KEY= `#optional` \\ -e S3_ALIAS_HOST= `#optional` \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mastodon:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Port for web frontend 443 Port for web frontend Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York LOCAL_DOMAIN=example.com This is the unique identifier of your server in the network. It cannot be safely changed later. REDIS_HOST=redis Redis server hostname REDIS_PORT=6379 Redis port DB_HOST=db Postgres database hostname DB_USER=mastodon Postgres username DB_NAME=mastodon Postgres db name DB_PASS=mastodon Postgres password DB_PORT=5432 Portgres port ES_ENABLED=false Enable or disable Elasticsearch (requires a separate ES instance) SECRET_KEY_BASE= Browser session secret. Changing it will break all active browser sessions. OTP_SECRET= MFA secret. Changing it will break two-factor authentication. VAPID_PRIVATE_KEY= Push notification private key. Changing it will break push notifications. VAPID_PUBLIC_KEY= Push notification public key. Changing it will break push notifications. SMTP_SERVER=mail.example.com SMTP server for email notifications SMTP_PORT=25 SMTP server port SMTP_LOGIN= SMTP username SMTP_PASSWORD= SMTP password SMTP_FROM_ADDRESS=notifications@example.com From address for emails send from Mastodon S3_ENABLED=false Enable or disable S3 storage of uploaded files WEB_DOMAIN=mastodon.example.com This can be set if you want your server identifier to be different to the subdomain hosting Mastodon. See https://docs.joinmastodon.org/admin/config/#basic ES_HOST=es Elasticsearch server hostname ES_PORT=9200 Elasticsearch port ES_USER=elastic Elasticsearch username ES_PASS=elastic Elasticsearch password S3_BUCKET= S3 bucket hostname AWS_ACCESS_KEY_ID= S3 bucket access key ID AWS_SECRET_ACCESS_KEY= S3 bucket secret access key S3_ALIAS_HOST= Alternate hostname for object fetching if you are front the S3 connections. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it mastodon /bin/bash To monitor the logs of the container in realtime: docker logs -f mastodon Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mastodon Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mastodon:latest Versions 05.11.22: - Initial Release.","title":"mastodon"},{"location":"images/docker-mastodon/#linuxservermastodon","text":"Mastodon is a free, open-source social network server based on ActivityPub where users can follow friends and discover new ones..","title":"linuxserver/mastodon"},{"location":"images/docker-mastodon/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mastodon:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-mastodon/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases. develop \u2705 Pre-releases only .","title":"Version Tags"},{"location":"images/docker-mastodon/#application-setup","text":"To generate keys for SECRET_KEY_BASE & OTP_SECRET run docker run --rm -it -w /app/www --entrypoint rake lscr.io/linuxserver/mastodon secret once for each. To generate keys for VAPID_PRIVATE_KEY & VAPID_PUBLIC_KEY run docker run --rm -it -w /app/www --entrypoint rake lscr.io/linuxserver/mastodon mastodon:webpush:generate_vapid_key To use tootctl you can run something like docker exec -it -w /app/www mastodon bin/tootctl This container requires separate postgres and redis instances to run. We support all of the official environment variables for configuration. In place of adding them all to your run/compose you can use an env file such as this example from the upstream project. For more information check out the mastodon documentation .","title":"Application Setup"},{"location":"images/docker-mastodon/#strict-reverse-proxies","text":"This image automatically redirects to https with a self-signed certificate. If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-mastodon/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-mastodon/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: mastodon: image: lscr.io/linuxserver/mastodon:latest container_name: mastodon environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - LOCAL_DOMAIN=example.com - REDIS_HOST=redis - REDIS_PORT=6379 - DB_HOST=db - DB_USER=mastodon - DB_NAME=mastodon - DB_PASS=mastodon - DB_PORT=5432 - ES_ENABLED=false - SECRET_KEY_BASE= - OTP_SECRET= - VAPID_PRIVATE_KEY= - VAPID_PUBLIC_KEY= - SMTP_SERVER=mail.example.com - SMTP_PORT=25 - SMTP_LOGIN= - SMTP_PASSWORD= - SMTP_FROM_ADDRESS=notifications@example.com - S3_ENABLED=false - WEB_DOMAIN=mastodon.example.com #optional - ES_HOST=es #optional - ES_PORT=9200 #optional - ES_USER=elastic #optional - ES_PASS=elastic #optional - S3_BUCKET= #optional - AWS_ACCESS_KEY_ID= #optional - AWS_SECRET_ACCESS_KEY= #optional - S3_ALIAS_HOST= #optional volumes: - /path/to/appdata/config:/config ports: - 80:80 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-mastodon/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=mastodon \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e LOCAL_DOMAIN=example.com \\ -e REDIS_HOST=redis \\ -e REDIS_PORT=6379 \\ -e DB_HOST=db \\ -e DB_USER=mastodon \\ -e DB_NAME=mastodon \\ -e DB_PASS=mastodon \\ -e DB_PORT=5432 \\ -e ES_ENABLED=false \\ -e SECRET_KEY_BASE= \\ -e OTP_SECRET= \\ -e VAPID_PRIVATE_KEY= \\ -e VAPID_PUBLIC_KEY= \\ -e SMTP_SERVER=mail.example.com \\ -e SMTP_PORT=25 \\ -e SMTP_LOGIN= \\ -e SMTP_PASSWORD= \\ -e SMTP_FROM_ADDRESS=notifications@example.com \\ -e S3_ENABLED=false \\ -e WEB_DOMAIN=mastodon.example.com `#optional` \\ -e ES_HOST=es `#optional` \\ -e ES_PORT=9200 `#optional` \\ -e ES_USER=elastic `#optional` \\ -e ES_PASS=elastic `#optional` \\ -e S3_BUCKET= `#optional` \\ -e AWS_ACCESS_KEY_ID= `#optional` \\ -e AWS_SECRET_ACCESS_KEY= `#optional` \\ -e S3_ALIAS_HOST= `#optional` \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/mastodon:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-mastodon/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-mastodon/#ports-p","text":"Parameter Function 80 Port for web frontend 443 Port for web frontend","title":"Ports (-p)"},{"location":"images/docker-mastodon/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York LOCAL_DOMAIN=example.com This is the unique identifier of your server in the network. It cannot be safely changed later. REDIS_HOST=redis Redis server hostname REDIS_PORT=6379 Redis port DB_HOST=db Postgres database hostname DB_USER=mastodon Postgres username DB_NAME=mastodon Postgres db name DB_PASS=mastodon Postgres password DB_PORT=5432 Portgres port ES_ENABLED=false Enable or disable Elasticsearch (requires a separate ES instance) SECRET_KEY_BASE= Browser session secret. Changing it will break all active browser sessions. OTP_SECRET= MFA secret. Changing it will break two-factor authentication. VAPID_PRIVATE_KEY= Push notification private key. Changing it will break push notifications. VAPID_PUBLIC_KEY= Push notification public key. Changing it will break push notifications. SMTP_SERVER=mail.example.com SMTP server for email notifications SMTP_PORT=25 SMTP server port SMTP_LOGIN= SMTP username SMTP_PASSWORD= SMTP password SMTP_FROM_ADDRESS=notifications@example.com From address for emails send from Mastodon S3_ENABLED=false Enable or disable S3 storage of uploaded files WEB_DOMAIN=mastodon.example.com This can be set if you want your server identifier to be different to the subdomain hosting Mastodon. See https://docs.joinmastodon.org/admin/config/#basic ES_HOST=es Elasticsearch server hostname ES_PORT=9200 Elasticsearch port ES_USER=elastic Elasticsearch username ES_PASS=elastic Elasticsearch password S3_BUCKET= S3 bucket hostname AWS_ACCESS_KEY_ID= S3 bucket access key ID AWS_SECRET_ACCESS_KEY= S3 bucket secret access key S3_ALIAS_HOST= Alternate hostname for object fetching if you are front the S3 connections.","title":"Environment Variables (-e)"},{"location":"images/docker-mastodon/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-mastodon/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-mastodon/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-mastodon/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-mastodon/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-mastodon/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-mastodon/#support-info","text":"Shell access whilst the container is running: docker exec -it mastodon /bin/bash To monitor the logs of the container in realtime: docker logs -f mastodon Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mastodon Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mastodon:latest","title":"Support Info"},{"location":"images/docker-mastodon/#versions","text":"05.11.22: - Initial Release.","title":"Versions"},{"location":"images/docker-medusa/","text":"linuxserver/medusa Medusa is an automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/medusa:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Web interface is at :8081 . Set paths for downloads, tv-shows to match docker mappings via the webui, for more information check out Medusa . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: medusa: image: lscr.io/linuxserver/medusa:latest container_name: medusa environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads - :/tv ports: - 8081:8081 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=medusa \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v :/config \\ -v :/downloads \\ -v :/tv \\ --restart unless-stopped \\ lscr.io/linuxserver/medusa:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8081 The port for the Medusa webui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London Volume Mappings ( -v ) Volume Function /config Medusa config /downloads Download location /tv TV Shows location Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it medusa /bin/bash To monitor the logs of the container in realtime: docker logs -f medusa Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' medusa Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/medusa:latest Versions 12.09.22: - Install ffmpeg for postprocessing. 12.08.22: - Bump unrar to 6.1.7. 28.02.22: - Install python3 requirements for app. 19.01.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 22.09.19: - Switch to python3. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Adding multi arch and pipeline logic 16.08.18: - Rebase to alpine 3.8 08.12.17: - Rebase to alpine 3.7 29.11.17: - Add py-gdbm for subtitles support 26.10.17: - Mediainfo moved from testing to community repo 10.10.17: - Use repo version of mediainfo to shorten build time 05.08.17: - Internal git pull instead of at runtime 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5 02.01.17: - Initial Release","title":"medusa"},{"location":"images/docker-medusa/#linuxservermedusa","text":"Medusa is an automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.","title":"linuxserver/medusa"},{"location":"images/docker-medusa/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/medusa:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-medusa/#application-setup","text":"Web interface is at :8081 . Set paths for downloads, tv-shows to match docker mappings via the webui, for more information check out Medusa .","title":"Application Setup"},{"location":"images/docker-medusa/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-medusa/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: medusa: image: lscr.io/linuxserver/medusa:latest container_name: medusa environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads - :/tv ports: - 8081:8081 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-medusa/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=medusa \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v :/config \\ -v :/downloads \\ -v :/tv \\ --restart unless-stopped \\ lscr.io/linuxserver/medusa:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-medusa/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-medusa/#ports-p","text":"Parameter Function 8081 The port for the Medusa webui","title":"Ports (-p)"},{"location":"images/docker-medusa/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-medusa/#volume-mappings-v","text":"Volume Function /config Medusa config /downloads Download location /tv TV Shows location","title":"Volume Mappings (-v)"},{"location":"images/docker-medusa/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-medusa/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-medusa/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-medusa/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-medusa/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-medusa/#support-info","text":"Shell access whilst the container is running: docker exec -it medusa /bin/bash To monitor the logs of the container in realtime: docker logs -f medusa Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' medusa Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/medusa:latest","title":"Support Info"},{"location":"images/docker-medusa/#versions","text":"12.09.22: - Install ffmpeg for postprocessing. 12.08.22: - Bump unrar to 6.1.7. 28.02.22: - Install python3 requirements for app. 19.01.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 22.09.19: - Switch to python3. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.01.19: - Adding multi arch and pipeline logic 16.08.18: - Rebase to alpine 3.8 08.12.17: - Rebase to alpine 3.7 29.11.17: - Add py-gdbm for subtitles support 26.10.17: - Mediainfo moved from testing to community repo 10.10.17: - Use repo version of mediainfo to shorten build time 05.08.17: - Internal git pull instead of at runtime 25.05.17: - Rebase to alpine 3.6 07.02.17: - Rebase to alpine 3.5 02.01.17: - Initial Release","title":"Versions"},{"location":"images/docker-minetest/","text":"linuxserver/minetest Minetest (server) is a near-infinite-world block sandbox game and a game engine, inspired by InfiniMiner, Minecraft, and the like. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/minetest:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup You can find the world maps, mods folder and config files in /config/.minetest. If you want to override the advertised port, ensure you add --port in your CLI_ARGS AND ensure the internal port reflects the change, ie; if you set your advertised port to 40000 with --port 40000 then your ports declaration should be 40000:40000/udp Client and server must be the same version, please browse the tags here to pull the appropriate version for your server: https://hub.docker.com/r/linuxserver/minetest/tags Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: minetest: image: lscr.io/linuxserver/minetest:latest container_name: minetest environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CLI_ARGS=\"--gameid minetest --port 30000\" #optional volumes: - /path/to/data:/config/.minetest ports: - 30000:30000/udp restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=minetest \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CLI_ARGS=\"--gameid minetest --port 30000\" `#optional` \\ -p 30000:30000/udp \\ -v /path/to/data:/config/.minetest \\ --restart unless-stopped \\ lscr.io/linuxserver/minetest:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 30000/udp Port Minetest listens on. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CLI_ARGS=\"--gameid minetest --port 30000\" Optionally specify any CLI variables you want to launch the app with Volume Mappings ( -v ) Volume Function /config/.minetest Where minetest stores config files and maps etc. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it minetest /bin/bash To monitor the logs of the container in realtime: docker logs -f minetest Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' minetest Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/minetest:latest Versions 06.08.22: - Update irrlicht deps. 02.05.22: - Allow specifying the advertised port. 17.03.22: - Install forked irrlicht, add zstd. 19.01.22: - Rebasing to alpine 3.15. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 12.07.19: - Bugfix to support multiple CLI variables. 28.06.19: - Rebasing to alpine 3.10. 03.06.19: - Adding custom cli vars to options. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 04.03.19: - Rebase to alpine 3.9 to compile 5.0.0 minetest with new build args. 14.01.19: - Add pipeline logic and multi arch. 08.08.18: - Rebase to alpine 3.8, build from latest release tag instead of master. 03.01.18: - Deprecate cpu_core routine lack of scaling. 08.12.17: - Rebase to alpine 3.7. 30.11.17: - Use cpu core counting routine to speed up build time. 26.05.17: - Rebase to alpine 3.6. 14.02.17: - Rebase to alpine 3.5. 25.11.16: - Rebase to alpine linux, move to main repo. 27.02.16: - Bump to latest version. 19.02.16: - Change port to UDP, thanks to slashopt for pointing this out. 15.02.16: - Make minetest app a service. 01.02.16: - Add lua-socket dependency. 06.11.15: - Initial Release.","title":"minetest"},{"location":"images/docker-minetest/#linuxserverminetest","text":"Minetest (server) is a near-infinite-world block sandbox game and a game engine, inspired by InfiniMiner, Minecraft, and the like.","title":"linuxserver/minetest"},{"location":"images/docker-minetest/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/minetest:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-minetest/#application-setup","text":"You can find the world maps, mods folder and config files in /config/.minetest. If you want to override the advertised port, ensure you add --port in your CLI_ARGS AND ensure the internal port reflects the change, ie; if you set your advertised port to 40000 with --port 40000 then your ports declaration should be 40000:40000/udp Client and server must be the same version, please browse the tags here to pull the appropriate version for your server: https://hub.docker.com/r/linuxserver/minetest/tags","title":"Application Setup"},{"location":"images/docker-minetest/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-minetest/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: minetest: image: lscr.io/linuxserver/minetest:latest container_name: minetest environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CLI_ARGS=\"--gameid minetest --port 30000\" #optional volumes: - /path/to/data:/config/.minetest ports: - 30000:30000/udp restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-minetest/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=minetest \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CLI_ARGS=\"--gameid minetest --port 30000\" `#optional` \\ -p 30000:30000/udp \\ -v /path/to/data:/config/.minetest \\ --restart unless-stopped \\ lscr.io/linuxserver/minetest:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-minetest/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-minetest/#ports-p","text":"Parameter Function 30000/udp Port Minetest listens on.","title":"Ports (-p)"},{"location":"images/docker-minetest/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. CLI_ARGS=\"--gameid minetest --port 30000\" Optionally specify any CLI variables you want to launch the app with","title":"Environment Variables (-e)"},{"location":"images/docker-minetest/#volume-mappings-v","text":"Volume Function /config/.minetest Where minetest stores config files and maps etc.","title":"Volume Mappings (-v)"},{"location":"images/docker-minetest/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-minetest/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-minetest/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-minetest/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-minetest/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-minetest/#support-info","text":"Shell access whilst the container is running: docker exec -it minetest /bin/bash To monitor the logs of the container in realtime: docker logs -f minetest Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' minetest Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/minetest:latest","title":"Support Info"},{"location":"images/docker-minetest/#versions","text":"06.08.22: - Update irrlicht deps. 02.05.22: - Allow specifying the advertised port. 17.03.22: - Install forked irrlicht, add zstd. 19.01.22: - Rebasing to alpine 3.15. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 12.07.19: - Bugfix to support multiple CLI variables. 28.06.19: - Rebasing to alpine 3.10. 03.06.19: - Adding custom cli vars to options. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 04.03.19: - Rebase to alpine 3.9 to compile 5.0.0 minetest with new build args. 14.01.19: - Add pipeline logic and multi arch. 08.08.18: - Rebase to alpine 3.8, build from latest release tag instead of master. 03.01.18: - Deprecate cpu_core routine lack of scaling. 08.12.17: - Rebase to alpine 3.7. 30.11.17: - Use cpu core counting routine to speed up build time. 26.05.17: - Rebase to alpine 3.6. 14.02.17: - Rebase to alpine 3.5. 25.11.16: - Rebase to alpine linux, move to main repo. 27.02.16: - Bump to latest version. 19.02.16: - Change port to UDP, thanks to slashopt for pointing this out. 15.02.16: - Make minetest app a service. 01.02.16: - Add lua-socket dependency. 06.11.15: - Initial Release.","title":"Versions"},{"location":"images/docker-minisatip/","text":"linuxserver/minisatip Minisatip is a multi-threaded satip server version 1.2 that runs under Linux and it was tested with DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C, DVB-C2, ATSC and ISDB-T cards. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/minisatip:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Best used in conjunction with tvheadend There is no setup per se, other than adding your cards for passthrough. You can then use your cards as DVB inputs in apps such as tvheadend. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: minisatip: image: lscr.io/linuxserver/minisatip:latest container_name: minisatip environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - RUN_OPTS= volumes: - /path/to/appdata/config:/config ports: - 8875:8875 - 554:554 - 1900:1900/udp devices: - /dev/dvb:/dev/dvb restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=minisatip \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS= \\ -p 8875:8875 \\ -p 554:554 \\ -p 1900:1900/udp \\ -v /path/to/appdata/config:/config \\ --device /dev/dvb:/dev/dvb \\ --restart unless-stopped \\ lscr.io/linuxserver/minisatip:latest Additional runtime parameters In some cases it might be necessary to start minisatip with additional parameters, for example to configure a unicable LNB. Add the parameters you need and restart the container. Be sure to have the right parameters set as adding the wrong once might lead to the container not starting correctly. For a list of minisatip parameters visit Minisatip page. Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8875 Status Page WebUI 554 RTSP Port 1900/udp App Discovery Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. RUN_OPTS= Specify specific run params for minisatip Volume Mappings ( -v ) Volume Function /config Configuration files and minisatip data Device Mappings ( --device ) Parameter Function /dev/dvb For passing through Tv-cards Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it minisatip /bin/bash To monitor the logs of the container in realtime: docker logs -f minisatip Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' minisatip Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/minisatip:latest Versions 12.11.22: - Rebasing to alpine 3.137, upgrading to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 20.02.19: - Fix run options. 11.02.19: - Add pipeline logic and multi arch. 28.08.18: - Rebase to Alpine 3.8. 13.12.17: - Rebase to Alpine 3.7. 28.05.17: - Rebase to Alpine 3.6. 08.02.17: - Rebase to Alpine 3.5 and only compile libs in dvb-apps. 14.10.16: - Add version layer information. 18.09.16: - Add support for Common Interface. 11.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 15.08.16: - Initial Release.","title":"minisatip"},{"location":"images/docker-minisatip/#linuxserverminisatip","text":"Minisatip is a multi-threaded satip server version 1.2 that runs under Linux and it was tested with DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C, DVB-C2, ATSC and ISDB-T cards.","title":"linuxserver/minisatip"},{"location":"images/docker-minisatip/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/minisatip:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-minisatip/#application-setup","text":"Best used in conjunction with tvheadend There is no setup per se, other than adding your cards for passthrough. You can then use your cards as DVB inputs in apps such as tvheadend.","title":"Application Setup"},{"location":"images/docker-minisatip/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-minisatip/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: minisatip: image: lscr.io/linuxserver/minisatip:latest container_name: minisatip environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - RUN_OPTS= volumes: - /path/to/appdata/config:/config ports: - 8875:8875 - 554:554 - 1900:1900/udp devices: - /dev/dvb:/dev/dvb restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-minisatip/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=minisatip \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS= \\ -p 8875:8875 \\ -p 554:554 \\ -p 1900:1900/udp \\ -v /path/to/appdata/config:/config \\ --device /dev/dvb:/dev/dvb \\ --restart unless-stopped \\ lscr.io/linuxserver/minisatip:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-minisatip/#additional-runtime-parameters","text":"In some cases it might be necessary to start minisatip with additional parameters, for example to configure a unicable LNB. Add the parameters you need and restart the container. Be sure to have the right parameters set as adding the wrong once might lead to the container not starting correctly. For a list of minisatip parameters visit Minisatip page.","title":"Additional runtime parameters"},{"location":"images/docker-minisatip/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-minisatip/#ports-p","text":"Parameter Function 8875 Status Page WebUI 554 RTSP Port 1900/udp App Discovery","title":"Ports (-p)"},{"location":"images/docker-minisatip/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. RUN_OPTS= Specify specific run params for minisatip","title":"Environment Variables (-e)"},{"location":"images/docker-minisatip/#volume-mappings-v","text":"Volume Function /config Configuration files and minisatip data","title":"Volume Mappings (-v)"},{"location":"images/docker-minisatip/#device-mappings-device","text":"Parameter Function /dev/dvb For passing through Tv-cards","title":"Device Mappings (--device)"},{"location":"images/docker-minisatip/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-minisatip/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-minisatip/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-minisatip/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-minisatip/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-minisatip/#support-info","text":"Shell access whilst the container is running: docker exec -it minisatip /bin/bash To monitor the logs of the container in realtime: docker logs -f minisatip Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' minisatip Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/minisatip:latest","title":"Support Info"},{"location":"images/docker-minisatip/#versions","text":"12.11.22: - Rebasing to alpine 3.137, upgrading to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 20.02.19: - Fix run options. 11.02.19: - Add pipeline logic and multi arch. 28.08.18: - Rebase to Alpine 3.8. 13.12.17: - Rebase to Alpine 3.7. 28.05.17: - Rebase to Alpine 3.6. 08.02.17: - Rebase to Alpine 3.5 and only compile libs in dvb-apps. 14.10.16: - Add version layer information. 18.09.16: - Add support for Common Interface. 11.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 15.08.16: - Initial Release.","title":"Versions"},{"location":"images/docker-mstream/","text":"linuxserver/mstream mstream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere. There are mobile apps available for both Android and iPhone. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mstream:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at http://:3000 Settings are adjusted through the web ui or via editing of config.json . For more information check out Mstream . IMPORTANT NOTICE: mStream v5 no longer accepts cli arguments for setting the user and password and requires the use of config.json . Therefore, the environment variables USER , PASSWORD and USE_JSON are deprecated. v4's config.json is not compatible with v5. Existing config.json will be renamed to config.json.v4-bak for your reference and a new default config.json will be created upon upgrade from v4 to v5. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: mstream: image: lscr.io/linuxserver/mstream:latest container_name: mstream environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/music:/music ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=mstream \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/data:/config \\ -v /path/to/music:/music \\ --restart unless-stopped \\ lscr.io/linuxserver/mstream:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 The port for the mStream webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London Volume Mappings ( -v ) Volume Function /config mStream config /music Music location Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it mstream /bin/bash To monitor the logs of the container in realtime: docker logs -f mstream Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mstream Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mstream:latest Versions 05.04.22: - Move sync folder to /config . 02.04.22: - Rebase to alpine 3.15. Fix ffmpeg download. 17.05.21: - Deprecating the env vars USER , PASSWORD and USE_JSON as mStream v5 requires the use of config.json . 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 18.05.19: - Inital Release","title":"mstream"},{"location":"images/docker-mstream/#linuxservermstream","text":"mstream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere. There are mobile apps available for both Android and iPhone.","title":"linuxserver/mstream"},{"location":"images/docker-mstream/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mstream:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-mstream/#application-setup","text":"Access the webui at http://:3000 Settings are adjusted through the web ui or via editing of config.json . For more information check out Mstream .","title":"Application Setup"},{"location":"images/docker-mstream/#important-notice","text":"mStream v5 no longer accepts cli arguments for setting the user and password and requires the use of config.json . Therefore, the environment variables USER , PASSWORD and USE_JSON are deprecated. v4's config.json is not compatible with v5. Existing config.json will be renamed to config.json.v4-bak for your reference and a new default config.json will be created upon upgrade from v4 to v5.","title":"IMPORTANT NOTICE:"},{"location":"images/docker-mstream/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-mstream/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: mstream: image: lscr.io/linuxserver/mstream:latest container_name: mstream environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/music:/music ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-mstream/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=mstream \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/data:/config \\ -v /path/to/music:/music \\ --restart unless-stopped \\ lscr.io/linuxserver/mstream:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-mstream/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-mstream/#ports-p","text":"Parameter Function 3000 The port for the mStream webinterface","title":"Ports (-p)"},{"location":"images/docker-mstream/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-mstream/#volume-mappings-v","text":"Volume Function /config mStream config /music Music location","title":"Volume Mappings (-v)"},{"location":"images/docker-mstream/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-mstream/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-mstream/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-mstream/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-mstream/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-mstream/#support-info","text":"Shell access whilst the container is running: docker exec -it mstream /bin/bash To monitor the logs of the container in realtime: docker logs -f mstream Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mstream Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mstream:latest","title":"Support Info"},{"location":"images/docker-mstream/#versions","text":"05.04.22: - Move sync folder to /config . 02.04.22: - Rebase to alpine 3.15. Fix ffmpeg download. 17.05.21: - Deprecating the env vars USER , PASSWORD and USE_JSON as mStream v5 requires the use of config.json . 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 18.05.19: - Inital Release","title":"Versions"},{"location":"images/docker-musicbrainz/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/musicbrainz MusicBrainz is an open music encyclopedia that collects music metadata and makes it available to the public. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/musicbrainz should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: musicbrainz: image: lscr.io/linuxserver/musicbrainz container_name: musicbrainz environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - BRAINZCODE= - WEBADDRESS= - NPROC= #optional volumes: - :/config - :/data ports: - 5000:5000 restart: unless-stopped docker cli docker run -d \\ --name=musicbrainz \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e BRAINZCODE= \\ -e WEBADDRESS= \\ -e NPROC= `#optional` \\ -p 5000:5000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/musicbrainz Parameters Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Parameter Function -p 5000 WebUI -e PUID=1000 for UserID - see below for explanation -e PGID=1000 for GroupID - see below for explanation -e TZ=Europe/London Specify a timezone to use EG Europe/London -e BRAINZCODE= To enter MusicBrainz code. See Setting up the application -e WEBADDRESS= To set ip for host to allow css to render properly, DO NOT ENTER PORT NUMBER. -e NPROC= To set number of proceses, defaults to 5 if unset. -v /config Config files for musicbrainz. -v /data Data files for musicbrainz. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup For all updates you should pull the latest image, clear all files and folders in /config and /data and reinitiate the database import by (re)starting the docker. We do not officially support upgrading this container in place with existing data sets. If you did not set WEBADDRESS env variable, then AFTER iniatilisation is complete you will need to edit the line sub WEB_SERVER { \"localhost:5000\" } in file /config/DBDefs.pm changing localhost to the ip of your host, this is to allow css to display properly You must register here to receive a MusicBrainz code to allow you to receive database updates, it is free. Get Code here . The initial import and setup of the database can take quite a long time, dependant on your download speed etc, be patient and don't restart the container before it's complete. It appears there are issues with unraid and using /mnt/user/cache/appdata instead of /mnt/cache/appdata, use /mnt/cache/appdata. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it musicbrainz /bin/bash To monitor the logs of the container in realtime: docker logs -f musicbrainz container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' musicbrainz image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/musicbrainz Updating Info Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image. Below are the instructions for updating containers: Via Docker Compose Update all images: docker-compose pull or update a single image: docker-compose pull musicbrainz Let compose update all containers as necessary: docker-compose up -d or update a single container: docker-compose up -d musicbrainz You can also remove the old dangling images: docker image prune Via Docker Run Update the image: docker pull lscr.io/linuxserver/musicbrainz Stop the running container: docker stop musicbrainz Delete the container: docker rm musicbrainz Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved) You can also remove the old dangling images: docker image prune Via Watchtower auto-updater (only use if you don't remember the original parameters) Pull the latest image at its tag and replace it with the same env variables in one run: docker run --rm \\ -v /var/run/docker.sock:/var/run/docker.sock \\ containrrr/watchtower \\ --run-once musicbrainz You can also remove the old dangling images: docker image prune Note: We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using Docker Compose . Image Update Notifications - Diun (Docker Image Update Notifier) We recommend Diun for update notifications. Other tools that automatically update containers unattended are not recommended or supported. Building locally If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-musicbrainz.git cd docker-musicbrainz docker build \\ --no-cache \\ --pull \\ -t lscr.io/linuxserver/musicbrainz:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 . Versions 23.02.21: - Deprecate image as no one stepped up to take over as maintainer. 03.10.20: - Rebase to alpine 3.12, add gettext and move to nodejs-current. 17.05.19: - Update DBDefs.pm to schema 25 database. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 02.03.19: - Revert to alpine 3.8 to fix incompatibilities with frontend build tools. 19.02.19: - Multi Arch and add pipeline logic, rebase to Alpine 3.9 22.08.18: - Bump server version 2018-08-14. 30.06.18: - Bump server version 2018-06-30. 01.06.18: - Bump server version 2018-05-30 , simplify sed and use yarn instead of npm. 14.05.18: - Bump server version 2018-05-09. 26.04.18: - Bump server version 2018-04-23. 09.02.18: - Bump server version 2018-02-09. 24.01.18: - Bump server version 2018-01-24. 10.01.18: - Bump server version 2018-01-10. 31.11.17: - Bump server version 2017-12-21. 30.11.17: - Add NPROC variable to allow number of processes to be set. 30.11.17: - Fix linting recommendations. 30.11.17: - Remove socket on startup if exists (thanks wtf911) re . 24.11.17: - Remove catalyst side bar on new installs. 31.10.17: - Bump server version 2017-10-31. 20.09.17: - Bump server version 2017-09-18. 06.09.17: - Bump server version 2017-09-04. 19.07.17: - Bump server version 2017-07-17. 21.06.17: - Bump server version 2017-06-19. 26.05.17: - Fix later build of postgres using /run instead of /var/run. 26.05.17: - Rebase to alpine 3.6. 15.05.17: - Schema 24 update, recommend full rebuild with new config. 15.04.17: - Bump server version 2017-04-10. 04.04.17: - Bump server version 2017-03-27. 15.03.17: - Bump server version 2017-03-13. 04.03.17: - Bump server version and use nginx to serve web pages. 06.02.17: - Rebase to alpine 3.5. 16.12.16: - Rebase to alpine linux, entailing almost complete rewrite. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README, move to main repository. 20.07.16: - Restructure of docker file for clarity, add maxworkers variable in conjunction with starlet, for parallel requests in multi-core setups, thanks to user baoshan. 03.06.16: - Complete rewrite due to schema change. Rebased back to 14.04 direct Using S6 overaly. 21.03.16: - Bump to latest server release. 16.03.16: - Bump to latest server release. 26.02.16: - Bump to latest server release. 08.02.16: - Switch to PPA version for redis. 03.01.16: - Remove d/l of sitemaps file, missing from last 2 db dumps, move fetch of db/dump higher up initialise routine to allow easier resume of broken downloads. 15.12.15: - Per latest musicbrainz blog, switched to production branch,latest stable code is now production branch in place of master. 10.12.15: - Initial release date.","title":"musicbrainz"},{"location":"images/docker-musicbrainz/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-musicbrainz/#linuxservermusicbrainz","text":"MusicBrainz is an open music encyclopedia that collects music metadata and makes it available to the public.","title":"linuxserver/musicbrainz"},{"location":"images/docker-musicbrainz/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/musicbrainz should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-musicbrainz/#usage","text":"Here are some example snippets to help you get started creating a container.","title":"Usage"},{"location":"images/docker-musicbrainz/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: musicbrainz: image: lscr.io/linuxserver/musicbrainz container_name: musicbrainz environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - BRAINZCODE= - WEBADDRESS= - NPROC= #optional volumes: - :/config - :/data ports: - 5000:5000 restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-musicbrainz/#docker-cli","text":"docker run -d \\ --name=musicbrainz \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e BRAINZCODE= \\ -e WEBADDRESS= \\ -e NPROC= `#optional` \\ -p 5000:5000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/musicbrainz","title":"docker cli"},{"location":"images/docker-musicbrainz/#parameters","text":"Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Parameter Function -p 5000 WebUI -e PUID=1000 for UserID - see below for explanation -e PGID=1000 for GroupID - see below for explanation -e TZ=Europe/London Specify a timezone to use EG Europe/London -e BRAINZCODE= To enter MusicBrainz code. See Setting up the application -e WEBADDRESS= To set ip for host to allow css to render properly, DO NOT ENTER PORT NUMBER. -e NPROC= To set number of proceses, defaults to 5 if unset. -v /config Config files for musicbrainz. -v /data Data files for musicbrainz.","title":"Parameters"},{"location":"images/docker-musicbrainz/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-musicbrainz/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-musicbrainz/#user-group-identifiers","text":"When using volumes ( -v flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-musicbrainz/#application-setup","text":"For all updates you should pull the latest image, clear all files and folders in /config and /data and reinitiate the database import by (re)starting the docker. We do not officially support upgrading this container in place with existing data sets. If you did not set WEBADDRESS env variable, then AFTER iniatilisation is complete you will need to edit the line sub WEB_SERVER { \"localhost:5000\" } in file /config/DBDefs.pm changing localhost to the ip of your host, this is to allow css to display properly You must register here to receive a MusicBrainz code to allow you to receive database updates, it is free. Get Code here . The initial import and setup of the database can take quite a long time, dependant on your download speed etc, be patient and don't restart the container before it's complete. It appears there are issues with unraid and using /mnt/user/cache/appdata instead of /mnt/cache/appdata, use /mnt/cache/appdata.","title":"Application Setup"},{"location":"images/docker-musicbrainz/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-musicbrainz/#support-info","text":"Shell access whilst the container is running: docker exec -it musicbrainz /bin/bash To monitor the logs of the container in realtime: docker logs -f musicbrainz container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' musicbrainz image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/musicbrainz","title":"Support Info"},{"location":"images/docker-musicbrainz/#updating-info","text":"Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (ie. nextcloud, plex), we do not recommend or support updating apps inside the container. Please consult the Application Setup section above to see if it is recommended for the image. Below are the instructions for updating containers:","title":"Updating Info"},{"location":"images/docker-musicbrainz/#via-docker-compose","text":"Update all images: docker-compose pull or update a single image: docker-compose pull musicbrainz Let compose update all containers as necessary: docker-compose up -d or update a single container: docker-compose up -d musicbrainz You can also remove the old dangling images: docker image prune","title":"Via Docker Compose"},{"location":"images/docker-musicbrainz/#via-docker-run","text":"Update the image: docker pull lscr.io/linuxserver/musicbrainz Stop the running container: docker stop musicbrainz Delete the container: docker rm musicbrainz Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your /config folder and settings will be preserved) You can also remove the old dangling images: docker image prune","title":"Via Docker Run"},{"location":"images/docker-musicbrainz/#via-watchtower-auto-updater-only-use-if-you-dont-remember-the-original-parameters","text":"Pull the latest image at its tag and replace it with the same env variables in one run: docker run --rm \\ -v /var/run/docker.sock:/var/run/docker.sock \\ containrrr/watchtower \\ --run-once musicbrainz You can also remove the old dangling images: docker image prune Note: We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using Docker Compose .","title":"Via Watchtower auto-updater (only use if you don't remember the original parameters)"},{"location":"images/docker-musicbrainz/#image-update-notifications-diun-docker-image-update-notifier","text":"We recommend Diun for update notifications. Other tools that automatically update containers unattended are not recommended or supported.","title":"Image Update Notifications - Diun (Docker Image Update Notifier)"},{"location":"images/docker-musicbrainz/#building-locally","text":"If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-musicbrainz.git cd docker-musicbrainz docker build \\ --no-cache \\ --pull \\ -t lscr.io/linuxserver/musicbrainz:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 .","title":"Building locally"},{"location":"images/docker-musicbrainz/#versions","text":"23.02.21: - Deprecate image as no one stepped up to take over as maintainer. 03.10.20: - Rebase to alpine 3.12, add gettext and move to nodejs-current. 17.05.19: - Update DBDefs.pm to schema 25 database. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 02.03.19: - Revert to alpine 3.8 to fix incompatibilities with frontend build tools. 19.02.19: - Multi Arch and add pipeline logic, rebase to Alpine 3.9 22.08.18: - Bump server version 2018-08-14. 30.06.18: - Bump server version 2018-06-30. 01.06.18: - Bump server version 2018-05-30 , simplify sed and use yarn instead of npm. 14.05.18: - Bump server version 2018-05-09. 26.04.18: - Bump server version 2018-04-23. 09.02.18: - Bump server version 2018-02-09. 24.01.18: - Bump server version 2018-01-24. 10.01.18: - Bump server version 2018-01-10. 31.11.17: - Bump server version 2017-12-21. 30.11.17: - Add NPROC variable to allow number of processes to be set. 30.11.17: - Fix linting recommendations. 30.11.17: - Remove socket on startup if exists (thanks wtf911) re . 24.11.17: - Remove catalyst side bar on new installs. 31.10.17: - Bump server version 2017-10-31. 20.09.17: - Bump server version 2017-09-18. 06.09.17: - Bump server version 2017-09-04. 19.07.17: - Bump server version 2017-07-17. 21.06.17: - Bump server version 2017-06-19. 26.05.17: - Fix later build of postgres using /run instead of /var/run. 26.05.17: - Rebase to alpine 3.6. 15.05.17: - Schema 24 update, recommend full rebuild with new config. 15.04.17: - Bump server version 2017-04-10. 04.04.17: - Bump server version 2017-03-27. 15.03.17: - Bump server version 2017-03-13. 04.03.17: - Bump server version and use nginx to serve web pages. 06.02.17: - Rebase to alpine 3.5. 16.12.16: - Rebase to alpine linux, entailing almost complete rewrite. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README, move to main repository. 20.07.16: - Restructure of docker file for clarity, add maxworkers variable in conjunction with starlet, for parallel requests in multi-core setups, thanks to user baoshan. 03.06.16: - Complete rewrite due to schema change. Rebased back to 14.04 direct Using S6 overaly. 21.03.16: - Bump to latest server release. 16.03.16: - Bump to latest server release. 26.02.16: - Bump to latest server release. 08.02.16: - Switch to PPA version for redis. 03.01.16: - Remove d/l of sitemaps file, missing from last 2 db dumps, move fetch of db/dump higher up initialise routine to allow easier resume of broken downloads. 15.12.15: - Per latest musicbrainz blog, switched to production branch,latest stable code is now production branch in place of master. 10.12.15: - Initial release date.","title":"Versions"},{"location":"images/docker-muximux/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/muximux Muximux is a lightweight portal to view & manage your HTPC apps without having to run anything more than a PHP enabled webserver. With Muximux you don't need to keep multiple tabs open, or bookmark the URL to all of your apps. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/muximux:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Find the web interface at :80 , set apps you wish to use with muximux via the webui. More info:- Muximux Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: muximux: image: lscr.io/linuxserver/muximux:latest container_name: muximux environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=muximux \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/muximux:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where muximux should store its files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it muximux /bin/bash To monitor the logs of the container in realtime: docker logs -f muximux Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' muximux Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/muximux:latest Versions 21.10.22: - Deprecate image. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 13.09.18: - Rebase to alpine 3.8. 09.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 12.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 30.09.16: - Rebase to alpine linux. 09.09.16: - Add badges to README. 22.02.16: - Initial release date.","title":"muximux"},{"location":"images/docker-muximux/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-muximux/#linuxservermuximux","text":"Muximux is a lightweight portal to view & manage your HTPC apps without having to run anything more than a PHP enabled webserver. With Muximux you don't need to keep multiple tabs open, or bookmark the URL to all of your apps.","title":"linuxserver/muximux"},{"location":"images/docker-muximux/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/muximux:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-muximux/#application-setup","text":"Find the web interface at :80 , set apps you wish to use with muximux via the webui. More info:- Muximux","title":"Application Setup"},{"location":"images/docker-muximux/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-muximux/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: muximux: image: lscr.io/linuxserver/muximux:latest container_name: muximux environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-muximux/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=muximux \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/muximux:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-muximux/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-muximux/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-muximux/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-muximux/#volume-mappings-v","text":"Volume Function /config Where muximux should store its files.","title":"Volume Mappings (-v)"},{"location":"images/docker-muximux/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-muximux/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-muximux/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-muximux/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-muximux/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-muximux/#support-info","text":"Shell access whilst the container is running: docker exec -it muximux /bin/bash To monitor the logs of the container in realtime: docker logs -f muximux Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' muximux Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/muximux:latest","title":"Support Info"},{"location":"images/docker-muximux/#versions","text":"21.10.22: - Deprecate image. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 13.09.18: - Rebase to alpine 3.8. 09.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 12.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 30.09.16: - Rebase to alpine linux. 09.09.16: - Add badges to README. 22.02.16: - Initial release date.","title":"Versions"},{"location":"images/docker-mylar/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/mylar Mylar is an automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mylar should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: mylar: image: lscr.io/linuxserver/mylar container_name: mylar environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/comics - :/downloads ports: - 8090:8090 restart: unless-stopped docker cli docker run -d \\ --name=mylar \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 8090:8090 \\ -v :/config \\ -v :/comics \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/mylar Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8090 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation Volume Mappings ( -v ) Volume Function /config Where mylar should store config files. /comics Map to your comics folder. /downloads Map to your downloads folder. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup THIS IMAGE IS DEPRECATED. Please migrate to Mylar3 . The web ui for settings etc, is on :8090 For more detailed setup refer Mylar . Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it mylar /bin/bash To monitor the logs of the container in realtime: docker logs -f mylar Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mylar Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mylar Versions 21.12.20: - Deprecated. Please migrate to Mylar3 . 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 08.05.19: - Re-install requests pip package to downgrade urllib version suitable for mylar. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 06.07.18: - Add html5lib python package. 14.06.18: - Add requests python package. 12.12.17: - Rebase to alpine 3.7. 21.07.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 19.02.17: - Use quiet option for cleaner console log, app logs to file anyways. 07.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 26.01.16: - Initial release.","title":"mylar"},{"location":"images/docker-mylar/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-mylar/#linuxservermylar","text":"Mylar is an automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents.","title":"linuxserver/mylar"},{"location":"images/docker-mylar/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mylar should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-mylar/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-mylar/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: mylar: image: lscr.io/linuxserver/mylar container_name: mylar environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/comics - :/downloads ports: - 8090:8090 restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-mylar/#docker-cli","text":"docker run -d \\ --name=mylar \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 8090:8090 \\ -v :/config \\ -v :/comics \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/mylar","title":"docker cli"},{"location":"images/docker-mylar/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-mylar/#ports-p","text":"Parameter Function 8090 WebUI","title":"Ports (-p)"},{"location":"images/docker-mylar/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation","title":"Environment Variables (-e)"},{"location":"images/docker-mylar/#volume-mappings-v","text":"Volume Function /config Where mylar should store config files. /comics Map to your comics folder. /downloads Map to your downloads folder.","title":"Volume Mappings (-v)"},{"location":"images/docker-mylar/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-mylar/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-mylar/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-mylar/#application-setup","text":"THIS IMAGE IS DEPRECATED. Please migrate to Mylar3 . The web ui for settings etc, is on :8090 For more detailed setup refer Mylar .","title":"Application Setup"},{"location":"images/docker-mylar/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-mylar/#support-info","text":"Shell access whilst the container is running: docker exec -it mylar /bin/bash To monitor the logs of the container in realtime: docker logs -f mylar Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mylar Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mylar","title":"Support Info"},{"location":"images/docker-mylar/#versions","text":"21.12.20: - Deprecated. Please migrate to Mylar3 . 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 08.05.19: - Re-install requests pip package to downgrade urllib version suitable for mylar. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Pipeline logic and multi arch. 17.08.18: - Rebase to alpine 3.8. 06.07.18: - Add html5lib python package. 14.06.18: - Add requests python package. 12.12.17: - Rebase to alpine 3.7. 21.07.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 19.02.17: - Use quiet option for cleaner console log, app logs to file anyways. 07.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 26.01.16: - Initial release.","title":"Versions"},{"location":"images/docker-mylar3/","text":"linuxserver/mylar3 Mylar3 is an automated Comic Book downloader (cbr/cbz) for use with NZB and torrents written in python. It supports SABnzbd, NZBGET, and many torrent clients in addition to DDL. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mylar3:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Mylar3 releases nightly \u2705 Commits to Mylar3 python3-dev branch Application Setup The web ui for settings etc, is on http://SERVERIP:8090 For more detailed setup options, refer to Mylar3 . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: mylar3: image: lscr.io/linuxserver/mylar3:latest container_name: mylar3 environment: - PUID=1000 - PGID=1000 volumes: - /path/to/data:/config - /path/to/comics:/comics - /path/to/downloads:/downloads ports: - 8090:8090 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=mylar3 \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 8090:8090 \\ -v /path/to/data:/config \\ -v /path/to/comics:/comics \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/mylar3:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8090 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation Volume Mappings ( -v ) Volume Function /config Where mylar should store config files. /comics Map to your comics folder. /downloads Map to your downloads folder. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it mylar3 /bin/bash To monitor the logs of the container in realtime: docker logs -f mylar3 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mylar3 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mylar3:latest Versions 12.10.22: - Rebase to alpine 3.16 and upgrade to s6v3. 01.02.22: - Rebase to alpine 3.15. 02.11.21: - Rebase to alpine 3.14. Remove pathlib.py . 25.05.21: - Add libwebp support. 17.05.21: - Add linuxserver wheel index. 23.01.21: - Rebasing to alpine 3.13. 03.01.21: - Output mylar log to docker log. 21.12.20: - Release nightly tag based on commits to upstream python3-dev branch. 28.09.20: - Initial release.","title":"mylar3"},{"location":"images/docker-mylar3/#linuxservermylar3","text":"Mylar3 is an automated Comic Book downloader (cbr/cbz) for use with NZB and torrents written in python. It supports SABnzbd, NZBGET, and many torrent clients in addition to DDL.","title":"linuxserver/mylar3"},{"location":"images/docker-mylar3/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mylar3:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-mylar3/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Mylar3 releases nightly \u2705 Commits to Mylar3 python3-dev branch","title":"Version Tags"},{"location":"images/docker-mylar3/#application-setup","text":"The web ui for settings etc, is on http://SERVERIP:8090 For more detailed setup options, refer to Mylar3 .","title":"Application Setup"},{"location":"images/docker-mylar3/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-mylar3/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: mylar3: image: lscr.io/linuxserver/mylar3:latest container_name: mylar3 environment: - PUID=1000 - PGID=1000 volumes: - /path/to/data:/config - /path/to/comics:/comics - /path/to/downloads:/downloads ports: - 8090:8090 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-mylar3/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=mylar3 \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 8090:8090 \\ -v /path/to/data:/config \\ -v /path/to/comics:/comics \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/mylar3:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-mylar3/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-mylar3/#ports-p","text":"Parameter Function 8090 WebUI","title":"Ports (-p)"},{"location":"images/docker-mylar3/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation","title":"Environment Variables (-e)"},{"location":"images/docker-mylar3/#volume-mappings-v","text":"Volume Function /config Where mylar should store config files. /comics Map to your comics folder. /downloads Map to your downloads folder.","title":"Volume Mappings (-v)"},{"location":"images/docker-mylar3/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-mylar3/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-mylar3/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-mylar3/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-mylar3/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-mylar3/#support-info","text":"Shell access whilst the container is running: docker exec -it mylar3 /bin/bash To monitor the logs of the container in realtime: docker logs -f mylar3 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mylar3 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mylar3:latest","title":"Support Info"},{"location":"images/docker-mylar3/#versions","text":"12.10.22: - Rebase to alpine 3.16 and upgrade to s6v3. 01.02.22: - Rebase to alpine 3.15. 02.11.21: - Rebase to alpine 3.14. Remove pathlib.py . 25.05.21: - Add libwebp support. 17.05.21: - Add linuxserver wheel index. 23.01.21: - Rebasing to alpine 3.13. 03.01.21: - Output mylar log to docker log. 21.12.20: - Release nightly tag based on commits to upstream python3-dev branch. 28.09.20: - Initial release.","title":"Versions"},{"location":"images/docker-mysql-workbench/","text":"linuxserver/mysql-workbench MySQL Workbench is a unified visual tool for database architects, developers, and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mysql-workbench:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u274c armhf \u274c Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: mysql-workbench: image: lscr.io/linuxserver/mysql-workbench:latest container_name: mysql-workbench environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 cap_add: - IPC_LOCK restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=mysql-workbench \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --cap-add=\"IPC_LOCK\" \\ --restart unless-stopped \\ lscr.io/linuxserver/mysql-workbench:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Mysql Workbench desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings. Miscellaneous Options Parameter Function --cap-add= Required for keyring functionality Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it mysql-workbench /bin/bash To monitor the logs of the container in realtime: docker logs -f mysql-workbench Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mysql-workbench Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mysql-workbench:latest Versions 15.09.22: - Migrate to s6v3. 26.07.22: - Rebase on jammy. 20.04.21: - Rebase on focal. 18.01.21: - Update libpython dependency. 26.03.20: - Initial release.","title":"mysql-workbench"},{"location":"images/docker-mysql-workbench/#linuxservermysql-workbench","text":"MySQL Workbench is a unified visual tool for database architects, developers, and DBAs. MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more.","title":"linuxserver/mysql-workbench"},{"location":"images/docker-mysql-workbench/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/mysql-workbench:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u274c armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-mysql-workbench/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-mysql-workbench/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-mysql-workbench/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: mysql-workbench: image: lscr.io/linuxserver/mysql-workbench:latest container_name: mysql-workbench environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 cap_add: - IPC_LOCK restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-mysql-workbench/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=mysql-workbench \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --cap-add=\"IPC_LOCK\" \\ --restart unless-stopped \\ lscr.io/linuxserver/mysql-workbench:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-mysql-workbench/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-mysql-workbench/#ports-p","text":"Parameter Function 3000 Mysql Workbench desktop gui.","title":"Ports (-p)"},{"location":"images/docker-mysql-workbench/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-mysql-workbench/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings.","title":"Volume Mappings (-v)"},{"location":"images/docker-mysql-workbench/#miscellaneous-options","text":"Parameter Function --cap-add= Required for keyring functionality","title":"Miscellaneous Options"},{"location":"images/docker-mysql-workbench/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-mysql-workbench/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-mysql-workbench/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-mysql-workbench/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-mysql-workbench/#support-info","text":"Shell access whilst the container is running: docker exec -it mysql-workbench /bin/bash To monitor the logs of the container in realtime: docker logs -f mysql-workbench Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' mysql-workbench Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/mysql-workbench:latest","title":"Support Info"},{"location":"images/docker-mysql-workbench/#versions","text":"15.09.22: - Migrate to s6v3. 26.07.22: - Rebase on jammy. 20.04.21: - Rebase on focal. 18.01.21: - Update libpython dependency. 26.03.20: - Initial release.","title":"Versions"},{"location":"images/docker-nano-discord-bot/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/nano-discord-bot Nano-discord-bot - A bot used to hook into a self hosted Nano RPC endpoint and discord server to Distribute funds from a faucet account. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lsiodev/nano-discord-bot should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=nano-discord-bot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e WALLET_URL=https://wallet.linuxserver.io/#/nano.linuxserver.io/ \\ -e RPC_URL=https://nano.linuxserver.io:7077 \\ -e FAUCET_KEY=XXXXXXXXXXXXX \\ -e DISCORD_KEY=XXXXXXXXXXXXX \\ -e FAUCET_AMOUNT=\"1000\" \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lsiodev/nano-discord-bot docker-compose Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: nano-discord-bot: image: lsiodev/nano-discord-bot container_name: nano-discord-bot environment: - PUID=1000 - PGID=1000 - WALLET_URL=https://wallet.linuxserver.io/#/nano.linuxserver.io/ - RPC_URL=https://nano.linuxserver.io:7077 - FAUCET_KEY=XXXXXXXXXXXXX - DISCORD_KEY=XXXXXXXXXXXXX - FAUCET_AMOUNT=\"1000\" volumes: - /path/to/data:/config restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation WALLET_URL=https://wallet.linuxserver.io/#/nano.linuxserver.io/ Hosted wallet endpoint to use. RPC_URL=https://nano.linuxserver.io:7077 RPC endpoint to publish blocks to and ingest account information. FAUCET_KEY=XXXXXXXXXXXXX The private key for your faucet account. DISCORD_KEY=XXXXXXXXXXXXX Discord api key for the bot. FAUCET_AMOUNT=\"1000\" Amount to distribute to individual Discord users in Nano. Volume Mappings ( -v ) Volume Function /config Database and Radarr configs Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup With the proper environment variables passed to this container it will automatically reach out to your Nano RPC server and Discord Server. More about setting up a hosted Nano network here . Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above. Support Info Shell access whilst the container is running: docker exec -it nano-discord-bot /bin/bash To monitor the logs of the container in realtime: docker logs -f nano-discord-bot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nano-discord-bot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lsiodev/nano-discord-bot Versions 25.05.20: - Initial Release.","title":"nano-discord-bot"},{"location":"images/docker-nano-discord-bot/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-nano-discord-bot/#linuxservernano-discord-bot","text":"Nano-discord-bot - A bot used to hook into a self hosted Nano RPC endpoint and discord server to Distribute funds from a faucet account.","title":"linuxserver/nano-discord-bot"},{"location":"images/docker-nano-discord-bot/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lsiodev/nano-discord-bot should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-nano-discord-bot/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-nano-discord-bot/#docker","text":"docker create \\ --name=nano-discord-bot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e WALLET_URL=https://wallet.linuxserver.io/#/nano.linuxserver.io/ \\ -e RPC_URL=https://nano.linuxserver.io:7077 \\ -e FAUCET_KEY=XXXXXXXXXXXXX \\ -e DISCORD_KEY=XXXXXXXXXXXXX \\ -e FAUCET_AMOUNT=\"1000\" \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lsiodev/nano-discord-bot","title":"docker"},{"location":"images/docker-nano-discord-bot/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: nano-discord-bot: image: lsiodev/nano-discord-bot container_name: nano-discord-bot environment: - PUID=1000 - PGID=1000 - WALLET_URL=https://wallet.linuxserver.io/#/nano.linuxserver.io/ - RPC_URL=https://nano.linuxserver.io:7077 - FAUCET_KEY=XXXXXXXXXXXXX - DISCORD_KEY=XXXXXXXXXXXXX - FAUCET_AMOUNT=\"1000\" volumes: - /path/to/data:/config restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-nano-discord-bot/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nano-discord-bot/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-nano-discord-bot/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation WALLET_URL=https://wallet.linuxserver.io/#/nano.linuxserver.io/ Hosted wallet endpoint to use. RPC_URL=https://nano.linuxserver.io:7077 RPC endpoint to publish blocks to and ingest account information. FAUCET_KEY=XXXXXXXXXXXXX The private key for your faucet account. DISCORD_KEY=XXXXXXXXXXXXX Discord api key for the bot. FAUCET_AMOUNT=\"1000\" Amount to distribute to individual Discord users in Nano.","title":"Environment Variables (-e)"},{"location":"images/docker-nano-discord-bot/#volume-mappings-v","text":"Volume Function /config Database and Radarr configs","title":"Volume Mappings (-v)"},{"location":"images/docker-nano-discord-bot/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nano-discord-bot/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nano-discord-bot/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nano-discord-bot/#application-setup","text":"With the proper environment variables passed to this container it will automatically reach out to your Nano RPC server and Discord Server. More about setting up a hosted Nano network here .","title":"Application Setup"},{"location":"images/docker-nano-discord-bot/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above.","title":"Docker Mods"},{"location":"images/docker-nano-discord-bot/#support-info","text":"Shell access whilst the container is running: docker exec -it nano-discord-bot /bin/bash To monitor the logs of the container in realtime: docker logs -f nano-discord-bot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nano-discord-bot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lsiodev/nano-discord-bot","title":"Support Info"},{"location":"images/docker-nano-discord-bot/#versions","text":"25.05.20: - Initial Release.","title":"Versions"},{"location":"images/docker-nano-wallet/","text":"linuxserver/nano-wallet Nano-wallet is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions. This container is a simple nginx wrapper for the light wallet located here . You will need to pass a valid RPC host when accessing this container. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nano-wallet:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This container requires a Nano RPC endpoint to communicate with whether a public network or your own, see here for more information. Simply access the container at the URL: http://localhost/#/THE_IP_OR_HOSTNAME_OF_RPC_ENDPOINT Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nano-wallet: image: lscr.io/linuxserver/nano-wallet:latest container_name: nano-wallet ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nano-wallet \\ -p 80:80 \\ --restart unless-stopped \\ lscr.io/linuxserver/nano-wallet:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Webserver port Environment Variables ( -e ) Env Function Volume Mappings ( -v ) Volume Function Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nano-wallet /bin/bash To monitor the logs of the container in realtime: docker logs -f nano-wallet Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nano-wallet Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nano-wallet:latest Versions 01.06.20: - Rebasing to alpine 3.12. 23.05.20: - Initial Release.","title":"nano-wallet"},{"location":"images/docker-nano-wallet/#linuxservernano-wallet","text":"Nano-wallet is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions. This container is a simple nginx wrapper for the light wallet located here . You will need to pass a valid RPC host when accessing this container.","title":"linuxserver/nano-wallet"},{"location":"images/docker-nano-wallet/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nano-wallet:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-nano-wallet/#application-setup","text":"This container requires a Nano RPC endpoint to communicate with whether a public network or your own, see here for more information. Simply access the container at the URL: http://localhost/#/THE_IP_OR_HOSTNAME_OF_RPC_ENDPOINT","title":"Application Setup"},{"location":"images/docker-nano-wallet/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nano-wallet/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nano-wallet: image: lscr.io/linuxserver/nano-wallet:latest container_name: nano-wallet ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nano-wallet/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nano-wallet \\ -p 80:80 \\ --restart unless-stopped \\ lscr.io/linuxserver/nano-wallet:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nano-wallet/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nano-wallet/#ports-p","text":"Parameter Function 80 Webserver port","title":"Ports (-p)"},{"location":"images/docker-nano-wallet/#environment-variables-e","text":"Env Function","title":"Environment Variables (-e)"},{"location":"images/docker-nano-wallet/#volume-mappings-v","text":"Volume Function","title":"Volume Mappings (-v)"},{"location":"images/docker-nano-wallet/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nano-wallet/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nano-wallet/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nano-wallet/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nano-wallet/#support-info","text":"Shell access whilst the container is running: docker exec -it nano-wallet /bin/bash To monitor the logs of the container in realtime: docker logs -f nano-wallet Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nano-wallet Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nano-wallet:latest","title":"Support Info"},{"location":"images/docker-nano-wallet/#versions","text":"01.06.20: - Rebasing to alpine 3.12. 23.05.20: - Initial Release.","title":"Versions"},{"location":"images/docker-nano/","text":"linuxserver/nano Nano is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nano:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Nano releases beta \u2705 Beta Nano releases Application Setup Your Genesis account By default this container will launch with a genesis block based on the private key 0000000000000000000000000000000000000000000000000000000000000000 , this should obviously only ever be used for testing purposes. Before you run your node you should use a script baked into this image to determine your private key and required environment variables: docker run --rm --entrypoint /genesis.sh linuxserver/nano Generating Genesis block !!!!!!! ACCOUNT INFO SAVE THIS INFORMATION IT WILL NOT BE SHOWN AGAIN !!!!!!!! Private Key: CD4CD6B1E5523D4B5AEDD2B1E5A447C6C6797E729A531A95F9AD7937FC7CD9EA Public Key: 2D057DF2EB09E918D3F95B5FCA69A5FD3EA406EF7D1810106324CD7A99FAA32D Account: nano_1da7hqsgp4hb55bzkptzsbntdzbyni5gyzar41a88b8fhcezoasfjkgmyk5y !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Container Environment Values: -e LIVE_GENESIS_PUB=2D057DF2EB09E918D3F95B5FCA69A5FD3EA406EF7D1810106324CD7A99FAA32D \\ -e LIVE_GENESIS_ACCOUNT=nano_1da7hqsgp4hb55bzkptzsbntdzbyni5gyzar41a88b8fhcezoasfjkgmyk5y \\ -e LIVE_GENESIS_WORK=7fd88e48684600b7 \\ -e LIVE_GENESIS_SIG=D1DF3A64BB43C131944401632215569A40AAE858ACF6CB59D5C77070E69DBF6435D93807877628A8B142DBF1AC4C562CD2F4CEBEB7D15486BDB7494A6146E007 \\ These environment variables will be used for all of the peers in your payment network, but if you are running what you would consider a public or live network never share your private key even if you have drained the funds from that account it can be potentionally used to create valid forks. Even Better , you should never even trust our Docker image for generating a private key and open block. Do it on an airgapped machine and keep it on a paper wallet. RPC Proxy settings By default this container will enable RPC control and publish a custom service that acts as an RPC firewall giving you the ability to whitelist specific RPC calls and overide/add default values. The default proxy config is stored in /config/rpc-proxy.json : { \"port\":3000, \"httpsport\":3001, \"rpchost\":\"127.0.0.1\", \"rpcport\":7076, \"certfile\":\"/config/ssl/cert.crt\", \"keyfile\":\"/config/ssl/cert.key\", \"whitelist\":[ \"account_info\", \"account_history\", \"block_count\", \"block_info\", \"pending\", \"process\" ], \"overrides\":{ \"account-history\":{ \"count\":\"64\" }, \"pending\":{ \"count\":\"8\" } } } This should be a minimal amount of RPC access needed to run a local light wallet against this endpoint. If you plan on having your network users only run clientside light wallets (local blake2b block generation and block process call publishing) you should publically publish this port for access for both port 7076 and 7077. For functional light wallets on Https endpoints we will generate a self signed cert/key combo but you should add the ones associated with your domain. This will allow yours and other https hosted light wallets to hit your RPC endpoint clientside from the users web browser. Outside of potential https tunneling and actual object parsing (will remove duplicate keys) this is not a conventional API, it simply acts as a firewall and will send and return data just like a local RPC server would. The goal is to be compatible with any existing Nano software if the developers decide to add the ability to connect to alternative network endpoints. Our Proxy has not been audited by any security team and is provided as is, though we make the best effort to keep it simple and secure Node configuration via environment Before you get started please review the configuration docs here We will pass the CLI_OPTIONS to the node, here is a run command example: -e CLI_OPTIONS='--config node.preconfigured_peers=[\"peering.yourhost.com\",\"peering.yourhost2.com\"] \\ --config node.enable_voting=true' There are many options to know here to run an actual live node especially peering and voting, again please review the docs if you plan to run something outside of a local setup. Quickstart Guide Here we are going to cover the bare minimum commands needed to spinup a local payment network and wallet. First spinup your containers: docker run -d \\ --name node \\ -e CLI_OPTIONS='--config node.enable_voting=true' \\ -p 7076:3000 \\ --restart unless-stopped \\ linuxserver/nano docker run -d \\ --name=wallet \\ -p 80:80 \\ --restart unless-stopped \\ linuxserver/nano-wallet Then unlock the Genesis funds on the local node to allow it to confirm transactions: docker exec -it node bash root@f1df092971f0:/# curl -d '{ \"action\": \"wallet_create\" }' localhost:7076 { \"wallet\": \"A3D63F1B28AC68BCD9E0FF74278C7984A36841C803EF1A81DF92BCD6E3BB18F9\" } root@f1df092971f0:/# curl -d '{ \"action\": \"wallet_add\", \"wallet\": \"A3D63F1B28AC68BCD9E0FF74278C7984A36841C803EF1A81DF92BCD6E3BB18F9\", \"key\": \"0000000000000000000000000000000000000000000000000000000000000000\" }' localhost:7076 { \"account\": \"nano_18gmu6engqhgtjnppqam181o5nfhj4sdtgyhy36dan3jr9spt84rzwmktafc\" } Here we are using the default private key of 0000000000000000000000000000000000000000000000000000000000000000 for the image. Navigate to http://localhost/#/localhost and enter this key. You should be greeted by the genesis account wallet with 340.28 Million Nano. From here you can generate new wallets from the home screen and send/receive funds on your local network. Now you will be running an insecure centralized network with a single voting representative and a zero security private key using the commands above. To spinup a standard private or even public network you should read up on Nano's documentation HERE and continue reading the network design section below. Network design There are 4 main concepts to grasp from a network standpoint as far as types of endpoints. Before we get started here is a basic network diagram: Principle nodes and voting representatives Principle nodes are network representatives with the ability to vote due to having a certain threshold of funds unlocked on that node or pointed to that unlocked address. These nodes should be as airgapped as possible while still being an active 24/7 peer of the network. From a tecnical perspective this is a node with an account private key that either has the funds it needs itself or enough users have pointed their accounts to it as a representative. In a live and secure configuration to protect the funds of this account you would use an inactive private key account with the funds in it and locally sign a change of representative block to point to the always online representative. These nodes should never process external RPC calls even on a local network, the same rules go for any node with a local unlocked wallet. Keep in mind the key to the security of the network is that 51% of the funds are pointed to trusted representatives that will generally not argue about chain forks. In most deployments the best bet is to heavily centralize your voting nodes, this is unless you are intentionally trying to build a distributed ledger and security model like the main Nano live net. Achieving that will be a long and difficult task. Network peers To a normal user simply transacting on the network using off the shelf tools like a web wallet and web based block explorers is generally all that is required. They get a number in a ledger somewhere and are able to locally sign and publish blocks using their private key using your published RPC endpoints. For advanced users and just to generally make the network more robust, network operators should promote people running their own nodes. Using this image a network peer simply needs to run a docker run command with your pre-configured variables. IE given the generation example from above in the Your Genesis account section: docker create \\ --name=nano \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PEER_HOST=peering.mydomain.com \\ -e LIVE_GENESIS_PUB=2D057DF2EB09E918D3F95B5FCA69A5FD3EA406EF7D1810106324CD7A99FAA32D \\ -e LIVE_GENESIS_ACCOUNT=nano_1da7hqsgp4hb55bzkptzsbntdzbyni5gyzar41a88b8fhcezoasfjkgmyk5y \\ -e LIVE_GENESIS_WORK=7fd88e48684600b7 \\ -e LIVE_GENESIS_SIG=D1DF3A64BB43C131944401632215569A40AAE858ACF6CB59D5C77070E69DBF6435D93807877628A8B142DBF1AC4C562CD2F4CEBEB7D15486BDB7494A6146E007 \\ -p 8075:8075 \\ -p 7076:3000 \\ -p 7077:3001 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ linuxserver/nano When the container spins up it will reach out to the node to bootstrap it's local ledger from peering.mydomain.com . This node once fully synced will be able to run local RPC commands to plug into a wallet and default Nano node wallet commands for automated pocketing of transactions etc. It will also get a list of other peers on the network from it's initial network peering and start participating in your distributed cryptocurrency network. Public RPC endpoints The key to users going to a webpage and managing the funds on your network is the ability to get blockchain information and publish new blocks to theirs. As mentioned earlier we bundle a basic firewall with a core set of RPC functions whitelisted that should be safe to expose publically. From a network design perspective these nodes should be purely what you would consider client peers and never have any wallets registered or private keys stored on them. Also for redundancy optmimally these peers should be run in a cluster behind a load balancer. For standard nodes you are building out a large P2P network, but in the case of the RPC endpoint and specifically the URL the end user is going to pass when accessing their wallet it is up to you to make that resilient. Clientside javascript wallet Currently we publish a pure javascript clientside wallet located here: https://github.com/linuxserver/nano-wallet It is designed to be run 100% clientside in any web browser and use public RPC endpoints to hook into any network and conduct transactions by locally signing then publishing the result. This can be hosted locally with any simple webserver and pointed to a locally run peer, but for full functionality we reccomend providing a public Https URL with these files along with plugging in legitamite SSL certificates into your RPC endpoints running on 7077. Running a node on the LinuxServer network We maintain our own network which users can get funds to transact on from our Discord server. If you would like to run a node on our network here is our Docker run command: docker create \\ --name=lsio-node \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PEER_HOST=peering.linuxserver.io \\ -e LIVE_GENESIS_PUB=79F2E157B5667F1C8B6CCB6DF691DAC032B85DEC39E231D29976DCED05F5B1BE \\ -e LIVE_GENESIS_ACCOUNT=nano_1yhkw7ducsmz5k7pskufytaxoi3kq3gyrgh489bbkxpwxn4zdefyn4rmrrkk \\ -e LIVE_GENESIS_WORK=c51204c6b69384cb \\ -e LIVE_GENESIS_SIG=90DDE7B4DC038811180FF5DDE8594F1774542A7AADE3DB71A57AA38A5AED42672E1E8D7ACFAC315BDB0EB5DCB542C610B9C49B2560AE575073855259AF065509 \\ -p 8075:8075 \\ -p 7076:3000 \\ -p 7077:3001 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ linuxserver/nano Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nano: image: lscr.io/linuxserver/nano:latest container_name: nano environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PEER_HOST=localhost #optional - LIVE_GENESIS_PUB=GENESIS_PUBLIC #optional - LIVE_GENESIS_ACCOUNT=nano_xxxxxx #optional - LIVE_GENESIS_WORK=WORK_FOR_BLOCK #optional - LIVE_GENESIS_SIG=BLOCK_SIGNATURE #optional - CLI_OPTIONS=--config node.enable_voting=true #optional - LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z #optional volumes: - /path/to/data:/config ports: - 8075:8075 - 7076:3000 - 7077:3001 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nano \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PEER_HOST=localhost `#optional` \\ -e LIVE_GENESIS_PUB=GENESIS_PUBLIC `#optional` \\ -e LIVE_GENESIS_ACCOUNT=nano_xxxxxx `#optional` \\ -e LIVE_GENESIS_WORK=WORK_FOR_BLOCK `#optional` \\ -e LIVE_GENESIS_SIG=BLOCK_SIGNATURE `#optional` \\ -e CLI_OPTIONS=--config node.enable_voting=true `#optional` \\ -e LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z `#optional` \\ -p 8075:8075 \\ -p 7076:3000 \\ -p 7077:3001 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/nano:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8075 Nano communication port 3000 RPC interface filtered through a proxy 3001 Https RPC interface filtered through a proxy Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PEER_HOST=localhost Default peer host (can be overidden with an array by command line options) LIVE_GENESIS_PUB=GENESIS_PUBLIC Genesis block public key LIVE_GENESIS_ACCOUNT=nano_xxxxxx Genesis block account LIVE_GENESIS_WORK=WORK_FOR_BLOCK Genesis block proof of work LIVE_GENESIS_SIG=BLOCK_SIGNATURE Genesis block signature CLI_OPTIONS=--config node.enable_voting=true Node run command cli args LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z HTTP/HTTPS endpoint to download a 7z file with the data.ldb to bootstrap to this node Volume Mappings ( -v ) Volume Function /config Main storage for config and blockchain Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nano /bin/bash To monitor the logs of the container in realtime: docker logs -f nano Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nano Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nano:latest Versions 02.06.20: - Rebase to Alpine 3.12. 28.05.20: - Add beta tag. 17.05.20: - Initial Release.","title":"nano"},{"location":"images/docker-nano/#linuxservernano","text":"Nano is a digital payment protocol designed to be accessible and lightweight, with a focus on removing inefficiencies present in other cryptocurrencies. With ultrafast transactions and zero fees on a secure, green and decentralized network, this makes Nano ideal for everyday transactions.","title":"linuxserver/nano"},{"location":"images/docker-nano/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nano:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-nano/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Nano releases beta \u2705 Beta Nano releases","title":"Version Tags"},{"location":"images/docker-nano/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-nano/#your-genesis-account","text":"By default this container will launch with a genesis block based on the private key 0000000000000000000000000000000000000000000000000000000000000000 , this should obviously only ever be used for testing purposes. Before you run your node you should use a script baked into this image to determine your private key and required environment variables: docker run --rm --entrypoint /genesis.sh linuxserver/nano Generating Genesis block !!!!!!! ACCOUNT INFO SAVE THIS INFORMATION IT WILL NOT BE SHOWN AGAIN !!!!!!!! Private Key: CD4CD6B1E5523D4B5AEDD2B1E5A447C6C6797E729A531A95F9AD7937FC7CD9EA Public Key: 2D057DF2EB09E918D3F95B5FCA69A5FD3EA406EF7D1810106324CD7A99FAA32D Account: nano_1da7hqsgp4hb55bzkptzsbntdzbyni5gyzar41a88b8fhcezoasfjkgmyk5y !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Container Environment Values: -e LIVE_GENESIS_PUB=2D057DF2EB09E918D3F95B5FCA69A5FD3EA406EF7D1810106324CD7A99FAA32D \\ -e LIVE_GENESIS_ACCOUNT=nano_1da7hqsgp4hb55bzkptzsbntdzbyni5gyzar41a88b8fhcezoasfjkgmyk5y \\ -e LIVE_GENESIS_WORK=7fd88e48684600b7 \\ -e LIVE_GENESIS_SIG=D1DF3A64BB43C131944401632215569A40AAE858ACF6CB59D5C77070E69DBF6435D93807877628A8B142DBF1AC4C562CD2F4CEBEB7D15486BDB7494A6146E007 \\ These environment variables will be used for all of the peers in your payment network, but if you are running what you would consider a public or live network never share your private key even if you have drained the funds from that account it can be potentionally used to create valid forks. Even Better , you should never even trust our Docker image for generating a private key and open block. Do it on an airgapped machine and keep it on a paper wallet.","title":"Your Genesis account"},{"location":"images/docker-nano/#rpc-proxy-settings","text":"By default this container will enable RPC control and publish a custom service that acts as an RPC firewall giving you the ability to whitelist specific RPC calls and overide/add default values. The default proxy config is stored in /config/rpc-proxy.json : { \"port\":3000, \"httpsport\":3001, \"rpchost\":\"127.0.0.1\", \"rpcport\":7076, \"certfile\":\"/config/ssl/cert.crt\", \"keyfile\":\"/config/ssl/cert.key\", \"whitelist\":[ \"account_info\", \"account_history\", \"block_count\", \"block_info\", \"pending\", \"process\" ], \"overrides\":{ \"account-history\":{ \"count\":\"64\" }, \"pending\":{ \"count\":\"8\" } } } This should be a minimal amount of RPC access needed to run a local light wallet against this endpoint. If you plan on having your network users only run clientside light wallets (local blake2b block generation and block process call publishing) you should publically publish this port for access for both port 7076 and 7077. For functional light wallets on Https endpoints we will generate a self signed cert/key combo but you should add the ones associated with your domain. This will allow yours and other https hosted light wallets to hit your RPC endpoint clientside from the users web browser. Outside of potential https tunneling and actual object parsing (will remove duplicate keys) this is not a conventional API, it simply acts as a firewall and will send and return data just like a local RPC server would. The goal is to be compatible with any existing Nano software if the developers decide to add the ability to connect to alternative network endpoints. Our Proxy has not been audited by any security team and is provided as is, though we make the best effort to keep it simple and secure","title":"RPC Proxy settings"},{"location":"images/docker-nano/#node-configuration-via-environment","text":"Before you get started please review the configuration docs here We will pass the CLI_OPTIONS to the node, here is a run command example: -e CLI_OPTIONS='--config node.preconfigured_peers=[\"peering.yourhost.com\",\"peering.yourhost2.com\"] \\ --config node.enable_voting=true' There are many options to know here to run an actual live node especially peering and voting, again please review the docs if you plan to run something outside of a local setup.","title":"Node configuration via environment"},{"location":"images/docker-nano/#quickstart-guide","text":"Here we are going to cover the bare minimum commands needed to spinup a local payment network and wallet. First spinup your containers: docker run -d \\ --name node \\ -e CLI_OPTIONS='--config node.enable_voting=true' \\ -p 7076:3000 \\ --restart unless-stopped \\ linuxserver/nano docker run -d \\ --name=wallet \\ -p 80:80 \\ --restart unless-stopped \\ linuxserver/nano-wallet Then unlock the Genesis funds on the local node to allow it to confirm transactions: docker exec -it node bash root@f1df092971f0:/# curl -d '{ \"action\": \"wallet_create\" }' localhost:7076 { \"wallet\": \"A3D63F1B28AC68BCD9E0FF74278C7984A36841C803EF1A81DF92BCD6E3BB18F9\" } root@f1df092971f0:/# curl -d '{ \"action\": \"wallet_add\", \"wallet\": \"A3D63F1B28AC68BCD9E0FF74278C7984A36841C803EF1A81DF92BCD6E3BB18F9\", \"key\": \"0000000000000000000000000000000000000000000000000000000000000000\" }' localhost:7076 { \"account\": \"nano_18gmu6engqhgtjnppqam181o5nfhj4sdtgyhy36dan3jr9spt84rzwmktafc\" } Here we are using the default private key of 0000000000000000000000000000000000000000000000000000000000000000 for the image. Navigate to http://localhost/#/localhost and enter this key. You should be greeted by the genesis account wallet with 340.28 Million Nano. From here you can generate new wallets from the home screen and send/receive funds on your local network. Now you will be running an insecure centralized network with a single voting representative and a zero security private key using the commands above. To spinup a standard private or even public network you should read up on Nano's documentation HERE and continue reading the network design section below.","title":"Quickstart Guide"},{"location":"images/docker-nano/#network-design","text":"There are 4 main concepts to grasp from a network standpoint as far as types of endpoints. Before we get started here is a basic network diagram:","title":"Network design"},{"location":"images/docker-nano/#principle-nodes-and-voting-representatives","text":"Principle nodes are network representatives with the ability to vote due to having a certain threshold of funds unlocked on that node or pointed to that unlocked address. These nodes should be as airgapped as possible while still being an active 24/7 peer of the network. From a tecnical perspective this is a node with an account private key that either has the funds it needs itself or enough users have pointed their accounts to it as a representative. In a live and secure configuration to protect the funds of this account you would use an inactive private key account with the funds in it and locally sign a change of representative block to point to the always online representative. These nodes should never process external RPC calls even on a local network, the same rules go for any node with a local unlocked wallet. Keep in mind the key to the security of the network is that 51% of the funds are pointed to trusted representatives that will generally not argue about chain forks. In most deployments the best bet is to heavily centralize your voting nodes, this is unless you are intentionally trying to build a distributed ledger and security model like the main Nano live net. Achieving that will be a long and difficult task.","title":"Principle nodes and voting representatives"},{"location":"images/docker-nano/#network-peers","text":"To a normal user simply transacting on the network using off the shelf tools like a web wallet and web based block explorers is generally all that is required. They get a number in a ledger somewhere and are able to locally sign and publish blocks using their private key using your published RPC endpoints. For advanced users and just to generally make the network more robust, network operators should promote people running their own nodes. Using this image a network peer simply needs to run a docker run command with your pre-configured variables. IE given the generation example from above in the Your Genesis account section: docker create \\ --name=nano \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PEER_HOST=peering.mydomain.com \\ -e LIVE_GENESIS_PUB=2D057DF2EB09E918D3F95B5FCA69A5FD3EA406EF7D1810106324CD7A99FAA32D \\ -e LIVE_GENESIS_ACCOUNT=nano_1da7hqsgp4hb55bzkptzsbntdzbyni5gyzar41a88b8fhcezoasfjkgmyk5y \\ -e LIVE_GENESIS_WORK=7fd88e48684600b7 \\ -e LIVE_GENESIS_SIG=D1DF3A64BB43C131944401632215569A40AAE858ACF6CB59D5C77070E69DBF6435D93807877628A8B142DBF1AC4C562CD2F4CEBEB7D15486BDB7494A6146E007 \\ -p 8075:8075 \\ -p 7076:3000 \\ -p 7077:3001 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ linuxserver/nano When the container spins up it will reach out to the node to bootstrap it's local ledger from peering.mydomain.com . This node once fully synced will be able to run local RPC commands to plug into a wallet and default Nano node wallet commands for automated pocketing of transactions etc. It will also get a list of other peers on the network from it's initial network peering and start participating in your distributed cryptocurrency network.","title":"Network peers"},{"location":"images/docker-nano/#public-rpc-endpoints","text":"The key to users going to a webpage and managing the funds on your network is the ability to get blockchain information and publish new blocks to theirs. As mentioned earlier we bundle a basic firewall with a core set of RPC functions whitelisted that should be safe to expose publically. From a network design perspective these nodes should be purely what you would consider client peers and never have any wallets registered or private keys stored on them. Also for redundancy optmimally these peers should be run in a cluster behind a load balancer. For standard nodes you are building out a large P2P network, but in the case of the RPC endpoint and specifically the URL the end user is going to pass when accessing their wallet it is up to you to make that resilient.","title":"Public RPC endpoints"},{"location":"images/docker-nano/#clientside-javascript-wallet","text":"Currently we publish a pure javascript clientside wallet located here: https://github.com/linuxserver/nano-wallet It is designed to be run 100% clientside in any web browser and use public RPC endpoints to hook into any network and conduct transactions by locally signing then publishing the result. This can be hosted locally with any simple webserver and pointed to a locally run peer, but for full functionality we reccomend providing a public Https URL with these files along with plugging in legitamite SSL certificates into your RPC endpoints running on 7077.","title":"Clientside javascript wallet"},{"location":"images/docker-nano/#running-a-node-on-the-linuxserver-network","text":"We maintain our own network which users can get funds to transact on from our Discord server. If you would like to run a node on our network here is our Docker run command: docker create \\ --name=lsio-node \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PEER_HOST=peering.linuxserver.io \\ -e LIVE_GENESIS_PUB=79F2E157B5667F1C8B6CCB6DF691DAC032B85DEC39E231D29976DCED05F5B1BE \\ -e LIVE_GENESIS_ACCOUNT=nano_1yhkw7ducsmz5k7pskufytaxoi3kq3gyrgh489bbkxpwxn4zdefyn4rmrrkk \\ -e LIVE_GENESIS_WORK=c51204c6b69384cb \\ -e LIVE_GENESIS_SIG=90DDE7B4DC038811180FF5DDE8594F1774542A7AADE3DB71A57AA38A5AED42672E1E8D7ACFAC315BDB0EB5DCB542C610B9C49B2560AE575073855259AF065509 \\ -p 8075:8075 \\ -p 7076:3000 \\ -p 7077:3001 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ linuxserver/nano","title":"Running a node on the LinuxServer network"},{"location":"images/docker-nano/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nano/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nano: image: lscr.io/linuxserver/nano:latest container_name: nano environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PEER_HOST=localhost #optional - LIVE_GENESIS_PUB=GENESIS_PUBLIC #optional - LIVE_GENESIS_ACCOUNT=nano_xxxxxx #optional - LIVE_GENESIS_WORK=WORK_FOR_BLOCK #optional - LIVE_GENESIS_SIG=BLOCK_SIGNATURE #optional - CLI_OPTIONS=--config node.enable_voting=true #optional - LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z #optional volumes: - /path/to/data:/config ports: - 8075:8075 - 7076:3000 - 7077:3001 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nano/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nano \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PEER_HOST=localhost `#optional` \\ -e LIVE_GENESIS_PUB=GENESIS_PUBLIC `#optional` \\ -e LIVE_GENESIS_ACCOUNT=nano_xxxxxx `#optional` \\ -e LIVE_GENESIS_WORK=WORK_FOR_BLOCK `#optional` \\ -e LIVE_GENESIS_SIG=BLOCK_SIGNATURE `#optional` \\ -e CLI_OPTIONS=--config node.enable_voting=true `#optional` \\ -e LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z `#optional` \\ -p 8075:8075 \\ -p 7076:3000 \\ -p 7077:3001 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/nano:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nano/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nano/#ports-p","text":"Parameter Function 8075 Nano communication port 3000 RPC interface filtered through a proxy 3001 Https RPC interface filtered through a proxy","title":"Ports (-p)"},{"location":"images/docker-nano/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PEER_HOST=localhost Default peer host (can be overidden with an array by command line options) LIVE_GENESIS_PUB=GENESIS_PUBLIC Genesis block public key LIVE_GENESIS_ACCOUNT=nano_xxxxxx Genesis block account LIVE_GENESIS_WORK=WORK_FOR_BLOCK Genesis block proof of work LIVE_GENESIS_SIG=BLOCK_SIGNATURE Genesis block signature CLI_OPTIONS=--config node.enable_voting=true Node run command cli args LMDB_BOOTSTRAP_URL=http://example.com/Nano_64_version_20.7z HTTP/HTTPS endpoint to download a 7z file with the data.ldb to bootstrap to this node","title":"Environment Variables (-e)"},{"location":"images/docker-nano/#volume-mappings-v","text":"Volume Function /config Main storage for config and blockchain","title":"Volume Mappings (-v)"},{"location":"images/docker-nano/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nano/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nano/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nano/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nano/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nano/#support-info","text":"Shell access whilst the container is running: docker exec -it nano /bin/bash To monitor the logs of the container in realtime: docker logs -f nano Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nano Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nano:latest","title":"Support Info"},{"location":"images/docker-nano/#versions","text":"02.06.20: - Rebase to Alpine 3.12. 28.05.20: - Add beta tag. 17.05.20: - Initial Release.","title":"Versions"},{"location":"images/docker-netbootxyz/","text":"linuxserver/netbootxyz Netbootxyz is a way to PXE boot various operating system installers or utilities from one place within the BIOS without the need of having to go retrieve the media to run the tool. iPXE is used to provide a user friendly menu from within the BIOS that lets you easily choose the operating system you want along with any specific types of versions or bootable flags. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/netbootxyz:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Web application for full self hosting tftp \u2705 TFTP server only with NETBOOT.XYZ boot files Application Setup To use this image you need an existing DHCP server where you can set this TFTP server as your DHCP boot destination. This image does not contain a DHCP server nor do we aim to support one in the future. This is simply a TFTP server hosting the latest IPXE kernel builds from netboot.xyz . If you are interested in their project and lack the ability to setup a DHCP server to boot this payload they also have USB stick images you can use available on their downloads page . Router Setup Examples PFSense Services -> DHCP Server Set both the option for \"TFTP Server\" and the options under the Advanced \"Network Booting\" section. * check enable * Next server- IP used for TFTP Server * Default BIOS file name- netboot.xyz.kpxe * UEFI 32 bit file name- netboot.xyz.efi * UEFI 64 bit file name- netboot.xyz.efi OPNsense Services -> DHCP Server Under the Advanced \"Network Booting\" section. * check enable * Next server- IP of docker host * Default BIOS file name- netboot.xyz.kpxe * UEFI 32 bit file name- netboot.xyz.efi * UEFI 64 bit file name- netboot.xyz.efi Unifi Security Gateway (with the controller) Networks -> LAN (or the network you want to boot from) -> ADVANCED DHCP OPTIONS * tick Enable network boot * Server- YOURSERVERIP * Filename- netboot.xyz.kpxe EdgeOS/VyOS Connect via SSH configure set service dhcp-server use-dnsmasq enable set service dns forwarding options \"dhcp-match=set:bios,60,PXEClient:Arch:00000\" set service dns forwarding options \"dhcp-boot=tag:bios,netboot.xyz.kpxe,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi32,60,PXEClient:Arch:00002\" set service dns forwarding options \"dhcp-boot=tag:efi32,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi32-1,60,PXEClient:Arch:00006\" set service dns forwarding options \"dhcp-boot=tag:efi32-1,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi64,60,PXEClient:Arch:00007\" set service dns forwarding options \"dhcp-boot=tag:efi64,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi64-1,60,PXEClient:Arch:00008\" set service dns forwarding options \"dhcp-boot=tag:efi64-1,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi64-2,60,PXEClient:Arch:00009\" set service dns forwarding options \"dhcp-boot=tag:efi64-2,netboot.xyz.efi,,SERVERIP\" commit; save DD-WRT Administration -> Services -> Additional DNSMasq Options Set the following lines: dhcp-match=set:bios,60,PXEClient:Arch:00000 dhcp-boot=tag:bios,netboot.xyz.kpxe,,YOURSERVERIP dhcp-match=set:efi32,60,PXEClient:Arch:00002 dhcp-boot=tag:efi32,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi32-1,60,PXEClient:Arch:00006 dhcp-boot=tag:efi32-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64,60,PXEClient:Arch:00007 dhcp-boot=tag:efi64,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-1,60,PXEClient:Arch:00008 dhcp-boot=tag:efi64-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-2,60,PXEClient:Arch:00009 dhcp-boot=tag:efi64-2,netboot.xyz.efi,,YOURSERVERIP Tomato Advanced -> DHCP/DNS -> Dnsmasq Custom configuration Set the following lines: dhcp-match=set:bios,60,PXEClient:Arch:00000 dhcp-boot=tag:bios,netboot.xyz.kpxe,,YOURSERVERIP dhcp-match=set:efi32,60,PXEClient:Arch:00002 dhcp-boot=tag:efi32,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi32-1,60,PXEClient:Arch:00006 dhcp-boot=tag:efi32-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64,60,PXEClient:Arch:00007 dhcp-boot=tag:efi64,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-1,60,PXEClient:Arch:00008 dhcp-boot=tag:efi64-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-2,60,PXEClient:Arch:00009 dhcp-boot=tag:efi64-2,netboot.xyz.efi,,YOURSERVERIP OpenWRT uci set dhcp.@dnsmasq[0].dhcp_match=set:bios,60,PXEClient:Arch:00000 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:bios,netboot.xyz.kpxe,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi32,60,PXEClient:Arch:00002 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi32,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi32-1,60,PXEClient:Arch:00006 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi32-1,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi64,60,PXEClient:Arch:00007 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi64,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi64-1,60,PXEClient:Arch:00008 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi64-1,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi64-2,60,PXEClient:Arch:00009 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi64-2,netboot.xyz.efi,,YOURSERVERIP uci commit /etc/init.d/dnsmasq restart Microsoft Server DHCP Run the DHCP program Under Scope/Scope Options check option 066 and enter the FQDN or IP of your TFTP boot server check option 067 and enter one of the following bootfile names: Default BIOS file name- netboot.xyz.kpxe UEFI 32 bit file name- netboot.xyz.efi UEFI 64 bit file name- netboot.xyz.efi Anything else from a router standpoint is a crapshoot for supporting Dnsmasq options or proprietary PXE boot options, check Google for support (try your exact router model number with 'pxe boot') or look into setting up your own DHCP server in Linux. This image also contains netboot.xyz.efi which can be used to boot using UEFI network boot. The UEFI boot and menu will have limited functionality if you choose to use it. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: netbootxyz: image: lscr.io/linuxserver/netbootxyz:latest container_name: netbootxyz environment: - PUID=1000 - PGID=1000 - MENU_VERSION=1.9.9 #optional - PORT_RANGE=30000:30010 #optional - SUBFOLDER=/ #optional volumes: - /path/to/config:/config - /path/to/assets:/assets #optional ports: - 3000:3000 - 69:69/udp - 8080:80 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=netbootxyz \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MENU_VERSION=1.9.9 `#optional` \\ -e PORT_RANGE=30000:30010 `#optional` \\ -e SUBFOLDER=/ `#optional` \\ -p 3000:3000 \\ -p 69:69/udp \\ -p 8080:80 `#optional` \\ -v /path/to/config:/config \\ -v /path/to/assets:/assets `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/netbootxyz:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Web configuration interface. 69/udp TFTP Port. 80 NGINX server for hosting assets. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation MENU_VERSION=1.9.9 Specify a specific version of boot files you want to use from NETBOOT.XYZ (unset pulls latest) PORT_RANGE=30000:30010 Specify the port range tftp will use for data transfers (see Wikipedia) SUBFOLDER=/ Specify a sobfolder if running this behind a reverse proxy (IE /proxy/) Volume Mappings ( -v ) Volume Function /config Storage for boot menu files and web application config /assets Storage for NETBOOT.XYZ bootable assets (live CDs and other files) Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it netbootxyz /bin/bash To monitor the logs of the container in realtime: docker logs -f netbootxyz Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' netbootxyz Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/netbootxyz:latest Versions 12.10.22: - Rebasing to Alpine 3.16, migrate to s6v3. 29.04.21: - Rebasing to alpine 3.13, add SUBFOLDER env variable. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 13.12.19: - Swapping latest tag over to webapp stack for management. 10.12.19: - Adding tftp branch to provide tftp only option to latest users. 22.10.19: - Initial release.","title":"netbootxyz"},{"location":"images/docker-netbootxyz/#linuxservernetbootxyz","text":"Netbootxyz is a way to PXE boot various operating system installers or utilities from one place within the BIOS without the need of having to go retrieve the media to run the tool. iPXE is used to provide a user friendly menu from within the BIOS that lets you easily choose the operating system you want along with any specific types of versions or bootable flags.","title":"linuxserver/netbootxyz"},{"location":"images/docker-netbootxyz/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/netbootxyz:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-netbootxyz/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Web application for full self hosting tftp \u2705 TFTP server only with NETBOOT.XYZ boot files","title":"Version Tags"},{"location":"images/docker-netbootxyz/#application-setup","text":"To use this image you need an existing DHCP server where you can set this TFTP server as your DHCP boot destination. This image does not contain a DHCP server nor do we aim to support one in the future. This is simply a TFTP server hosting the latest IPXE kernel builds from netboot.xyz . If you are interested in their project and lack the ability to setup a DHCP server to boot this payload they also have USB stick images you can use available on their downloads page .","title":"Application Setup"},{"location":"images/docker-netbootxyz/#router-setup-examples","text":"","title":"Router Setup Examples"},{"location":"images/docker-netbootxyz/#pfsense","text":"Services -> DHCP Server Set both the option for \"TFTP Server\" and the options under the Advanced \"Network Booting\" section. * check enable * Next server- IP used for TFTP Server * Default BIOS file name- netboot.xyz.kpxe * UEFI 32 bit file name- netboot.xyz.efi * UEFI 64 bit file name- netboot.xyz.efi","title":"PFSense"},{"location":"images/docker-netbootxyz/#opnsense","text":"Services -> DHCP Server Under the Advanced \"Network Booting\" section. * check enable * Next server- IP of docker host * Default BIOS file name- netboot.xyz.kpxe * UEFI 32 bit file name- netboot.xyz.efi * UEFI 64 bit file name- netboot.xyz.efi","title":"OPNsense"},{"location":"images/docker-netbootxyz/#unifi-security-gateway-with-the-controller","text":"Networks -> LAN (or the network you want to boot from) -> ADVANCED DHCP OPTIONS * tick Enable network boot * Server- YOURSERVERIP * Filename- netboot.xyz.kpxe","title":"Unifi Security Gateway (with the controller)"},{"location":"images/docker-netbootxyz/#edgeosvyos","text":"Connect via SSH configure set service dhcp-server use-dnsmasq enable set service dns forwarding options \"dhcp-match=set:bios,60,PXEClient:Arch:00000\" set service dns forwarding options \"dhcp-boot=tag:bios,netboot.xyz.kpxe,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi32,60,PXEClient:Arch:00002\" set service dns forwarding options \"dhcp-boot=tag:efi32,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi32-1,60,PXEClient:Arch:00006\" set service dns forwarding options \"dhcp-boot=tag:efi32-1,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi64,60,PXEClient:Arch:00007\" set service dns forwarding options \"dhcp-boot=tag:efi64,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi64-1,60,PXEClient:Arch:00008\" set service dns forwarding options \"dhcp-boot=tag:efi64-1,netboot.xyz.efi,,SERVERIP\" set service dns forwarding options \"dhcp-match=set:efi64-2,60,PXEClient:Arch:00009\" set service dns forwarding options \"dhcp-boot=tag:efi64-2,netboot.xyz.efi,,SERVERIP\" commit; save","title":"EdgeOS/VyOS"},{"location":"images/docker-netbootxyz/#dd-wrt","text":"Administration -> Services -> Additional DNSMasq Options Set the following lines: dhcp-match=set:bios,60,PXEClient:Arch:00000 dhcp-boot=tag:bios,netboot.xyz.kpxe,,YOURSERVERIP dhcp-match=set:efi32,60,PXEClient:Arch:00002 dhcp-boot=tag:efi32,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi32-1,60,PXEClient:Arch:00006 dhcp-boot=tag:efi32-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64,60,PXEClient:Arch:00007 dhcp-boot=tag:efi64,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-1,60,PXEClient:Arch:00008 dhcp-boot=tag:efi64-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-2,60,PXEClient:Arch:00009 dhcp-boot=tag:efi64-2,netboot.xyz.efi,,YOURSERVERIP","title":"DD-WRT"},{"location":"images/docker-netbootxyz/#tomato","text":"Advanced -> DHCP/DNS -> Dnsmasq Custom configuration Set the following lines: dhcp-match=set:bios,60,PXEClient:Arch:00000 dhcp-boot=tag:bios,netboot.xyz.kpxe,,YOURSERVERIP dhcp-match=set:efi32,60,PXEClient:Arch:00002 dhcp-boot=tag:efi32,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi32-1,60,PXEClient:Arch:00006 dhcp-boot=tag:efi32-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64,60,PXEClient:Arch:00007 dhcp-boot=tag:efi64,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-1,60,PXEClient:Arch:00008 dhcp-boot=tag:efi64-1,netboot.xyz.efi,,YOURSERVERIP dhcp-match=set:efi64-2,60,PXEClient:Arch:00009 dhcp-boot=tag:efi64-2,netboot.xyz.efi,,YOURSERVERIP","title":"Tomato"},{"location":"images/docker-netbootxyz/#openwrt","text":"uci set dhcp.@dnsmasq[0].dhcp_match=set:bios,60,PXEClient:Arch:00000 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:bios,netboot.xyz.kpxe,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi32,60,PXEClient:Arch:00002 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi32,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi32-1,60,PXEClient:Arch:00006 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi32-1,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi64,60,PXEClient:Arch:00007 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi64,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi64-1,60,PXEClient:Arch:00008 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi64-1,netboot.xyz.efi,,YOURSERVERIP uci set dhcp.@dnsmasq[0].dhcp_match=set:efi64-2,60,PXEClient:Arch:00009 uci set dhcp.@dnsmasq[0].dhcp_boot=tag:efi64-2,netboot.xyz.efi,,YOURSERVERIP uci commit /etc/init.d/dnsmasq restart","title":"OpenWRT"},{"location":"images/docker-netbootxyz/#microsoft-server-dhcp","text":"Run the DHCP program Under Scope/Scope Options check option 066 and enter the FQDN or IP of your TFTP boot server check option 067 and enter one of the following bootfile names: Default BIOS file name- netboot.xyz.kpxe UEFI 32 bit file name- netboot.xyz.efi UEFI 64 bit file name- netboot.xyz.efi Anything else from a router standpoint is a crapshoot for supporting Dnsmasq options or proprietary PXE boot options, check Google for support (try your exact router model number with 'pxe boot') or look into setting up your own DHCP server in Linux. This image also contains netboot.xyz.efi which can be used to boot using UEFI network boot. The UEFI boot and menu will have limited functionality if you choose to use it.","title":"Microsoft Server DHCP"},{"location":"images/docker-netbootxyz/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-netbootxyz/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: netbootxyz: image: lscr.io/linuxserver/netbootxyz:latest container_name: netbootxyz environment: - PUID=1000 - PGID=1000 - MENU_VERSION=1.9.9 #optional - PORT_RANGE=30000:30010 #optional - SUBFOLDER=/ #optional volumes: - /path/to/config:/config - /path/to/assets:/assets #optional ports: - 3000:3000 - 69:69/udp - 8080:80 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-netbootxyz/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=netbootxyz \\ -e PUID=1000 \\ -e PGID=1000 \\ -e MENU_VERSION=1.9.9 `#optional` \\ -e PORT_RANGE=30000:30010 `#optional` \\ -e SUBFOLDER=/ `#optional` \\ -p 3000:3000 \\ -p 69:69/udp \\ -p 8080:80 `#optional` \\ -v /path/to/config:/config \\ -v /path/to/assets:/assets `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/netbootxyz:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-netbootxyz/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-netbootxyz/#ports-p","text":"Parameter Function 3000 Web configuration interface. 69/udp TFTP Port. 80 NGINX server for hosting assets.","title":"Ports (-p)"},{"location":"images/docker-netbootxyz/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation MENU_VERSION=1.9.9 Specify a specific version of boot files you want to use from NETBOOT.XYZ (unset pulls latest) PORT_RANGE=30000:30010 Specify the port range tftp will use for data transfers (see Wikipedia) SUBFOLDER=/ Specify a sobfolder if running this behind a reverse proxy (IE /proxy/)","title":"Environment Variables (-e)"},{"location":"images/docker-netbootxyz/#volume-mappings-v","text":"Volume Function /config Storage for boot menu files and web application config /assets Storage for NETBOOT.XYZ bootable assets (live CDs and other files)","title":"Volume Mappings (-v)"},{"location":"images/docker-netbootxyz/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-netbootxyz/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-netbootxyz/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-netbootxyz/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-netbootxyz/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-netbootxyz/#support-info","text":"Shell access whilst the container is running: docker exec -it netbootxyz /bin/bash To monitor the logs of the container in realtime: docker logs -f netbootxyz Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' netbootxyz Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/netbootxyz:latest","title":"Support Info"},{"location":"images/docker-netbootxyz/#versions","text":"12.10.22: - Rebasing to Alpine 3.16, migrate to s6v3. 29.04.21: - Rebasing to alpine 3.13, add SUBFOLDER env variable. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 13.12.19: - Swapping latest tag over to webapp stack for management. 10.12.19: - Adding tftp branch to provide tftp only option to latest users. 22.10.19: - Initial release.","title":"Versions"},{"location":"images/docker-netbox/","text":"linuxserver/netbox Netbox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers. It is intended to function as a domain-specific source of truth for network operations. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/netbox:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Netbox requires a postgres database and a redis instance. Access the WebUI at :8000. For more information, check out NetBox . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: netbox: image: lscr.io/linuxserver/netbox:latest container_name: netbox environment: - PUID=1000 - PGID=1000 - TZ= - SUPERUSER_EMAIL= - SUPERUSER_PASSWORD= - ALLOWED_HOST= - DB_NAME= - DB_USER= - DB_PASSWORD= - DB_HOST= - DB_PORT= - REDIS_HOST= - REDIS_PORT= - REDIS_PASSWORD= - REDIS_DB_TASK= - REDIS_DB_CACHE= - BASE_PATH= #optional - REMOTE_AUTH_ENABLED= #optional - REMOTE_AUTH_BACKEND= #optional - REMOTE_AUTH_HEADER= #optional - REMOTE_AUTH_AUTO_CREATE_USER= #optional - REMOTE_AUTH_DEFAULT_GROUPS= #optional - REMOTE_AUTH_DEFAULT_PERMISSIONS= #optional volumes: - :/config ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=netbox \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ= \\ -e SUPERUSER_EMAIL= \\ -e SUPERUSER_PASSWORD= \\ -e ALLOWED_HOST= \\ -e DB_NAME= \\ -e DB_USER= \\ -e DB_PASSWORD= \\ -e DB_HOST= \\ -e DB_PORT= \\ -e REDIS_HOST= \\ -e REDIS_PORT= \\ -e REDIS_PASSWORD= \\ -e REDIS_DB_TASK= \\ -e REDIS_DB_CACHE= \\ -e BASE_PATH= `#optional` \\ -e REMOTE_AUTH_ENABLED= `#optional` \\ -e REMOTE_AUTH_BACKEND= `#optional` \\ -e REMOTE_AUTH_HEADER= `#optional` \\ -e REMOTE_AUTH_AUTO_CREATE_USER= `#optional` \\ -e REMOTE_AUTH_DEFAULT_GROUPS= `#optional` \\ -e REMOTE_AUTH_DEFAULT_PERMISSIONS= `#optional` \\ -p 8000:8000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/netbox:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 will map the container's port 8000 to port 8000 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ= Timezone (i.e., America/New_York) SUPERUSER_EMAIL= Email address for admin account SUPERUSER_PASSWORD= Password for admin account ALLOWED_HOST= The hostname you will use to access the app (i.e., netbox.example.com) DB_NAME= Database name (default: netbox) DB_USER= Database user DB_PASSWORD= Database password DB_HOST= Database host (default: postgres) DB_PORT= Database port (defaul: 5432) REDIS_HOST= Redis host (default: redis) REDIS_PORT= Redis port number (default: 6379) REDIS_PASSWORD= Redis password (default: none) REDIS_DB_TASK= Redis database ID for tasks (default: 0) REDIS_DB_CACHE= Redis database ID for caching (default: 1) BASE_PATH= The path you will use to access the app (i.e., /netbox, optional, default: none) REMOTE_AUTH_ENABLED= Enable remote authentication (optional, default: False) REMOTE_AUTH_BACKEND= Python path to the custom Django authentication backend to use for external user authentication (optional, default: netbox.authentication.RemoteUserBackend) REMOTE_AUTH_HEADER= Name of the HTTP header which informs NetBox of the currently authenticated user. (optional, default: HTTP_REMOTE_USER) REMOTE_AUTH_AUTO_CREATE_USER= If true, NetBox will automatically create local accounts for users authenticated via a remote service (optional, default: False) REMOTE_AUTH_DEFAULT_GROUPS= The list of groups to assign a new user account when created using remote authentication (optional, default: []) REMOTE_AUTH_DEFAULT_PERMISSIONS= A mapping of permissions to assign a new user account when created using remote authentication (optional, default: {}) Volume Mappings ( -v ) Volume Function /config config directory volume mapping Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it netbox /bin/bash To monitor the logs of the container in realtime: docker logs -f netbox Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' netbox Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/netbox:latest Versions 02.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 01.08.22: - Remove py3-pillow, add tiff to fix deps. 26.07.22: - Add py3-pillow package back on arm to fix build issue. 10.12.21: - Remove py3-pillow package to fix dependency issue with 3.2.0. 10.12.21: - Rebase to Alpine 3.15. 26.04.21: - Added Redis database environment variables. 03.02.21: - Added remote authentication environment variables. 02.01.21: - Added BASE_PATH environment variable. 23.08.20: - Initial Release.","title":"netbox"},{"location":"images/docker-netbox/#linuxservernetbox","text":"Netbox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers. It is intended to function as a domain-specific source of truth for network operations.","title":"linuxserver/netbox"},{"location":"images/docker-netbox/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/netbox:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-netbox/#application-setup","text":"Netbox requires a postgres database and a redis instance. Access the WebUI at :8000. For more information, check out NetBox .","title":"Application Setup"},{"location":"images/docker-netbox/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-netbox/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: netbox: image: lscr.io/linuxserver/netbox:latest container_name: netbox environment: - PUID=1000 - PGID=1000 - TZ= - SUPERUSER_EMAIL= - SUPERUSER_PASSWORD= - ALLOWED_HOST= - DB_NAME= - DB_USER= - DB_PASSWORD= - DB_HOST= - DB_PORT= - REDIS_HOST= - REDIS_PORT= - REDIS_PASSWORD= - REDIS_DB_TASK= - REDIS_DB_CACHE= - BASE_PATH= #optional - REMOTE_AUTH_ENABLED= #optional - REMOTE_AUTH_BACKEND= #optional - REMOTE_AUTH_HEADER= #optional - REMOTE_AUTH_AUTO_CREATE_USER= #optional - REMOTE_AUTH_DEFAULT_GROUPS= #optional - REMOTE_AUTH_DEFAULT_PERMISSIONS= #optional volumes: - :/config ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-netbox/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=netbox \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ= \\ -e SUPERUSER_EMAIL= \\ -e SUPERUSER_PASSWORD= \\ -e ALLOWED_HOST= \\ -e DB_NAME= \\ -e DB_USER= \\ -e DB_PASSWORD= \\ -e DB_HOST= \\ -e DB_PORT= \\ -e REDIS_HOST= \\ -e REDIS_PORT= \\ -e REDIS_PASSWORD= \\ -e REDIS_DB_TASK= \\ -e REDIS_DB_CACHE= \\ -e BASE_PATH= `#optional` \\ -e REMOTE_AUTH_ENABLED= `#optional` \\ -e REMOTE_AUTH_BACKEND= `#optional` \\ -e REMOTE_AUTH_HEADER= `#optional` \\ -e REMOTE_AUTH_AUTO_CREATE_USER= `#optional` \\ -e REMOTE_AUTH_DEFAULT_GROUPS= `#optional` \\ -e REMOTE_AUTH_DEFAULT_PERMISSIONS= `#optional` \\ -p 8000:8000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/netbox:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-netbox/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-netbox/#ports-p","text":"Parameter Function 8000 will map the container's port 8000 to port 8000 on the host","title":"Ports (-p)"},{"location":"images/docker-netbox/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ= Timezone (i.e., America/New_York) SUPERUSER_EMAIL= Email address for admin account SUPERUSER_PASSWORD= Password for admin account ALLOWED_HOST= The hostname you will use to access the app (i.e., netbox.example.com) DB_NAME= Database name (default: netbox) DB_USER= Database user DB_PASSWORD= Database password DB_HOST= Database host (default: postgres) DB_PORT= Database port (defaul: 5432) REDIS_HOST= Redis host (default: redis) REDIS_PORT= Redis port number (default: 6379) REDIS_PASSWORD= Redis password (default: none) REDIS_DB_TASK= Redis database ID for tasks (default: 0) REDIS_DB_CACHE= Redis database ID for caching (default: 1) BASE_PATH= The path you will use to access the app (i.e., /netbox, optional, default: none) REMOTE_AUTH_ENABLED= Enable remote authentication (optional, default: False) REMOTE_AUTH_BACKEND= Python path to the custom Django authentication backend to use for external user authentication (optional, default: netbox.authentication.RemoteUserBackend) REMOTE_AUTH_HEADER= Name of the HTTP header which informs NetBox of the currently authenticated user. (optional, default: HTTP_REMOTE_USER) REMOTE_AUTH_AUTO_CREATE_USER= If true, NetBox will automatically create local accounts for users authenticated via a remote service (optional, default: False) REMOTE_AUTH_DEFAULT_GROUPS= The list of groups to assign a new user account when created using remote authentication (optional, default: []) REMOTE_AUTH_DEFAULT_PERMISSIONS= A mapping of permissions to assign a new user account when created using remote authentication (optional, default: {})","title":"Environment Variables (-e)"},{"location":"images/docker-netbox/#volume-mappings-v","text":"Volume Function /config config directory volume mapping","title":"Volume Mappings (-v)"},{"location":"images/docker-netbox/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-netbox/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-netbox/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-netbox/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-netbox/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-netbox/#support-info","text":"Shell access whilst the container is running: docker exec -it netbox /bin/bash To monitor the logs of the container in realtime: docker logs -f netbox Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' netbox Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/netbox:latest","title":"Support Info"},{"location":"images/docker-netbox/#versions","text":"02.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 01.08.22: - Remove py3-pillow, add tiff to fix deps. 26.07.22: - Add py3-pillow package back on arm to fix build issue. 10.12.21: - Remove py3-pillow package to fix dependency issue with 3.2.0. 10.12.21: - Rebase to Alpine 3.15. 26.04.21: - Added Redis database environment variables. 03.02.21: - Added remote authentication environment variables. 02.01.21: - Added BASE_PATH environment variable. 23.08.20: - Initial Release.","title":"Versions"},{"location":"images/docker-nextcloud/","text":"linuxserver/nextcloud Nextcloud gives you access to all your files wherever you are. Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nextcloud:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Nextcloud releases Application Setup Access the webui at https://:443 , for more information check out Nextcloud . Docker image update and recreation of container alone won't update nextcloud version. In order to update nextcloud version, you have two options, firstly make sure you are using the latest docker image,then either Perform the in app gui update. Use the CLI version by running docker exec -it nextcloud updater.phar (Both of these are described here ) Note: Both occ and updater.phar can be run without prepending with sudo -u abc php or sudo -u www-data php If you are not customizing our default nginx configuration you will need to remove the file: /config/nginx/site-confs/default.conf Then restart the container to replace it with the latest one. Collaborative Editing Nextcloud's built-in collaborative editing packages (Collabora/CODE and OnlyOffice) only work on x86_64 systems with glibc, and therefore they are not compatible with our images. You should create separate containers for them and set them up in Nextcloud with their respective connector addons. If (auto) installed, those built-in packages may cause instability and should be removed. Strict reverse proxies This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nextcloud: image: lscr.io/linuxserver/nextcloud:latest container_name: nextcloud environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata:/config - /path/to/data:/data ports: - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nextcloud \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 443:443 \\ -v /path/to/appdata:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/nextcloud:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 443 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Nextcloud configs. /data Your personal data. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nextcloud /bin/bash To monitor the logs of the container in realtime: docker logs -f nextcloud Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nextcloud Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nextcloud:latest Versions 10.10.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 30.09.22: - Disabled output_buffering as per [nextcloud docs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html 21.05.22: - Update version check endpoint. 28.04.22: - Increase OPCache interned strings buffered setting to 16. 14.04.22: - Nginx default site config updated for v23 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). Fix LDAP connection. 11.09.21: - Rebasing to alpine 3.14 21.03.21: - Publish php8 tag for testing. 25.02.21: - Nginx default site config updated for v21 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 21.01.21: - Fix php iconv (was breaking the mail addon). If installed, attempt to remove broken CODE Server app during startup. 20.01.21: - Increase php fcgi timeout to prevent 504 Gateway timeout errors (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 16.01.21: - Rebasing to alpine 3.13. Users with issues on 32-bit arm, see this article . 12.08.20: - Various updates to default site config, including added support for webfinger (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 03.06.20: - Rebasing to alpine 3.12 03.06.20: - Add php7-bcmath and php7-fileinfo 31.05.20: - Add aliases for occ and updater.phar 31.03.20: - Allow crontab to be user customized, fix logrotate. 17.01.20: - Updated php.ini defaults and site config, including an optional HSTS directive (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 19.12.19: - Rebasing to alpine 3.11. 18.11.19: - Nginx default site config updated for v17 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 28.10.19: - Change cronjob to run every 5 minutes. 24.10.19: - Nginx default site config updated due to CVE-2019-11043 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 14.07.19: - Download nextcloud during build time. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 27.02.19: - Updating base nginx config to sync up with v15 requirements. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 25.01.19: - Add php7-phar for occ upgrades. 05.09.18: - Rebase to alpine 3.8. 11.06.18: - Use latest rather than specific version for initial install. 26.04.18: - Bump default install to 13.0.1. 06.02.18: - Bump default install to 13.0.0. 26.01.18: - Rebase to alpine 3.7, bump default install to 12.0.5. 12.12.17: - Bump default install to 12.0.4, fix continuation lines. 15.10.17: - Sed php.ini for opcache requirements in newer nextcloud versions. 20.09.17: - Bump default install to 12.0.3. 19.08.17: - Bump default install to 12.0.2. 25.05.17: - Rebase to alpine 3.6. 22.05.17: - Update to nextcloud 12.0, adding required dependecies and note about commenting out SAMEORIGIN; line. 03.05.17: - Use community repo of memcache. 07.03.17: - Release into main repository and upgrade to php7 and Alpine 3.5.","title":"nextcloud"},{"location":"images/docker-nextcloud/#linuxservernextcloud","text":"Nextcloud gives you access to all your files wherever you are. Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home.","title":"linuxserver/nextcloud"},{"location":"images/docker-nextcloud/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nextcloud:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-nextcloud/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Nextcloud releases","title":"Version Tags"},{"location":"images/docker-nextcloud/#application-setup","text":"Access the webui at https://:443 , for more information check out Nextcloud . Docker image update and recreation of container alone won't update nextcloud version. In order to update nextcloud version, you have two options, firstly make sure you are using the latest docker image,then either Perform the in app gui update. Use the CLI version by running docker exec -it nextcloud updater.phar (Both of these are described here ) Note: Both occ and updater.phar can be run without prepending with sudo -u abc php or sudo -u www-data php If you are not customizing our default nginx configuration you will need to remove the file: /config/nginx/site-confs/default.conf Then restart the container to replace it with the latest one.","title":"Application Setup"},{"location":"images/docker-nextcloud/#collaborative-editing","text":"Nextcloud's built-in collaborative editing packages (Collabora/CODE and OnlyOffice) only work on x86_64 systems with glibc, and therefore they are not compatible with our images. You should create separate containers for them and set them up in Nextcloud with their respective connector addons. If (auto) installed, those built-in packages may cause instability and should be removed.","title":"Collaborative Editing"},{"location":"images/docker-nextcloud/#strict-reverse-proxies","text":"This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-nextcloud/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nextcloud/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nextcloud: image: lscr.io/linuxserver/nextcloud:latest container_name: nextcloud environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata:/config - /path/to/data:/data ports: - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nextcloud/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nextcloud \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 443:443 \\ -v /path/to/appdata:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/nextcloud:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nextcloud/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nextcloud/#ports-p","text":"Parameter Function 443 WebUI","title":"Ports (-p)"},{"location":"images/docker-nextcloud/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-nextcloud/#volume-mappings-v","text":"Volume Function /config Nextcloud configs. /data Your personal data.","title":"Volume Mappings (-v)"},{"location":"images/docker-nextcloud/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nextcloud/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nextcloud/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nextcloud/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nextcloud/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nextcloud/#support-info","text":"Shell access whilst the container is running: docker exec -it nextcloud /bin/bash To monitor the logs of the container in realtime: docker logs -f nextcloud Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nextcloud Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nextcloud:latest","title":"Support Info"},{"location":"images/docker-nextcloud/#versions","text":"10.10.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 30.09.22: - Disabled output_buffering as per [nextcloud docs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html 21.05.22: - Update version check endpoint. 28.04.22: - Increase OPCache interned strings buffered setting to 16. 14.04.22: - Nginx default site config updated for v23 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). Fix LDAP connection. 11.09.21: - Rebasing to alpine 3.14 21.03.21: - Publish php8 tag for testing. 25.02.21: - Nginx default site config updated for v21 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 21.01.21: - Fix php iconv (was breaking the mail addon). If installed, attempt to remove broken CODE Server app during startup. 20.01.21: - Increase php fcgi timeout to prevent 504 Gateway timeout errors (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 16.01.21: - Rebasing to alpine 3.13. Users with issues on 32-bit arm, see this article . 12.08.20: - Various updates to default site config, including added support for webfinger (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 03.06.20: - Rebasing to alpine 3.12 03.06.20: - Add php7-bcmath and php7-fileinfo 31.05.20: - Add aliases for occ and updater.phar 31.03.20: - Allow crontab to be user customized, fix logrotate. 17.01.20: - Updated php.ini defaults and site config, including an optional HSTS directive (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 19.12.19: - Rebasing to alpine 3.11. 18.11.19: - Nginx default site config updated for v17 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 28.10.19: - Change cronjob to run every 5 minutes. 24.10.19: - Nginx default site config updated due to CVE-2019-11043 (existing users should delete /config/nginx/site-confs/default.conf and restart the container). 14.07.19: - Download nextcloud during build time. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 27.02.19: - Updating base nginx config to sync up with v15 requirements. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 25.01.19: - Add php7-phar for occ upgrades. 05.09.18: - Rebase to alpine 3.8. 11.06.18: - Use latest rather than specific version for initial install. 26.04.18: - Bump default install to 13.0.1. 06.02.18: - Bump default install to 13.0.0. 26.01.18: - Rebase to alpine 3.7, bump default install to 12.0.5. 12.12.17: - Bump default install to 12.0.4, fix continuation lines. 15.10.17: - Sed php.ini for opcache requirements in newer nextcloud versions. 20.09.17: - Bump default install to 12.0.3. 19.08.17: - Bump default install to 12.0.2. 25.05.17: - Rebase to alpine 3.6. 22.05.17: - Update to nextcloud 12.0, adding required dependecies and note about commenting out SAMEORIGIN; line. 03.05.17: - Use community repo of memcache. 07.03.17: - Release into main repository and upgrade to php7 and Alpine 3.5.","title":"Versions"},{"location":"images/docker-nginx/","text":"linuxserver/nginx Nginx is a simple webserver with php support. The config files reside in /config for easy user customization. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nginx:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Add your web files to /config/www for hosting. Modify the nginx, php and site config files under /config as needed Protip: This container is best combined with a sql server, e.g. mariadb Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nginx: image: lscr.io/linuxserver/nginx:latest container_name: nginx environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nginx \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/nginx:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http 443 https Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Contains your www content and all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nginx /bin/bash To monitor the logs of the container in realtime: docker logs -f nginx Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nginx Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nginx:latest Versions 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 22.05.22: - Install nginx version from 3.14. 01.07.21: - Rebasing to alpine 3.14. 24.06.21: - Update default nginx conf folder. 12.04.21: - Add php7-gmp and php7-pecl-mailparse. 13.02.21: - Remove php7-pecl-imagick (it now installs the full imagemagick with too much crud). Users can install it via this docker mod . 09.02.21: - Rebasing to alpine 3.13. Add nginx mods brotli and dav-ext. Remove nginx mods lua and lua-upstream (due to regression over the last couple of years). 08.09.20: - Add php7-xsl. 01.06.20: - Rebasing to alpine 3.12. 18.04.20: - Fix unwanted shutdown of the container. 11.03.20: - Add php7-sodium. 18.02.20: - Add geoip2, suppress lua warning. 19.12.19: - Rebasing to alpine 3.11. 18.12.19: - Add php7-imap and php7-pecl-apcu. 13.11.19: - Add php7-pdo_odbc. 24.10.19: - Add php7-pecl-imagick. 06.08.19: - Add php7-bcmath, ph7-pear, php7-xmlrpc and php7-ftp. 02.08.19: - Add php7-ldap. 28.06.19: - Rebasing to alpine 3.10. 08.05.19: - Remove default.conf when nginx is upgraded in downstream image. 30.04.19: - Add php-redis. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 02.03.19: - Add php intl and posix modules. 28.02.19: - Add php7-opcache, remove memcached service due to issues on aarch64 (let us know if you need to enable it). 22.02.19: - Rebasing to alpine 3.9. 18.11.18: - Attempt to upgrade packages during build. 28.09.18: - Multi-arch image. 17.08.18: - Rebase to alpine 3.8, inherit nginx.conf from nginx baseimage. 11.05.18: - Add php pgsql support. 19.04.18: - Bind memcached to localhost only, add php7-sqlite3. 05.01.18: - Rebase to alpine 3.7. 08.11.17: - Add php7 soap module. 31.10.17: - Add php7 exif and xmlreader modules. 30.09.17: - Copy additional root files into image. 24.09.17: - Add memcached service. 31.08.17: - Add php7-phar. 14.07.17: - Enable modules dynamically in nginx.conf. 22.06.17: - Add various nginx modules and enable all modules in the default nginx.conf. 05.06.17: - Add php7-bz2. 25.05.17: - Rebase to alpine 3.6. 18.04.17: - Add php7-sockets. 27.02.17: - Rebase to alpine 3.5, update to nginx 1.10.2 and php7. 14.10.16: - Add version layer information. 10.09.16: - Add badges to README. 05.12.15: - Intial Release.","title":"nginx"},{"location":"images/docker-nginx/#linuxservernginx","text":"Nginx is a simple webserver with php support. The config files reside in /config for easy user customization.","title":"linuxserver/nginx"},{"location":"images/docker-nginx/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nginx:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-nginx/#application-setup","text":"Add your web files to /config/www for hosting. Modify the nginx, php and site config files under /config as needed Protip: This container is best combined with a sql server, e.g. mariadb","title":"Application Setup"},{"location":"images/docker-nginx/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nginx/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nginx: image: lscr.io/linuxserver/nginx:latest container_name: nginx environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nginx/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nginx \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/nginx:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nginx/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nginx/#ports-p","text":"Parameter Function 80 http 443 https","title":"Ports (-p)"},{"location":"images/docker-nginx/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-nginx/#volume-mappings-v","text":"Volume Function /config Contains your www content and all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-nginx/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nginx/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nginx/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nginx/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nginx/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nginx/#support-info","text":"Shell access whilst the container is running: docker exec -it nginx /bin/bash To monitor the logs of the container in realtime: docker logs -f nginx Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nginx Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nginx:latest","title":"Support Info"},{"location":"images/docker-nginx/#versions","text":"20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 22.05.22: - Install nginx version from 3.14. 01.07.21: - Rebasing to alpine 3.14. 24.06.21: - Update default nginx conf folder. 12.04.21: - Add php7-gmp and php7-pecl-mailparse. 13.02.21: - Remove php7-pecl-imagick (it now installs the full imagemagick with too much crud). Users can install it via this docker mod . 09.02.21: - Rebasing to alpine 3.13. Add nginx mods brotli and dav-ext. Remove nginx mods lua and lua-upstream (due to regression over the last couple of years). 08.09.20: - Add php7-xsl. 01.06.20: - Rebasing to alpine 3.12. 18.04.20: - Fix unwanted shutdown of the container. 11.03.20: - Add php7-sodium. 18.02.20: - Add geoip2, suppress lua warning. 19.12.19: - Rebasing to alpine 3.11. 18.12.19: - Add php7-imap and php7-pecl-apcu. 13.11.19: - Add php7-pdo_odbc. 24.10.19: - Add php7-pecl-imagick. 06.08.19: - Add php7-bcmath, ph7-pear, php7-xmlrpc and php7-ftp. 02.08.19: - Add php7-ldap. 28.06.19: - Rebasing to alpine 3.10. 08.05.19: - Remove default.conf when nginx is upgraded in downstream image. 30.04.19: - Add php-redis. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 02.03.19: - Add php intl and posix modules. 28.02.19: - Add php7-opcache, remove memcached service due to issues on aarch64 (let us know if you need to enable it). 22.02.19: - Rebasing to alpine 3.9. 18.11.18: - Attempt to upgrade packages during build. 28.09.18: - Multi-arch image. 17.08.18: - Rebase to alpine 3.8, inherit nginx.conf from nginx baseimage. 11.05.18: - Add php pgsql support. 19.04.18: - Bind memcached to localhost only, add php7-sqlite3. 05.01.18: - Rebase to alpine 3.7. 08.11.17: - Add php7 soap module. 31.10.17: - Add php7 exif and xmlreader modules. 30.09.17: - Copy additional root files into image. 24.09.17: - Add memcached service. 31.08.17: - Add php7-phar. 14.07.17: - Enable modules dynamically in nginx.conf. 22.06.17: - Add various nginx modules and enable all modules in the default nginx.conf. 05.06.17: - Add php7-bz2. 25.05.17: - Rebase to alpine 3.6. 18.04.17: - Add php7-sockets. 27.02.17: - Rebase to alpine 3.5, update to nginx 1.10.2 and php7. 14.10.16: - Add version layer information. 10.09.16: - Add badges to README. 05.12.15: - Intial Release.","title":"Versions"},{"location":"images/docker-ngircd/","text":"linuxserver/ngircd Ngircd is a free, portable and lightweight Internet Relay Chat server for small or private networks, developed under the GNU General Public License (GPL). It is easy to configure, can cope with dynamic IP addresses, and supports IPv6, SSL-protected connections as well as PAM for authentication. It is written from scratch and not based on the original IRCd. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ngircd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup To setup ngircd you will need to edit /config/ngircd.conf which is created the first time the container is run, edit the file and restart the container to implement any config changes. For information see the ngircd site here. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: ngircd: image: lscr.io/linuxserver/ngircd:latest container_name: ngircd environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/ngircd/config:/config ports: - 6667:6667 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=ngircd \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6667:6667 \\ -v /path/to/ngircd/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ngircd:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 6667 ngircd port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London Volume Mappings ( -v ) Volume Function /config Where ngircd.conf is stored Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it ngircd /bin/bash To monitor the logs of the container in realtime: docker logs -f ngircd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ngircd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ngircd:latest Versions 11.10.22: - Rebasing to alpine 3.16, migrate to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 04.07.19: - Initial release.","title":"ngircd"},{"location":"images/docker-ngircd/#linuxserverngircd","text":"Ngircd is a free, portable and lightweight Internet Relay Chat server for small or private networks, developed under the GNU General Public License (GPL). It is easy to configure, can cope with dynamic IP addresses, and supports IPv6, SSL-protected connections as well as PAM for authentication. It is written from scratch and not based on the original IRCd.","title":"linuxserver/ngircd"},{"location":"images/docker-ngircd/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ngircd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-ngircd/#application-setup","text":"To setup ngircd you will need to edit /config/ngircd.conf which is created the first time the container is run, edit the file and restart the container to implement any config changes. For information see the ngircd site here.","title":"Application Setup"},{"location":"images/docker-ngircd/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-ngircd/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: ngircd: image: lscr.io/linuxserver/ngircd:latest container_name: ngircd environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/ngircd/config:/config ports: - 6667:6667 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-ngircd/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=ngircd \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6667:6667 \\ -v /path/to/ngircd/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ngircd:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-ngircd/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-ngircd/#ports-p","text":"Parameter Function 6667 ngircd port","title":"Ports (-p)"},{"location":"images/docker-ngircd/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use e.g. Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-ngircd/#volume-mappings-v","text":"Volume Function /config Where ngircd.conf is stored","title":"Volume Mappings (-v)"},{"location":"images/docker-ngircd/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-ngircd/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-ngircd/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-ngircd/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-ngircd/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-ngircd/#support-info","text":"Shell access whilst the container is running: docker exec -it ngircd /bin/bash To monitor the logs of the container in realtime: docker logs -f ngircd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ngircd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ngircd:latest","title":"Support Info"},{"location":"images/docker-ngircd/#versions","text":"11.10.22: - Rebasing to alpine 3.16, migrate to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 04.07.19: - Initial release.","title":"Versions"},{"location":"images/docker-nntp2nntp/","text":"linuxserver/nntp2nntp Nntp2nntp proxy allow you to use your NNTP Account from multiple systems, each with own user name and password. It fully supports SSL and you can also limit the access to proxy with SSL certificates. nntp2nntp proxy is very simple and pretty fast. Warning Whilst we know of no nntp2nntp security issues the upstream code for this project has received no changes since 06.08.15 and is likely abandoned permanently. For this reason we strongly recommend you do not make this application public facing and if you must do so other layers of security and SSL should be considered an absolute bare minimum requirement. We see this proxy being used primarily on a LAN so that all the users NNTP applications can share a common set of internal credentials allowing for central managment of the upstream account e.g change provider, server, thread limits for all applications with one global config change. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nntp2nntp:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Edit sample config file config/nntp2nntp.conf with upstream provider details and rename the local users. New user passwords can be created by running the password hash generator docker exec -it nntp2nntp /usr/bin/nntp2nntp.py pass entering the desired password and copying the resulting string to the relevant user line in /config/nntp2nntp.conf Example with a user called Dave and with a password of password Dave = 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nntp2nntp: image: lscr.io/linuxserver/nntp2nntp:latest container_name: nntp2nntp environment: - PUID=1000 - PGID=1000 - PUID= - PGID= - TZ=Europe/London volumes: - :/config ports: - 1563:1563 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nntp2nntp \\ -e PUID=1000 \\ -e PGID=1000 \\ -e PUID= \\ -e PGID= \\ -e TZ=Europe/London \\ -p 1563:1563 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/nntp2nntp:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 1563 will map the container's port 1563 to port 1563 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation PUID= specify your UID PGID= specify your GID TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config this will store config on the docker host Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nntp2nntp /bin/bash To monitor the logs of the container in realtime: docker logs -f nntp2nntp Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nntp2nntp Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nntp2nntp:latest Versions 10.10.22: - Rebase to Alpine 3.15. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.04.19: - Multiarch builds and build from Github fork. 15.05.18: - Initial Release.","title":"nntp2nntp"},{"location":"images/docker-nntp2nntp/#linuxservernntp2nntp","text":"Nntp2nntp proxy allow you to use your NNTP Account from multiple systems, each with own user name and password. It fully supports SSL and you can also limit the access to proxy with SSL certificates. nntp2nntp proxy is very simple and pretty fast.","title":"linuxserver/nntp2nntp"},{"location":"images/docker-nntp2nntp/#warning","text":"Whilst we know of no nntp2nntp security issues the upstream code for this project has received no changes since 06.08.15 and is likely abandoned permanently. For this reason we strongly recommend you do not make this application public facing and if you must do so other layers of security and SSL should be considered an absolute bare minimum requirement. We see this proxy being used primarily on a LAN so that all the users NNTP applications can share a common set of internal credentials allowing for central managment of the upstream account e.g change provider, server, thread limits for all applications with one global config change.","title":"Warning"},{"location":"images/docker-nntp2nntp/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nntp2nntp:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-nntp2nntp/#application-setup","text":"Edit sample config file config/nntp2nntp.conf with upstream provider details and rename the local users. New user passwords can be created by running the password hash generator docker exec -it nntp2nntp /usr/bin/nntp2nntp.py pass entering the desired password and copying the resulting string to the relevant user line in /config/nntp2nntp.conf Example with a user called Dave and with a password of password Dave = 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8","title":"Application Setup"},{"location":"images/docker-nntp2nntp/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nntp2nntp/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nntp2nntp: image: lscr.io/linuxserver/nntp2nntp:latest container_name: nntp2nntp environment: - PUID=1000 - PGID=1000 - PUID= - PGID= - TZ=Europe/London volumes: - :/config ports: - 1563:1563 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nntp2nntp/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nntp2nntp \\ -e PUID=1000 \\ -e PGID=1000 \\ -e PUID= \\ -e PGID= \\ -e TZ=Europe/London \\ -p 1563:1563 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/nntp2nntp:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nntp2nntp/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nntp2nntp/#ports-p","text":"Parameter Function 1563 will map the container's port 1563 to port 1563 on the host","title":"Ports (-p)"},{"location":"images/docker-nntp2nntp/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation PUID= specify your UID PGID= specify your GID TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-nntp2nntp/#volume-mappings-v","text":"Volume Function /config this will store config on the docker host","title":"Volume Mappings (-v)"},{"location":"images/docker-nntp2nntp/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nntp2nntp/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nntp2nntp/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nntp2nntp/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nntp2nntp/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nntp2nntp/#support-info","text":"Shell access whilst the container is running: docker exec -it nntp2nntp /bin/bash To monitor the logs of the container in realtime: docker logs -f nntp2nntp Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nntp2nntp Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nntp2nntp:latest","title":"Support Info"},{"location":"images/docker-nntp2nntp/#versions","text":"10.10.22: - Rebase to Alpine 3.15. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.04.19: - Multiarch builds and build from Github fork. 15.05.18: - Initial Release.","title":"Versions"},{"location":"images/docker-nzbget/","text":"linuxserver/nzbget Nzbget is a usenet downloader, written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nzbget:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable nzbget releases testing \u2705 nzbget pre-releases Application Setup Webui can be found at :6789 and the default login details (change ASAP) are login:nzbget, password:tegbzn6789 To allow scheduling, from the webui set the time correction value in settings/logging. To change umask settings. scroll to bottom, set umask like this (example shown for unraid) You can add an additional mount point for intermediate unpacking folder with:- -v :/intermediate for example, and changing the setting for InterDir in the PATHS tab of settings to /intermediate Media folders We have set /downloads as a optional path , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nzbget: image: lscr.io/linuxserver/nzbget:latest container_name: nzbget environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - NZBGET_USER=nzbget #optional - NZBGET_PASS=tegbzn6789 #optional volumes: - /path/to/data:/config - /path/to/downloads:/downloads #optional ports: - 6789:6789 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nzbget \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e NZBGET_USER=nzbget `#optional` \\ -e NZBGET_PASS=tegbzn6789 `#optional` \\ -p 6789:6789 \\ -v /path/to/data:/config \\ -v /path/to/downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/nzbget:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 6789 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. NZBGET_USER=nzbget Specify the user for web authentication. NZBGET_PASS=tegbzn6789 Specify the password for web authentication. Volume Mappings ( -v ) Volume Function /config NZBGet App data. /downloads Location of downloads on disk. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nzbget /bin/bash To monitor the logs of the container in realtime: docker logs -f nzbget Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nzbget Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nzbget:latest Versions 27.11.22: - Advanced notice: This image will be deprecated on 2022-12-31. Please consider switching to SABnzbd https://github.com/linuxserver/docker-sabnzbd 13.11.22: - Rebase master to 3.16, migrate to s6v3. 12.08.22: - Bump unrar to 6.1.7. 22.02.22: - Rebase to alpine 3.15, add six and python 7zip tools, allow env variables for credentials. 04.07.21: - Rebase to alpine 3.14. 28.05.21: - Add linuxserver wheel index. 23.01.21: - Rebasing to alpine 3.13. 26.10.20: - Fix python dependencies. 24.08.20: - Fix ignored umask environment variable. 08.06.20: - Symlink python3 bin to python. 01.06.20: - Rebasing to alpine 3.12. Removing python2. 13.05.20: - Add rarfile python package (for DeepUnrar). 01.01.20: - Add python3 alongside python2 during transition. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 13.06.19: - Add apprise, chardet & pynzbget packages. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 25.02.19: - Rebasing to alpine 3.9. 20.01.19: - Add pipeline logic and multi arch, build from source. 21.08.18: - Rebase to alpine 3.8. 20.02.18: - Add note about supplemental mount point for intermediate unpacking. 13.12.17: - Rebase to alpine 3.7. 02.09.17: - Place app in subfolder rather than /app. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Rebase to alpine 3.6. 20.04.17: - Add testing branch. 06.02.17: - Rebase to alpine 3.5. 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README, perms fix on /app to allow updates. 19.08.16: - Rebase to alpine linux. 18.08.15: - Now useing latest version of unrar beta and implements the universal installer method.","title":"nzbget"},{"location":"images/docker-nzbget/#linuxservernzbget","text":"Nzbget is a usenet downloader, written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources.","title":"linuxserver/nzbget"},{"location":"images/docker-nzbget/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nzbget:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-nzbget/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable nzbget releases testing \u2705 nzbget pre-releases","title":"Version Tags"},{"location":"images/docker-nzbget/#application-setup","text":"Webui can be found at :6789 and the default login details (change ASAP) are login:nzbget, password:tegbzn6789 To allow scheduling, from the webui set the time correction value in settings/logging. To change umask settings. scroll to bottom, set umask like this (example shown for unraid) You can add an additional mount point for intermediate unpacking folder with:- -v :/intermediate for example, and changing the setting for InterDir in the PATHS tab of settings to /intermediate","title":"Application Setup"},{"location":"images/docker-nzbget/#media-folders","text":"We have set /downloads as a optional path , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Media folders"},{"location":"images/docker-nzbget/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nzbget/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nzbget: image: lscr.io/linuxserver/nzbget:latest container_name: nzbget environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - NZBGET_USER=nzbget #optional - NZBGET_PASS=tegbzn6789 #optional volumes: - /path/to/data:/config - /path/to/downloads:/downloads #optional ports: - 6789:6789 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nzbget/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nzbget \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e NZBGET_USER=nzbget `#optional` \\ -e NZBGET_PASS=tegbzn6789 `#optional` \\ -p 6789:6789 \\ -v /path/to/data:/config \\ -v /path/to/downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/nzbget:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nzbget/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nzbget/#ports-p","text":"Parameter Function 6789 WebUI","title":"Ports (-p)"},{"location":"images/docker-nzbget/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. NZBGET_USER=nzbget Specify the user for web authentication. NZBGET_PASS=tegbzn6789 Specify the password for web authentication.","title":"Environment Variables (-e)"},{"location":"images/docker-nzbget/#volume-mappings-v","text":"Volume Function /config NZBGet App data. /downloads Location of downloads on disk.","title":"Volume Mappings (-v)"},{"location":"images/docker-nzbget/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nzbget/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nzbget/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nzbget/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nzbget/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nzbget/#support-info","text":"Shell access whilst the container is running: docker exec -it nzbget /bin/bash To monitor the logs of the container in realtime: docker logs -f nzbget Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nzbget Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nzbget:latest","title":"Support Info"},{"location":"images/docker-nzbget/#versions","text":"27.11.22: - Advanced notice: This image will be deprecated on 2022-12-31. Please consider switching to SABnzbd https://github.com/linuxserver/docker-sabnzbd 13.11.22: - Rebase master to 3.16, migrate to s6v3. 12.08.22: - Bump unrar to 6.1.7. 22.02.22: - Rebase to alpine 3.15, add six and python 7zip tools, allow env variables for credentials. 04.07.21: - Rebase to alpine 3.14. 28.05.21: - Add linuxserver wheel index. 23.01.21: - Rebasing to alpine 3.13. 26.10.20: - Fix python dependencies. 24.08.20: - Fix ignored umask environment variable. 08.06.20: - Symlink python3 bin to python. 01.06.20: - Rebasing to alpine 3.12. Removing python2. 13.05.20: - Add rarfile python package (for DeepUnrar). 01.01.20: - Add python3 alongside python2 during transition. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 13.06.19: - Add apprise, chardet & pynzbget packages. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 25.02.19: - Rebasing to alpine 3.9. 20.01.19: - Add pipeline logic and multi arch, build from source. 21.08.18: - Rebase to alpine 3.8. 20.02.18: - Add note about supplemental mount point for intermediate unpacking. 13.12.17: - Rebase to alpine 3.7. 02.09.17: - Place app in subfolder rather than /app. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Rebase to alpine 3.6. 20.04.17: - Add testing branch. 06.02.17: - Rebase to alpine 3.5. 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README, perms fix on /app to allow updates. 19.08.16: - Rebase to alpine linux. 18.08.15: - Now useing latest version of unrar beta and implements the universal installer method.","title":"Versions"},{"location":"images/docker-nzbhydra2/","text":"linuxserver/nzbhydra2 Nzbhydra2 is a meta search application for NZB indexers, the \"spiritual successor\" to NZBmegasearcH, and an evolution of the original application NZBHydra . It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. NOTE: The last version that supports migration is linuxserver/nzbhydra2:v2.10.2-ls49 Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nzbhydra2:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases dev \u2705 Prereleases from their GitHub Application Setup The web interface is at :5076 , to set up indexers and connections to your nzb download applications. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: nzbhydra2: image: lscr.io/linuxserver/nzbhydra2:latest container_name: nzbhydra2 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /nzb/download:/downloads ports: - 5076:5076 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=nzbhydra2 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5076:5076 \\ -v /path/to/data:/config \\ -v /nzb/download:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/nzbhydra2:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5076 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where nzbhydra2 should store config files. /downloads NZB download folder. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it nzbhydra2 /bin/bash To monitor the logs of the container in realtime: docker logs -f nzbhydra2 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nzbhydra2 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nzbhydra2:latest Versions 10.12.22: - Bump master JRE to v17. Default mapIpToHost to false. 11.09.22: - Migrate to s6v3. 03.05.22: - Rebase to Jammy. 18.04.22: - Rebase to Alpine 3.15. 01.05.20: - Reorganize container, Relocate app to /app/nzbhydra2/bin, Create /app/nzbhydra2/package_info, Use nzbhydra2wrapperPy3.py from zip. 14.04.20: - Correct Name, Hydra2 -> NZBHydra2. 08.01.20: - Switch to python3. 05.01.20: - Add dev tag for prereleases. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch. 18.08.18: - Bump java version to 10, (bionic currently refers to it as version 11). 10.08.18: - Rebase to ubuntu bionic. 15.04.18: - Change to port 5076 in the Dockerfile. 11.01.18: - Initial Release.","title":"nzbhydra2"},{"location":"images/docker-nzbhydra2/#linuxservernzbhydra2","text":"Nzbhydra2 is a meta search application for NZB indexers, the \"spiritual successor\" to NZBmegasearcH, and an evolution of the original application NZBHydra . It provides easy access to a number of raw and newznab based indexers. The application NZBHydra 2 is replacing NZBHydra 1 and supports migrating from V1. Be wary that there may be some compatibility issues for those migrating from V1 to V2, so ensure you back up your old configuration before moving over to the new version. NOTE: The last version that supports migration is linuxserver/nzbhydra2:v2.10.2-ls49","title":"linuxserver/nzbhydra2"},{"location":"images/docker-nzbhydra2/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/nzbhydra2:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-nzbhydra2/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases dev \u2705 Prereleases from their GitHub","title":"Version Tags"},{"location":"images/docker-nzbhydra2/#application-setup","text":"The web interface is at :5076 , to set up indexers and connections to your nzb download applications.","title":"Application Setup"},{"location":"images/docker-nzbhydra2/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-nzbhydra2/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: nzbhydra2: image: lscr.io/linuxserver/nzbhydra2:latest container_name: nzbhydra2 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /nzb/download:/downloads ports: - 5076:5076 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-nzbhydra2/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=nzbhydra2 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 5076:5076 \\ -v /path/to/data:/config \\ -v /nzb/download:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/nzbhydra2:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-nzbhydra2/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-nzbhydra2/#ports-p","text":"Parameter Function 5076 WebUI","title":"Ports (-p)"},{"location":"images/docker-nzbhydra2/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-nzbhydra2/#volume-mappings-v","text":"Volume Function /config Where nzbhydra2 should store config files. /downloads NZB download folder.","title":"Volume Mappings (-v)"},{"location":"images/docker-nzbhydra2/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-nzbhydra2/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-nzbhydra2/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-nzbhydra2/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-nzbhydra2/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-nzbhydra2/#support-info","text":"Shell access whilst the container is running: docker exec -it nzbhydra2 /bin/bash To monitor the logs of the container in realtime: docker logs -f nzbhydra2 Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' nzbhydra2 Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/nzbhydra2:latest","title":"Support Info"},{"location":"images/docker-nzbhydra2/#versions","text":"10.12.22: - Bump master JRE to v17. Default mapIpToHost to false. 11.09.22: - Migrate to s6v3. 03.05.22: - Rebase to Jammy. 18.04.22: - Rebase to Alpine 3.15. 01.05.20: - Reorganize container, Relocate app to /app/nzbhydra2/bin, Create /app/nzbhydra2/package_info, Use nzbhydra2wrapperPy3.py from zip. 14.04.20: - Correct Name, Hydra2 -> NZBHydra2. 08.01.20: - Switch to python3. 05.01.20: - Add dev tag for prereleases. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch. 18.08.18: - Bump java version to 10, (bionic currently refers to it as version 11). 10.08.18: - Rebase to ubuntu bionic. 15.04.18: - Change to port 5076 in the Dockerfile. 11.01.18: - Initial Release.","title":"Versions"},{"location":"images/docker-ombi/","text":"linuxserver/ombi Ombi allows you to host your own Plex Request and user management system. If you are sharing your Plex server with other users, allow them to request new content using an easy to manage interface! Manage all your requests for Movies and TV with ease, leave notes for the user and get notification when a user requests something. Allow your users to post issues against their requests so you know there is a problem with the audio etc. Even automatically send them weekly newsletters of new content that has been added to your Plex server! Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ombi:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Ombi releases development \u2705 Releases from the develop branch of Ombi Application Setup Access the webui at :3579 . Follow the setup wizard on initial install. Then configure the required services. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: ombi: image: lscr.io/linuxserver/ombi:latest container_name: ombi environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - BASE_URL=/ombi #optional volumes: - /path/to/appdata/config:/config ports: - 3579:3579 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=ombi \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e BASE_URL=/ombi `#optional` \\ -p 3579:3579 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ombi:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3579 web gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London BASE_URL=/ombi Subfolder can optionally be defined as an env variable for reverse proxies. Keep in mind that once this value is defined, the gui setting for base url no longer works. To use the gui setting, remove this env variable. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it ombi /bin/bash To monitor the logs of the container in realtime: docker logs -f ombi Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ombi Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ombi:latest Versions 11.09.22: - Migrate to s6v3. 01.05.22: - Rebase to Jammy. 26.04.21: - Update tarball name, allow for v4 builds in stable. 18.01.21: - Update upstream repo. Deprecate v4-preview tag, which is merged to development tag upstream. 14.04.20: - Add Ombi donate links. 10.05.19: - Added an optional env variable for base url setting. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Clarify info on tags and development builds. 25.01.19: - Add info on tags and development builds. 09.01.19: - Switch to multi-arch builds and add aarch64 image. 11.03.18: - Add HOME env to Dockerfile. 05.03.18: - Switch to Ombi v3 stable based on .net core. 26.01.18: - Fix continuation lines. 16.04.17: - Switch to using inhouse mono baseimage. 17.02.17: - Initial Release.","title":"ombi"},{"location":"images/docker-ombi/#linuxserverombi","text":"Ombi allows you to host your own Plex Request and user management system. If you are sharing your Plex server with other users, allow them to request new content using an easy to manage interface! Manage all your requests for Movies and TV with ease, leave notes for the user and get notification when a user requests something. Allow your users to post issues against their requests so you know there is a problem with the audio etc. Even automatically send them weekly newsletters of new content that has been added to your Plex server!","title":"linuxserver/ombi"},{"location":"images/docker-ombi/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ombi:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-ombi/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Ombi releases development \u2705 Releases from the develop branch of Ombi","title":"Version Tags"},{"location":"images/docker-ombi/#application-setup","text":"Access the webui at :3579 . Follow the setup wizard on initial install. Then configure the required services.","title":"Application Setup"},{"location":"images/docker-ombi/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-ombi/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: ombi: image: lscr.io/linuxserver/ombi:latest container_name: ombi environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - BASE_URL=/ombi #optional volumes: - /path/to/appdata/config:/config ports: - 3579:3579 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-ombi/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=ombi \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e BASE_URL=/ombi `#optional` \\ -p 3579:3579 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/ombi:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-ombi/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-ombi/#ports-p","text":"Parameter Function 3579 web gui","title":"Ports (-p)"},{"location":"images/docker-ombi/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London BASE_URL=/ombi Subfolder can optionally be defined as an env variable for reverse proxies. Keep in mind that once this value is defined, the gui setting for base url no longer works. To use the gui setting, remove this env variable.","title":"Environment Variables (-e)"},{"location":"images/docker-ombi/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-ombi/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-ombi/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-ombi/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-ombi/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-ombi/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-ombi/#support-info","text":"Shell access whilst the container is running: docker exec -it ombi /bin/bash To monitor the logs of the container in realtime: docker logs -f ombi Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ombi Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ombi:latest","title":"Support Info"},{"location":"images/docker-ombi/#versions","text":"11.09.22: - Migrate to s6v3. 01.05.22: - Rebase to Jammy. 26.04.21: - Update tarball name, allow for v4 builds in stable. 18.01.21: - Update upstream repo. Deprecate v4-preview tag, which is merged to development tag upstream. 14.04.20: - Add Ombi donate links. 10.05.19: - Added an optional env variable for base url setting. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Clarify info on tags and development builds. 25.01.19: - Add info on tags and development builds. 09.01.19: - Switch to multi-arch builds and add aarch64 image. 11.03.18: - Add HOME env to Dockerfile. 05.03.18: - Switch to Ombi v3 stable based on .net core. 26.01.18: - Fix continuation lines. 16.04.17: - Switch to using inhouse mono baseimage. 17.02.17: - Initial Release.","title":"Versions"},{"location":"images/docker-openssh-server/","text":"linuxserver/openssh-server Openssh-server is a sandboxed environment that allows ssh access without giving keys to the entire server. Giving ssh access via private key often means giving full access to the server. This container creates a limited and sandboxed environment that others can ssh into. The users only have access to the folders mapped and the processes running inside this container. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/openssh-server:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup If PUBLIC_KEY or PUBLIC_KEY_FILE , or PUBLIC_KEY_DIR variables are set, the specified keys will automatically be added to authorized_keys . If not, the keys can manually be added to /config/.ssh/authorized_keys and the container should be restarted. Removing PUBLIC_KEY or PUBLIC_KEY_FILE variables from docker run environment variables will not remove the keys from authorized_keys . PUBLIC_KEY_FILE and PUBLIC_KEY_DIR can be used with docker secrets. We provide the ability to set and allow password based access via the PASSWORD_ACCESS and USER_PASSWORD variables, though we as an organization discourage using password auth for public facing ssh endpoints. Connect to server via ssh -i /path/to/private/key -p PORT USER_NAME@SERVERIP Setting SUDO_ACCESS to true by itself will allow passwordless sudo. USER_PASSWORD and USER_PASSWORD_FILE allow setting an optional sudo password. The users only have access to the folders mapped and the processes running inside this container. Add any volume mappings you like for the users to have access to. To install packages or services for users to access, use the LinuxServer container customization methods described in this blog article . Sample use case is when a server admin would like to have automated incoming backups from a remote server to the local server, but they might not want all the other admins of the remote server to have full access to the local server. This container can be set up with a mounted folder for incoming backups, and rsync installed via LinuxServer container customization described above, so that the incoming backups can proceed, but remote server and its admins' access would be limited to the backup folder. It is also possible to run multiple copies of this container with different ports mapped, different folders mounted and access to different private keys for compartmentalized access. TIPS You can volume map your own text file to /etc/motd to override the message displayed upon connection. You can optionally set the docker argument hostname Key Generation This container has a helper script to generate an ssh private/public key. In order to generate a key please run: docker run --rm -it --entrypoint /keygen.sh linuxserver/openssh-server Then simply follow the prompts. The keys generated by this script are only displayed on your console output, so make sure to save them somewhere after generation. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: openssh-server: image: lscr.io/linuxserver/openssh-server:latest container_name: openssh-server hostname: openssh-server #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PUBLIC_KEY=yourpublickey #optional - PUBLIC_KEY_FILE=/path/to/file #optional - PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys #optional - PUBLIC_KEY_URL=https://github.com/username.keys #optional - SUDO_ACCESS=false #optional - PASSWORD_ACCESS=false #optional - USER_PASSWORD=password #optional - USER_PASSWORD_FILE=/path/to/file #optional - USER_NAME=linuxserver.io #optional volumes: - /path/to/appdata/config:/config ports: - 2222:2222 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=openssh-server \\ --hostname=openssh-server `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PUBLIC_KEY=yourpublickey `#optional` \\ -e PUBLIC_KEY_FILE=/path/to/file `#optional` \\ -e PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys `#optional` \\ -e PUBLIC_KEY_URL=https://github.com/username.keys `#optional` \\ -e SUDO_ACCESS=false `#optional` \\ -e PASSWORD_ACCESS=false `#optional` \\ -e USER_PASSWORD=password `#optional` \\ -e USER_PASSWORD_FILE=/path/to/file `#optional` \\ -e USER_NAME=linuxserver.io `#optional` \\ -p 2222:2222 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/openssh-server:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 2222 ssh port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PUBLIC_KEY=yourpublickey Optional ssh public key, which will automatically be added to authorized_keys. PUBLIC_KEY_FILE=/path/to/file Optionally specify a file containing the public key (works with docker secrets). PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys Optionally specify a directory containing the public keys (works with docker secrets). PUBLIC_KEY_URL=https://github.com/username.keys Optionally specify a URL containing the public key. SUDO_ACCESS=false Set to true to allow linuxserver.io , the ssh user, sudo access. Without USER_PASSWORD set, this will allow passwordless sudo access. PASSWORD_ACCESS=false Set to true to allow user/password ssh access. You will want to set USER_PASSWORD or USER_PASSWORD_FILE as well. USER_PASSWORD=password Optionally set a sudo password for linuxserver.io , the ssh user. If this or USER_PASSWORD_FILE are not set but SUDO_ACCESS is set to true, the user will have passwordless sudo access. USER_PASSWORD_FILE=/path/to/file Optionally specify a file that contains the password. This setting supersedes the USER_PASSWORD option (works with docker secrets). USER_NAME=linuxserver.io Optionally specify a user name (Default: linuxserver.io ) Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function --hostname= Optionally the hostname can be defined. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it openssh-server /bin/bash To monitor the logs of the container in realtime: docker logs -f openssh-server Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' openssh-server Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/openssh-server:latest Versions 18.10.22: - Fix wrong behavior of password/passwordless sudo 11.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 15.09.22: - add netcat-openbsd with support for proxies. 18.07.22: - Fix service perms to comply with upgrade to s6 v3. 16.04.22: - Rebase to alpine 3.15. 16.11.21: - Add PUBLIC_KEY_URL option 28.06.21: - Rebasing to alpine 3.14. Add support for PAM. 10.02.21: - Rebasing to alpine 3.13. Add openssh-client for scp. 21.10.20: - Implement s6-log for openssh, which adds local timestamps to logs and can be used with a log parser like fail2ban. 20.10.20: - Set umask for sftp. 01.06.20: - Rebasing to alpine 3.12. 18.01.20: - Add key generation script. 13.01.20: - Add openssh-sftp-server. 19.12.19: - Rebasing to alpine 3.11. 17.10.19: - Initial Release.","title":"openssh-server"},{"location":"images/docker-openssh-server/#linuxserveropenssh-server","text":"Openssh-server is a sandboxed environment that allows ssh access without giving keys to the entire server. Giving ssh access via private key often means giving full access to the server. This container creates a limited and sandboxed environment that others can ssh into. The users only have access to the folders mapped and the processes running inside this container.","title":"linuxserver/openssh-server"},{"location":"images/docker-openssh-server/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/openssh-server:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-openssh-server/#application-setup","text":"If PUBLIC_KEY or PUBLIC_KEY_FILE , or PUBLIC_KEY_DIR variables are set, the specified keys will automatically be added to authorized_keys . If not, the keys can manually be added to /config/.ssh/authorized_keys and the container should be restarted. Removing PUBLIC_KEY or PUBLIC_KEY_FILE variables from docker run environment variables will not remove the keys from authorized_keys . PUBLIC_KEY_FILE and PUBLIC_KEY_DIR can be used with docker secrets. We provide the ability to set and allow password based access via the PASSWORD_ACCESS and USER_PASSWORD variables, though we as an organization discourage using password auth for public facing ssh endpoints. Connect to server via ssh -i /path/to/private/key -p PORT USER_NAME@SERVERIP Setting SUDO_ACCESS to true by itself will allow passwordless sudo. USER_PASSWORD and USER_PASSWORD_FILE allow setting an optional sudo password. The users only have access to the folders mapped and the processes running inside this container. Add any volume mappings you like for the users to have access to. To install packages or services for users to access, use the LinuxServer container customization methods described in this blog article . Sample use case is when a server admin would like to have automated incoming backups from a remote server to the local server, but they might not want all the other admins of the remote server to have full access to the local server. This container can be set up with a mounted folder for incoming backups, and rsync installed via LinuxServer container customization described above, so that the incoming backups can proceed, but remote server and its admins' access would be limited to the backup folder. It is also possible to run multiple copies of this container with different ports mapped, different folders mounted and access to different private keys for compartmentalized access.","title":"Application Setup"},{"location":"images/docker-openssh-server/#tips","text":"You can volume map your own text file to /etc/motd to override the message displayed upon connection. You can optionally set the docker argument hostname","title":"TIPS"},{"location":"images/docker-openssh-server/#key-generation","text":"This container has a helper script to generate an ssh private/public key. In order to generate a key please run: docker run --rm -it --entrypoint /keygen.sh linuxserver/openssh-server Then simply follow the prompts. The keys generated by this script are only displayed on your console output, so make sure to save them somewhere after generation.","title":"Key Generation"},{"location":"images/docker-openssh-server/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-openssh-server/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: openssh-server: image: lscr.io/linuxserver/openssh-server:latest container_name: openssh-server hostname: openssh-server #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PUBLIC_KEY=yourpublickey #optional - PUBLIC_KEY_FILE=/path/to/file #optional - PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys #optional - PUBLIC_KEY_URL=https://github.com/username.keys #optional - SUDO_ACCESS=false #optional - PASSWORD_ACCESS=false #optional - USER_PASSWORD=password #optional - USER_PASSWORD_FILE=/path/to/file #optional - USER_NAME=linuxserver.io #optional volumes: - /path/to/appdata/config:/config ports: - 2222:2222 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-openssh-server/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=openssh-server \\ --hostname=openssh-server `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PUBLIC_KEY=yourpublickey `#optional` \\ -e PUBLIC_KEY_FILE=/path/to/file `#optional` \\ -e PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys `#optional` \\ -e PUBLIC_KEY_URL=https://github.com/username.keys `#optional` \\ -e SUDO_ACCESS=false `#optional` \\ -e PASSWORD_ACCESS=false `#optional` \\ -e USER_PASSWORD=password `#optional` \\ -e USER_PASSWORD_FILE=/path/to/file `#optional` \\ -e USER_NAME=linuxserver.io `#optional` \\ -p 2222:2222 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/openssh-server:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-openssh-server/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-openssh-server/#ports-p","text":"Parameter Function 2222 ssh port","title":"Ports (-p)"},{"location":"images/docker-openssh-server/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London PUBLIC_KEY=yourpublickey Optional ssh public key, which will automatically be added to authorized_keys. PUBLIC_KEY_FILE=/path/to/file Optionally specify a file containing the public key (works with docker secrets). PUBLIC_KEY_DIR=/path/to/directory/containing/_only_/pubkeys Optionally specify a directory containing the public keys (works with docker secrets). PUBLIC_KEY_URL=https://github.com/username.keys Optionally specify a URL containing the public key. SUDO_ACCESS=false Set to true to allow linuxserver.io , the ssh user, sudo access. Without USER_PASSWORD set, this will allow passwordless sudo access. PASSWORD_ACCESS=false Set to true to allow user/password ssh access. You will want to set USER_PASSWORD or USER_PASSWORD_FILE as well. USER_PASSWORD=password Optionally set a sudo password for linuxserver.io , the ssh user. If this or USER_PASSWORD_FILE are not set but SUDO_ACCESS is set to true, the user will have passwordless sudo access. USER_PASSWORD_FILE=/path/to/file Optionally specify a file that contains the password. This setting supersedes the USER_PASSWORD option (works with docker secrets). USER_NAME=linuxserver.io Optionally specify a user name (Default: linuxserver.io )","title":"Environment Variables (-e)"},{"location":"images/docker-openssh-server/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-openssh-server/#miscellaneous-options","text":"Parameter Function --hostname= Optionally the hostname can be defined.","title":"Miscellaneous Options"},{"location":"images/docker-openssh-server/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-openssh-server/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-openssh-server/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-openssh-server/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-openssh-server/#support-info","text":"Shell access whilst the container is running: docker exec -it openssh-server /bin/bash To monitor the logs of the container in realtime: docker logs -f openssh-server Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' openssh-server Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/openssh-server:latest","title":"Support Info"},{"location":"images/docker-openssh-server/#versions","text":"18.10.22: - Fix wrong behavior of password/passwordless sudo 11.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 15.09.22: - add netcat-openbsd with support for proxies. 18.07.22: - Fix service perms to comply with upgrade to s6 v3. 16.04.22: - Rebase to alpine 3.15. 16.11.21: - Add PUBLIC_KEY_URL option 28.06.21: - Rebasing to alpine 3.14. Add support for PAM. 10.02.21: - Rebasing to alpine 3.13. Add openssh-client for scp. 21.10.20: - Implement s6-log for openssh, which adds local timestamps to logs and can be used with a log parser like fail2ban. 20.10.20: - Set umask for sftp. 01.06.20: - Rebasing to alpine 3.12. 18.01.20: - Add key generation script. 13.01.20: - Add openssh-sftp-server. 19.12.19: - Rebasing to alpine 3.11. 17.10.19: - Initial Release.","title":"Versions"},{"location":"images/docker-openvpn-as/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our wireguard image instead for vpn: https://github.com/linuxserver/docker-wireguard linuxserver/openvpn-as Openvpn-as is a full featured secure network tunneling VPN software solution that integrates OpenVPN server capabilities, enterprise management capabilities, simplified OpenVPN Connect UI, and OpenVPN Client software packages that accommodate Windows, MAC, Linux, Android, and iOS environments. OpenVPN Access Server supports a wide range of configurations, including secure and granular remote access to internal network and/ or private cloud network resources and applications with fine-grained access control. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/openvpn-as should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 latest Version Tags This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest DEPRECATED, no longer updated - Stable releases based on ubuntu bionic xenial DEPRECATED, no longer updated - Stable releases based on ubuntu xenial Application Setup The admin interface is available at https://DOCKER-HOST-IP:943/admin (assuming bridge mode) with a default user/password of admin/password During first login, make sure that the \"Authentication\" in the webui is set to \"Local\" instead of \"PAM\". Then set up the user accounts with their passwords (user accounts created under PAM do not survive container update or recreation). The \"admin\" account is a system (PAM) account and after container update or recreation, its password reverts back to the default. It is highly recommended to block this user's access for security reasons: 1) Create another user and set as an admin, 2) Log in as the new user, 3) Delete the \"admin\" user in the gui, 4) Modify the as.conf file under config/etc and replace the line boot_pam_users.0=admin with ~~ #boot_pam_users.0=admin ~~ boot_pam_users.0=kjhvkhv (this only has to be done once and will survive container recreation) * IMPORTANT NOTE: Commenting out the first pam user in as.conf creates issues in 2.7.5. To make it work while still blocking pam user access, uncomment that line and change admin to a random nonexistent user as described above. To ensure your devices can connect to your VPN properly, goto Configuration -> Network Settings -> and change the \"Hostname or IP Address\" section to either your domain name or public ip address. Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: openvpn-as: image: lscr.io/linuxserver/openvpn-as container_name: openvpn-as cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - INTERFACE=eth0 #optional volumes: - :/config ports: - 943:943 - 9443:9443 - 1194:1194/udp restart: unless-stopped docker cli docker run -d \\ --name=openvpn-as \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e INTERFACE=eth0 `#optional` \\ -p 943:943 \\ -p 9443:9443 \\ -p 1194:1194/udp \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/openvpn-as Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 943 Admin GUI port. 9443 TCP port. 1194/udp UDP port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. INTERFACE=eth0 With bridge networking, leave it as eth0 (or don't include at all), if host or macvlan, set it to your host's network interface, found by running ifconfig Volume Mappings ( -v ) Volume Function /config Where openvpn-as should store configuration files. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it openvpn-as /bin/bash To monitor the logs of the container in realtime: docker logs -f openvpn-as Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' openvpn-as Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/openvpn-as Versions 15.06.20: - Deprecate. 15.06.20: - Add fixes for 2.9.0. 04.11.20: - xenial tag is deprecated and there will be no further releases for that tag. 22.06.20: - Added Support for persistent Customization Folders. 26.03.20: - Switch to using the openvpn-as repo for packages. 29.08.19: - Update Application Setup instructions in readme to fix 2.7.5 login issue for existing users. 27.08.19: - Add new clients package to install and upgrade process. 22.08.19: - Prevent auto-start of openvpn after first time install, before configuration is completed. 25.07.19: - Create a xenial branch/tag and rebase master/latest to bionic. 07.04.19: - Fix first time config. 03.04.19: - Big rewrite of the install and update logic of openvpn-as to fix breaking changes (should fix updating from 2.6.1 to 2.7.3), added mysql-client for cluster support. 14.03.19: - Update deb package URL. 21.02.19: - Rebase to xenial due to incompatibility issues on some older host OSes. 12.02.19: - Rename github repo to match the docker hub repo and container name. 07.02.19: - Add pipeline logic and multi arch. 31.01.19: - Add port mappings to docker create sample in readme. 26.01.19: - Removed privileged and host networking requirements, added cap-add=NET_ADMIN requirement instead. INTERFACE no longer needs to be defined as in bridge mode, it will use the container's eth0 interface by default. 19.12.18: - Bump to version 2.6.1. 10.07.18: - Bump to version 2.5.2. 23.03.18: - Bump to version 2.5. 14.12.17: - Consolidate layers and fix continuation lines. 25.10.17: - Bump to version 2.1.12. 18.08.17: - Switch default authentication method to local, update readme on how to deactivate the admin user. 31.07.17: - Fix updates of existing openvpn-as installs. 07.07.17: - Bump to version 2.1.9. 31.10.16: - Bump to version 2.1.4. 14.10.16: - Add version layer information. 13.09.16: - Rebuild due to push error to hub on last build. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 01.08.16: - Rebase to xenial. 18.09.15: - Initial Release.","title":"openvpn-as"},{"location":"images/docker-openvpn-as/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our wireguard image instead for vpn: https://github.com/linuxserver/docker-wireguard","title":"DEPRECATION NOTICE"},{"location":"images/docker-openvpn-as/#linuxserveropenvpn-as","text":"Openvpn-as is a full featured secure network tunneling VPN software solution that integrates OpenVPN server capabilities, enterprise management capabilities, simplified OpenVPN Connect UI, and OpenVPN Client software packages that accommodate Windows, MAC, Linux, Android, and iOS environments. OpenVPN Access Server supports a wide range of configurations, including secure and granular remote access to internal network and/ or private cloud network resources and applications with fine-grained access control.","title":"linuxserver/openvpn-as"},{"location":"images/docker-openvpn-as/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/openvpn-as should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 latest","title":"Supported Architectures"},{"location":"images/docker-openvpn-as/#version-tags","text":"This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest DEPRECATED, no longer updated - Stable releases based on ubuntu bionic xenial DEPRECATED, no longer updated - Stable releases based on ubuntu xenial","title":"Version Tags"},{"location":"images/docker-openvpn-as/#application-setup","text":"The admin interface is available at https://DOCKER-HOST-IP:943/admin (assuming bridge mode) with a default user/password of admin/password During first login, make sure that the \"Authentication\" in the webui is set to \"Local\" instead of \"PAM\". Then set up the user accounts with their passwords (user accounts created under PAM do not survive container update or recreation). The \"admin\" account is a system (PAM) account and after container update or recreation, its password reverts back to the default. It is highly recommended to block this user's access for security reasons: 1) Create another user and set as an admin, 2) Log in as the new user, 3) Delete the \"admin\" user in the gui, 4) Modify the as.conf file under config/etc and replace the line boot_pam_users.0=admin with ~~ #boot_pam_users.0=admin ~~ boot_pam_users.0=kjhvkhv (this only has to be done once and will survive container recreation) * IMPORTANT NOTE: Commenting out the first pam user in as.conf creates issues in 2.7.5. To make it work while still blocking pam user access, uncomment that line and change admin to a random nonexistent user as described above. To ensure your devices can connect to your VPN properly, goto Configuration -> Network Settings -> and change the \"Hostname or IP Address\" section to either your domain name or public ip address.","title":"Application Setup"},{"location":"images/docker-openvpn-as/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-openvpn-as/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: openvpn-as: image: lscr.io/linuxserver/openvpn-as container_name: openvpn-as cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - INTERFACE=eth0 #optional volumes: - :/config ports: - 943:943 - 9443:9443 - 1194:1194/udp restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-openvpn-as/#docker-cli","text":"docker run -d \\ --name=openvpn-as \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e INTERFACE=eth0 `#optional` \\ -p 943:943 \\ -p 9443:9443 \\ -p 1194:1194/udp \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/openvpn-as","title":"docker cli"},{"location":"images/docker-openvpn-as/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-openvpn-as/#ports-p","text":"Parameter Function 943 Admin GUI port. 9443 TCP port. 1194/udp UDP port.","title":"Ports (-p)"},{"location":"images/docker-openvpn-as/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. INTERFACE=eth0 With bridge networking, leave it as eth0 (or don't include at all), if host or macvlan, set it to your host's network interface, found by running ifconfig","title":"Environment Variables (-e)"},{"location":"images/docker-openvpn-as/#volume-mappings-v","text":"Volume Function /config Where openvpn-as should store configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-openvpn-as/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-openvpn-as/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-openvpn-as/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-openvpn-as/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-openvpn-as/#support-info","text":"Shell access whilst the container is running: docker exec -it openvpn-as /bin/bash To monitor the logs of the container in realtime: docker logs -f openvpn-as Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' openvpn-as Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/openvpn-as","title":"Support Info"},{"location":"images/docker-openvpn-as/#versions","text":"15.06.20: - Deprecate. 15.06.20: - Add fixes for 2.9.0. 04.11.20: - xenial tag is deprecated and there will be no further releases for that tag. 22.06.20: - Added Support for persistent Customization Folders. 26.03.20: - Switch to using the openvpn-as repo for packages. 29.08.19: - Update Application Setup instructions in readme to fix 2.7.5 login issue for existing users. 27.08.19: - Add new clients package to install and upgrade process. 22.08.19: - Prevent auto-start of openvpn after first time install, before configuration is completed. 25.07.19: - Create a xenial branch/tag and rebase master/latest to bionic. 07.04.19: - Fix first time config. 03.04.19: - Big rewrite of the install and update logic of openvpn-as to fix breaking changes (should fix updating from 2.6.1 to 2.7.3), added mysql-client for cluster support. 14.03.19: - Update deb package URL. 21.02.19: - Rebase to xenial due to incompatibility issues on some older host OSes. 12.02.19: - Rename github repo to match the docker hub repo and container name. 07.02.19: - Add pipeline logic and multi arch. 31.01.19: - Add port mappings to docker create sample in readme. 26.01.19: - Removed privileged and host networking requirements, added cap-add=NET_ADMIN requirement instead. INTERFACE no longer needs to be defined as in bridge mode, it will use the container's eth0 interface by default. 19.12.18: - Bump to version 2.6.1. 10.07.18: - Bump to version 2.5.2. 23.03.18: - Bump to version 2.5. 14.12.17: - Consolidate layers and fix continuation lines. 25.10.17: - Bump to version 2.1.12. 18.08.17: - Switch default authentication method to local, update readme on how to deactivate the admin user. 31.07.17: - Fix updates of existing openvpn-as installs. 07.07.17: - Bump to version 2.1.9. 31.10.16: - Bump to version 2.1.4. 14.10.16: - Add version layer information. 13.09.16: - Rebuild due to push error to hub on last build. 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 01.08.16: - Rebase to xenial. 18.09.15: - Initial Release.","title":"Versions"},{"location":"images/docker-openvscode-server/","text":"linuxserver/openvscode-server Openvscode-server provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/openvscode-server:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases insiders \u2705 Insiders releases Application Setup If CONNECTION_TOKEN or CONNECTION_SECRET env vars are set, you can access the webui at http://:3000/?tkn=supersecrettoken (replace supersecrettoken with the value set). If not, you can access the webui at http://:3000 . For github integration, drop your ssh key in to /config/.ssh . Then open a terminal from the top menu and set your github username and email via the following commands git config --global user.name \"username\" git config --global user.email \"email address\" When reverse proxied through SWAG, custom services running on specific ports inside openvscode-server can be accessed at https://PORT.openvscode-server.domain.com very much like how code-server's port proxy function is handled. For that, a wildcard CNAME *.openvscode-server.domain.com needs to be created and the SWAG cert needs to cover those subdomains. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: openvscode-server: image: lscr.io/linuxserver/openvscode-server:latest container_name: openvscode-server environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONNECTION_TOKEN= #optional - CONNECTION_SECRET= #optional - SUDO_PASSWORD=password #optional - SUDO_PASSWORD_HASH= #optional volumes: - /path/to/appdata/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=openvscode-server \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONNECTION_TOKEN= `#optional` \\ -e CONNECTION_SECRET= `#optional` \\ -e SUDO_PASSWORD=password `#optional` \\ -e SUDO_PASSWORD_HASH= `#optional` \\ -p 3000:3000 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/openvscode-server:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Web UI port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use. CONNECTION_TOKEN= Optional security token for accessing the Web UI (ie. supersecrettoken ). CONNECTION_SECRET= Optional path to a file inside the container that contains the security token for accessing the Web UI (ie. /path/to/file ). Overrides CONNECTION_TOKEN . SUDO_PASSWORD=password If this optional variable is set, user will have sudo access in the openvscode-server terminal with the specified password. SUDO_PASSWORD_HASH= Optionally set sudo password via hash (takes priority over SUDO_PASSWORD var). Format is $type$salt$hashed . Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it openvscode-server /bin/bash To monitor the logs of the container in realtime: docker logs -f openvscode-server Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' openvscode-server Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/openvscode-server:latest Versions 29.09.22: - Rebase to jammy, switch to s6v3. Fix chown logic to skip /config/workspace contents. 12.02.22: - Update install-extension helper to compensate for upstream changes. 04.02.22: - Update binary for 1.64.0+. Allow for no token set when both toekn env vars are unset. Add libsecret for keytar. 29.12.21: - Add install-extension as a helper for mods to install extensions. 10.12.21: - Update deprecated connectionToken arg. 30.11.21: - Fix app folder permissions, add the optional sudo password vars. 29.11.21: - Create .profile and .bashrc for the user. 29.11.21: - Release insiders tag. 28.11.21: - Initial Release.","title":"openvscode-server"},{"location":"images/docker-openvscode-server/#linuxserveropenvscode-server","text":"Openvscode-server provides a version of VS Code that runs a server on a remote machine and allows access through a modern web browser.","title":"linuxserver/openvscode-server"},{"location":"images/docker-openvscode-server/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/openvscode-server:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-openvscode-server/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases insiders \u2705 Insiders releases","title":"Version Tags"},{"location":"images/docker-openvscode-server/#application-setup","text":"If CONNECTION_TOKEN or CONNECTION_SECRET env vars are set, you can access the webui at http://:3000/?tkn=supersecrettoken (replace supersecrettoken with the value set). If not, you can access the webui at http://:3000 . For github integration, drop your ssh key in to /config/.ssh . Then open a terminal from the top menu and set your github username and email via the following commands git config --global user.name \"username\" git config --global user.email \"email address\" When reverse proxied through SWAG, custom services running on specific ports inside openvscode-server can be accessed at https://PORT.openvscode-server.domain.com very much like how code-server's port proxy function is handled. For that, a wildcard CNAME *.openvscode-server.domain.com needs to be created and the SWAG cert needs to cover those subdomains.","title":"Application Setup"},{"location":"images/docker-openvscode-server/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-openvscode-server/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: openvscode-server: image: lscr.io/linuxserver/openvscode-server:latest container_name: openvscode-server environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - CONNECTION_TOKEN= #optional - CONNECTION_SECRET= #optional - SUDO_PASSWORD=password #optional - SUDO_PASSWORD_HASH= #optional volumes: - /path/to/appdata/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-openvscode-server/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=openvscode-server \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e CONNECTION_TOKEN= `#optional` \\ -e CONNECTION_SECRET= `#optional` \\ -e SUDO_PASSWORD=password `#optional` \\ -e SUDO_PASSWORD_HASH= `#optional` \\ -p 3000:3000 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/openvscode-server:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-openvscode-server/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-openvscode-server/#ports-p","text":"Parameter Function 3000 Web UI port.","title":"Ports (-p)"},{"location":"images/docker-openvscode-server/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use. CONNECTION_TOKEN= Optional security token for accessing the Web UI (ie. supersecrettoken ). CONNECTION_SECRET= Optional path to a file inside the container that contains the security token for accessing the Web UI (ie. /path/to/file ). Overrides CONNECTION_TOKEN . SUDO_PASSWORD=password If this optional variable is set, user will have sudo access in the openvscode-server terminal with the specified password. SUDO_PASSWORD_HASH= Optionally set sudo password via hash (takes priority over SUDO_PASSWORD var). Format is $type$salt$hashed .","title":"Environment Variables (-e)"},{"location":"images/docker-openvscode-server/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-openvscode-server/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-openvscode-server/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-openvscode-server/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-openvscode-server/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-openvscode-server/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-openvscode-server/#support-info","text":"Shell access whilst the container is running: docker exec -it openvscode-server /bin/bash To monitor the logs of the container in realtime: docker logs -f openvscode-server Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' openvscode-server Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/openvscode-server:latest","title":"Support Info"},{"location":"images/docker-openvscode-server/#versions","text":"29.09.22: - Rebase to jammy, switch to s6v3. Fix chown logic to skip /config/workspace contents. 12.02.22: - Update install-extension helper to compensate for upstream changes. 04.02.22: - Update binary for 1.64.0+. Allow for no token set when both toekn env vars are unset. Add libsecret for keytar. 29.12.21: - Add install-extension as a helper for mods to install extensions. 10.12.21: - Update deprecated connectionToken arg. 30.11.21: - Fix app folder permissions, add the optional sudo password vars. 29.11.21: - Create .profile and .bashrc for the user. 29.11.21: - Release insiders tag. 28.11.21: - Initial Release.","title":"Versions"},{"location":"images/docker-organizr/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Please use the official image at https://hub.docker.com/r/organizr/organizr linuxserver/organizr Organizr is a HTPC/Homelab Services Organizer - Written in PHP Do you have quite a bit of services running on your computer or server? Do you have a lot of bookmarks or have to memorize a bunch of ip's and ports? Well, Organizr is here to help with that. Organizr allows you to setup \"Tabs\" that will be loaded all in one webpage. You can then work on your server with ease. You can even open up two tabs side by side. Want to give users access to some Tabs? No problem, just enable user support and have them make an account. Want guests to be able to visit too? Enable Guest support for those tabs. For more information on Organizr and information on how to use it visit their site at https://github.com/causefx/Organizr Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/organizr should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: organizr: image: linuxserver/organizr container_name: organizr environment: - PUID=1000 - PGID=1000 - TZ= volumes: - :/config ports: - 9983:80 restart: unless-stopped docker cli docker run -d \\ --name=organizr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ= \\ -p 9983:80 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/organizr Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 will map the container's port 80 to port 9983 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ= for specifying your timezone Volume Mappings ( -v ) Volume Function /config this is where your user data and logs will live Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup Dead simple to get running, create the container as instructed and start it. When up and running, load the site. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it organizr /bin/bash To monitor the logs of the container in realtime: docker logs -f organizr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' organizr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/organizr Versions 18.04.19: - Fix new install not working. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 26.02.19: - Upgrade packages during install to prevent mismatch with baseimage. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Fix permissions on new app location 31.12.18: - Moved to pipeline building from v1-master branch 05.09.18: - Rebase to Alpine 3.8 10.01.18: - Rebase to Alpine 3.7 25.05.17: - Rebase to Alpine 3.6 02.05.17: - Added php7-curl package 12.04.17: - Added php7-ldap package 10.03.18: - Initial Release.","title":"organizr"},{"location":"images/docker-organizr/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. Please use the official image at https://hub.docker.com/r/organizr/organizr","title":"DEPRECATION NOTICE"},{"location":"images/docker-organizr/#linuxserverorganizr","text":"Organizr is a HTPC/Homelab Services Organizer - Written in PHP Do you have quite a bit of services running on your computer or server? Do you have a lot of bookmarks or have to memorize a bunch of ip's and ports? Well, Organizr is here to help with that. Organizr allows you to setup \"Tabs\" that will be loaded all in one webpage. You can then work on your server with ease. You can even open up two tabs side by side. Want to give users access to some Tabs? No problem, just enable user support and have them make an account. Want guests to be able to visit too? Enable Guest support for those tabs. For more information on Organizr and information on how to use it visit their site at https://github.com/causefx/Organizr","title":"linuxserver/organizr"},{"location":"images/docker-organizr/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/organizr should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-organizr/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-organizr/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: organizr: image: linuxserver/organizr container_name: organizr environment: - PUID=1000 - PGID=1000 - TZ= volumes: - :/config ports: - 9983:80 restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-organizr/#docker-cli","text":"docker run -d \\ --name=organizr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ= \\ -p 9983:80 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/organizr","title":"docker cli"},{"location":"images/docker-organizr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-organizr/#ports-p","text":"Parameter Function 80 will map the container's port 80 to port 9983 on the host","title":"Ports (-p)"},{"location":"images/docker-organizr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ= for specifying your timezone","title":"Environment Variables (-e)"},{"location":"images/docker-organizr/#volume-mappings-v","text":"Volume Function /config this is where your user data and logs will live","title":"Volume Mappings (-v)"},{"location":"images/docker-organizr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-organizr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-organizr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-organizr/#application-setup","text":"Dead simple to get running, create the container as instructed and start it. When up and running, load the site.","title":"Application Setup"},{"location":"images/docker-organizr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-organizr/#support-info","text":"Shell access whilst the container is running: docker exec -it organizr /bin/bash To monitor the logs of the container in realtime: docker logs -f organizr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' organizr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/organizr","title":"Support Info"},{"location":"images/docker-organizr/#versions","text":"18.04.19: - Fix new install not working. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 26.02.19: - Upgrade packages during install to prevent mismatch with baseimage. 22.02.19: - Rebasing to alpine 3.9. 11.02.19: - Fix permissions on new app location 31.12.18: - Moved to pipeline building from v1-master branch 05.09.18: - Rebase to Alpine 3.8 10.01.18: - Rebase to Alpine 3.7 25.05.17: - Rebase to Alpine 3.6 02.05.17: - Added php7-curl package 12.04.17: - Added php7-ldap package 10.03.18: - Initial Release.","title":"Versions"},{"location":"images/docker-oscam/","text":"linuxserver/oscam Oscam is an Open Source Conditional Access Module software used for descrambling DVB transmissions using smart cards. It's both a server and a client. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/oscam:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup To set up oscam there are numerous guides on the internet. There are too many scenarios to make a quick guide. The web interface is at port 8888. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: oscam: image: lscr.io/linuxserver/oscam:latest container_name: oscam environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 8888:8888 devices: - /dev/ttyUSB0:/dev/ttyUSB0 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=oscam \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8888:8888 \\ -v /path/to/data:/config \\ --device /dev/ttyUSB0:/dev/ttyUSB0 \\ --restart unless-stopped \\ lscr.io/linuxserver/oscam:latest Passing through Smart Card Readers If you want to pass through a smart card reader, you need to specify the reader with the --device= tag. The method used depends on how the reader is recognized. The first is /dev/ttyUSBX. To find the correct device, connect the reader and run dmesg | tail on the host. In the output you will find /dev/ttyUSBX, where X is the number of the device. If this is the first reader you connect to your host, it will be /dev/ttyUSB0. If you add one more it will be /dev/ttyUSB1. If there are no /dev/ttyUSBX device in dmesg | tail , you have to use the USB bus path. It will look similar to the below. /dev/bus/usb/001/001 The important parts are the two numbers in the end. The first one is the Bus number, the second is the Device number. To find the Bus and Device number you have to run lsusb on the host, then find your USB device in the list and note the Bus and Device numbers. Here is an example of how to find the Bus and Device. The output of the lsusb command is below. Bus 002 Device 005: ID 076b:6622 OmniKey AG CardMan 6121 The first number, the Bus, is 002. The second number, the Device, is 005. This will look like below in the --device= tag. --device=/dev/bus/usb/002/005 If you have multiple smart card readers, you add one --device= tag for each reader. Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8888 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where oscam should store config files and logs. Device Mappings ( --device ) Parameter Function /dev/ttyUSB0 For passing through smart card readers. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it oscam /bin/bash To monitor the logs of the container in realtime: docker logs -f oscam Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' oscam Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/oscam:latest Versions 03.11.22: - Rebasing to alpine 3.16 and s6v3. Update pcsd driver link. 13.02.22: - Rebasing to alpine 3.15. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 29.04.19: - Add revision check, so pipeline can build new revisions. 28.04.19: - Switch back to streamboard svn to fix version not showing in UI. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 19.02.19: - Add pipeline logic and multi arch, rebase to Alpine 3.8. 03.01.18: - Deprecate cpu_core routine lack of scaling. 13.12.17: - Rebase to alpine 3.7. 19.10.17: - Add ccid package for usb card readers. 17.10.17: - Switch to using bzr for source code, streamboard awol. 28.05.17: - Rebase to alpine 3.6. 09.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 02.10.16: - Add info on passing through devices to README. 25.09.16: - Initial release.","title":"oscam"},{"location":"images/docker-oscam/#linuxserveroscam","text":"Oscam is an Open Source Conditional Access Module software used for descrambling DVB transmissions using smart cards. It's both a server and a client.","title":"linuxserver/oscam"},{"location":"images/docker-oscam/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/oscam:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-oscam/#application-setup","text":"To set up oscam there are numerous guides on the internet. There are too many scenarios to make a quick guide. The web interface is at port 8888.","title":"Application Setup"},{"location":"images/docker-oscam/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-oscam/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: oscam: image: lscr.io/linuxserver/oscam:latest container_name: oscam environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 8888:8888 devices: - /dev/ttyUSB0:/dev/ttyUSB0 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-oscam/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=oscam \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8888:8888 \\ -v /path/to/data:/config \\ --device /dev/ttyUSB0:/dev/ttyUSB0 \\ --restart unless-stopped \\ lscr.io/linuxserver/oscam:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-oscam/#passing-through-smart-card-readers","text":"If you want to pass through a smart card reader, you need to specify the reader with the --device= tag. The method used depends on how the reader is recognized. The first is /dev/ttyUSBX. To find the correct device, connect the reader and run dmesg | tail on the host. In the output you will find /dev/ttyUSBX, where X is the number of the device. If this is the first reader you connect to your host, it will be /dev/ttyUSB0. If you add one more it will be /dev/ttyUSB1. If there are no /dev/ttyUSBX device in dmesg | tail , you have to use the USB bus path. It will look similar to the below. /dev/bus/usb/001/001 The important parts are the two numbers in the end. The first one is the Bus number, the second is the Device number. To find the Bus and Device number you have to run lsusb on the host, then find your USB device in the list and note the Bus and Device numbers. Here is an example of how to find the Bus and Device. The output of the lsusb command is below. Bus 002 Device 005: ID 076b:6622 OmniKey AG CardMan 6121 The first number, the Bus, is 002. The second number, the Device, is 005. This will look like below in the --device= tag. --device=/dev/bus/usb/002/005 If you have multiple smart card readers, you add one --device= tag for each reader.","title":"Passing through Smart Card Readers"},{"location":"images/docker-oscam/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-oscam/#ports-p","text":"Parameter Function 8888 WebUI","title":"Ports (-p)"},{"location":"images/docker-oscam/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-oscam/#volume-mappings-v","text":"Volume Function /config Where oscam should store config files and logs.","title":"Volume Mappings (-v)"},{"location":"images/docker-oscam/#device-mappings-device","text":"Parameter Function /dev/ttyUSB0 For passing through smart card readers.","title":"Device Mappings (--device)"},{"location":"images/docker-oscam/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-oscam/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-oscam/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-oscam/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-oscam/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-oscam/#support-info","text":"Shell access whilst the container is running: docker exec -it oscam /bin/bash To monitor the logs of the container in realtime: docker logs -f oscam Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' oscam Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/oscam:latest","title":"Support Info"},{"location":"images/docker-oscam/#versions","text":"03.11.22: - Rebasing to alpine 3.16 and s6v3. Update pcsd driver link. 13.02.22: - Rebasing to alpine 3.15. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 29.04.19: - Add revision check, so pipeline can build new revisions. 28.04.19: - Switch back to streamboard svn to fix version not showing in UI. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 19.02.19: - Add pipeline logic and multi arch, rebase to Alpine 3.8. 03.01.18: - Deprecate cpu_core routine lack of scaling. 13.12.17: - Rebase to alpine 3.7. 19.10.17: - Add ccid package for usb card readers. 17.10.17: - Switch to using bzr for source code, streamboard awol. 28.05.17: - Rebase to alpine 3.6. 09.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 02.10.16: - Add info on passing through devices to README. 25.09.16: - Initial release.","title":"Versions"},{"location":"images/docker-overseerr/","text":"linuxserver/overseerr Overseerr is a request management and media discovery tool built to work with your existing Plex ecosystem. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/overseerr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from GitHub develop \u2705 Development releases from commits in upstream develop branch Application Setup Access the webui at :5055 , for more information check out Overseerr . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: overseerr: image: lscr.io/linuxserver/overseerr:latest container_name: overseerr environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata/config:/config ports: - 5055:5055 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=overseerr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -p 5055:5055 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/overseerr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5055 Port for Overseerr's web interface. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it overseerr /bin/bash To monitor the logs of the container in realtime: docker logs -f overseerr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' overseerr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/overseerr:latest Versions 27.10.22: - Rebase main to 3.16, migrate to s6v3. 20.08.22: - Don't install cypress. 01.04.22: - Rebase main branch to Alpine 3.15. 27.01.22: - Rebase develop branch to Alpine 3.15. 04.01.22: - Remove cached files. 10.10.21: - Add additional post-build cleanup. 19.09.21: - Rebase to alpine 3.14. Update code formatting. Increase js mem limit. 05.04.21: - Initial Release.","title":"overseerr"},{"location":"images/docker-overseerr/#linuxserveroverseerr","text":"Overseerr is a request management and media discovery tool built to work with your existing Plex ecosystem.","title":"linuxserver/overseerr"},{"location":"images/docker-overseerr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/overseerr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-overseerr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from GitHub develop \u2705 Development releases from commits in upstream develop branch","title":"Version Tags"},{"location":"images/docker-overseerr/#application-setup","text":"Access the webui at :5055 , for more information check out Overseerr .","title":"Application Setup"},{"location":"images/docker-overseerr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-overseerr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: overseerr: image: lscr.io/linuxserver/overseerr:latest container_name: overseerr environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata/config:/config ports: - 5055:5055 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-overseerr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=overseerr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -p 5055:5055 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/overseerr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-overseerr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-overseerr/#ports-p","text":"Parameter Function 5055 Port for Overseerr's web interface.","title":"Ports (-p)"},{"location":"images/docker-overseerr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York","title":"Environment Variables (-e)"},{"location":"images/docker-overseerr/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-overseerr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-overseerr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-overseerr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-overseerr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-overseerr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-overseerr/#support-info","text":"Shell access whilst the container is running: docker exec -it overseerr /bin/bash To monitor the logs of the container in realtime: docker logs -f overseerr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' overseerr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/overseerr:latest","title":"Support Info"},{"location":"images/docker-overseerr/#versions","text":"27.10.22: - Rebase main to 3.16, migrate to s6v3. 20.08.22: - Don't install cypress. 01.04.22: - Rebase main branch to Alpine 3.15. 27.01.22: - Rebase develop branch to Alpine 3.15. 04.01.22: - Remove cached files. 10.10.21: - Add additional post-build cleanup. 19.09.21: - Rebase to alpine 3.14. Update code formatting. Increase js mem limit. 05.04.21: - Initial Release.","title":"Versions"},{"location":"images/docker-paperless-ng/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend switching to the new official container: https://github.com/paperless-ngx/paperless-ngx linuxserver/paperless-ng Paperless-ng is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\" Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/paperless-ng:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Default login is admin:admin via the webui, accessible at http://SERVERIP:PORT More info at paperless-ng . For convenience this container provides an alias to perform administration management commands. Available administration commands are documented upstream here and can be accessed with this container thus: docker exec -it manage . For example, docker exec -it paperless manage document_retagger -tT . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: paperless-ng: image: lscr.io/linuxserver/paperless-ng:latest container_name: paperless-ng environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - REDIS_URL= #optional volumes: - :/config - :/data ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=paperless-ng \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e REDIS_URL= `#optional` \\ -p 8000:8000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/paperless-ng:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 http gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York REDIS_URL= Specify an external redis instance to use. Can optionally include a port ( redis:6379 ) and/or db ( redis/foo ). If left blank or not included, will use a built-in redis instance. If changed after initial setup will also require manual modification of /config/settings.py Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /data Storage location for all paperless-ng data files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it paperless-ng /bin/bash To monitor the logs of the container in realtime: docker logs -f paperless-ng Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' paperless-ng Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/paperless-ng:latest Versions 05.09.22: - Deprecate. 30.11.21: - Added in jbig2enc. 07.10.21: - Fixed variable that determins if we should run redis locally. 01.10.21: - Replaced uwsgi with gunicorn due to websocket issues. 24.07.21: - Fixed directory config files (sqlite db) is all stored. 23.07.21: - Fixed initial user creation. 10.07.21: - Initial Release.","title":"paperless-ng"},{"location":"images/docker-paperless-ng/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend switching to the new official container: https://github.com/paperless-ngx/paperless-ngx","title":"DEPRECATION NOTICE"},{"location":"images/docker-paperless-ng/#linuxserverpaperless-ng","text":"Paperless-ng is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\"","title":"linuxserver/paperless-ng"},{"location":"images/docker-paperless-ng/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/paperless-ng:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-paperless-ng/#application-setup","text":"Default login is admin:admin via the webui, accessible at http://SERVERIP:PORT More info at paperless-ng . For convenience this container provides an alias to perform administration management commands. Available administration commands are documented upstream here and can be accessed with this container thus: docker exec -it manage . For example, docker exec -it paperless manage document_retagger -tT .","title":"Application Setup"},{"location":"images/docker-paperless-ng/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-paperless-ng/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: paperless-ng: image: lscr.io/linuxserver/paperless-ng:latest container_name: paperless-ng environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - REDIS_URL= #optional volumes: - :/config - :/data ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-paperless-ng/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=paperless-ng \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e REDIS_URL= `#optional` \\ -p 8000:8000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/paperless-ng:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-paperless-ng/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-paperless-ng/#ports-p","text":"Parameter Function 8000 http gui","title":"Ports (-p)"},{"location":"images/docker-paperless-ng/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York REDIS_URL= Specify an external redis instance to use. Can optionally include a port ( redis:6379 ) and/or db ( redis/foo ). If left blank or not included, will use a built-in redis instance. If changed after initial setup will also require manual modification of /config/settings.py","title":"Environment Variables (-e)"},{"location":"images/docker-paperless-ng/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /data Storage location for all paperless-ng data files.","title":"Volume Mappings (-v)"},{"location":"images/docker-paperless-ng/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-paperless-ng/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-paperless-ng/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-paperless-ng/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-paperless-ng/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-paperless-ng/#support-info","text":"Shell access whilst the container is running: docker exec -it paperless-ng /bin/bash To monitor the logs of the container in realtime: docker logs -f paperless-ng Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' paperless-ng Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/paperless-ng:latest","title":"Support Info"},{"location":"images/docker-paperless-ng/#versions","text":"05.09.22: - Deprecate. 30.11.21: - Added in jbig2enc. 07.10.21: - Fixed variable that determins if we should run redis locally. 01.10.21: - Replaced uwsgi with gunicorn due to websocket issues. 24.07.21: - Fixed directory config files (sqlite db) is all stored. 23.07.21: - Fixed initial user creation. 10.07.21: - Initial Release.","title":"Versions"},{"location":"images/docker-paperless-ngx/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend switching to the new official container: https://github.com/paperless-ngx/paperless-ngx linuxserver/paperless-ngx Paperless-ngx is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\" Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/paperless-ngx:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Default login is admin:admin via the webui, accessible at http://SERVERIP:PORT More info at paperless-ngx . For convenience this container provides an alias to perform administration management commands. Available administration commands are documented upstream here and can be accessed with this container thus: docker exec -it manage . For example, docker exec -it paperless manage document_retagger -tT . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: paperless-ngx: image: lscr.io/linuxserver/paperless-ngx:latest container_name: paperless-ngx environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - REDIS_URL= #optional volumes: - /path/to/appdata/config:/config - /path/to/appdata/data:/data ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=paperless-ngx \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e REDIS_URL= `#optional` \\ -p 8000:8000 \\ -v /path/to/appdata/config:/config \\ -v /path/to/appdata/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/paperless-ngx:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 http gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York REDIS_URL= Specify an external redis instance to use. Can optionally include a port ( redis:6379 ) and/or db ( redis/foo ). If left blank or not included, will use a built-in redis instance. If changed after initial setup will also require manual modification of /config/settings.py Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /data Storage location for all paperless-ngx data files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it paperless-ngx /bin/bash To monitor the logs of the container in realtime: docker logs -f paperless-ngx Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' paperless-ngx Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/paperless-ngx:latest Versions 05.09.22: - Deprecate. 16.05.22: - Add correct libqpdf.so to arm builds. 14.05.22: - Fine tune disabling of redis. 12.05.22: - Move migrations to after multilangocr mod. Fix disabling of redis. Add missing dep for postgresql. 12.05.22: - Utilize lsio wheel for pikepdf. 11.05.22: - Update upstream artifact name and utilize lsio wheels for scipy and scikit-learn. 05.05.22: - Add runtime dependencies libxslt1.1 for armhf 30.04.22: - Add runtime dependencies lizbar and poppler-utils 27.04.22: - Add build-dependencies for arm32 builds. 11.04.22: - Replaced uwsgi with gunicorn due to websocket issues. 11.03.22: - Initial Release.","title":"paperless-ngx"},{"location":"images/docker-paperless-ngx/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend switching to the new official container: https://github.com/paperless-ngx/paperless-ngx","title":"DEPRECATION NOTICE"},{"location":"images/docker-paperless-ngx/#linuxserverpaperless-ngx","text":"Paperless-ngx is an application by Daniel Quinn and contributors that indexes your scanned documents and allows you to easily search for documents and store metadata alongside your documents.\"","title":"linuxserver/paperless-ngx"},{"location":"images/docker-paperless-ngx/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/paperless-ngx:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-paperless-ngx/#application-setup","text":"Default login is admin:admin via the webui, accessible at http://SERVERIP:PORT More info at paperless-ngx . For convenience this container provides an alias to perform administration management commands. Available administration commands are documented upstream here and can be accessed with this container thus: docker exec -it manage . For example, docker exec -it paperless manage document_retagger -tT .","title":"Application Setup"},{"location":"images/docker-paperless-ngx/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-paperless-ngx/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: paperless-ngx: image: lscr.io/linuxserver/paperless-ngx:latest container_name: paperless-ngx environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - REDIS_URL= #optional volumes: - /path/to/appdata/config:/config - /path/to/appdata/data:/data ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-paperless-ngx/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=paperless-ngx \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e REDIS_URL= `#optional` \\ -p 8000:8000 \\ -v /path/to/appdata/config:/config \\ -v /path/to/appdata/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/paperless-ngx:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-paperless-ngx/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-paperless-ngx/#ports-p","text":"Parameter Function 8000 http gui","title":"Ports (-p)"},{"location":"images/docker-paperless-ngx/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York REDIS_URL= Specify an external redis instance to use. Can optionally include a port ( redis:6379 ) and/or db ( redis/foo ). If left blank or not included, will use a built-in redis instance. If changed after initial setup will also require manual modification of /config/settings.py","title":"Environment Variables (-e)"},{"location":"images/docker-paperless-ngx/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /data Storage location for all paperless-ngx data files.","title":"Volume Mappings (-v)"},{"location":"images/docker-paperless-ngx/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-paperless-ngx/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-paperless-ngx/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-paperless-ngx/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-paperless-ngx/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-paperless-ngx/#support-info","text":"Shell access whilst the container is running: docker exec -it paperless-ngx /bin/bash To monitor the logs of the container in realtime: docker logs -f paperless-ngx Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' paperless-ngx Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/paperless-ngx:latest","title":"Support Info"},{"location":"images/docker-paperless-ngx/#versions","text":"05.09.22: - Deprecate. 16.05.22: - Add correct libqpdf.so to arm builds. 14.05.22: - Fine tune disabling of redis. 12.05.22: - Move migrations to after multilangocr mod. Fix disabling of redis. Add missing dep for postgresql. 12.05.22: - Utilize lsio wheel for pikepdf. 11.05.22: - Update upstream artifact name and utilize lsio wheels for scipy and scikit-learn. 05.05.22: - Add runtime dependencies libxslt1.1 for armhf 30.04.22: - Add runtime dependencies lizbar and poppler-utils 27.04.22: - Add build-dependencies for arm32 builds. 11.04.22: - Replaced uwsgi with gunicorn due to websocket issues. 11.03.22: - Initial Release.","title":"Versions"},{"location":"images/docker-papermerge/","text":"linuxserver/papermerge Papermerge is an open source document management system (DMS) primarily designed for archiving and retrieving your digital documents. Instead of having piles of paper documents all over your desk, office or drawers - you can quickly scan them and configure your scanner to directly upload to Papermerge DMS.\" Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/papermerge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Default login is admin:admin via the webui, accessible at http://SERVERIP:PORT More info at papermerge . If you need non-English OCR language support, you can use this mod . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: papermerge: image: lscr.io/linuxserver/papermerge:latest container_name: papermerge environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - REDIS_URL= #optional volumes: - :/config - :/data ports: - 8000:8000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=papermerge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e REDIS_URL= `#optional` \\ -p 8000:8000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/papermerge:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 http gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York REDIS_URL= Specify an external redis instance to use. Can optionally include a port ( redis:6379 ) and/or db ( redis/foo ). If left blank or not included, will use a built-in redis instance. If changed after initial setup will also require manual modification of /config/settings.py Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /data Storage location for all papermerge data files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it papermerge /bin/bash To monitor the logs of the container in realtime: docker logs -f papermerge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' papermerge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/papermerge:latest Versions 15.07.22: - Don't install development python packages 13.04.21: - Handle upstream stapler change 13.03.21: - Fixed mglib dependency per issue 32 25.02.21: - Updated dependencies for v2 07.02.21: - Support external MySQL/PSQL DBs. 01.02.21: - Add redis. 09.12.20: - Fix locales. 08.08.20: - Initial Release.","title":"papermerge"},{"location":"images/docker-papermerge/#linuxserverpapermerge","text":"Papermerge is an open source document management system (DMS) primarily designed for archiving and retrieving your digital documents. Instead of having piles of paper documents all over your desk, office or drawers - you can quickly scan them and configure your scanner to directly upload to Papermerge DMS.\"","title":"linuxserver/papermerge"},{"location":"images/docker-papermerge/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/papermerge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-papermerge/#application-setup","text":"Default login is admin:admin via the webui, accessible at http://SERVERIP:PORT More info at papermerge . If you need non-English OCR language support, you can use this mod .","title":"Application Setup"},{"location":"images/docker-papermerge/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-papermerge/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: papermerge: image: lscr.io/linuxserver/papermerge:latest container_name: papermerge environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - REDIS_URL= #optional volumes: - :/config - :/data ports: - 8000:8000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-papermerge/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=papermerge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e REDIS_URL= `#optional` \\ -p 8000:8000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/papermerge:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-papermerge/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-papermerge/#ports-p","text":"Parameter Function 8000 http gui","title":"Ports (-p)"},{"location":"images/docker-papermerge/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York REDIS_URL= Specify an external redis instance to use. Can optionally include a port ( redis:6379 ) and/or db ( redis/foo ). If left blank or not included, will use a built-in redis instance. If changed after initial setup will also require manual modification of /config/settings.py","title":"Environment Variables (-e)"},{"location":"images/docker-papermerge/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /data Storage location for all papermerge data files.","title":"Volume Mappings (-v)"},{"location":"images/docker-papermerge/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-papermerge/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-papermerge/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-papermerge/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-papermerge/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-papermerge/#support-info","text":"Shell access whilst the container is running: docker exec -it papermerge /bin/bash To monitor the logs of the container in realtime: docker logs -f papermerge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' papermerge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/papermerge:latest","title":"Support Info"},{"location":"images/docker-papermerge/#versions","text":"15.07.22: - Don't install development python packages 13.04.21: - Handle upstream stapler change 13.03.21: - Fixed mglib dependency per issue 32 25.02.21: - Updated dependencies for v2 07.02.21: - Support external MySQL/PSQL DBs. 01.02.21: - Add redis. 09.12.20: - Fix locales. 08.08.20: - Initial Release.","title":"Versions"},{"location":"images/docker-photoshow/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/photoshow Photoshow is gallery software at its easiest, it doesn't even require a database. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/photoshow:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup On first run create an admin account, any folder and its subfolders that you map to /Pictures will be presented as a webgallery. Config settings are persistent and stored as a subfolder of the /Thumbs mapping. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: photoshow: image: lscr.io/linuxserver/photoshow:latest container_name: photoshow environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/Pictures:ro - :/Thumbs ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=photoshow \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ -v :/Pictures:ro \\ -v :/Thumbs \\ --restart unless-stopped \\ lscr.io/linuxserver/photoshow:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Stores config and logs for nginx base. /Pictures:ro Your local folder of photos you wish to share. /Thumbs Local folder to store thumbnails of your images. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it photoshow /bin/bash To monitor the logs of the container in realtime: docker logs -f photoshow Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' photoshow Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/photoshow:latest Versions 14.10.22: - Deprecate image. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 23.09.19: - Adding PHP-Exif for image metadata and processing. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 05.09.18: - Rebase to alpine 3.8. 07.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 14.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 30.09.16: - Rebase to alpine linux. 11.09.16: - Add layer badges to README. 21.08.15: - Use patched keybaord js from fork of photoshow. 21.08.15: - Initial Release.","title":"photoshow"},{"location":"images/docker-photoshow/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-photoshow/#linuxserverphotoshow","text":"Photoshow is gallery software at its easiest, it doesn't even require a database.","title":"linuxserver/photoshow"},{"location":"images/docker-photoshow/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/photoshow:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-photoshow/#application-setup","text":"On first run create an admin account, any folder and its subfolders that you map to /Pictures will be presented as a webgallery. Config settings are persistent and stored as a subfolder of the /Thumbs mapping.","title":"Application Setup"},{"location":"images/docker-photoshow/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-photoshow/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: photoshow: image: lscr.io/linuxserver/photoshow:latest container_name: photoshow environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/Pictures:ro - :/Thumbs ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-photoshow/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=photoshow \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v :/config \\ -v :/Pictures:ro \\ -v :/Thumbs \\ --restart unless-stopped \\ lscr.io/linuxserver/photoshow:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-photoshow/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-photoshow/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-photoshow/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-photoshow/#volume-mappings-v","text":"Volume Function /config Stores config and logs for nginx base. /Pictures:ro Your local folder of photos you wish to share. /Thumbs Local folder to store thumbnails of your images.","title":"Volume Mappings (-v)"},{"location":"images/docker-photoshow/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-photoshow/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-photoshow/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-photoshow/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-photoshow/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-photoshow/#support-info","text":"Shell access whilst the container is running: docker exec -it photoshow /bin/bash To monitor the logs of the container in realtime: docker logs -f photoshow Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' photoshow Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/photoshow:latest","title":"Support Info"},{"location":"images/docker-photoshow/#versions","text":"14.10.22: - Deprecate image. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 23.09.19: - Adding PHP-Exif for image metadata and processing. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 05.09.18: - Rebase to alpine 3.8. 07.01.18: - Rebase to alpine 3.7. 25.05.17: - Rebase to alpine 3.6. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 14.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 30.09.16: - Rebase to alpine linux. 11.09.16: - Add layer badges to README. 21.08.15: - Use patched keybaord js from fork of photoshow. 21.08.15: - Initial Release.","title":"Versions"},{"location":"images/docker-phpmyadmin/","text":"linuxserver/phpmyadmin Phpmyadmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL and MariaDB. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/phpmyadmin:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This image uses nginx, in contrast to the official images which offer fpm-only or Apache variants. We support all of the official environment variables for configuration as well as directly editing the config files. For more information check out the phpmyadmin documentation . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: phpmyadmin: image: lscr.io/linuxserver/phpmyadmin:latest container_name: phpmyadmin environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - PMA_ARBITRARY=1 #optional - PMA_ABSOLUTE_URI=https://phpmyadmin.example.com #optional volumes: - /path/to/appdata/config:/config ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=phpmyadmin \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e PMA_ARBITRARY=1 `#optional` \\ -e PMA_ABSOLUTE_URI=https://phpmyadmin.example.com `#optional` \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/phpmyadmin:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Port for web frontend Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York PMA_ARBITRARY=1 Set to 1 to allow you to connect to any server. Setting to 0 will only allow you to connect to specified hosts (See Application Setup) PMA_ABSOLUTE_URI=https://phpmyadmin.example.com Set the URL you will use to access the web frontend Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it phpmyadmin /bin/bash To monitor the logs of the container in realtime: docker logs -f phpmyadmin Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' phpmyadmin Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/phpmyadmin:latest Versions 18.11.22: - Rebasing to Alpine 3.16, migrate to s6v3. 20.08.22: - Rebasing to Alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 23.01.22: - Pin versions to 5.x.x. 14.06.21: - Initial Release.","title":"phpmyadmin"},{"location":"images/docker-phpmyadmin/#linuxserverphpmyadmin","text":"Phpmyadmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL and MariaDB.","title":"linuxserver/phpmyadmin"},{"location":"images/docker-phpmyadmin/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/phpmyadmin:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-phpmyadmin/#application-setup","text":"This image uses nginx, in contrast to the official images which offer fpm-only or Apache variants. We support all of the official environment variables for configuration as well as directly editing the config files. For more information check out the phpmyadmin documentation .","title":"Application Setup"},{"location":"images/docker-phpmyadmin/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-phpmyadmin/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: phpmyadmin: image: lscr.io/linuxserver/phpmyadmin:latest container_name: phpmyadmin environment: - PUID=1000 - PGID=1000 - TZ=America/New_York - PMA_ARBITRARY=1 #optional - PMA_ABSOLUTE_URI=https://phpmyadmin.example.com #optional volumes: - /path/to/appdata/config:/config ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-phpmyadmin/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=phpmyadmin \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -e PMA_ARBITRARY=1 `#optional` \\ -e PMA_ABSOLUTE_URI=https://phpmyadmin.example.com `#optional` \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/phpmyadmin:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-phpmyadmin/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-phpmyadmin/#ports-p","text":"Parameter Function 80 Port for web frontend","title":"Ports (-p)"},{"location":"images/docker-phpmyadmin/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York PMA_ARBITRARY=1 Set to 1 to allow you to connect to any server. Setting to 0 will only allow you to connect to specified hosts (See Application Setup) PMA_ABSOLUTE_URI=https://phpmyadmin.example.com Set the URL you will use to access the web frontend","title":"Environment Variables (-e)"},{"location":"images/docker-phpmyadmin/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-phpmyadmin/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-phpmyadmin/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-phpmyadmin/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-phpmyadmin/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-phpmyadmin/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-phpmyadmin/#support-info","text":"Shell access whilst the container is running: docker exec -it phpmyadmin /bin/bash To monitor the logs of the container in realtime: docker logs -f phpmyadmin Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' phpmyadmin Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/phpmyadmin:latest","title":"Support Info"},{"location":"images/docker-phpmyadmin/#versions","text":"18.11.22: - Rebasing to Alpine 3.16, migrate to s6v3. 20.08.22: - Rebasing to Alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 23.01.22: - Pin versions to 5.x.x. 14.06.21: - Initial Release.","title":"Versions"},{"location":"images/docker-pidgin/","text":"linuxserver/pidgin Pidgin is a chat program which lets you log into accounts on multiple chat networks simultaneously. This means that you can be chatting with friends on XMPP and sitting in an IRC channel at the same time. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pidgin:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true This Pidgin installation comes with default chat plugins plus a series of third party ones. Please note that the third party plugins for the most part are not simply plug and play, you will need to reference their documentation and possibly generate oauth tokens along with other workarounds . Third party plugins are always in a state of constant development do not expect every single native feature to work flawlessly. To ease integration with some third party plugins we include Firefox in this image to allow you to fill out captchas or pre-auth before loading your credentials into the program, simply right click the desktop to launch it. Bonjour- Default XMPP style plugin Discord- Provided by purple-discord Facebook- Provided by purple-facebook Gadu-Gadu- Default libgadu plugin Google Talk- Provided by purple-hangouts GroupWise- Default GroupWise plugin Hangouts- Provided by purple-hangouts ICQ (WIM)- Provided by icyque IRC- Default IRC plugin Instagram- Provided by purple-instagram Office Comminicator (SIPE)- Provided by SIPE Project Rocket.chat- Provided by purple-rocketchat SIMPLE- Default plugin Skype (HTTP)- Provided by skype4pidgin Slack- Provided by slack-libpurple Telegram- Provided by telegram-purple XMPP- Default XMPP plugin Zephyr- Default project Athena plugin Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pidgin: image: lscr.io/linuxserver/pidgin:latest container_name: pidgin security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pidgin \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/pidgin:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Pidgin desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores local files and settings Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pidgin /bin/bash To monitor the logs of the container in realtime: docker logs -f pidgin Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pidgin Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pidgin:latest Versions 21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 15.02.22: - Add build deps for discord. 23.12.21: - Rebase to Alpine 3.15. 26.09.21: - Rebase to Alpine 3.14. 14.05.21: - Initial release.","title":"pidgin"},{"location":"images/docker-pidgin/#linuxserverpidgin","text":"Pidgin is a chat program which lets you log into accounts on multiple chat networks simultaneously. This means that you can be chatting with friends on XMPP and sitting in an IRC channel at the same time.","title":"linuxserver/pidgin"},{"location":"images/docker-pidgin/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pidgin:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-pidgin/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true This Pidgin installation comes with default chat plugins plus a series of third party ones. Please note that the third party plugins for the most part are not simply plug and play, you will need to reference their documentation and possibly generate oauth tokens along with other workarounds . Third party plugins are always in a state of constant development do not expect every single native feature to work flawlessly. To ease integration with some third party plugins we include Firefox in this image to allow you to fill out captchas or pre-auth before loading your credentials into the program, simply right click the desktop to launch it. Bonjour- Default XMPP style plugin Discord- Provided by purple-discord Facebook- Provided by purple-facebook Gadu-Gadu- Default libgadu plugin Google Talk- Provided by purple-hangouts GroupWise- Default GroupWise plugin Hangouts- Provided by purple-hangouts ICQ (WIM)- Provided by icyque IRC- Default IRC plugin Instagram- Provided by purple-instagram Office Comminicator (SIPE)- Provided by SIPE Project Rocket.chat- Provided by purple-rocketchat SIMPLE- Default plugin Skype (HTTP)- Provided by skype4pidgin Slack- Provided by slack-libpurple Telegram- Provided by telegram-purple XMPP- Default XMPP plugin Zephyr- Default project Athena plugin","title":"Application Setup"},{"location":"images/docker-pidgin/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pidgin/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pidgin: image: lscr.io/linuxserver/pidgin:latest container_name: pidgin security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pidgin/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pidgin \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/pidgin:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-pidgin/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pidgin/#ports-p","text":"Parameter Function 3000 Pidgin desktop gui.","title":"Ports (-p)"},{"location":"images/docker-pidgin/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-pidgin/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores local files and settings","title":"Volume Mappings (-v)"},{"location":"images/docker-pidgin/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-pidgin/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pidgin/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pidgin/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pidgin/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pidgin/#support-info","text":"Shell access whilst the container is running: docker exec -it pidgin /bin/bash To monitor the logs of the container in realtime: docker logs -f pidgin Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pidgin Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pidgin:latest","title":"Support Info"},{"location":"images/docker-pidgin/#versions","text":"21.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 15.02.22: - Add build deps for discord. 23.12.21: - Rebase to Alpine 3.15. 26.09.21: - Rebase to Alpine 3.14. 14.05.21: - Initial release.","title":"Versions"},{"location":"images/docker-piwigo/","text":"linuxserver/piwigo Piwigo is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/piwigo:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup You must create a user and database for piwigo to use in a mysql/mariadb server. Self-signed keys are generated the first time you run the container and can be found in /config/keys , if needed, you can replace them with your own. The easiest way to edit the configuration file is to enable local files editor from the plugins page and use it to configure email settings etc.\" Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: piwigo: image: lscr.io/linuxserver/piwigo:latest container_name: piwigo environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/appdata/gallery:/gallery ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=piwigo \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ -v /path/to/appdata/gallery:/gallery \\ --restart unless-stopped \\ lscr.io/linuxserver/piwigo:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. /gallery Image storage for Piwigo Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it piwigo /bin/bash To monitor the logs of the container in realtime: docker logs -f piwigo Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' piwigo Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/piwigo:latest Versions 08.11.22: - Rebase to Alpine 3.16, migrate to s6v3. Move application install to /app/www/public, add migration for existing users. Container updates should now update the application correctly. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 29.06.21: - Rebase to 3.14, Add php7-zip package 20.05.21: - Create separate volume for image data 23.01.21: - Rebasing to alpine 3.13. 12.12.20: - Increased upload_max_filesize in php.ini 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 12.06.19: - Add ffmpeg and other deps as needed by popular plugins. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.03.19: - Add php-ctype & php-curl. 22.02.19: - Rebasing to alpine 3.9, add php-ldap. 28.01.19: - Rebase to alpine linux 3.8 , add pipeline logic and multi arch. 25.01.18: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 20.04.17: - Add php7-exif package, thanks iiska 23.02.17: - Rebase to alpine linux 3.5 and nginx. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 29.08.15: - Initial Release.","title":"piwigo"},{"location":"images/docker-piwigo/#linuxserverpiwigo","text":"Piwigo is a photo gallery software for the web that comes with powerful features to publish and manage your collection of pictures.","title":"linuxserver/piwigo"},{"location":"images/docker-piwigo/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/piwigo:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-piwigo/#application-setup","text":"You must create a user and database for piwigo to use in a mysql/mariadb server. Self-signed keys are generated the first time you run the container and can be found in /config/keys , if needed, you can replace them with your own. The easiest way to edit the configuration file is to enable local files editor from the plugins page and use it to configure email settings etc.\"","title":"Application Setup"},{"location":"images/docker-piwigo/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-piwigo/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: piwigo: image: lscr.io/linuxserver/piwigo:latest container_name: piwigo environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/appdata/gallery:/gallery ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-piwigo/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=piwigo \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v /path/to/appdata/config:/config \\ -v /path/to/appdata/gallery:/gallery \\ --restart unless-stopped \\ lscr.io/linuxserver/piwigo:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-piwigo/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-piwigo/#ports-p","text":"Parameter Function 80 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-piwigo/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-piwigo/#volume-mappings-v","text":"Volume Function /config Configuration files. /gallery Image storage for Piwigo","title":"Volume Mappings (-v)"},{"location":"images/docker-piwigo/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-piwigo/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-piwigo/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-piwigo/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-piwigo/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-piwigo/#support-info","text":"Shell access whilst the container is running: docker exec -it piwigo /bin/bash To monitor the logs of the container in realtime: docker logs -f piwigo Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' piwigo Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/piwigo:latest","title":"Support Info"},{"location":"images/docker-piwigo/#versions","text":"08.11.22: - Rebase to Alpine 3.16, migrate to s6v3. Move application install to /app/www/public, add migration for existing users. Container updates should now update the application correctly. 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 29.06.21: - Rebase to 3.14, Add php7-zip package 20.05.21: - Create separate volume for image data 23.01.21: - Rebasing to alpine 3.13. 12.12.20: - Increased upload_max_filesize in php.ini 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 12.06.19: - Add ffmpeg and other deps as needed by popular plugins. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.03.19: - Add php-ctype & php-curl. 22.02.19: - Rebasing to alpine 3.9, add php-ldap. 28.01.19: - Rebase to alpine linux 3.8 , add pipeline logic and multi arch. 25.01.18: - Rebase to alpine linux 3.7. 25.05.17: - Rebase to alpine linux 3.6. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 20.04.17: - Add php7-exif package, thanks iiska 23.02.17: - Rebase to alpine linux 3.5 and nginx. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 29.08.15: - Initial Release.","title":"Versions"},{"location":"images/docker-pixapop/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/pixapop Pixapop is an open-source single page application to view your photos in the easiest way possible. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pixapop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Any photos included in /photos will be presented as galleries split by month. Config settings are persistent and stored into /config. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pixapop: image: lscr.io/linuxserver/pixapop:latest container_name: pixapop environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - APP_USERNAME=admin #optional - APP_PASSWORD=admin #optional volumes: - /path/to/config:/config - /path/to/photos:/photos ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pixapop \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e APP_USERNAME=admin `#optional` \\ -e APP_PASSWORD=admin `#optional` \\ -p 80:80 \\ -v /path/to/config:/config \\ -v /path/to/photos:/photos \\ --restart unless-stopped \\ lscr.io/linuxserver/pixapop:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. APP_USERNAME=admin Specify a username to enable authentication. APP_PASSWORD=admin Specify a password to enable authentication. Volume Mappings ( -v ) Volume Function /config Stores config and logs for nginx base. /photos Your local folder of photos. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pixapop /bin/bash To monitor the logs of the container in realtime: docker logs -f pixapop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pixapop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pixapop:latest Versions 14.10.22 - Deprecate image. 17.12.20 - Move image to main linuxserver repo, add notice to container log 18.03.19 - Update build dependencies 18.03.19 - Add build dependencies 17.03.19 - Initial release","title":"pixapop"},{"location":"images/docker-pixapop/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-pixapop/#linuxserverpixapop","text":"Pixapop is an open-source single page application to view your photos in the easiest way possible.","title":"linuxserver/pixapop"},{"location":"images/docker-pixapop/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pixapop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-pixapop/#application-setup","text":"Any photos included in /photos will be presented as galleries split by month. Config settings are persistent and stored into /config.","title":"Application Setup"},{"location":"images/docker-pixapop/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pixapop/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pixapop: image: lscr.io/linuxserver/pixapop:latest container_name: pixapop environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - APP_USERNAME=admin #optional - APP_PASSWORD=admin #optional volumes: - /path/to/config:/config - /path/to/photos:/photos ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pixapop/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pixapop \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e APP_USERNAME=admin `#optional` \\ -e APP_PASSWORD=admin `#optional` \\ -p 80:80 \\ -v /path/to/config:/config \\ -v /path/to/photos:/photos \\ --restart unless-stopped \\ lscr.io/linuxserver/pixapop:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-pixapop/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pixapop/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-pixapop/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. APP_USERNAME=admin Specify a username to enable authentication. APP_PASSWORD=admin Specify a password to enable authentication.","title":"Environment Variables (-e)"},{"location":"images/docker-pixapop/#volume-mappings-v","text":"Volume Function /config Stores config and logs for nginx base. /photos Your local folder of photos.","title":"Volume Mappings (-v)"},{"location":"images/docker-pixapop/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-pixapop/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pixapop/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pixapop/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pixapop/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pixapop/#support-info","text":"Shell access whilst the container is running: docker exec -it pixapop /bin/bash To monitor the logs of the container in realtime: docker logs -f pixapop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pixapop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pixapop:latest","title":"Support Info"},{"location":"images/docker-pixapop/#versions","text":"14.10.22 - Deprecate image. 17.12.20 - Move image to main linuxserver repo, add notice to container log 18.03.19 - Update build dependencies 18.03.19 - Add build dependencies 17.03.19 - Initial release","title":"Versions"},{"location":"images/docker-plex-meta-manager/","text":"linuxserver/plex-meta-manager Plex-meta-manager is a Python 3 script that can be continuously run using YAML configuration files to update on a schedule the metadata of the movies, shows, and collections in your libraries as well as automatically build collections based on various methods all detailed in the wiki. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/plex-meta-manager:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases. develop \u2705 Latest commits from the develop branch Application Setup There is a walkthrough available to help get you up and running. This image supports all of the environment variables listed here and all commandline arguments. To perform a one-time run use docker run (or docker-compose run ) with the --rm and -e PMM_RUN=True arguments. This will cause the container to process your config immediately instead of waiting for the scheduled time, and delete the old container after completion. For more information see the official wiki . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: plex-meta-manager: image: lscr.io/linuxserver/plex-meta-manager:latest container_name: plex-meta-manager environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PMM_CONFIG=/config/config.yml #optional - PMM_TIME=03:00 #optional - PMM_RUN=False #optional - PMM_TEST=False #optional - PMM_NO_MISSING=False #optional volumes: - /path/to/appdata/config:/config restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=plex-meta-manager \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PMM_CONFIG=/config/config.yml `#optional` \\ -e PMM_TIME=03:00 `#optional` \\ -e PMM_RUN=False `#optional` \\ -e PMM_TEST=False `#optional` \\ -e PMM_NO_MISSING=False `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/plex-meta-manager:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. PMM_CONFIG=/config/config.yml Specify a custom config file to use. PMM_TIME=03:00 Comma-separated list of times to update each day. Format: HH:MM . PMM_RUN=False Set to True to run without the scheduler. PMM_TEST=False Set to True to run in debug mode with only collections that have test: true . PMM_NO_MISSING=False Set to True to run without any of the missing movie/show functions. Volume Mappings ( -v ) Volume Function /config Local path for plex-meta-manager config files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it plex-meta-manager /bin/bash To monitor the logs of the container in realtime: docker logs -f plex-meta-manager Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' plex-meta-manager Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/plex-meta-manager:latest Versions 11.12.22: - Rebase master to Alpine 3.17. 08.11.22: - Add develop branch. 25.10.22: - Support commandline args and relative paths. 03.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 30.01.22: - Initial Release.","title":"plex-meta-manager"},{"location":"images/docker-plex-meta-manager/#linuxserverplex-meta-manager","text":"Plex-meta-manager is a Python 3 script that can be continuously run using YAML configuration files to update on a schedule the metadata of the movies, shows, and collections in your libraries as well as automatically build collections based on various methods all detailed in the wiki.","title":"linuxserver/plex-meta-manager"},{"location":"images/docker-plex-meta-manager/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/plex-meta-manager:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-plex-meta-manager/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases. develop \u2705 Latest commits from the develop branch","title":"Version Tags"},{"location":"images/docker-plex-meta-manager/#application-setup","text":"There is a walkthrough available to help get you up and running. This image supports all of the environment variables listed here and all commandline arguments. To perform a one-time run use docker run (or docker-compose run ) with the --rm and -e PMM_RUN=True arguments. This will cause the container to process your config immediately instead of waiting for the scheduled time, and delete the old container after completion. For more information see the official wiki .","title":"Application Setup"},{"location":"images/docker-plex-meta-manager/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-plex-meta-manager/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: plex-meta-manager: image: lscr.io/linuxserver/plex-meta-manager:latest container_name: plex-meta-manager environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - PMM_CONFIG=/config/config.yml #optional - PMM_TIME=03:00 #optional - PMM_RUN=False #optional - PMM_TEST=False #optional - PMM_NO_MISSING=False #optional volumes: - /path/to/appdata/config:/config restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-plex-meta-manager/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=plex-meta-manager \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e PMM_CONFIG=/config/config.yml `#optional` \\ -e PMM_TIME=03:00 `#optional` \\ -e PMM_RUN=False `#optional` \\ -e PMM_TEST=False `#optional` \\ -e PMM_NO_MISSING=False `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/plex-meta-manager:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-plex-meta-manager/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-plex-meta-manager/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-plex-meta-manager/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. PMM_CONFIG=/config/config.yml Specify a custom config file to use. PMM_TIME=03:00 Comma-separated list of times to update each day. Format: HH:MM . PMM_RUN=False Set to True to run without the scheduler. PMM_TEST=False Set to True to run in debug mode with only collections that have test: true . PMM_NO_MISSING=False Set to True to run without any of the missing movie/show functions.","title":"Environment Variables (-e)"},{"location":"images/docker-plex-meta-manager/#volume-mappings-v","text":"Volume Function /config Local path for plex-meta-manager config files.","title":"Volume Mappings (-v)"},{"location":"images/docker-plex-meta-manager/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-plex-meta-manager/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-plex-meta-manager/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-plex-meta-manager/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-plex-meta-manager/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-plex-meta-manager/#support-info","text":"Shell access whilst the container is running: docker exec -it plex-meta-manager /bin/bash To monitor the logs of the container in realtime: docker logs -f plex-meta-manager Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' plex-meta-manager Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/plex-meta-manager:latest","title":"Support Info"},{"location":"images/docker-plex-meta-manager/#versions","text":"11.12.22: - Rebase master to Alpine 3.17. 08.11.22: - Add develop branch. 25.10.22: - Support commandline args and relative paths. 03.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 30.01.22: - Initial Release.","title":"Versions"},{"location":"images/docker-plex/","text":"linuxserver/plex Plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. has always been a top priority. Straightforward design and bulk actions mean getting things done faster. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/plex:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases with Focal baseimage bionic \u2705 DEPRECATED - Stable releases with Bionic baseimage Application Setup Webui can be found at :32400/web Note about updates, if there is no value set for the VERSION variable, then no updates will take place. For new users, no updates will take place on the first run of the container as there is no preferences file to read your token from, to update restart the Docker container after logging in through the webui Valid settings for VERSION are:- IMPORTANT NOTE:- YOU CANNOT UPDATE TO A PLEXPASS ONLY (BETA) VERSION IF YOU ARE NOT LOGGED IN WITH A PLEXPASS ACCOUNT docker : Let Docker handle the Plex Version, we keep our Dockerhub Endpoint up to date with the latest public builds. This is the same as leaving this setting out of your create command. latest : will update plex to the latest version available that you are entitled to. public : will update plexpass users to the latest public version, useful for plexpass users that don't want to be on the bleeding edge but still want the latest public updates. : will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to install, note you cannot use this to access plexpass versions if you do not have plexpass. Hardware Acceleration Intel Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the plex docker. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: plex: image: lscr.io/linuxserver/plex:latest container_name: plex network_mode: host environment: - PUID=1000 - PGID=1000 - VERSION=docker - PLEX_CLAIM= #optional volumes: - /path/to/library:/config - /path/to/tvseries:/tv - /path/to/movies:/movies restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=plex \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e VERSION=docker \\ -e PLEX_CLAIM= `#optional` \\ -v /path/to/library:/config \\ -v /path/to/tvseries:/tv \\ -v /path/to/movies:/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/plex:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Networking ( --net ) Parameter Function --net=host Use Host Networking Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation VERSION=docker Set whether to update plex or not - see Application Setup section. PLEX_CLAIM= Optionally you can obtain a claim token from https://plex.tv/claim and input here. Keep in mind that the claim tokens expire within 4 minutes. Volume Mappings ( -v ) Volume Function /config Plex library location. This can grow very large, 50gb+ is likely for a large collection. /tv Media goes here. Add as many as needed e.g. /movies , /tv , etc. /movies Media goes here. Add as many as needed e.g. /movies , /tv , etc. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Optional Parameters If you want to run the container in bridge network mode (instead of the recommended host network mode) you will need to specify ports. The official documentation for ports lists 32400 as the only required port. The rest of the ports are optionally used for specific purposes listed in the documentation. If you have not already claimed your server (first time setup) you need to set PLEX_CLAIM to claim a server set up with bridge networking. -p 32400:32400 \\ -p 1900:1900/udp \\ -p 3005:3005 \\ -p 5353:5353/udp \\ -p 8324:8324 \\ -p 32410:32410/udp \\ -p 32412:32412/udp \\ -p 32413:32413/udp \\ -p 32414:32414/udp \\ -p 32469:32469 The application accepts a series of environment variables to further customize itself on boot: Parameter Function --device=/dev/dri:/dev/dri Add this option to your run command if you plan on using Quicksync hardware acceleration - see Application Setup section. --device=/dev/dvb:/dev/dvb Add this option to your run command if you plan on using dvb devices. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it plex /bin/bash To monitor the logs of the container in realtime: docker logs -f plex Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' plex Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/plex:latest Versions 16.10.22: - Rebase to jammy. Update to s6v3. Remove opencl packages (bundled with plex). 18.07.22: - Pin all opencl related driver packages. 16.05.22: - Pin opencl version. 04.03.22: - Increase verbosity of video device permissions fix, attempt to fix missing group rw. 25.12.21: - Install Intel drivers from the official repo. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 10.12.20: - Add latest Intel Compute packages from github repo for opencl support on latest gen igpu. 23.11.20: - Add Bionic branch make Focal default. 03.05.20: - Update exposed ports and example docs for bridge mode. 23.03.20: - Remove udev hack (no longer needed), suppress uuid error in log during first start. 04.12.19: - Add variable for setting PLEX_CLAIM. Remove /transcode volume mapping as it is now set via plex gui and defaults to a location under /config . 06.08.19: - Add variable for setting UMASK. 10.07.19: - Fix permissions for tuner (/dev/dvb) devices. 20.05.19: - Bugfix do not allow Root group for Intel QuickSync ownership rules. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.03.19: - Fix update logic for VERSION=public . 14.03.19: - Switch to new api endpoints, enable beta (plex pass) updates for armhf and aarch64. 15.02.19: - Clean up plex pid after unclean stop. 11.02.19: - Fix nvidia variables, add device variables. 16.01.19: - Add pipeline logic, multi arch, and HW transcoding configuration; remove avahi service. 07.09.18: - Rebase to ubuntu bionic, add udev package. 09.12.17: - Fix continuation lines. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Add unrar package as per requests, for subzero plugin. 11.01.17: - Use Plex environment variables from pms docker, change abc home folder to /app to alleviate usermod chowning library 03.01.17: - Use case insensitive version variable matching rather than export and make lowercase. 17.10.16: - Allow use of uppercase version variable 01.10.16: - Add TZ info to README. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 22.08.16: - Rebased to xenial and s6 overlay 07.04.16: - removed /transcode volume support (upstream Plex change) and modified PlexPass download method to prevent unauthorised usage of paid PMS 24.09.15: - added optional support for volume transcoding (/transcode), and various typo fixes. 17.09.15: - Changed to run chmod only once 19.09.15: - Plex updated their download servers from http to https 28.08.15: - Removed plexpass from routine, and now uses VERSION as a combination fix. 18.07.15: - Moved autoupdate to be hosted by linuxserver.io and implemented bugfix thanks to ljm42. 09.07.15: - Now with ability to pick static version number. 08.07.15: - Now with autoupdates. (Hosted by fanart.tv) 03.07.15: - Fixed a mistake that allowed plex to run as user plex rather than abc (99:100). Thanks to double16 for spotting this.","title":"plex"},{"location":"images/docker-plex/#linuxserverplex","text":"Plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone Plex Media Server. has always been a top priority. Straightforward design and bulk actions mean getting things done faster.","title":"linuxserver/plex"},{"location":"images/docker-plex/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/plex:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-plex/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases with Focal baseimage bionic \u2705 DEPRECATED - Stable releases with Bionic baseimage","title":"Version Tags"},{"location":"images/docker-plex/#application-setup","text":"Webui can be found at :32400/web Note about updates, if there is no value set for the VERSION variable, then no updates will take place. For new users, no updates will take place on the first run of the container as there is no preferences file to read your token from, to update restart the Docker container after logging in through the webui Valid settings for VERSION are:- IMPORTANT NOTE:- YOU CANNOT UPDATE TO A PLEXPASS ONLY (BETA) VERSION IF YOU ARE NOT LOGGED IN WITH A PLEXPASS ACCOUNT docker : Let Docker handle the Plex Version, we keep our Dockerhub Endpoint up to date with the latest public builds. This is the same as leaving this setting out of your create command. latest : will update plex to the latest version available that you are entitled to. public : will update plexpass users to the latest public version, useful for plexpass users that don't want to be on the bleeding edge but still want the latest public updates. : will select a specific version (eg 0.9.12.4.1192-9a47d21) of plex to install, note you cannot use this to access plexpass versions if you do not have plexpass.","title":"Application Setup"},{"location":"images/docker-plex/#hardware-acceleration","text":"","title":"Hardware Acceleration"},{"location":"images/docker-plex/#intel","text":"Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel"},{"location":"images/docker-plex/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the plex docker.","title":"Nvidia"},{"location":"images/docker-plex/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-plex/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: plex: image: lscr.io/linuxserver/plex:latest container_name: plex network_mode: host environment: - PUID=1000 - PGID=1000 - VERSION=docker - PLEX_CLAIM= #optional volumes: - /path/to/library:/config - /path/to/tvseries:/tv - /path/to/movies:/movies restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-plex/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=plex \\ --net=host \\ -e PUID=1000 \\ -e PGID=1000 \\ -e VERSION=docker \\ -e PLEX_CLAIM= `#optional` \\ -v /path/to/library:/config \\ -v /path/to/tvseries:/tv \\ -v /path/to/movies:/movies \\ --restart unless-stopped \\ lscr.io/linuxserver/plex:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-plex/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-plex/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-plex/#networking-net","text":"Parameter Function --net=host Use Host Networking","title":"Networking (--net)"},{"location":"images/docker-plex/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation VERSION=docker Set whether to update plex or not - see Application Setup section. PLEX_CLAIM= Optionally you can obtain a claim token from https://plex.tv/claim and input here. Keep in mind that the claim tokens expire within 4 minutes.","title":"Environment Variables (-e)"},{"location":"images/docker-plex/#volume-mappings-v","text":"Volume Function /config Plex library location. This can grow very large, 50gb+ is likely for a large collection. /tv Media goes here. Add as many as needed e.g. /movies , /tv , etc. /movies Media goes here. Add as many as needed e.g. /movies , /tv , etc.","title":"Volume Mappings (-v)"},{"location":"images/docker-plex/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-plex/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-plex/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-plex/#optional-parameters","text":"If you want to run the container in bridge network mode (instead of the recommended host network mode) you will need to specify ports. The official documentation for ports lists 32400 as the only required port. The rest of the ports are optionally used for specific purposes listed in the documentation. If you have not already claimed your server (first time setup) you need to set PLEX_CLAIM to claim a server set up with bridge networking. -p 32400:32400 \\ -p 1900:1900/udp \\ -p 3005:3005 \\ -p 5353:5353/udp \\ -p 8324:8324 \\ -p 32410:32410/udp \\ -p 32412:32412/udp \\ -p 32413:32413/udp \\ -p 32414:32414/udp \\ -p 32469:32469 The application accepts a series of environment variables to further customize itself on boot: Parameter Function --device=/dev/dri:/dev/dri Add this option to your run command if you plan on using Quicksync hardware acceleration - see Application Setup section. --device=/dev/dvb:/dev/dvb Add this option to your run command if you plan on using dvb devices.","title":"Optional Parameters"},{"location":"images/docker-plex/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-plex/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-plex/#support-info","text":"Shell access whilst the container is running: docker exec -it plex /bin/bash To monitor the logs of the container in realtime: docker logs -f plex Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' plex Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/plex:latest","title":"Support Info"},{"location":"images/docker-plex/#versions","text":"16.10.22: - Rebase to jammy. Update to s6v3. Remove opencl packages (bundled with plex). 18.07.22: - Pin all opencl related driver packages. 16.05.22: - Pin opencl version. 04.03.22: - Increase verbosity of video device permissions fix, attempt to fix missing group rw. 25.12.21: - Install Intel drivers from the official repo. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 10.12.20: - Add latest Intel Compute packages from github repo for opencl support on latest gen igpu. 23.11.20: - Add Bionic branch make Focal default. 03.05.20: - Update exposed ports and example docs for bridge mode. 23.03.20: - Remove udev hack (no longer needed), suppress uuid error in log during first start. 04.12.19: - Add variable for setting PLEX_CLAIM. Remove /transcode volume mapping as it is now set via plex gui and defaults to a location under /config . 06.08.19: - Add variable for setting UMASK. 10.07.19: - Fix permissions for tuner (/dev/dvb) devices. 20.05.19: - Bugfix do not allow Root group for Intel QuickSync ownership rules. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.03.19: - Fix update logic for VERSION=public . 14.03.19: - Switch to new api endpoints, enable beta (plex pass) updates for armhf and aarch64. 15.02.19: - Clean up plex pid after unclean stop. 11.02.19: - Fix nvidia variables, add device variables. 16.01.19: - Add pipeline logic, multi arch, and HW transcoding configuration; remove avahi service. 07.09.18: - Rebase to ubuntu bionic, add udev package. 09.12.17: - Fix continuation lines. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Add unrar package as per requests, for subzero plugin. 11.01.17: - Use Plex environment variables from pms docker, change abc home folder to /app to alleviate usermod chowning library 03.01.17: - Use case insensitive version variable matching rather than export and make lowercase. 17.10.16: - Allow use of uppercase version variable 01.10.16: - Add TZ info to README. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 22.08.16: - Rebased to xenial and s6 overlay 07.04.16: - removed /transcode volume support (upstream Plex change) and modified PlexPass download method to prevent unauthorised usage of paid PMS 24.09.15: - added optional support for volume transcoding (/transcode), and various typo fixes. 17.09.15: - Changed to run chmod only once 19.09.15: - Plex updated their download servers from http to https 28.08.15: - Removed plexpass from routine, and now uses VERSION as a combination fix. 18.07.15: - Moved autoupdate to be hosted by linuxserver.io and implemented bugfix thanks to ljm42. 09.07.15: - Now with ability to pick static version number. 08.07.15: - Now with autoupdates. (Hosted by fanart.tv) 03.07.15: - Fixed a mistake that allowed plex to run as user plex rather than abc (99:100). Thanks to double16 for spotting this.","title":"Versions"},{"location":"images/docker-projectsend/","text":"linuxserver/projectsend Projectsend is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. Secure, private and easy. No more depending on external services or e-mail to send those files. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/projectsend:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup IMPORTANT This image no longer supports MSSQL since being migrated to PHP7, if you want MSSQL support please use the tag linuxserver/projectsend:r1053-ls27 Requires a user and database in either mysql or mariadb. To use translations, follow the instructions here . The necessary paths are symlinked under /config/translations (note that the \"templates\" paths don't need lang subdirectories). More info at ProjectSend . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: projectsend: image: lscr.io/linuxserver/projectsend:latest container_name: projectsend environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MAX_UPLOAD=5000 volumes: - :/config - :/data ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=projectsend \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MAX_UPLOAD=5000 \\ -p 80:80 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/projectsend:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. MAX_UPLOAD=5000 To set maximum upload size (in MB), default if unset is 5000. Volume Mappings ( -v ) Volume Function /config Where to store projectsend config files. /data Where to store files to share. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it projectsend /bin/bash To monitor the logs of the container in realtime: docker logs -f projectsend Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' projectsend Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/projectsend:latest Versions 23.08.22: - Add translation support 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 24.06.21: - Rebasing to alpine 3.14, switch to nginx 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 31.12.19: - Rebase to Alpine 3.11 and upgrade to PHP7. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch. 11.06.17: - Fetch version from github. 09.12.17: - Rebase to alpine 3.7. 13.06.17: - Initial Release.","title":"projectsend"},{"location":"images/docker-projectsend/#linuxserverprojectsend","text":"Projectsend is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself. Secure, private and easy. No more depending on external services or e-mail to send those files.","title":"linuxserver/projectsend"},{"location":"images/docker-projectsend/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/projectsend:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-projectsend/#application-setup","text":"IMPORTANT This image no longer supports MSSQL since being migrated to PHP7, if you want MSSQL support please use the tag linuxserver/projectsend:r1053-ls27 Requires a user and database in either mysql or mariadb. To use translations, follow the instructions here . The necessary paths are symlinked under /config/translations (note that the \"templates\" paths don't need lang subdirectories). More info at ProjectSend .","title":"Application Setup"},{"location":"images/docker-projectsend/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-projectsend/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: projectsend: image: lscr.io/linuxserver/projectsend:latest container_name: projectsend environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MAX_UPLOAD=5000 volumes: - :/config - :/data ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-projectsend/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=projectsend \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MAX_UPLOAD=5000 \\ -p 80:80 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/projectsend:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-projectsend/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-projectsend/#ports-p","text":"Parameter Function 80 WebUI","title":"Ports (-p)"},{"location":"images/docker-projectsend/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. MAX_UPLOAD=5000 To set maximum upload size (in MB), default if unset is 5000.","title":"Environment Variables (-e)"},{"location":"images/docker-projectsend/#volume-mappings-v","text":"Volume Function /config Where to store projectsend config files. /data Where to store files to share.","title":"Volume Mappings (-v)"},{"location":"images/docker-projectsend/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-projectsend/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-projectsend/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-projectsend/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-projectsend/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-projectsend/#support-info","text":"Shell access whilst the container is running: docker exec -it projectsend /bin/bash To monitor the logs of the container in realtime: docker logs -f projectsend Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' projectsend Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/projectsend:latest","title":"Support Info"},{"location":"images/docker-projectsend/#versions","text":"23.08.22: - Add translation support 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 24.06.21: - Rebasing to alpine 3.14, switch to nginx 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 31.12.19: - Rebase to Alpine 3.11 and upgrade to PHP7. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch. 11.06.17: - Fetch version from github. 09.12.17: - Rebase to alpine 3.7. 13.06.17: - Initial Release.","title":"Versions"},{"location":"images/docker-prowlarr/","text":"linuxserver/prowlarr Prowlarr is a indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Sonarr, Radarr, Lidarr, and Readarr offering complete management of your indexers with no per app Indexer setup required (we do it all). Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/prowlarr:develop should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u274c develop \u2705 Prowlarr releases from their develop branch nightly \u2705 Prowlarr releases from their nightly branch Application Setup Access the webui at :9696 , for more information check out Prowlarr . Setup info can be found here . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: prowlarr: image: lscr.io/linuxserver/prowlarr:develop container_name: prowlarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 9696:9696 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=prowlarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9696:9696 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/prowlarr:develop Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 9696 The port for the Prowlarr webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Prowlarr Volume Mappings ( -v ) Volume Function /config Database and Prowlarr configs Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it prowlarr /bin/bash To monitor the logs of the container in realtime: docker logs -f prowlarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' prowlarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/prowlarr:develop Versions 06.06.21: - Initial realease.","title":"prowlarr"},{"location":"images/docker-prowlarr/#linuxserverprowlarr","text":"Prowlarr is a indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Sonarr, Radarr, Lidarr, and Readarr offering complete management of your indexers with no per app Indexer setup required (we do it all).","title":"linuxserver/prowlarr"},{"location":"images/docker-prowlarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/prowlarr:develop should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-prowlarr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u274c develop \u2705 Prowlarr releases from their develop branch nightly \u2705 Prowlarr releases from their nightly branch","title":"Version Tags"},{"location":"images/docker-prowlarr/#application-setup","text":"Access the webui at :9696 , for more information check out Prowlarr . Setup info can be found here .","title":"Application Setup"},{"location":"images/docker-prowlarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-prowlarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: prowlarr: image: lscr.io/linuxserver/prowlarr:develop container_name: prowlarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config ports: - 9696:9696 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-prowlarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=prowlarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9696:9696 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/prowlarr:develop","title":"docker cli (click here for more info)"},{"location":"images/docker-prowlarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-prowlarr/#ports-p","text":"Parameter Function 9696 The port for the Prowlarr webinterface","title":"Ports (-p)"},{"location":"images/docker-prowlarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Prowlarr","title":"Environment Variables (-e)"},{"location":"images/docker-prowlarr/#volume-mappings-v","text":"Volume Function /config Database and Prowlarr configs","title":"Volume Mappings (-v)"},{"location":"images/docker-prowlarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-prowlarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-prowlarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-prowlarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-prowlarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-prowlarr/#support-info","text":"Shell access whilst the container is running: docker exec -it prowlarr /bin/bash To monitor the logs of the container in realtime: docker logs -f prowlarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' prowlarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/prowlarr:develop","title":"Support Info"},{"location":"images/docker-prowlarr/#versions","text":"06.06.21: - Initial realease.","title":"Versions"},{"location":"images/docker-pwndrop/","text":"linuxserver/pwndrop Pwndrop is a self-deployable file hosting service for sending out red teaming payloads or securely sharing your private files over HTTP and WebDAV. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pwndrop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the web gui at http://:8080/pwndrop (replace /pwndrop with your SECRET_PATH if you set one). Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pwndrop: image: lscr.io/linuxserver/pwndrop:latest container_name: pwndrop environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SECRET_PATH=/pwndrop #optional volumes: - /path/to/appdata:/config ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pwndrop \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SECRET_PATH=/pwndrop `#optional` \\ -p 8080:8080 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/pwndrop:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 web gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SECRET_PATH=/pwndrop Secret path for admin access. Defaults to /pwndrop . This parameter only takes effect during initial install; it can later be changed in the web gui. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration and data. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pwndrop /bin/bash To monitor the logs of the container in realtime: docker logs -f pwndrop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pwndrop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pwndrop:latest Versions 19.09.22: - Rebasing to alpine 3.15. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 17.04.20: - Initial Release.","title":"pwndrop"},{"location":"images/docker-pwndrop/#linuxserverpwndrop","text":"Pwndrop is a self-deployable file hosting service for sending out red teaming payloads or securely sharing your private files over HTTP and WebDAV.","title":"linuxserver/pwndrop"},{"location":"images/docker-pwndrop/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pwndrop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-pwndrop/#application-setup","text":"Access the web gui at http://:8080/pwndrop (replace /pwndrop with your SECRET_PATH if you set one).","title":"Application Setup"},{"location":"images/docker-pwndrop/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pwndrop/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pwndrop: image: lscr.io/linuxserver/pwndrop:latest container_name: pwndrop environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SECRET_PATH=/pwndrop #optional volumes: - /path/to/appdata:/config ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pwndrop/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pwndrop \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SECRET_PATH=/pwndrop `#optional` \\ -p 8080:8080 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/pwndrop:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-pwndrop/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pwndrop/#ports-p","text":"Parameter Function 8080 web gui","title":"Ports (-p)"},{"location":"images/docker-pwndrop/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SECRET_PATH=/pwndrop Secret path for admin access. Defaults to /pwndrop . This parameter only takes effect during initial install; it can later be changed in the web gui.","title":"Environment Variables (-e)"},{"location":"images/docker-pwndrop/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration and data.","title":"Volume Mappings (-v)"},{"location":"images/docker-pwndrop/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-pwndrop/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pwndrop/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pwndrop/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pwndrop/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pwndrop/#support-info","text":"Shell access whilst the container is running: docker exec -it pwndrop /bin/bash To monitor the logs of the container in realtime: docker logs -f pwndrop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pwndrop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pwndrop:latest","title":"Support Info"},{"location":"images/docker-pwndrop/#versions","text":"19.09.22: - Rebasing to alpine 3.15. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 17.04.20: - Initial Release.","title":"Versions"},{"location":"images/docker-pydio-cells/","text":"linuxserver/pydio-cells Pydio-cells is the nextgen file sharing platform for organizations. It is a full rewrite of the Pydio project using the Go language following a micro-service architecture. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pydio-cells:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup You must first create a mysql database for Pydio Cells. Using our mariadb image is recommended. Then access the web gui setup wizard at https://SERVER_IP:8080 if accessing locally (must set SERVER_IP env var), or at https://pydio-cells.domain.com if reverse proxying. Strict reverse proxies This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pydio-cells: image: lscr.io/linuxserver/pydio-cells:latest container_name: pydio-cells hostname: pydio-cells environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - EXTERNALURL=yourdomain.url - SERVER_IP=0.0.0.0 #optional volumes: - /path/to/appdata/config:/config ports: - 8080:8080 - 33060:33060 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pydio-cells \\ --hostname=pydio-cells \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e EXTERNALURL=yourdomain.url \\ -e SERVER_IP=0.0.0.0 `#optional` \\ -p 8080:8080 \\ -p 33060:33060 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/pydio-cells:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Http port 33060 gRPC port (required for CellsSync). Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. EXTERNALURL=yourdomain.url The external url you would like to use to access Pydio Cells (Can be https://domain.url or https://IP:PORT). SERVER_IP=0.0.0.0 Enter the LAN IP of the docker server. Required for local access by IP, added to self signed cert as SAN (not required if accessing only through reverse proxy). Volume Mappings ( -v ) Volume Function /config All the config files reside here. Miscellaneous Options Parameter Function --hostname= Pydio Cells uses the hostname to verify local files. This setting is required and should not be changed after it has been set. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pydio-cells /bin/bash To monitor the logs of the container in realtime: docker logs -f pydio-cells Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pydio-cells Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pydio-cells:latest Versions 01.12.22: - Rebasing to alpine 3.17. Adding multi-arch support. Updating cli arguments for v4 compatibility. 19.10.22: - Rebasing to alpine 3.16. Upgrading to s6v3. Updating build instructions for v4. 19.09.22: - Rebasing to alpine 3.15. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 18.04.20: - Switch to https as default (only affects new installs). Add self signed cert, add SERVER_IP var for adding to cert as SAN. Add optional gRPC port mapping for CellsSync. 17.04.20: - Update compile options, previous release was broken for new installs. 19.12.19: - Rebasing to alpine 3.11. 12.12.19: - Initial Release","title":"pydio-cells"},{"location":"images/docker-pydio-cells/#linuxserverpydio-cells","text":"Pydio-cells is the nextgen file sharing platform for organizations. It is a full rewrite of the Pydio project using the Go language following a micro-service architecture.","title":"linuxserver/pydio-cells"},{"location":"images/docker-pydio-cells/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pydio-cells:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-pydio-cells/#application-setup","text":"You must first create a mysql database for Pydio Cells. Using our mariadb image is recommended. Then access the web gui setup wizard at https://SERVER_IP:8080 if accessing locally (must set SERVER_IP env var), or at https://pydio-cells.domain.com if reverse proxying.","title":"Application Setup"},{"location":"images/docker-pydio-cells/#strict-reverse-proxies","text":"This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-pydio-cells/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pydio-cells/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pydio-cells: image: lscr.io/linuxserver/pydio-cells:latest container_name: pydio-cells hostname: pydio-cells environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - EXTERNALURL=yourdomain.url - SERVER_IP=0.0.0.0 #optional volumes: - /path/to/appdata/config:/config ports: - 8080:8080 - 33060:33060 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pydio-cells/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pydio-cells \\ --hostname=pydio-cells \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e EXTERNALURL=yourdomain.url \\ -e SERVER_IP=0.0.0.0 `#optional` \\ -p 8080:8080 \\ -p 33060:33060 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/pydio-cells:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-pydio-cells/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pydio-cells/#ports-p","text":"Parameter Function 8080 Http port 33060 gRPC port (required for CellsSync).","title":"Ports (-p)"},{"location":"images/docker-pydio-cells/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. EXTERNALURL=yourdomain.url The external url you would like to use to access Pydio Cells (Can be https://domain.url or https://IP:PORT). SERVER_IP=0.0.0.0 Enter the LAN IP of the docker server. Required for local access by IP, added to self signed cert as SAN (not required if accessing only through reverse proxy).","title":"Environment Variables (-e)"},{"location":"images/docker-pydio-cells/#volume-mappings-v","text":"Volume Function /config All the config files reside here.","title":"Volume Mappings (-v)"},{"location":"images/docker-pydio-cells/#miscellaneous-options","text":"Parameter Function --hostname= Pydio Cells uses the hostname to verify local files. This setting is required and should not be changed after it has been set.","title":"Miscellaneous Options"},{"location":"images/docker-pydio-cells/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pydio-cells/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pydio-cells/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pydio-cells/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pydio-cells/#support-info","text":"Shell access whilst the container is running: docker exec -it pydio-cells /bin/bash To monitor the logs of the container in realtime: docker logs -f pydio-cells Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pydio-cells Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pydio-cells:latest","title":"Support Info"},{"location":"images/docker-pydio-cells/#versions","text":"01.12.22: - Rebasing to alpine 3.17. Adding multi-arch support. Updating cli arguments for v4 compatibility. 19.10.22: - Rebasing to alpine 3.16. Upgrading to s6v3. Updating build instructions for v4. 19.09.22: - Rebasing to alpine 3.15. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 18.04.20: - Switch to https as default (only affects new installs). Add self signed cert, add SERVER_IP var for adding to cert as SAN. Add optional gRPC port mapping for CellsSync. 17.04.20: - Update compile options, previous release was broken for new installs. 19.12.19: - Rebasing to alpine 3.11. 12.12.19: - Initial Release","title":"Versions"},{"location":"images/docker-pydio/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/pydio Pydio (formerly AjaXplorer) is a mature open source software solution for file sharing and synchronization. With intuitive user interfaces (web / mobile / desktop), Pydio provides enterprise-grade features to gain back control and privacy of your data: user directory connectors, legacy filesystems drivers, comprehensive admin interface, and much more. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pydio should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: pydio: image: lscr.io/linuxserver/pydio container_name: pydio environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/data ports: - 443:443 restart: unless-stopped docker cli docker run -d \\ --name=pydio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 443:443 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/pydio Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 443 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where pydio should store it's configuration files. /data Where pydio should store uploaded files. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup THIS IMAGE IS DEPRECATED. You can switch to Pydio Cells instead. You must create a user and database for pydio to use in a mysql/mariadb or postgresql server. You can use sqlite with no further config needed, but this should only be considered for testing purposes. In the setup page for database, use the ip address rather than hostname... Self-signed keys are generated the first time you run the container and can be found in /config/keys , if needed, you can replace them with your own. For public link sharing to function correctly be sure to change the Detected Server Url to the URL of your pydio instance in the setup wizard. For email settings edit the file /config/ssmtp.conf and restart the container. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pydio /bin/bash To monitor the logs of the container in realtime: docker logs -f pydio Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pydio Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pydio Versions 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch, rebase to alpine 3.8. 12.01.18: - Rebase to alpine linux 3.7. 28.10.17: - php7-ssh2 moved from testing to community repo. 25.05.17: - Rebase to alpine linux 3.6. 17.05.17: - Make default install pydio 8. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 28.02.17: - Modify sed for data path. 18.02.17: - Rebase to alpine linux 3.5. 05.11.16: - Pinned at latest sourceforge download version, in lieu of a full rewrite. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 08.09.15: - Initial Release.","title":"pydio"},{"location":"images/docker-pydio/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-pydio/#linuxserverpydio","text":"Pydio (formerly AjaXplorer) is a mature open source software solution for file sharing and synchronization. With intuitive user interfaces (web / mobile / desktop), Pydio provides enterprise-grade features to gain back control and privacy of your data: user directory connectors, legacy filesystems drivers, comprehensive admin interface, and much more.","title":"linuxserver/pydio"},{"location":"images/docker-pydio/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pydio should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-pydio/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-pydio/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: pydio: image: lscr.io/linuxserver/pydio container_name: pydio environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/data ports: - 443:443 restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-pydio/#docker-cli","text":"docker run -d \\ --name=pydio \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 443:443 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/pydio","title":"docker cli"},{"location":"images/docker-pydio/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pydio/#ports-p","text":"Parameter Function 443 WebUI","title":"Ports (-p)"},{"location":"images/docker-pydio/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-pydio/#volume-mappings-v","text":"Volume Function /config Where pydio should store it's configuration files. /data Where pydio should store uploaded files.","title":"Volume Mappings (-v)"},{"location":"images/docker-pydio/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pydio/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pydio/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pydio/#application-setup","text":"THIS IMAGE IS DEPRECATED. You can switch to Pydio Cells instead. You must create a user and database for pydio to use in a mysql/mariadb or postgresql server. You can use sqlite with no further config needed, but this should only be considered for testing purposes. In the setup page for database, use the ip address rather than hostname... Self-signed keys are generated the first time you run the container and can be found in /config/keys , if needed, you can replace them with your own. For public link sharing to function correctly be sure to change the Detected Server Url to the URL of your pydio instance in the setup wizard. For email settings edit the file /config/ssmtp.conf and restart the container.","title":"Application Setup"},{"location":"images/docker-pydio/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pydio/#support-info","text":"Shell access whilst the container is running: docker exec -it pydio /bin/bash To monitor the logs of the container in realtime: docker logs -f pydio Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pydio Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pydio","title":"Support Info"},{"location":"images/docker-pydio/#versions","text":"23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Add pipeline logic and multi arch, rebase to alpine 3.8. 12.01.18: - Rebase to alpine linux 3.7. 28.10.17: - php7-ssh2 moved from testing to community repo. 25.05.17: - Rebase to alpine linux 3.6. 17.05.17: - Make default install pydio 8. 03.05.17: - Use repo pinning to better solve dependencies, use repo version of php7-imagick. 28.02.17: - Modify sed for data path. 18.02.17: - Rebase to alpine linux 3.5. 05.11.16: - Pinned at latest sourceforge download version, in lieu of a full rewrite. 14.10.16: - Add version layer information. 10.09.16: - Add layer badges to README. 08.09.15: - Initial Release.","title":"Versions"},{"location":"images/docker-pyload-ng/","text":"linuxserver/pyload-ng pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pyload-ng:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from pyLoad Next develop \u2705 Releases from pyload Next develop branch Application Setup Access the web interface at http://your-ip:8000 the default login is: username - pyload password - pyload For general usage please see the pyLoad wiki here . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pyload-ng: image: lscr.io/linuxserver/pyload-ng:latest container_name: pyload-ng environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/downloads:/downloads ports: - 8000:8000 - 9666:9666 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pyload-ng \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8000:8000 \\ -p 9666:9666 `#optional` \\ -v /path/to/appdata/config:/config \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/pyload-ng:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 Allows HTTP access to the application 9666 Click'n'Load port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config pyLoad Configuration and files database /downloads Destination of pyLoad downloads Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pyload-ng /bin/bash To monitor the logs of the container in realtime: docker logs -f pyload-ng Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pyload-ng Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pyload-ng:latest Versions 02.02.22: - Add ffmpeg for the Youtube plugin. 24.01.22: - Replace unrar with p7zip. 24.01.22: - Initial release.","title":"pyload-ng"},{"location":"images/docker-pyload-ng/#linuxserverpyload-ng","text":"pyLoad is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web.","title":"linuxserver/pyload-ng"},{"location":"images/docker-pyload-ng/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pyload-ng:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-pyload-ng/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from pyLoad Next develop \u2705 Releases from pyload Next develop branch","title":"Version Tags"},{"location":"images/docker-pyload-ng/#application-setup","text":"Access the web interface at http://your-ip:8000 the default login is: username - pyload password - pyload For general usage please see the pyLoad wiki here .","title":"Application Setup"},{"location":"images/docker-pyload-ng/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pyload-ng/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pyload-ng: image: lscr.io/linuxserver/pyload-ng:latest container_name: pyload-ng environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/downloads:/downloads ports: - 8000:8000 - 9666:9666 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pyload-ng/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pyload-ng \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8000:8000 \\ -p 9666:9666 `#optional` \\ -v /path/to/appdata/config:/config \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/pyload-ng:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-pyload-ng/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pyload-ng/#ports-p","text":"Parameter Function 8000 Allows HTTP access to the application 9666 Click'n'Load port.","title":"Ports (-p)"},{"location":"images/docker-pyload-ng/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-pyload-ng/#volume-mappings-v","text":"Volume Function /config pyLoad Configuration and files database /downloads Destination of pyLoad downloads","title":"Volume Mappings (-v)"},{"location":"images/docker-pyload-ng/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-pyload-ng/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pyload-ng/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pyload-ng/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pyload-ng/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pyload-ng/#support-info","text":"Shell access whilst the container is running: docker exec -it pyload-ng /bin/bash To monitor the logs of the container in realtime: docker logs -f pyload-ng Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pyload-ng Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pyload-ng:latest","title":"Support Info"},{"location":"images/docker-pyload-ng/#versions","text":"02.02.22: - Add ffmpeg for the Youtube plugin. 24.01.22: - Replace unrar with p7zip. 24.01.22: - Initial release.","title":"Versions"},{"location":"images/docker-pyload/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our new pyload-ng image instead: https://github.com/linuxserver/docker-pyload-ng/ linuxserver/pyload Pyload is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pyload should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Version Tags This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest Stable releases from Pyload ng Development releases from Pyload-ng (currently alpha) Application Setup Access the web interface at http://your-ip:8000 the default login is: username - admin password - password For the ng tag, the default user/pass are pyload/pyload . For general usage please see the pyLoad wiki here . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pyload: image: lscr.io/linuxserver/pyload container_name: pyload environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/pyload/config:/config - /path/to/downloads:/downloads ports: - 8000:8000 - 7227:7227 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pyload \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8000:8000 \\ -p 7227:7227 `#optional` \\ -v /path/to/pyload/config:/config \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/pyload Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8000 Allows HTTP access to the application 7227 pyLoad control port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config pyLoad Configuration and files database /downloads Destination of pyLoad downloads Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pyload /bin/bash To monitor the logs of the container in realtime: docker logs -f pyload Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pyload Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pyload Versions 25.01.22: - Deprecate. 23.02.21: - Add Python plugin passlib . 16.02.21: - Publish ng tag for pyload-ng (currently alpha). 04.11.20: - Rebase to alpine 3.11. 18.10.20: - Chown app folder to fix plugin updater. 18.07.19: - Add ffmpeg for plugins the do video processing. 28.06.19: - Rebasing to alpine 3.10. 08.06.19: - Initial release.","title":"pyload"},{"location":"images/docker-pyload/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend our new pyload-ng image instead: https://github.com/linuxserver/docker-pyload-ng/","title":"DEPRECATION NOTICE"},{"location":"images/docker-pyload/#linuxserverpyload","text":"Pyload is a Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web.","title":"linuxserver/pyload"},{"location":"images/docker-pyload/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pyload should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-pyload/#version-tags","text":"This image provides various versions that are available via tags. latest tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them. Tag Description latest Stable releases from Pyload ng Development releases from Pyload-ng (currently alpha)","title":"Version Tags"},{"location":"images/docker-pyload/#application-setup","text":"Access the web interface at http://your-ip:8000 the default login is: username - admin password - password For the ng tag, the default user/pass are pyload/pyload . For general usage please see the pyLoad wiki here .","title":"Application Setup"},{"location":"images/docker-pyload/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pyload/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pyload: image: lscr.io/linuxserver/pyload container_name: pyload environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/pyload/config:/config - /path/to/downloads:/downloads ports: - 8000:8000 - 7227:7227 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pyload/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pyload \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8000:8000 \\ -p 7227:7227 `#optional` \\ -v /path/to/pyload/config:/config \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/pyload","title":"docker cli (click here for more info)"},{"location":"images/docker-pyload/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pyload/#ports-p","text":"Parameter Function 8000 Allows HTTP access to the application 7227 pyLoad control port","title":"Ports (-p)"},{"location":"images/docker-pyload/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-pyload/#volume-mappings-v","text":"Volume Function /config pyLoad Configuration and files database /downloads Destination of pyLoad downloads","title":"Volume Mappings (-v)"},{"location":"images/docker-pyload/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-pyload/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pyload/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pyload/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pyload/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pyload/#support-info","text":"Shell access whilst the container is running: docker exec -it pyload /bin/bash To monitor the logs of the container in realtime: docker logs -f pyload Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pyload Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pyload","title":"Support Info"},{"location":"images/docker-pyload/#versions","text":"25.01.22: - Deprecate. 23.02.21: - Add Python plugin passlib . 16.02.21: - Publish ng tag for pyload-ng (currently alpha). 04.11.20: - Rebase to alpine 3.11. 18.10.20: - Chown app folder to fix plugin updater. 18.07.19: - Add ffmpeg for plugins the do video processing. 28.06.19: - Rebasing to alpine 3.10. 08.06.19: - Initial release.","title":"Versions"},{"location":"images/docker-pylon/","text":"linuxserver/pylon Pylon is a web based integrated development environment built with Node.js as a backend and with a supercharged JavaScript/HTML5 frontend, licensed under GPL version 3. This project originates from Cloud9 v2 project. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pylon:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at http://your-ip:3131, more information here . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: pylon: image: lscr.io/linuxserver/pylon:latest container_name: pylon environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - GITURL=https://github.com/linuxserver/docker-pylon.git #optional - PYUSER=myuser #optional - PYPASS=mypass #optional volumes: - :/code #optional ports: - 3131:3131 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=pylon \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e GITURL=https://github.com/linuxserver/docker-pylon.git `#optional` \\ -e PYUSER=myuser `#optional` \\ -e PYPASS=mypass `#optional` \\ -p 3131:3131 \\ -v :/code `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/pylon:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3131 The port for the Pylon web interface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London GITURL=https://github.com/linuxserver/docker-pylon.git Specify a git repo to checkout on first startup PYUSER=myuser Specify a basic auth user. PYPASS=mypass Specify a basic auth password. Volume Mappings ( -v ) Volume Function /code Optionally if you want the bind mount your own code and have changes survive container upgrades. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it pylon /bin/bash To monitor the logs of the container in realtime: docker logs -f pylon Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pylon Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pylon:latest Versions 19.01.22: - Rebasing to alpine 3.15. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 19.09.19: - Initial Release.","title":"pylon"},{"location":"images/docker-pylon/#linuxserverpylon","text":"Pylon is a web based integrated development environment built with Node.js as a backend and with a supercharged JavaScript/HTML5 frontend, licensed under GPL version 3. This project originates from Cloud9 v2 project.","title":"linuxserver/pylon"},{"location":"images/docker-pylon/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/pylon:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-pylon/#application-setup","text":"Access the webui at http://your-ip:3131, more information here .","title":"Application Setup"},{"location":"images/docker-pylon/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-pylon/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: pylon: image: lscr.io/linuxserver/pylon:latest container_name: pylon environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - GITURL=https://github.com/linuxserver/docker-pylon.git #optional - PYUSER=myuser #optional - PYPASS=mypass #optional volumes: - :/code #optional ports: - 3131:3131 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-pylon/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=pylon \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e GITURL=https://github.com/linuxserver/docker-pylon.git `#optional` \\ -e PYUSER=myuser `#optional` \\ -e PYPASS=mypass `#optional` \\ -p 3131:3131 \\ -v :/code `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/pylon:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-pylon/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-pylon/#ports-p","text":"Parameter Function 3131 The port for the Pylon web interface","title":"Ports (-p)"},{"location":"images/docker-pylon/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London GITURL=https://github.com/linuxserver/docker-pylon.git Specify a git repo to checkout on first startup PYUSER=myuser Specify a basic auth user. PYPASS=mypass Specify a basic auth password.","title":"Environment Variables (-e)"},{"location":"images/docker-pylon/#volume-mappings-v","text":"Volume Function /code Optionally if you want the bind mount your own code and have changes survive container upgrades.","title":"Volume Mappings (-v)"},{"location":"images/docker-pylon/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-pylon/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-pylon/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-pylon/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-pylon/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-pylon/#support-info","text":"Shell access whilst the container is running: docker exec -it pylon /bin/bash To monitor the logs of the container in realtime: docker logs -f pylon Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' pylon Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/pylon:latest","title":"Support Info"},{"location":"images/docker-pylon/#versions","text":"19.01.22: - Rebasing to alpine 3.15. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 19.09.19: - Initial Release.","title":"Versions"},{"location":"images/docker-qbittorrent/","text":"linuxserver/qbittorrent The Qbittorrent project aims to provide an open-source software alternative to \u00b5Torrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/qbittorrent:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable qbittorrent releases libtorrentv1 \u2705 Static qbittorrent builds using libtorrent v1 Application Setup The webui is at :8080 and the default username/password is admin/adminadmin . Change username/password via the webui in the webui section of settings. WEBUI_PORT variable Due to issues with CSRF and port mapping, should you require to alter the port for the webui you need to change both sides of the -p 8080 switch AND set the WEBUI_PORT variable to the new port. For example, to set the port to 8090 you need to set -p 8090:8090 and -e WEBUI_PORT=8090 This should alleviate the \"white screen\" issue. If you have no webui , check the file /config/qBittorrent/qBittorrent.conf edit or add the following lines WebUI\\Address=* WebUI\\ServerDomains=* If you are running a very old (3.x) kernel you may run into this issue which can be worked around using this method Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - WEBUI_PORT=8080 volumes: - /path/to/appdata/config:/config - /path/to/downloads:/downloads ports: - 8080:8080 - 6881:6881 - 6881:6881/udp restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=qbittorrent \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e WEBUI_PORT=8080 \\ -p 8080:8080 \\ -p 6881:6881 \\ -p 6881:6881/udp \\ -v /path/to/appdata/config:/config \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/qbittorrent:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 WebUI 6881 tcp connection port 6881/udp udp connection port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London WEBUI_PORT=8080 for changing the port of the webui, see below for explanation Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /downloads Location of downloads on disk. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it qbittorrent /bin/bash To monitor the logs of the container in realtime: docker logs -f qbittorrent Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' qbittorrent Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/qbittorrent:latest Versions 29.11.22: - Add openssl1.1-compat for qbittorrent-cli. 31.10.22: - Add libtorrentv1 branch. 31.08.22: - Rebase to Alpine Edge again to follow latest releases. 12.08.22: - Bump unrar to 6.1.7. 16.06.22: - Rebase to Alpine 3.16 from edge. 25.05.22: - Fetch qbitorrent-cli from upstream repo. 02.03.22: - Add unrar, 7zip, and qbitorrent-cli. 01.03.22: - Add python for search plugin support. 23.02.22: - Rebase to Alpine Edge, install from Alpine repos. 19.02.22: - Add jq to build-stage 07.01.22: - Rebase to Alpine, build from source. 06.01.22: - Deprecate unstable branch. 10.02.21: - Rebase to focal. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 12.11.20: - Stop creating /config/data directory on startup 03.04.20: - Fix adding search engine plugin 02.08.19: - Add qbitorrent-cli for processing scripts. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 14.01.19: - Rebase to Ubuntu, add multi arch and pipeline logic. 25.09.18: - Use buildstage type build, bump qbitorrent to 4.1.3. 14.08.18: - Rebase to alpine 3.8, bump libtorrent to 1.1.9 and qbitorrent to 4.1.2. 08.06.18: - Bump qbitorrent to 4.1.1. 26.04.18: - Bump libtorrent to 1.1.7. 02.03.18: - Bump qbitorrent to 4.0.4 and libtorrent to 1.1.6. 02.01.18: - Deprecate cpu_core routine lack of scaling. 19.12.17: - Update to v4.0.3. 09.02.17: - Rebase to alpine 3.7 01.12.17: - Update to v4.0.2. 27.11.17: - Update to v4 and use cpu_core routine to speed up builds. 16.09.17: - Bump to 3.3.16, Add WEBUI_PORT variable and notes to README to allow changing port of webui. 01.08.17: - Initial Release. 12.02.18: - Initial Release.","title":"qbittorrent"},{"location":"images/docker-qbittorrent/#linuxserverqbittorrent","text":"The Qbittorrent project aims to provide an open-source software alternative to \u00b5Torrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.","title":"linuxserver/qbittorrent"},{"location":"images/docker-qbittorrent/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/qbittorrent:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-qbittorrent/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable qbittorrent releases libtorrentv1 \u2705 Static qbittorrent builds using libtorrent v1","title":"Version Tags"},{"location":"images/docker-qbittorrent/#application-setup","text":"The webui is at :8080 and the default username/password is admin/adminadmin . Change username/password via the webui in the webui section of settings.","title":"Application Setup"},{"location":"images/docker-qbittorrent/#webui_port-variable","text":"Due to issues with CSRF and port mapping, should you require to alter the port for the webui you need to change both sides of the -p 8080 switch AND set the WEBUI_PORT variable to the new port. For example, to set the port to 8090 you need to set -p 8090:8090 and -e WEBUI_PORT=8090 This should alleviate the \"white screen\" issue. If you have no webui , check the file /config/qBittorrent/qBittorrent.conf edit or add the following lines WebUI\\Address=* WebUI\\ServerDomains=* If you are running a very old (3.x) kernel you may run into this issue which can be worked around using this method","title":"WEBUI_PORT variable"},{"location":"images/docker-qbittorrent/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-qbittorrent/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - WEBUI_PORT=8080 volumes: - /path/to/appdata/config:/config - /path/to/downloads:/downloads ports: - 8080:8080 - 6881:6881 - 6881:6881/udp restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-qbittorrent/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=qbittorrent \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e WEBUI_PORT=8080 \\ -p 8080:8080 \\ -p 6881:6881 \\ -p 6881:6881/udp \\ -v /path/to/appdata/config:/config \\ -v /path/to/downloads:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/qbittorrent:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-qbittorrent/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-qbittorrent/#ports-p","text":"Parameter Function 8080 WebUI 6881 tcp connection port 6881/udp udp connection port","title":"Ports (-p)"},{"location":"images/docker-qbittorrent/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London WEBUI_PORT=8080 for changing the port of the webui, see below for explanation","title":"Environment Variables (-e)"},{"location":"images/docker-qbittorrent/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /downloads Location of downloads on disk.","title":"Volume Mappings (-v)"},{"location":"images/docker-qbittorrent/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-qbittorrent/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-qbittorrent/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-qbittorrent/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-qbittorrent/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-qbittorrent/#support-info","text":"Shell access whilst the container is running: docker exec -it qbittorrent /bin/bash To monitor the logs of the container in realtime: docker logs -f qbittorrent Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' qbittorrent Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/qbittorrent:latest","title":"Support Info"},{"location":"images/docker-qbittorrent/#versions","text":"29.11.22: - Add openssl1.1-compat for qbittorrent-cli. 31.10.22: - Add libtorrentv1 branch. 31.08.22: - Rebase to Alpine Edge again to follow latest releases. 12.08.22: - Bump unrar to 6.1.7. 16.06.22: - Rebase to Alpine 3.16 from edge. 25.05.22: - Fetch qbitorrent-cli from upstream repo. 02.03.22: - Add unrar, 7zip, and qbitorrent-cli. 01.03.22: - Add python for search plugin support. 23.02.22: - Rebase to Alpine Edge, install from Alpine repos. 19.02.22: - Add jq to build-stage 07.01.22: - Rebase to Alpine, build from source. 06.01.22: - Deprecate unstable branch. 10.02.21: - Rebase to focal. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 12.11.20: - Stop creating /config/data directory on startup 03.04.20: - Fix adding search engine plugin 02.08.19: - Add qbitorrent-cli for processing scripts. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 14.01.19: - Rebase to Ubuntu, add multi arch and pipeline logic. 25.09.18: - Use buildstage type build, bump qbitorrent to 4.1.3. 14.08.18: - Rebase to alpine 3.8, bump libtorrent to 1.1.9 and qbitorrent to 4.1.2. 08.06.18: - Bump qbitorrent to 4.1.1. 26.04.18: - Bump libtorrent to 1.1.7. 02.03.18: - Bump qbitorrent to 4.0.4 and libtorrent to 1.1.6. 02.01.18: - Deprecate cpu_core routine lack of scaling. 19.12.17: - Update to v4.0.3. 09.02.17: - Rebase to alpine 3.7 01.12.17: - Update to v4.0.2. 27.11.17: - Update to v4 and use cpu_core routine to speed up builds. 16.09.17: - Bump to 3.3.16, Add WEBUI_PORT variable and notes to README to allow changing port of webui. 01.08.17: - Initial Release. 12.02.18: - Initial Release.","title":"Versions"},{"location":"images/docker-qdirstat/","text":"linuxserver/qdirstat QDirStat Qt-based directory statistics: KDirStat without any KDE -- from the author of the original KDirStat. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/qdirstat:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: qdirstat: image: lscr.io/linuxserver/qdirstat:latest container_name: qdirstat environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=qdirstat \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/qdirstat:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 QdirStat desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores qdirstat settings and scans. /data Data you want to analyze disk usage information of. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it qdirstat /bin/bash To monitor the logs of the container in realtime: docker logs -f qdirstat Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' qdirstat Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/qdirstat:latest Versions 06.04.22: - Add xfce terminal. 13.01.22: - Compile from source. 11.01.22: - Initial release.","title":"qdirstat"},{"location":"images/docker-qdirstat/#linuxserverqdirstat","text":"QDirStat Qt-based directory statistics: KDirStat without any KDE -- from the author of the original KDirStat.","title":"linuxserver/qdirstat"},{"location":"images/docker-qdirstat/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/qdirstat:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-qdirstat/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-qdirstat/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-qdirstat/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: qdirstat: image: lscr.io/linuxserver/qdirstat:latest container_name: qdirstat environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-qdirstat/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=qdirstat \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/qdirstat:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-qdirstat/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-qdirstat/#ports-p","text":"Parameter Function 3000 QdirStat desktop gui.","title":"Ports (-p)"},{"location":"images/docker-qdirstat/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-qdirstat/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores qdirstat settings and scans. /data Data you want to analyze disk usage information of.","title":"Volume Mappings (-v)"},{"location":"images/docker-qdirstat/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-qdirstat/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-qdirstat/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-qdirstat/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-qdirstat/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-qdirstat/#support-info","text":"Shell access whilst the container is running: docker exec -it qdirstat /bin/bash To monitor the logs of the container in realtime: docker logs -f qdirstat Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' qdirstat Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/qdirstat:latest","title":"Support Info"},{"location":"images/docker-qdirstat/#versions","text":"06.04.22: - Add xfce terminal. 13.01.22: - Compile from source. 11.01.22: - Initial release.","title":"Versions"},{"location":"images/docker-quassel-core/","text":"linuxserver/quassel-core Quassel-core is a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core. This container handles the IRC connection (quasselcore) and requires a desktop client (quasselclient) to be used and configured. It is designed to be always on and will keep your identity present in IRC even when your clients cannot be online. Backlog (history) is downloaded by your client upon reconnection allowing infinite scrollback through time. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/quassel-core:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Quassel wiki: quassel A great place to host a quassel instance is a VPS, such as DigitalOcean . For $5 a month you can have a 24/7 IRC connection and be up and running in under 55 seconds (or so they claim). Once you have the container running, fire up a quassel desktop client and connect to your new core instance using your droplets public IP address and the port you specified in your docker run command default: 4242 . Create an admin user, select SQLite as your storage backend (Quassel limitation). Setup your real name and nick, then press Save & Connect . You're now connected to IRC. Let's add you to our IRC #linuxserver.io room on Freenode. Click 'File' > 'Networks' > 'Configure Networks' > 'Add' (under Networks section, not Servers) > 'Use preset' > Select 'Freenode' and then configure your identity using the tabs in the 'Network details' section. Once connected to Freenode, click #join and enter #linuxserver.io . That's it, you're done. Stateless usage To use Quassel in stateless mode, where it needs to be configured through environment arguments, run it with the --config-from-environment RUN_OPTS environment setting. Env Usage DB_BACKEND SQLite or PostgreSQL DB_PGSQL_USERNAME PostgreSQL User DB_PGSQL_PASSWORD PostgreSQL Password DB_PGSQL_HOSTNAME PostgreSQL Host DB_PGSQL_PORT PostgreSQL Port AUTH_AUTHENTICATOR Database or LDAP AUTH_LDAP_HOSTNAME LDAP Host AUTH_LDAP_PORT LDAP Port AUTH_LDAP_BIND_DN LDAP Bind Domain AUTH_LDAP_BIND_PASSWORD LDAP Password AUTH_LDAP_FILTER LDAP Authentication Filters AUTH_LDAP_UID_ATTRIBUTE LDAP UID Additionally you have RUN_OPTS that can be used to customize pathing and behvior. Option Example --strict-ident strictly bool --strict-ident --ident-daemon strictly bool --ident-daemon --ident-port --ident-port \"10113\" --ident-listen --ident-listen \"::,0.0.0.0\" --ssl-cert --ssl-cert /config/keys/cert.crt --ssl-key --ssl-key /config/keys/cert.key --require-ssl strictly bool --require-ssl Minimal example with SQLite: docker create \\ --name=quassel-core \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS='--config-from-environment' \\ -e DB_BACKEND=SQLite \\ -e AUTH_AUTHENTICATOR=Database \\ -p 4242:4242 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/quassel-core Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: quassel-core: image: lscr.io/linuxserver/quassel-core:latest container_name: quassel-core environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - RUN_OPTS=--config-from-environment #optional volumes: - :/config ports: - 4242:4242 - 113:10113 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=quassel-core \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS=--config-from-environment `#optional` \\ -p 4242:4242 \\ -p 113:10113 `#optional` \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/quassel-core:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4242 The port quassel-core listens for connections on. 10113 Optional Ident Port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. RUN_OPTS=--config-from-environment Custom CLI options for Quassel Volume Mappings ( -v ) Volume Function /config Database and quassel-core configuration storage. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it quassel-core /bin/bash To monitor the logs of the container in realtime: docker logs -f quassel-core Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' quassel-core Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/quassel-core:latest Versions 03.01.22: - Rebase to alpine 3.15. Add new build deps and apply other fixes for 0.14. 07.08.21: - Fixing incorrect database password variable operator. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 20.03.19: - Make stateless operation an option, with input from one of the quassel team. 26.01.19: - Add pipeline logic and multi arch. 08.01.19: - Rebase to Ubuntu Bionic and upgrade to Quassel 0.13.0 See here. . 30.07.18: - Rebase to alpine:3.8 and use buildstage. 03.01.18: - Deprecate cpu_core routine lack of scaling. 09.12.17: - Rebase to alpine:3.7. 26.11.17: - Use cpu core counting routine to speed up build time. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 27.05.17: - Rebase to alpine:3.6. 13.05.17: - Switch to git source. 28.12.16: - Rebase to alpine:3.5. 23.11.16: - Rebase to alpine:edge. 23.09.16: - Use QT5 dependencies (thanks bauerj). 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 10.08.16: - Rebase to xenial. 14.10.15: - Removed the webui, turned out to be to unstable for most usecases. 01.09.15: - Fixed mistake in README. 30.07.15: - Switched to internal baseimage, and fixed a bug with updating the webinterface. 06.07.15: - Enabled BLOWFISH encryption and added a (optional) webinterface, for the times you dont have access to your client.","title":"quassel-core"},{"location":"images/docker-quassel-core/#linuxserverquassel-core","text":"Quassel-core is a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core. This container handles the IRC connection (quasselcore) and requires a desktop client (quasselclient) to be used and configured. It is designed to be always on and will keep your identity present in IRC even when your clients cannot be online. Backlog (history) is downloaded by your client upon reconnection allowing infinite scrollback through time.","title":"linuxserver/quassel-core"},{"location":"images/docker-quassel-core/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/quassel-core:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-quassel-core/#application-setup","text":"Quassel wiki: quassel A great place to host a quassel instance is a VPS, such as DigitalOcean . For $5 a month you can have a 24/7 IRC connection and be up and running in under 55 seconds (or so they claim). Once you have the container running, fire up a quassel desktop client and connect to your new core instance using your droplets public IP address and the port you specified in your docker run command default: 4242 . Create an admin user, select SQLite as your storage backend (Quassel limitation). Setup your real name and nick, then press Save & Connect . You're now connected to IRC. Let's add you to our IRC #linuxserver.io room on Freenode. Click 'File' > 'Networks' > 'Configure Networks' > 'Add' (under Networks section, not Servers) > 'Use preset' > Select 'Freenode' and then configure your identity using the tabs in the 'Network details' section. Once connected to Freenode, click #join and enter #linuxserver.io . That's it, you're done.","title":"Application Setup"},{"location":"images/docker-quassel-core/#stateless-usage","text":"To use Quassel in stateless mode, where it needs to be configured through environment arguments, run it with the --config-from-environment RUN_OPTS environment setting. Env Usage DB_BACKEND SQLite or PostgreSQL DB_PGSQL_USERNAME PostgreSQL User DB_PGSQL_PASSWORD PostgreSQL Password DB_PGSQL_HOSTNAME PostgreSQL Host DB_PGSQL_PORT PostgreSQL Port AUTH_AUTHENTICATOR Database or LDAP AUTH_LDAP_HOSTNAME LDAP Host AUTH_LDAP_PORT LDAP Port AUTH_LDAP_BIND_DN LDAP Bind Domain AUTH_LDAP_BIND_PASSWORD LDAP Password AUTH_LDAP_FILTER LDAP Authentication Filters AUTH_LDAP_UID_ATTRIBUTE LDAP UID Additionally you have RUN_OPTS that can be used to customize pathing and behvior. Option Example --strict-ident strictly bool --strict-ident --ident-daemon strictly bool --ident-daemon --ident-port --ident-port \"10113\" --ident-listen --ident-listen \"::,0.0.0.0\" --ssl-cert --ssl-cert /config/keys/cert.crt --ssl-key --ssl-key /config/keys/cert.key --require-ssl strictly bool --require-ssl Minimal example with SQLite: docker create \\ --name=quassel-core \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS='--config-from-environment' \\ -e DB_BACKEND=SQLite \\ -e AUTH_AUTHENTICATOR=Database \\ -p 4242:4242 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/quassel-core","title":"Stateless usage"},{"location":"images/docker-quassel-core/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-quassel-core/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: quassel-core: image: lscr.io/linuxserver/quassel-core:latest container_name: quassel-core environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - RUN_OPTS=--config-from-environment #optional volumes: - :/config ports: - 4242:4242 - 113:10113 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-quassel-core/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=quassel-core \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS=--config-from-environment `#optional` \\ -p 4242:4242 \\ -p 113:10113 `#optional` \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/quassel-core:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-quassel-core/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-quassel-core/#ports-p","text":"Parameter Function 4242 The port quassel-core listens for connections on. 10113 Optional Ident Port","title":"Ports (-p)"},{"location":"images/docker-quassel-core/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. RUN_OPTS=--config-from-environment Custom CLI options for Quassel","title":"Environment Variables (-e)"},{"location":"images/docker-quassel-core/#volume-mappings-v","text":"Volume Function /config Database and quassel-core configuration storage.","title":"Volume Mappings (-v)"},{"location":"images/docker-quassel-core/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-quassel-core/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-quassel-core/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-quassel-core/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-quassel-core/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-quassel-core/#support-info","text":"Shell access whilst the container is running: docker exec -it quassel-core /bin/bash To monitor the logs of the container in realtime: docker logs -f quassel-core Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' quassel-core Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/quassel-core:latest","title":"Support Info"},{"location":"images/docker-quassel-core/#versions","text":"03.01.22: - Rebase to alpine 3.15. Add new build deps and apply other fixes for 0.14. 07.08.21: - Fixing incorrect database password variable operator. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 20.03.19: - Make stateless operation an option, with input from one of the quassel team. 26.01.19: - Add pipeline logic and multi arch. 08.01.19: - Rebase to Ubuntu Bionic and upgrade to Quassel 0.13.0 See here. . 30.07.18: - Rebase to alpine:3.8 and use buildstage. 03.01.18: - Deprecate cpu_core routine lack of scaling. 09.12.17: - Rebase to alpine:3.7. 26.11.17: - Use cpu core counting routine to speed up build time. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 27.05.17: - Rebase to alpine:3.6. 13.05.17: - Switch to git source. 28.12.16: - Rebase to alpine:3.5. 23.11.16: - Rebase to alpine:edge. 23.09.16: - Use QT5 dependencies (thanks bauerj). 10.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 10.08.16: - Rebase to xenial. 14.10.15: - Removed the webui, turned out to be to unstable for most usecases. 01.09.15: - Fixed mistake in README. 30.07.15: - Switched to internal baseimage, and fixed a bug with updating the webinterface. 06.07.15: - Enabled BLOWFISH encryption and added a (optional) webinterface, for the times you dont have access to your client.","title":"Versions"},{"location":"images/docker-quassel-web/","text":"linuxserver/quassel-web Quassel-web is a web client for Quassel. Note that a Quassel-Core instance is required, we have a container available here. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/quassel-web:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup By default this container webui will be available on https://$SERVER_IP:64443 . To setup this container you can either use the envrionment variables we recommend or manually setup the configuration file by leaving out the QUASSEL_CORE environment variable among others. The configuration file using this method can be found at: /config/settings-user.js Strict reverse proxies This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: quassel-web: image: lscr.io/linuxserver/quassel-web:latest container_name: quassel-web environment: - PUID=1000 - PGID=1000 - QUASSEL_CORE=192.168.1.10 - QUASSEL_PORT=4242 - URL_BASE=/quassel #optional volumes: - /path/to/data:/config ports: - 64443:64443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=quassel-web \\ -e PUID=1000 \\ -e PGID=1000 \\ -e QUASSEL_CORE=192.168.1.10 \\ -e QUASSEL_PORT=4242 \\ -e URL_BASE=/quassel `#optional` \\ -p 64443:64443 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/quassel-web:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 64443 Quassel-web https webui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation QUASSEL_CORE=192.168.1.10 specify the URL or IP address of your Quassel Core instance QUASSEL_PORT=4242 specify the port of your Quassel Core instance URL_BASE=/quassel Specify a url-base in reverse proxy setups ie. /quassel Volume Mappings ( -v ) Volume Function /config this will store config on the docker host Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it quassel-web /bin/bash To monitor the logs of the container in realtime: docker logs -f quassel-web Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' quassel-web Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/quassel-web:latest Versions 12.02.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 18.05.19: - Reconfigure environmental variable setup. 28.04.19: - Initial Release.","title":"quassel-web"},{"location":"images/docker-quassel-web/#linuxserverquassel-web","text":"Quassel-web is a web client for Quassel. Note that a Quassel-Core instance is required, we have a container available here.","title":"linuxserver/quassel-web"},{"location":"images/docker-quassel-web/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/quassel-web:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-quassel-web/#application-setup","text":"By default this container webui will be available on https://$SERVER_IP:64443 . To setup this container you can either use the envrionment variables we recommend or manually setup the configuration file by leaving out the QUASSEL_CORE environment variable among others. The configuration file using this method can be found at: /config/settings-user.js","title":"Application Setup"},{"location":"images/docker-quassel-web/#strict-reverse-proxies","text":"This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-quassel-web/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-quassel-web/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: quassel-web: image: lscr.io/linuxserver/quassel-web:latest container_name: quassel-web environment: - PUID=1000 - PGID=1000 - QUASSEL_CORE=192.168.1.10 - QUASSEL_PORT=4242 - URL_BASE=/quassel #optional volumes: - /path/to/data:/config ports: - 64443:64443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-quassel-web/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=quassel-web \\ -e PUID=1000 \\ -e PGID=1000 \\ -e QUASSEL_CORE=192.168.1.10 \\ -e QUASSEL_PORT=4242 \\ -e URL_BASE=/quassel `#optional` \\ -p 64443:64443 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/quassel-web:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-quassel-web/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-quassel-web/#ports-p","text":"Parameter Function 64443 Quassel-web https webui","title":"Ports (-p)"},{"location":"images/docker-quassel-web/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation QUASSEL_CORE=192.168.1.10 specify the URL or IP address of your Quassel Core instance QUASSEL_PORT=4242 specify the port of your Quassel Core instance URL_BASE=/quassel Specify a url-base in reverse proxy setups ie. /quassel","title":"Environment Variables (-e)"},{"location":"images/docker-quassel-web/#volume-mappings-v","text":"Volume Function /config this will store config on the docker host","title":"Volume Mappings (-v)"},{"location":"images/docker-quassel-web/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-quassel-web/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-quassel-web/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-quassel-web/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-quassel-web/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-quassel-web/#support-info","text":"Shell access whilst the container is running: docker exec -it quassel-web /bin/bash To monitor the logs of the container in realtime: docker logs -f quassel-web Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' quassel-web Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/quassel-web:latest","title":"Support Info"},{"location":"images/docker-quassel-web/#versions","text":"12.02.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 18.05.19: - Reconfigure environmental variable setup. 28.04.19: - Initial Release.","title":"Versions"},{"location":"images/docker-radarr/","text":"linuxserver/radarr Radarr - A fork of Sonarr to work with movies \u00e0 la Couchpotato. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/radarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Radarr releases develop \u2705 Radarr releases from their develop branch nightly \u2705 Radarr releases from their nightly branch Application Setup Access the webui at :7878 , for more information check out Radarr . Media folders We have set /movies and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: radarr: image: lscr.io/linuxserver/radarr:latest container_name: radarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/movies:/movies #optional - /path/to/downloadclient-downloads:/downloads #optional ports: - 7878:7878 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=radarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 7878:7878 \\ -v /path/to/data:/config \\ -v /path/to/movies:/movies `#optional` \\ -v /path/to/downloadclient-downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/radarr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 7878 The port for the Radarr webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Radarr Volume Mappings ( -v ) Volume Function /config Database and Radarr configs /movies Location of Movie library on disk (See note in Application setup) /downloads Location of download managers output directory (See note in Application setup) Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it radarr /bin/bash To monitor the logs of the container in realtime: docker logs -f radarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' radarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/radarr:latest Versions 06.06.22: - Rebase master branch to Alpine 3.15. 20.02.22: - Rebase develop branch to Alpine. 04.02.22: - Rebase nightly branch to Alpine and deprecate nightly-alpine branch. 27.12.21: - Add nightly-alpine branch. 17.10.21: - Remove UMASK_SET . 08.05.21: - Make the paths clearer to the user 17.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 11.30.20: - Publish develop tag. 11.28.20: - Switch to v3 .NET CORE builds (no more mono, 5.14 tag is deprecated). Rebase to Focal (for issues on arm32v7, see here ). 05.04.20: - Move app to /app. 01.08.19: - Rebase to Linuxserver LTS mono version. 13.06.19: - Add env variable for setting umask. 10.05.19: - Rebase to Bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 09.09.18: - Add pipeline build process. 24.02.18: - Add nightly branch. 06.02.18: - Radarr repo changed owner. 15.12.17: - Fix continuation lines. 17.04.17: - Switch to using inhouse mono baseimage, adds python also. 13.04.17: - Switch to official mono repository. 10.01.17: - Initial Release.","title":"radarr"},{"location":"images/docker-radarr/#linuxserverradarr","text":"Radarr - A fork of Sonarr to work with movies \u00e0 la Couchpotato.","title":"linuxserver/radarr"},{"location":"images/docker-radarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/radarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-radarr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Radarr releases develop \u2705 Radarr releases from their develop branch nightly \u2705 Radarr releases from their nightly branch","title":"Version Tags"},{"location":"images/docker-radarr/#application-setup","text":"Access the webui at :7878 , for more information check out Radarr .","title":"Application Setup"},{"location":"images/docker-radarr/#media-folders","text":"We have set /movies and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Media folders"},{"location":"images/docker-radarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-radarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: radarr: image: lscr.io/linuxserver/radarr:latest container_name: radarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/movies:/movies #optional - /path/to/downloadclient-downloads:/downloads #optional ports: - 7878:7878 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-radarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=radarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 7878:7878 \\ -v /path/to/data:/config \\ -v /path/to/movies:/movies `#optional` \\ -v /path/to/downloadclient-downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/radarr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-radarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-radarr/#ports-p","text":"Parameter Function 7878 The port for the Radarr webinterface","title":"Ports (-p)"},{"location":"images/docker-radarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Radarr","title":"Environment Variables (-e)"},{"location":"images/docker-radarr/#volume-mappings-v","text":"Volume Function /config Database and Radarr configs /movies Location of Movie library on disk (See note in Application setup) /downloads Location of download managers output directory (See note in Application setup)","title":"Volume Mappings (-v)"},{"location":"images/docker-radarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-radarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-radarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-radarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-radarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-radarr/#support-info","text":"Shell access whilst the container is running: docker exec -it radarr /bin/bash To monitor the logs of the container in realtime: docker logs -f radarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' radarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/radarr:latest","title":"Support Info"},{"location":"images/docker-radarr/#versions","text":"06.06.22: - Rebase master branch to Alpine 3.15. 20.02.22: - Rebase develop branch to Alpine. 04.02.22: - Rebase nightly branch to Alpine and deprecate nightly-alpine branch. 27.12.21: - Add nightly-alpine branch. 17.10.21: - Remove UMASK_SET . 08.05.21: - Make the paths clearer to the user 17.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 11.30.20: - Publish develop tag. 11.28.20: - Switch to v3 .NET CORE builds (no more mono, 5.14 tag is deprecated). Rebase to Focal (for issues on arm32v7, see here ). 05.04.20: - Move app to /app. 01.08.19: - Rebase to Linuxserver LTS mono version. 13.06.19: - Add env variable for setting umask. 10.05.19: - Rebase to Bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 09.09.18: - Add pipeline build process. 24.02.18: - Add nightly branch. 06.02.18: - Radarr repo changed owner. 15.12.17: - Fix continuation lines. 17.04.17: - Switch to using inhouse mono baseimage, adds python also. 13.04.17: - Switch to official mono repository. 10.01.17: - Initial Release.","title":"Versions"},{"location":"images/docker-raneto/","text":"linuxserver/raneto Raneto - is an open source Knowledgebase platform that uses static Markdown files to power your Knowledgebase. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/raneto:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at http:// :3000 The default username and password is admin/password This application can only be configured through file storage the web interface is only for editing Markdown files. You need to understand the following paths and the role they play for the application: /config/config.default.js - Main configuration file to setup your user, site name, etc. /config/content - All of your Markdown files go here more info . /config/images - This folder will serve content on http:// :3000/images/ .png you can put anything in here but it is specifically for image files so you can embed them in your Markdown files without using external hosting. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: raneto: image: lscr.io/linuxserver/raneto:latest container_name: raneto environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=raneto \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/raneto:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 The port for the Raneto web interface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Raneto config and Markdown files Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it raneto /bin/bash To monitor the logs of the container in realtime: docker logs -f raneto Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' raneto Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/raneto:latest Versions 10.08.22: - Rebasing to alpine 3.15. 23.01.21: - Rebasing to alpine 3.13. 02.06.20: - Rebasing to alpine 3.11. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 01.06.19: - Initial Release.","title":"raneto"},{"location":"images/docker-raneto/#linuxserverraneto","text":"Raneto - is an open source Knowledgebase platform that uses static Markdown files to power your Knowledgebase.","title":"linuxserver/raneto"},{"location":"images/docker-raneto/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/raneto:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-raneto/#application-setup","text":"Access the webui at http:// :3000 The default username and password is admin/password This application can only be configured through file storage the web interface is only for editing Markdown files. You need to understand the following paths and the role they play for the application: /config/config.default.js - Main configuration file to setup your user, site name, etc. /config/content - All of your Markdown files go here more info . /config/images - This folder will serve content on http:// :3000/images/ .png you can put anything in here but it is specifically for image files so you can embed them in your Markdown files without using external hosting.","title":"Application Setup"},{"location":"images/docker-raneto/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-raneto/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: raneto: image: lscr.io/linuxserver/raneto:latest container_name: raneto environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-raneto/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=raneto \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/appdata:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/raneto:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-raneto/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-raneto/#ports-p","text":"Parameter Function 3000 The port for the Raneto web interface","title":"Ports (-p)"},{"location":"images/docker-raneto/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-raneto/#volume-mappings-v","text":"Volume Function /config Raneto config and Markdown files","title":"Volume Mappings (-v)"},{"location":"images/docker-raneto/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-raneto/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-raneto/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-raneto/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-raneto/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-raneto/#support-info","text":"Shell access whilst the container is running: docker exec -it raneto /bin/bash To monitor the logs of the container in realtime: docker logs -f raneto Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' raneto Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/raneto:latest","title":"Support Info"},{"location":"images/docker-raneto/#versions","text":"10.08.22: - Rebasing to alpine 3.15. 23.01.21: - Rebasing to alpine 3.13. 02.06.20: - Rebasing to alpine 3.11. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 01.06.19: - Initial Release.","title":"Versions"},{"location":"images/docker-rdesktop/","text":"linuxserver/rdesktop Rdesktop - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/rdesktop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 XFCE Alpine ubuntu-xfce \u2705 XFCE Ubuntu fedora-xfce \u2705 XFCE Fedora arch-xfce \u2705 XFCE Arch alpine-kde \u2705 KDE Alpine ubuntu-kde \u2705 KDE Ubuntu fedora-kde \u2705 KDE Fedora arch-kde \u2705 KDE Arch alpine-mate \u2705 MATE Alpine ubuntu-mate \u2705 MATE Ubuntu fedora-mate \u2705 MATE Fedora arch-mate \u2705 MATE Arch alpine-i3 \u2705 i3 Alpine ubuntu-i3 \u2705 i3 Ubuntu fedora-i3 \u2705 i3 Fedora arch-i3 \u2705 i3 Arch alpine-openbox \u2705 Openbox Alpine ubuntu-openbox \u2705 Openbox Ubuntu fedora-openbox \u2705 Openbox Fedora arch-openbox \u2705 Openbox Arch alpine-icewm \u2705 IceWM Alpine ubuntu-icewm \u2705 IceWM Ubuntu fedora-icewm \u2705 IceWM Fedora arch-icewm \u2705 IceWM Arch Application Setup The Default USERNAME and PASSWORD is: abc/abc Unlike our other containers these Desktops are not designed to be upgraded by Docker, you will keep your home directoy but anything you installed system level will be lost if you upgrade an existing container. To keep packages up to date instead use Ubuntu's own apt, Alpine's apk, Fedora's dnf, or Arch's pacman program You will need a Remote Desktop client to access this container Wikipedia List , by default it listens on 3389, but you can change that port to whatever you wish on the host side IE 3390:3389 . The first thing you should do when you login to the container is to change the abc users password by issuing the passwd command. Modern GUI desktop apps (including some flavors terminals) have issues with the latest Docker and syscall compatibility, you can use Docker with the --security-opt seccomp=unconfined setting to allow these syscalls or try podman as they have updated their codebase to support them If you ever lose your password you can always reset it by execing into the container as root: docker exec -it rdesktop passwd abc By default we perform all logic for the abc user and we reccomend using that user only in the container, but new users can be added as long as there is a startwm.sh executable script in their home directory. All of these containers are configured with passwordless sudo, we make no efforts to secure or harden these containers and we do not reccomend ever publishing their ports to the public Internet. Hardware Acceleration (Ubuntu Container Only) Many desktop application will need access to a GPU to function properly and even some Desktop Environments have compisitor effects that will not function without a GPU. This is not a hard requirement and all base images will function without a video device mounted into the container. Intel/ATI/AMD To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container. Arm Devices Best effort is made to install tools to allow mounting in /dev/dri on Arm devices. In most cases if /dev/dri exists on the host it should just work. If running a Raspberry Pi 4 be sure to enable dtoverlay=vc4-fkms-v3d in your usercfg.txt. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: rdesktop: image: lscr.io/linuxserver/rdesktop:latest container_name: rdesktop security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /var/run/docker.sock:/var/run/docker.sock #optional - /path/to/data:/config #optional ports: - 3389:3389 devices: - /dev/dri:/dev/dri #optional shm_size: \"1gb\" #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=rdesktop \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3389:3389 \\ -v /var/run/docker.sock:/var/run/docker.sock `#optional` \\ -v /path/to/data:/config `#optional` \\ --device /dev/dri:/dev/dri `#optional` \\ --shm-size=\"1gb\" `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/rdesktop:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3389 RDP access port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /var/run/docker.sock Docker Socket on the system, if you want to use Docker in the container /config abc users home directory Device Mappings ( --device ) Parameter Function /dev/dri Add this for GL support (Linux hosts only) Miscellaneous Options Parameter Function --shm-size= We set this to 1 gig to prevent modern web browsers from crashing --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it rdesktop /bin/bash To monitor the logs of the container in realtime: docker logs -f rdesktop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' rdesktop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/rdesktop:latest Versions 27.10.22: - Rebase all Ubuntu images to Jammy 22.04. 26.10.22: - Rebase Alpine xfce to 3.16, migrate to s6v3. 05.03.22: - Organize tags differently to run Ubuntu at latest LTS, make Alpine latest, add docs about GPU accel. 05.05.21: - Reduce default packages to their flavor specific basics. 05.04.21: - Add Alpine flavor. 06.04.20: - Start PulseAudio in images to support audio 28.02.20: - Initial Releases","title":"rdesktop"},{"location":"images/docker-rdesktop/#linuxserverrdesktop","text":"Rdesktop - Containers containing full desktop environments in many popular flavors for Alpine, Ubuntu, Arch, and Fedora accessible via RDP.","title":"linuxserver/rdesktop"},{"location":"images/docker-rdesktop/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/rdesktop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-rdesktop/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 XFCE Alpine ubuntu-xfce \u2705 XFCE Ubuntu fedora-xfce \u2705 XFCE Fedora arch-xfce \u2705 XFCE Arch alpine-kde \u2705 KDE Alpine ubuntu-kde \u2705 KDE Ubuntu fedora-kde \u2705 KDE Fedora arch-kde \u2705 KDE Arch alpine-mate \u2705 MATE Alpine ubuntu-mate \u2705 MATE Ubuntu fedora-mate \u2705 MATE Fedora arch-mate \u2705 MATE Arch alpine-i3 \u2705 i3 Alpine ubuntu-i3 \u2705 i3 Ubuntu fedora-i3 \u2705 i3 Fedora arch-i3 \u2705 i3 Arch alpine-openbox \u2705 Openbox Alpine ubuntu-openbox \u2705 Openbox Ubuntu fedora-openbox \u2705 Openbox Fedora arch-openbox \u2705 Openbox Arch alpine-icewm \u2705 IceWM Alpine ubuntu-icewm \u2705 IceWM Ubuntu fedora-icewm \u2705 IceWM Fedora arch-icewm \u2705 IceWM Arch","title":"Version Tags"},{"location":"images/docker-rdesktop/#application-setup","text":"The Default USERNAME and PASSWORD is: abc/abc Unlike our other containers these Desktops are not designed to be upgraded by Docker, you will keep your home directoy but anything you installed system level will be lost if you upgrade an existing container. To keep packages up to date instead use Ubuntu's own apt, Alpine's apk, Fedora's dnf, or Arch's pacman program You will need a Remote Desktop client to access this container Wikipedia List , by default it listens on 3389, but you can change that port to whatever you wish on the host side IE 3390:3389 . The first thing you should do when you login to the container is to change the abc users password by issuing the passwd command. Modern GUI desktop apps (including some flavors terminals) have issues with the latest Docker and syscall compatibility, you can use Docker with the --security-opt seccomp=unconfined setting to allow these syscalls or try podman as they have updated their codebase to support them If you ever lose your password you can always reset it by execing into the container as root: docker exec -it rdesktop passwd abc By default we perform all logic for the abc user and we reccomend using that user only in the container, but new users can be added as long as there is a startwm.sh executable script in their home directory. All of these containers are configured with passwordless sudo, we make no efforts to secure or harden these containers and we do not reccomend ever publishing their ports to the public Internet.","title":"Application Setup"},{"location":"images/docker-rdesktop/#hardware-acceleration-ubuntu-container-only","text":"Many desktop application will need access to a GPU to function properly and even some Desktop Environments have compisitor effects that will not function without a GPU. This is not a hard requirement and all base images will function without a video device mounted into the container.","title":"Hardware Acceleration (Ubuntu Container Only)"},{"location":"images/docker-rdesktop/#intelatiamd","text":"To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel/ATI/AMD"},{"location":"images/docker-rdesktop/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container.","title":"Nvidia"},{"location":"images/docker-rdesktop/#arm-devices","text":"Best effort is made to install tools to allow mounting in /dev/dri on Arm devices. In most cases if /dev/dri exists on the host it should just work. If running a Raspberry Pi 4 be sure to enable dtoverlay=vc4-fkms-v3d in your usercfg.txt.","title":"Arm Devices"},{"location":"images/docker-rdesktop/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-rdesktop/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: rdesktop: image: lscr.io/linuxserver/rdesktop:latest container_name: rdesktop security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /var/run/docker.sock:/var/run/docker.sock #optional - /path/to/data:/config #optional ports: - 3389:3389 devices: - /dev/dri:/dev/dri #optional shm_size: \"1gb\" #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-rdesktop/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=rdesktop \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3389:3389 \\ -v /var/run/docker.sock:/var/run/docker.sock `#optional` \\ -v /path/to/data:/config `#optional` \\ --device /dev/dri:/dev/dri `#optional` \\ --shm-size=\"1gb\" `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/rdesktop:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-rdesktop/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-rdesktop/#ports-p","text":"Parameter Function 3389 RDP access port","title":"Ports (-p)"},{"location":"images/docker-rdesktop/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-rdesktop/#volume-mappings-v","text":"Volume Function /var/run/docker.sock Docker Socket on the system, if you want to use Docker in the container /config abc users home directory","title":"Volume Mappings (-v)"},{"location":"images/docker-rdesktop/#device-mappings-device","text":"Parameter Function /dev/dri Add this for GL support (Linux hosts only)","title":"Device Mappings (--device)"},{"location":"images/docker-rdesktop/#miscellaneous-options","text":"Parameter Function --shm-size= We set this to 1 gig to prevent modern web browsers from crashing --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function as syscalls are unkown to Docker","title":"Miscellaneous Options"},{"location":"images/docker-rdesktop/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-rdesktop/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-rdesktop/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-rdesktop/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-rdesktop/#support-info","text":"Shell access whilst the container is running: docker exec -it rdesktop /bin/bash To monitor the logs of the container in realtime: docker logs -f rdesktop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' rdesktop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/rdesktop:latest","title":"Support Info"},{"location":"images/docker-rdesktop/#versions","text":"27.10.22: - Rebase all Ubuntu images to Jammy 22.04. 26.10.22: - Rebase Alpine xfce to 3.16, migrate to s6v3. 05.03.22: - Organize tags differently to run Ubuntu at latest LTS, make Alpine latest, add docs about GPU accel. 05.05.21: - Reduce default packages to their flavor specific basics. 05.04.21: - Add Alpine flavor. 06.04.20: - Start PulseAudio in images to support audio 28.02.20: - Initial Releases","title":"Versions"},{"location":"images/docker-readarr/","text":"linuxserver/readarr Readarr - Book Manager and Automation (Sonarr for Ebooks) Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/readarr:nightly should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u274c nightly \u2705 Nightly Readarr releases Application Setup Access the webui at :8787 , for more information check out Readarr . Media folders We have set /books and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: readarr: image: lscr.io/linuxserver/readarr:nightly container_name: readarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/books:/books #optional - /path/to/downloadclient-downloads:/downloads #optional ports: - 8787:8787 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=readarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8787:8787 \\ -v /path/to/data:/config \\ -v /path/to/books:/books `#optional` \\ -v /path/to/downloadclient-downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/readarr:nightly Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8787 The port for the Readarr webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Readarr Volume Mappings ( -v ) Volume Function /config Database and Readarr configs /books Location of Book library on disk (See note in Application setup) /downloads Location of download managers output directory (See note in Application setup) Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it readarr /bin/bash To monitor the logs of the container in realtime: docker logs -f readarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' readarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/readarr:nightly Versions 21.01.22: - Remove chromaprint as it's no longer a required dependency. 01.01.22: - Add chromaprint for audio fingerprinting. 28.07.21: - Initial Release.","title":"readarr"},{"location":"images/docker-readarr/#linuxserverreadarr","text":"Readarr - Book Manager and Automation (Sonarr for Ebooks)","title":"linuxserver/readarr"},{"location":"images/docker-readarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/readarr:nightly should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-readarr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u274c nightly \u2705 Nightly Readarr releases","title":"Version Tags"},{"location":"images/docker-readarr/#application-setup","text":"Access the webui at :8787 , for more information check out Readarr .","title":"Application Setup"},{"location":"images/docker-readarr/#media-folders","text":"We have set /books and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Media folders"},{"location":"images/docker-readarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-readarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: readarr: image: lscr.io/linuxserver/readarr:nightly container_name: readarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/books:/books #optional - /path/to/downloadclient-downloads:/downloads #optional ports: - 8787:8787 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-readarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=readarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8787:8787 \\ -v /path/to/data:/config \\ -v /path/to/books:/books `#optional` \\ -v /path/to/downloadclient-downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/readarr:nightly","title":"docker cli (click here for more info)"},{"location":"images/docker-readarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-readarr/#ports-p","text":"Parameter Function 8787 The port for the Readarr webinterface","title":"Ports (-p)"},{"location":"images/docker-readarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Readarr","title":"Environment Variables (-e)"},{"location":"images/docker-readarr/#volume-mappings-v","text":"Volume Function /config Database and Readarr configs /books Location of Book library on disk (See note in Application setup) /downloads Location of download managers output directory (See note in Application setup)","title":"Volume Mappings (-v)"},{"location":"images/docker-readarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-readarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-readarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-readarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-readarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-readarr/#support-info","text":"Shell access whilst the container is running: docker exec -it readarr /bin/bash To monitor the logs of the container in realtime: docker logs -f readarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' readarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/readarr:nightly","title":"Support Info"},{"location":"images/docker-readarr/#versions","text":"21.01.22: - Remove chromaprint as it's no longer a required dependency. 01.01.22: - Add chromaprint for audio fingerprinting. 28.07.21: - Initial Release.","title":"Versions"},{"location":"images/docker-readme-sync/","text":"Contact information:- Type Address/Details Discord Discord Forum Linuserver.io forum IRC freenode at #linuxserver.io more information at:- IRC Podcast Covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation! Linuxserver.io Podcast The LinuxServer.io team brings you another image release featuring :- regular and timely application updates easy user mappings custom base image with s6 overlay weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth security updates lsiodev/readme-sync Utility to copy README.md from a given github.com repository to a given dockerhub.com repository. Usage docker run --rm=true \\ -e DOCKERHUB_USERNAME= \\ -e DOCKERHUB_PASSWORD= \\ -e GIT_REPOSITORY= \\ -e DOCKER_REPOSITORY= \\ -e GIT_BRANCH= \\ lsiodev/readme-sync bash -c 'node sync' Parameters The parameters are split into two halves, separated by a colon, the left hand side representing the host and the right the container side. For example with a port -p external:internal - what this shows is the port mapping from internal to external of the container. So -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 http://192.168.x.x:8080 would show you what's running INSIDE the container on port 80. Parameter Function -e DOCKERHUB_USERNAME your dockerhub username -e DOCKERHUB_PASSWORD your dockerhub password -e GIT_REPOSITORY github repository, i.e. linuxserver/docker-readme-sync -e DOCKER_REPOSITORY dockerhub repository, i.e. lsiodev/docker-readme-sync -e GIT_BRANCH github repository branch, optional (default: master) It is based on alpine and is not meant to run as a service. The sync is performed and the command exits. Versions Date Changes 13.01.21 Use ghcr baseimages. Fall back to external folder for readme lite. 28.07.20 Rebase to alpine 3.12. 20.08.18 Rebase to alpine 3.8. 28.02.18 convert repo to use node.js implementation. 17.11.17 add github branch support. 16.10.16 merge ruby app. 11.10.16 Initial development release.","title":"readme-sync"},{"location":"images/docker-readme-sync/#contact-information-","text":"Type Address/Details Discord Discord Forum Linuserver.io forum IRC freenode at #linuxserver.io more information at:- IRC Podcast Covers everything to do with getting the most from your Linux Server plus a focus on all things Docker and containerisation! Linuxserver.io Podcast The LinuxServer.io team brings you another image release featuring :- regular and timely application updates easy user mappings custom base image with s6 overlay weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth security updates","title":"Contact information:-"},{"location":"images/docker-readme-sync/#lsiodevreadme-sync","text":"Utility to copy README.md from a given github.com repository to a given dockerhub.com repository.","title":"lsiodev/readme-sync"},{"location":"images/docker-readme-sync/#usage","text":"docker run --rm=true \\ -e DOCKERHUB_USERNAME= \\ -e DOCKERHUB_PASSWORD= \\ -e GIT_REPOSITORY= \\ -e DOCKER_REPOSITORY= \\ -e GIT_BRANCH= \\ lsiodev/readme-sync bash -c 'node sync'","title":"Usage"},{"location":"images/docker-readme-sync/#parameters","text":"The parameters are split into two halves, separated by a colon, the left hand side representing the host and the right the container side. For example with a port -p external:internal - what this shows is the port mapping from internal to external of the container. So -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 http://192.168.x.x:8080 would show you what's running INSIDE the container on port 80. Parameter Function -e DOCKERHUB_USERNAME your dockerhub username -e DOCKERHUB_PASSWORD your dockerhub password -e GIT_REPOSITORY github repository, i.e. linuxserver/docker-readme-sync -e DOCKER_REPOSITORY dockerhub repository, i.e. lsiodev/docker-readme-sync -e GIT_BRANCH github repository branch, optional (default: master) It is based on alpine and is not meant to run as a service. The sync is performed and the command exits.","title":"Parameters"},{"location":"images/docker-readme-sync/#versions","text":"Date Changes 13.01.21 Use ghcr baseimages. Fall back to external folder for readme lite. 28.07.20 Rebase to alpine 3.12. 20.08.18 Rebase to alpine 3.8. 28.02.18 convert repo to use node.js implementation. 17.11.17 add github branch support. 16.10.16 merge ruby app. 11.10.16 Initial development release.","title":"Versions"},{"location":"images/docker-remmina/","text":"linuxserver/remmina Remmina is a remote desktop client written in GTK, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large or tiny screens. Remmina supports multiple network protocols, in an integrated and consistent user interface. Currently RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC are supported. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/remmina:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: remmina: image: lscr.io/linuxserver/remmina:latest container_name: remmina environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=remmina \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/remmina:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Remmina desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it remmina /bin/bash To monitor the logs of the container in realtime: docker logs -f remmina Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' remmina Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/remmina:latest Versions 16.12.22: - Rebase to Jammy. Drop nx, xdmcp plugins due to lack of packages. Add Kiosk, Secret, x2go plugins. 19.06.22: - Rebase to Focal. Drop Telepathy plugin due to lack of packages. 27.03.20: - Initial release.","title":"remmina"},{"location":"images/docker-remmina/#linuxserverremmina","text":"Remmina is a remote desktop client written in GTK, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large or tiny screens. Remmina supports multiple network protocols, in an integrated and consistent user interface. Currently RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC are supported.","title":"linuxserver/remmina"},{"location":"images/docker-remmina/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/remmina:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-remmina/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true","title":"Application Setup"},{"location":"images/docker-remmina/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-remmina/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: remmina: image: lscr.io/linuxserver/remmina:latest container_name: remmina environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-remmina/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=remmina \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/remmina:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-remmina/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-remmina/#ports-p","text":"Parameter Function 3000 Remmina desktop gui.","title":"Ports (-p)"},{"location":"images/docker-remmina/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-remmina/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings.","title":"Volume Mappings (-v)"},{"location":"images/docker-remmina/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-remmina/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-remmina/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-remmina/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-remmina/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-remmina/#support-info","text":"Shell access whilst the container is running: docker exec -it remmina /bin/bash To monitor the logs of the container in realtime: docker logs -f remmina Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' remmina Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/remmina:latest","title":"Support Info"},{"location":"images/docker-remmina/#versions","text":"16.12.22: - Rebase to Jammy. Drop nx, xdmcp plugins due to lack of packages. Add Kiosk, Secret, x2go plugins. 19.06.22: - Rebase to Focal. Drop Telepathy plugin due to lack of packages. 27.03.20: - Initial release.","title":"Versions"},{"location":"images/docker-requestrr/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. The upstream dev has ended development. linuxserver/requestrr Requestrr is a chatbot used to simplify using services like Sonarr/Radarr/Ombi via the use of chat. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/requestrr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at :4545 , for more information check out Requestrr . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: requestrr: image: lscr.io/linuxserver/requestrr:latest container_name: requestrr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 4545:4545 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=requestrr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 4545:4545 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/requestrr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 4545 web gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it requestrr /bin/bash To monitor the logs of the container in realtime: docker logs -f requestrr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' requestrr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/requestrr:latest Versions 20.12.21: - Deprecate. 27.09.21: - Allow app to write to tmp folder. 21.02.21: - Initial Release.","title":"requestrr"},{"location":"images/docker-requestrr/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. The upstream dev has ended development.","title":"DEPRECATION NOTICE"},{"location":"images/docker-requestrr/#linuxserverrequestrr","text":"Requestrr is a chatbot used to simplify using services like Sonarr/Radarr/Ombi via the use of chat.","title":"linuxserver/requestrr"},{"location":"images/docker-requestrr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/requestrr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-requestrr/#application-setup","text":"Access the webui at :4545 , for more information check out Requestrr .","title":"Application Setup"},{"location":"images/docker-requestrr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-requestrr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: requestrr: image: lscr.io/linuxserver/requestrr:latest container_name: requestrr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config ports: - 4545:4545 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-requestrr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=requestrr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 4545:4545 \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/requestrr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-requestrr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-requestrr/#ports-p","text":"Parameter Function 4545 web gui","title":"Ports (-p)"},{"location":"images/docker-requestrr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-requestrr/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-requestrr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-requestrr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-requestrr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-requestrr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-requestrr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-requestrr/#support-info","text":"Shell access whilst the container is running: docker exec -it requestrr /bin/bash To monitor the logs of the container in realtime: docker logs -f requestrr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' requestrr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/requestrr:latest","title":"Support Info"},{"location":"images/docker-requestrr/#versions","text":"20.12.21: - Deprecate. 27.09.21: - Allow app to write to tmp folder. 21.02.21: - Initial Release.","title":"Versions"},{"location":"images/docker-resilio-sync/","text":"linuxserver/resilio-sync Resilio-sync (formerly BitTorrent Sync) uses the BitTorrent protocol to sync files and folders between all of your devices. There are both free and paid versions, this container supports both. There is an official sync image but we created this one as it supports user mapping to simplify permissions for volumes. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/resilio-sync:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Webui is at :8888 , for account creation and configuration. More info on setup at Resilio Sync Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: resilio-sync: image: lscr.io/linuxserver/resilio-sync:latest container_name: resilio-sync environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/downloads:/downloads - /path/to/data:/sync ports: - 8888:8888 - 55555:55555 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=resilio-sync \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8888:8888 \\ -p 55555:55555 \\ -v /path/to/config:/config \\ -v /path/to/downloads:/downloads \\ -v /path/to/data:/sync \\ --restart unless-stopped \\ lscr.io/linuxserver/resilio-sync:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8888 WebUI 55555 Sync Port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where resilio-sync should store its config file. /downloads Folder for downloads/cache. /sync Sync folders root. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it resilio-sync /bin/bash To monitor the logs of the container in realtime: docker logs -f resilio-sync Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' resilio-sync Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/resilio-sync:latest Versions 14.12.22: - Rebase to Jammy, migrate to s6v3. 03.10.21: - Use upstream apt repo to install. Rebase to focal. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Rebase to bionic, add pipeline logic and multi arch. 05.02.18: - Add downloads volume mount. 28.01.18: - Add /sync to dir whitelist. 26.01.18: - Use variable for arch to bring in line with armhf arch repo. 15.12.17: - Fix continuation lines. 02.06.17: - Rebase to ubuntu xenial, alpine linux no longer works with resilio. 22.05.17: - Add variable for user defined umask. 14.05.17: - Use fixed version instead of latest, while 2.5.0 is broken on non glibc (alpine). 08.02.17: - Rebase to alpine 3.5. 02.11.16: - Initial Release.","title":"resilio-sync"},{"location":"images/docker-resilio-sync/#linuxserverresilio-sync","text":"Resilio-sync (formerly BitTorrent Sync) uses the BitTorrent protocol to sync files and folders between all of your devices. There are both free and paid versions, this container supports both. There is an official sync image but we created this one as it supports user mapping to simplify permissions for volumes.","title":"linuxserver/resilio-sync"},{"location":"images/docker-resilio-sync/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/resilio-sync:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-resilio-sync/#application-setup","text":"Webui is at :8888 , for account creation and configuration. More info on setup at Resilio Sync","title":"Application Setup"},{"location":"images/docker-resilio-sync/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-resilio-sync/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: resilio-sync: image: lscr.io/linuxserver/resilio-sync:latest container_name: resilio-sync environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/downloads:/downloads - /path/to/data:/sync ports: - 8888:8888 - 55555:55555 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-resilio-sync/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=resilio-sync \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8888:8888 \\ -p 55555:55555 \\ -v /path/to/config:/config \\ -v /path/to/downloads:/downloads \\ -v /path/to/data:/sync \\ --restart unless-stopped \\ lscr.io/linuxserver/resilio-sync:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-resilio-sync/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-resilio-sync/#ports-p","text":"Parameter Function 8888 WebUI 55555 Sync Port.","title":"Ports (-p)"},{"location":"images/docker-resilio-sync/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-resilio-sync/#volume-mappings-v","text":"Volume Function /config Where resilio-sync should store its config file. /downloads Folder for downloads/cache. /sync Sync folders root.","title":"Volume Mappings (-v)"},{"location":"images/docker-resilio-sync/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-resilio-sync/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-resilio-sync/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-resilio-sync/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-resilio-sync/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-resilio-sync/#support-info","text":"Shell access whilst the container is running: docker exec -it resilio-sync /bin/bash To monitor the logs of the container in realtime: docker logs -f resilio-sync Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' resilio-sync Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/resilio-sync:latest","title":"Support Info"},{"location":"images/docker-resilio-sync/#versions","text":"14.12.22: - Rebase to Jammy, migrate to s6v3. 03.10.21: - Use upstream apt repo to install. Rebase to focal. 20.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 11.02.19: - Rebase to bionic, add pipeline logic and multi arch. 05.02.18: - Add downloads volume mount. 28.01.18: - Add /sync to dir whitelist. 26.01.18: - Use variable for arch to bring in line with armhf arch repo. 15.12.17: - Fix continuation lines. 02.06.17: - Rebase to ubuntu xenial, alpine linux no longer works with resilio. 22.05.17: - Add variable for user defined umask. 14.05.17: - Use fixed version instead of latest, while 2.5.0 is broken on non glibc (alpine). 08.02.17: - Rebase to alpine 3.5. 02.11.16: - Initial Release.","title":"Versions"},{"location":"images/docker-rsnapshot/","text":"linuxserver/rsnapshot Rsnapshot is a filesystem snapshot utility based on rsync. rsnapshot makes it easy to make periodic snapshots of local machines, and remote machines over ssh. The code makes extensive use of hard links whenever possible, to greatly reduce the disk space required.\" Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/rsnapshot:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup IMPORTANT NOTES: After starting the container you will need to edit /config/rsnapshot.conf . SNAPSHOT ROOT DIRECTORY rsnapshot is configured to backup data to the /.snapshots volume by default. This can be changed in the config, but be sure you mount a volume to the container to match. BACKUP LEVELS / INTERVALS rsnapshot retains backups based on configurations in this section. Please see the rsnapshot readme for more information. BACKUP POINTS rsnapshot is configured to backup data from the /data volume by default. This can be changed in the config, but be sure you mount a volume to the container to match. cron You will then need to edit /config/crontabs/root to set cron jobs to run rsnapshot. By default no cron jobs are enabled. Examples are includes based on information from the rsnapshot readme . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: rsnapshot: image: lscr.io/linuxserver/rsnapshot:latest container_name: rsnapshot environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata:/config - /path/to/snapshots:/.snapshots #optional - /path/to/data:/data #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=rsnapshot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -v /path/to/appdata:/config \\ -v /path/to/snapshots:/.snapshots `#optional` \\ -v /path/to/data:/data `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/rsnapshot:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /.snapshots Storage location for all snapshots. /data Storage location for data to be backed up. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it rsnapshot /bin/bash To monitor the logs of the container in realtime: docker logs -f rsnapshot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' rsnapshot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/rsnapshot:latest Versions 15.12.22: - Rebase to alpine 3.17. 11.10.22: - Rebase to alpine 3.16, migrate to s6v3. 10.10.21: - Rebase to alpine 3.14. 20.08.20: - Initial Release.","title":"rsnapshot"},{"location":"images/docker-rsnapshot/#linuxserverrsnapshot","text":"Rsnapshot is a filesystem snapshot utility based on rsync. rsnapshot makes it easy to make periodic snapshots of local machines, and remote machines over ssh. The code makes extensive use of hard links whenever possible, to greatly reduce the disk space required.\"","title":"linuxserver/rsnapshot"},{"location":"images/docker-rsnapshot/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/rsnapshot:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-rsnapshot/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-rsnapshot/#important-notes","text":"After starting the container you will need to edit /config/rsnapshot.conf .","title":"IMPORTANT NOTES:"},{"location":"images/docker-rsnapshot/#snapshot-root-directory","text":"rsnapshot is configured to backup data to the /.snapshots volume by default. This can be changed in the config, but be sure you mount a volume to the container to match.","title":"SNAPSHOT ROOT DIRECTORY"},{"location":"images/docker-rsnapshot/#backup-levels-intervals","text":"rsnapshot retains backups based on configurations in this section. Please see the rsnapshot readme for more information.","title":"BACKUP LEVELS / INTERVALS"},{"location":"images/docker-rsnapshot/#backup-points","text":"rsnapshot is configured to backup data from the /data volume by default. This can be changed in the config, but be sure you mount a volume to the container to match.","title":"BACKUP POINTS"},{"location":"images/docker-rsnapshot/#cron","text":"You will then need to edit /config/crontabs/root to set cron jobs to run rsnapshot. By default no cron jobs are enabled. Examples are includes based on information from the rsnapshot readme .","title":"cron"},{"location":"images/docker-rsnapshot/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-rsnapshot/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: rsnapshot: image: lscr.io/linuxserver/rsnapshot:latest container_name: rsnapshot environment: - PUID=1000 - PGID=1000 - TZ=America/New_York volumes: - /path/to/appdata:/config - /path/to/snapshots:/.snapshots #optional - /path/to/data:/data #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-rsnapshot/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=rsnapshot \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=America/New_York \\ -v /path/to/appdata:/config \\ -v /path/to/snapshots:/.snapshots `#optional` \\ -v /path/to/data:/data `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/rsnapshot:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-rsnapshot/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-rsnapshot/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-rsnapshot/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=America/New_York Specify a timezone to use EG America/New_York","title":"Environment Variables (-e)"},{"location":"images/docker-rsnapshot/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /.snapshots Storage location for all snapshots. /data Storage location for data to be backed up.","title":"Volume Mappings (-v)"},{"location":"images/docker-rsnapshot/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-rsnapshot/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-rsnapshot/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-rsnapshot/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-rsnapshot/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-rsnapshot/#support-info","text":"Shell access whilst the container is running: docker exec -it rsnapshot /bin/bash To monitor the logs of the container in realtime: docker logs -f rsnapshot Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' rsnapshot Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/rsnapshot:latest","title":"Support Info"},{"location":"images/docker-rsnapshot/#versions","text":"15.12.22: - Rebase to alpine 3.17. 11.10.22: - Rebase to alpine 3.16, migrate to s6v3. 10.10.21: - Rebase to alpine 3.14. 20.08.20: - Initial Release.","title":"Versions"},{"location":"images/docker-rutorrent/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. linuxserver/rutorrent Rutorrent is a popular rtorrent client with a webui for ease of use. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/rutorrent should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker-compose ( recommended ) Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: rutorrent: image: lscr.io/linuxserver/rutorrent container_name: rutorrent environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/downloads ports: - 80:80 - 5000:5000 - 51413:51413 - 6881:6881/udp restart: unless-stopped docker cli docker run -d \\ --name=rutorrent \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 80:80 \\ -p 5000:5000 \\ -p 51413:51413 \\ -p 6881:6881/udp \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/rutorrent Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 ruTorrent Web UI 5000 scgi port 51413 Bit-torrent port 6881/udp Bit-torrent port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation Volume Mappings ( -v ) Volume Function /config where ruTorrent should store it's config files /downloads path to your downloads folder Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup THIS IMAGE IS DEPRECATED. Please migrate to crazy-max's image . Webui can be found at :80 , configuration files for rtorrent are in /config/rtorrent, php in config/php and for the webui in /config/rutorrent/settings. Settings, changed by the user through the \"Settings\" panel in ruTorrent, are valid until rtorrent restart. After which all settings will be set according to the rtorrent config file (/config/rtorrent/rtorrent.rc),this is a limitation of the actual apps themselves. Important note for unraid users or those running services such as a webserver on port 80, change port 80 assignment ** It should also be noted that this container when run will create subfolders ,completed, incoming and watched in the /downloads volume.** The Port Assignments and configuration folder structure has been changed from the previous ubuntu based versions of this container and we recommend a clean install Umask can be set in the /config/rtorrent/rtorrent.rc file by changing value in system.umask.set If you are seeing this error Caught internal_error: 'DhtRouter::get_tracker did not actually insert tracker.'. , a possible fix is to disable dht in /config/rtorrent/rtorrent.rc by changing the following values. dht.mode.set = disable protocol.pex.set = no If after updating you see an error about connecting to rtorrent in the webui, remove or comment out these lines in /config/rtorrent/rtorrent.rc ,whatever value is set, yes or no. Just setting them to no will still cause the error.. trackers.use_udp.set = yes protocol.pex.set = no To add plugins, create a plugins folder in your /config directory and add your plugin folders. Ensure proper user and group ownership is set once you add the directories. To add themes, create a themes folder in your /config directory and add your theme folders. Ensure proper user and group ownership is set once you add the directories. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it rutorrent /bin/bash To monitor the logs of the container in realtime: docker logs -f rutorrent Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' rutorrent Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/rutorrent Versions 25.03.22: - Deprecated. Please migrate to crazy-max's image . 02.06.20: - Rebasing to alpine 3.12. 29.02.20: - Update readme for pex/dht. 28.06.19: - Rebasing to alpine 3.10. 20.05.19: - Shift to building from official releases instead of commits. 13.05.19: - Add libffi and openssl. 07.05.19: - Add cloudscraper pip package. 11.04.19: - Fix warnings in webui by adding python3, procps and pip packages. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 03.11.18: - Add pipeline and multi arch logic to repo. 27.08.18: - Add bind tools package. 22.08.18: - Rebase to alpine 3.8. 08.12.17: - Rebase to alpine 3.7, add sox package. 28.10.17: - Mediainfo moved from testing to community repo. 09.10.17: - Use repo version of mediainfo to shorten build time. 28.05.17: - Fix permissions on secondary temp folder of nginx. 26.05.17: - Rebase to alpine 3.6. 03.05.17: - Fix log permissions. 18.03.17: - Note in readme about disabling dht in some circumstances. 24.02.17: - Patch a source file to quash rss https bug. 29.01.17: - Rebase to alpine 3.5. 20.11.16: - Add php7-mbstring package, bump mediainfo to 0.7.90. 14.10.16: - Add version layer information. 04.10.16: - Remove redundant sessions folder. 30.09.16: - Fix umask. 21.09.16: - Bump mediainfo, reorg dockerfile, add full wget package. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README, bump mediainfo version to 0.7.87. 07.08.16: - Perms fix on nginx tmp folder, also exposed php.ini for editing by use in /config/php. 26.07.16: - Rebase to alpine. 08.03.16: - Initial Release.","title":"rutorrent"},{"location":"images/docker-rutorrent/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated.","title":"DEPRECATION NOTICE"},{"location":"images/docker-rutorrent/#linuxserverrutorrent","text":"Rutorrent is a popular rtorrent client with a webui for ease of use.","title":"linuxserver/rutorrent"},{"location":"images/docker-rutorrent/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/rutorrent should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-rutorrent/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-rutorrent/#docker-compose-recommended","text":"Compatible with docker-compose v2 schemas. --- version: \"2.1\" services: rutorrent: image: lscr.io/linuxserver/rutorrent container_name: rutorrent environment: - PUID=1000 - PGID=1000 volumes: - :/config - :/downloads ports: - 80:80 - 5000:5000 - 51413:51413 - 6881:6881/udp restart: unless-stopped","title":"docker-compose (recommended)"},{"location":"images/docker-rutorrent/#docker-cli","text":"docker run -d \\ --name=rutorrent \\ -e PUID=1000 \\ -e PGID=1000 \\ -p 80:80 \\ -p 5000:5000 \\ -p 51413:51413 \\ -p 6881:6881/udp \\ -v :/config \\ -v :/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/rutorrent","title":"docker cli"},{"location":"images/docker-rutorrent/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-rutorrent/#ports-p","text":"Parameter Function 80 ruTorrent Web UI 5000 scgi port 51413 Bit-torrent port 6881/udp Bit-torrent port","title":"Ports (-p)"},{"location":"images/docker-rutorrent/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation","title":"Environment Variables (-e)"},{"location":"images/docker-rutorrent/#volume-mappings-v","text":"Volume Function /config where ruTorrent should store it's config files /downloads path to your downloads folder","title":"Volume Mappings (-v)"},{"location":"images/docker-rutorrent/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-rutorrent/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-rutorrent/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-rutorrent/#application-setup","text":"THIS IMAGE IS DEPRECATED. Please migrate to crazy-max's image . Webui can be found at :80 , configuration files for rtorrent are in /config/rtorrent, php in config/php and for the webui in /config/rutorrent/settings. Settings, changed by the user through the \"Settings\" panel in ruTorrent, are valid until rtorrent restart. After which all settings will be set according to the rtorrent config file (/config/rtorrent/rtorrent.rc),this is a limitation of the actual apps themselves. Important note for unraid users or those running services such as a webserver on port 80, change port 80 assignment ** It should also be noted that this container when run will create subfolders ,completed, incoming and watched in the /downloads volume.** The Port Assignments and configuration folder structure has been changed from the previous ubuntu based versions of this container and we recommend a clean install Umask can be set in the /config/rtorrent/rtorrent.rc file by changing value in system.umask.set If you are seeing this error Caught internal_error: 'DhtRouter::get_tracker did not actually insert tracker.'. , a possible fix is to disable dht in /config/rtorrent/rtorrent.rc by changing the following values. dht.mode.set = disable protocol.pex.set = no If after updating you see an error about connecting to rtorrent in the webui, remove or comment out these lines in /config/rtorrent/rtorrent.rc ,whatever value is set, yes or no. Just setting them to no will still cause the error.. trackers.use_udp.set = yes protocol.pex.set = no To add plugins, create a plugins folder in your /config directory and add your plugin folders. Ensure proper user and group ownership is set once you add the directories. To add themes, create a themes folder in your /config directory and add your theme folders. Ensure proper user and group ownership is set once you add the directories.","title":"Application Setup"},{"location":"images/docker-rutorrent/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-rutorrent/#support-info","text":"Shell access whilst the container is running: docker exec -it rutorrent /bin/bash To monitor the logs of the container in realtime: docker logs -f rutorrent Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' rutorrent Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/rutorrent","title":"Support Info"},{"location":"images/docker-rutorrent/#versions","text":"25.03.22: - Deprecated. Please migrate to crazy-max's image . 02.06.20: - Rebasing to alpine 3.12. 29.02.20: - Update readme for pex/dht. 28.06.19: - Rebasing to alpine 3.10. 20.05.19: - Shift to building from official releases instead of commits. 13.05.19: - Add libffi and openssl. 07.05.19: - Add cloudscraper pip package. 11.04.19: - Fix warnings in webui by adding python3, procps and pip packages. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 03.11.18: - Add pipeline and multi arch logic to repo. 27.08.18: - Add bind tools package. 22.08.18: - Rebase to alpine 3.8. 08.12.17: - Rebase to alpine 3.7, add sox package. 28.10.17: - Mediainfo moved from testing to community repo. 09.10.17: - Use repo version of mediainfo to shorten build time. 28.05.17: - Fix permissions on secondary temp folder of nginx. 26.05.17: - Rebase to alpine 3.6. 03.05.17: - Fix log permissions. 18.03.17: - Note in readme about disabling dht in some circumstances. 24.02.17: - Patch a source file to quash rss https bug. 29.01.17: - Rebase to alpine 3.5. 20.11.16: - Add php7-mbstring package, bump mediainfo to 0.7.90. 14.10.16: - Add version layer information. 04.10.16: - Remove redundant sessions folder. 30.09.16: - Fix umask. 21.09.16: - Bump mediainfo, reorg dockerfile, add full wget package. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README, bump mediainfo version to 0.7.87. 07.08.16: - Perms fix on nginx tmp folder, also exposed php.ini for editing by use in /config/php. 26.07.16: - Rebase to alpine. 08.03.16: - Initial Release.","title":"Versions"},{"location":"images/docker-sabnzbd/","text":"linuxserver/sabnzbd Sabnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sabnzbd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable SABnzbd releases unstable \u2705 Pre-releases from the develop branch nightly \u2705 Latest commits from the develop branch Application Setup Initial setup is done from the http port. See the SABnzbd wiki for more information. nzb-notify nzb-notify is included with this image as a convenience script. To use it set the Scripts folder in the Folder settings to /app/nzbnotify and then configure it under Notifications. See nzb-notify for more information. Download folders In Sabnzbd gui settings, under Folders , make sure to set the Completed Download Folder as /downloads and the Temporary Download Folder as /incomplete-downloads We have set /incomplete-downloads and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: sabnzbd: image: lscr.io/linuxserver/sabnzbd:latest container_name: sabnzbd environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/downloads:/downloads #optional - /path/to/incomplete/downloads:/incomplete-downloads #optional ports: - 8080:8080 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=sabnzbd \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -v /path/to/data:/config \\ -v /path/to/downloads:/downloads `#optional` \\ -v /path/to/incomplete/downloads:/incomplete-downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/sabnzbd:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 HTTP port for the WebUI. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Local path for sabnzbd config files. /downloads Local path for finished downloads. /incomplete-downloads Local path for incomplete-downloads. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it sabnzbd /bin/bash To monitor the logs of the container in realtime: docker logs -f sabnzbd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sabnzbd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sabnzbd:latest Versions 03.10.22: - Rebase master branch to Alpine 3.16, migrate to s6v3. 12.08.22: - Bump unrar to 6.1.7. 31.07.22: - Add nightly tag. 10.03.22: - Add nzb-notify. 22.02.22: - Rebase master branch to Alpine, build unrar from source, deprecate Alpine branch. 25.01.22: - Rebase Unstable branch to Alpine. 13.01.22: - Add alpine branch 08.08.21: - Bump to focal, dont enforce binding to ipv4 port 8080 24.07.21: - Add python3-setuptools. 14.05.21: - Use linuxserver.io wheel index for pip packages. 12.02.21: - Clean up rust/cargo and pip cache. 17.08.20: - Run from source with python3 instead of ppa, remove python2 completely, symlink python to python3 . 02.01.20: - Add python3 on top of python2 to image during transition. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 25.02.19: - Rebase to Bionic, add python deps for scripts. 26.01.19: - Add pipeline logic and multi arch. 13.12.17: - Fix continuation lines. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 10.04.17: - Bump to 2.0 Release. 25.02.17: - Switch to nobetas repo for master/latest branch and add unstable branch. 08.02.17: - Add pythonioenconding=utf8 as env. 15.09.16: - Compile par2 multicore as per latest info sabnzbd git readme . 11.09.16: - Bump to release of 1.10. 09.09.16: - Rebase back to xenial, issues with alpine version of python and 1.10 branch of sab. 28.08.16: - Rebase to alpine, using git version of sab. 17.03.16: - Bump to install 1.0 final at startup. 14.03.16: - Refresh image to pick up latest RC. 23.01.15: - Refresh image. 14.12.15: - Refresh image to pick up latest beta. 21.08.15: - Initial Release.","title":"sabnzbd"},{"location":"images/docker-sabnzbd/#linuxserversabnzbd","text":"Sabnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction.","title":"linuxserver/sabnzbd"},{"location":"images/docker-sabnzbd/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sabnzbd:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-sabnzbd/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable SABnzbd releases unstable \u2705 Pre-releases from the develop branch nightly \u2705 Latest commits from the develop branch","title":"Version Tags"},{"location":"images/docker-sabnzbd/#application-setup","text":"Initial setup is done from the http port. See the SABnzbd wiki for more information.","title":"Application Setup"},{"location":"images/docker-sabnzbd/#nzb-notify","text":"nzb-notify is included with this image as a convenience script. To use it set the Scripts folder in the Folder settings to /app/nzbnotify and then configure it under Notifications. See nzb-notify for more information.","title":"nzb-notify"},{"location":"images/docker-sabnzbd/#download-folders","text":"In Sabnzbd gui settings, under Folders , make sure to set the Completed Download Folder as /downloads and the Temporary Download Folder as /incomplete-downloads We have set /incomplete-downloads and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Download folders"},{"location":"images/docker-sabnzbd/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-sabnzbd/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: sabnzbd: image: lscr.io/linuxserver/sabnzbd:latest container_name: sabnzbd environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/downloads:/downloads #optional - /path/to/incomplete/downloads:/incomplete-downloads #optional ports: - 8080:8080 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-sabnzbd/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=sabnzbd \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8080:8080 \\ -v /path/to/data:/config \\ -v /path/to/downloads:/downloads `#optional` \\ -v /path/to/incomplete/downloads:/incomplete-downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/sabnzbd:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-sabnzbd/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-sabnzbd/#ports-p","text":"Parameter Function 8080 HTTP port for the WebUI.","title":"Ports (-p)"},{"location":"images/docker-sabnzbd/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-sabnzbd/#volume-mappings-v","text":"Volume Function /config Local path for sabnzbd config files. /downloads Local path for finished downloads. /incomplete-downloads Local path for incomplete-downloads.","title":"Volume Mappings (-v)"},{"location":"images/docker-sabnzbd/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-sabnzbd/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-sabnzbd/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-sabnzbd/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-sabnzbd/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-sabnzbd/#support-info","text":"Shell access whilst the container is running: docker exec -it sabnzbd /bin/bash To monitor the logs of the container in realtime: docker logs -f sabnzbd Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sabnzbd Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sabnzbd:latest","title":"Support Info"},{"location":"images/docker-sabnzbd/#versions","text":"03.10.22: - Rebase master branch to Alpine 3.16, migrate to s6v3. 12.08.22: - Bump unrar to 6.1.7. 31.07.22: - Add nightly tag. 10.03.22: - Add nzb-notify. 22.02.22: - Rebase master branch to Alpine, build unrar from source, deprecate Alpine branch. 25.01.22: - Rebase Unstable branch to Alpine. 13.01.22: - Add alpine branch 08.08.21: - Bump to focal, dont enforce binding to ipv4 port 8080 24.07.21: - Add python3-setuptools. 14.05.21: - Use linuxserver.io wheel index for pip packages. 12.02.21: - Clean up rust/cargo and pip cache. 17.08.20: - Run from source with python3 instead of ppa, remove python2 completely, symlink python to python3 . 02.01.20: - Add python3 on top of python2 to image during transition. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 25.02.19: - Rebase to Bionic, add python deps for scripts. 26.01.19: - Add pipeline logic and multi arch. 13.12.17: - Fix continuation lines. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 10.04.17: - Bump to 2.0 Release. 25.02.17: - Switch to nobetas repo for master/latest branch and add unstable branch. 08.02.17: - Add pythonioenconding=utf8 as env. 15.09.16: - Compile par2 multicore as per latest info sabnzbd git readme . 11.09.16: - Bump to release of 1.10. 09.09.16: - Rebase back to xenial, issues with alpine version of python and 1.10 branch of sab. 28.08.16: - Rebase to alpine, using git version of sab. 17.03.16: - Bump to install 1.0 final at startup. 14.03.16: - Refresh image to pick up latest RC. 23.01.15: - Refresh image. 14.12.15: - Refresh image to pick up latest beta. 21.08.15: - Initial Release.","title":"Versions"},{"location":"images/docker-scrutiny/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. We recommend the official images: https://github.com/AnalogJ/scrutiny#docker linuxserver/scrutiny Scrutiny WebUI for smartd S.M.A.R.T monitoring. Scrutiny is a Hard Drive Health Dashboard & Monitoring solution, merging manufacturer provided S.M.A.R.T metrics with real-world failure rates from Backblaze. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/scrutiny:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup This container can be run as an 'all-in-one' deployment or as a hub / spoke deployment. Use the environment variables SCRUTINY_WEB and SCRUTINY_COLLECTOR to control the mode of the container. Setting both to true will deploy the container as both a collector and the web UI - this is the simplest and most straightforward deployment approach. To make use of the hub and spoke model, run this container in \"collector\" mode by specifying SCRUTINY_API_ENDPOINT . Set this to the host that is running the API. For this to work, you will need to expose the API port directly from the container (by default this is 8080 ). You may need to manually enter the container to run scrutiny-collector-metrics run for your first job or wait until around midnight for it to kick off. A fully commented example configuration yaml file can be found in the original project repository here . Place this file in the location mounted to /config . A note on --cap-add for this container: * SYS_RAWIO is necessary to allow smartctl permission to query your device SMART data. * SYS_ADMIN is required for NVMe drives as per upstream issue #26 . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: scrutiny: image: lscr.io/linuxserver/scrutiny:latest container_name: scrutiny cap_add: - SYS_RAWIO - SYS_ADMIN #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SCRUTINY_API_ENDPOINT=http://localhost:8080 - SCRUTINY_WEB=true - SCRUTINY_COLLECTOR=true volumes: - /path/to/config:/config - /run/udev:/run/udev:ro ports: - 8080:8080 devices: - /dev/sda:/dev/sda - /dev/sdb:/dev/sdb - /dev/nvme1n1:/dev/nvme1n1 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=scrutiny \\ --cap-add=SYS_RAWIO \\ --cap-add=SYS_ADMIN `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SCRUTINY_API_ENDPOINT=http://localhost:8080 \\ -e SCRUTINY_WEB=true \\ -e SCRUTINY_COLLECTOR=true \\ -p 8080:8080 \\ -v /path/to/config:/config \\ -v /run/udev:/run/udev:ro \\ --device /dev/sda:/dev/sda \\ --device /dev/sdb:/dev/sdb \\ --device /dev/nvme1n1:/dev/nvme1n1 \\ --restart unless-stopped \\ lscr.io/linuxserver/scrutiny:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8080 Port for scrutiny's web interface and API. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. SCRUTINY_API_ENDPOINT=http://localhost:8080 # optional - API endpoint of the scrutiny UI. Do not change unless using as a remote collector SCRUTINY_WEB=true # optional - Run the web service. SCRUTINY_COLLECTOR=true # optional - Run the metrics collector. Volume Mappings ( -v ) Volume Function /config Where config is stored. /run/udev:ro Provides necessary metadata to Scrutiny. Device Mappings ( --device ) Parameter Function /dev/sda This is how Scrutiny accesses drives. Optionally supply /dev:/dev instead for all devices. /dev/sdb A second drive. /dev/nvme1n1 An NVMe drive. NVMe requires --cap-add=SYS_ADMIN . Miscellaneous Options Parameter Function Portainer notice {% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %} Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it scrutiny /bin/bash To monitor the logs of the container in realtime: docker logs -f scrutiny Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' scrutiny Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/scrutiny:latest Versions 13.06.22: - Deprecate container. 19.01.22: - Rebase to Alpine 3.15. 22.11.20: - Added fix for nsswitch.conf to resolve local hosts 17.09.20: - Initial Release.","title":"scrutiny"},{"location":"images/docker-scrutiny/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. We recommend the official images: https://github.com/AnalogJ/scrutiny#docker","title":"DEPRECATION NOTICE"},{"location":"images/docker-scrutiny/#linuxserverscrutiny","text":"Scrutiny WebUI for smartd S.M.A.R.T monitoring. Scrutiny is a Hard Drive Health Dashboard & Monitoring solution, merging manufacturer provided S.M.A.R.T metrics with real-world failure rates from Backblaze.","title":"linuxserver/scrutiny"},{"location":"images/docker-scrutiny/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/scrutiny:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-scrutiny/#application-setup","text":"This container can be run as an 'all-in-one' deployment or as a hub / spoke deployment. Use the environment variables SCRUTINY_WEB and SCRUTINY_COLLECTOR to control the mode of the container. Setting both to true will deploy the container as both a collector and the web UI - this is the simplest and most straightforward deployment approach. To make use of the hub and spoke model, run this container in \"collector\" mode by specifying SCRUTINY_API_ENDPOINT . Set this to the host that is running the API. For this to work, you will need to expose the API port directly from the container (by default this is 8080 ). You may need to manually enter the container to run scrutiny-collector-metrics run for your first job or wait until around midnight for it to kick off. A fully commented example configuration yaml file can be found in the original project repository here . Place this file in the location mounted to /config . A note on --cap-add for this container: * SYS_RAWIO is necessary to allow smartctl permission to query your device SMART data. * SYS_ADMIN is required for NVMe drives as per upstream issue #26 .","title":"Application Setup"},{"location":"images/docker-scrutiny/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-scrutiny/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: scrutiny: image: lscr.io/linuxserver/scrutiny:latest container_name: scrutiny cap_add: - SYS_RAWIO - SYS_ADMIN #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SCRUTINY_API_ENDPOINT=http://localhost:8080 - SCRUTINY_WEB=true - SCRUTINY_COLLECTOR=true volumes: - /path/to/config:/config - /run/udev:/run/udev:ro ports: - 8080:8080 devices: - /dev/sda:/dev/sda - /dev/sdb:/dev/sdb - /dev/nvme1n1:/dev/nvme1n1 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-scrutiny/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=scrutiny \\ --cap-add=SYS_RAWIO \\ --cap-add=SYS_ADMIN `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SCRUTINY_API_ENDPOINT=http://localhost:8080 \\ -e SCRUTINY_WEB=true \\ -e SCRUTINY_COLLECTOR=true \\ -p 8080:8080 \\ -v /path/to/config:/config \\ -v /run/udev:/run/udev:ro \\ --device /dev/sda:/dev/sda \\ --device /dev/sdb:/dev/sdb \\ --device /dev/nvme1n1:/dev/nvme1n1 \\ --restart unless-stopped \\ lscr.io/linuxserver/scrutiny:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-scrutiny/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-scrutiny/#ports-p","text":"Parameter Function 8080 Port for scrutiny's web interface and API.","title":"Ports (-p)"},{"location":"images/docker-scrutiny/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. SCRUTINY_API_ENDPOINT=http://localhost:8080 # optional - API endpoint of the scrutiny UI. Do not change unless using as a remote collector SCRUTINY_WEB=true # optional - Run the web service. SCRUTINY_COLLECTOR=true # optional - Run the metrics collector.","title":"Environment Variables (-e)"},{"location":"images/docker-scrutiny/#volume-mappings-v","text":"Volume Function /config Where config is stored. /run/udev:ro Provides necessary metadata to Scrutiny.","title":"Volume Mappings (-v)"},{"location":"images/docker-scrutiny/#device-mappings-device","text":"Parameter Function /dev/sda This is how Scrutiny accesses drives. Optionally supply /dev:/dev instead for all devices. /dev/sdb A second drive. /dev/nvme1n1 An NVMe drive. NVMe requires --cap-add=SYS_ADMIN .","title":"Device Mappings (--device)"},{"location":"images/docker-scrutiny/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-scrutiny/#portainer-notice","text":"{% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %}","title":"Portainer notice"},{"location":"images/docker-scrutiny/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-scrutiny/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-scrutiny/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-scrutiny/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-scrutiny/#support-info","text":"Shell access whilst the container is running: docker exec -it scrutiny /bin/bash To monitor the logs of the container in realtime: docker logs -f scrutiny Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' scrutiny Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/scrutiny:latest","title":"Support Info"},{"location":"images/docker-scrutiny/#versions","text":"13.06.22: - Deprecate container. 19.01.22: - Rebase to Alpine 3.15. 22.11.20: - Added fix for nsswitch.conf to resolve local hosts 17.09.20: - Initial Release.","title":"Versions"},{"location":"images/docker-shout-irc/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. PLEASE MIGRATE TO THELOUNGE linuxserver/thelounge linuxserver/shout-irc Shout-irc is a web IRC client that you host on your own server. Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/shout-irc should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=shout-irc \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9000:9000 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/shout-irc docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: shout-irc: image: linuxserver/shout-irc container_name: shout-irc environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 9000:9000 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 9000 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup To log in to the application, browse to https://:9000. To setup user account(s) edit /config/config.json Change the value public: true, to public: false, restart the container and enter the following from the command line of the host: docker exec -it thelounge thelounge add Enter a password when prompted, refresh your browser. You should now be prompted for a password on the webinterface. Support Info Shell access whilst the container is running: docker exec -it shout-irc /bin/bash To monitor the logs of the container in realtime: docker logs -f shout-irc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' shout-irc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/shout-irc Versions 11.06.19: - DEPRECATE IMAGE, USE THELOUNGE. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 25.08.18: - Rebase to alpine 3.8. 13.12.17: - Rebase to alpine 3.7. 27.05.17: - Rebase to alpine 3.6. 09.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 31.08.16: - Rebase to alpine linux, move to lsiocommunity","title":"shout-irc"},{"location":"images/docker-shout-irc/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. PLEASE MIGRATE TO THELOUNGE linuxserver/thelounge","title":"DEPRECATION NOTICE"},{"location":"images/docker-shout-irc/#linuxservershout-irc","text":"Shout-irc is a web IRC client that you host on your own server.","title":"linuxserver/shout-irc"},{"location":"images/docker-shout-irc/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/shout-irc should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-shout-irc/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-shout-irc/#docker","text":"docker create \\ --name=shout-irc \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9000:9000 \\ -v :/config \\ --restart unless-stopped \\ linuxserver/shout-irc","title":"docker"},{"location":"images/docker-shout-irc/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: shout-irc: image: linuxserver/shout-irc container_name: shout-irc environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 9000:9000 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-shout-irc/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-shout-irc/#ports-p","text":"Parameter Function 9000 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-shout-irc/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-shout-irc/#volume-mappings-v","text":"Volume Function /config Configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-shout-irc/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-shout-irc/#application-setup","text":"To log in to the application, browse to https://:9000. To setup user account(s) edit /config/config.json Change the value public: true, to public: false, restart the container and enter the following from the command line of the host: docker exec -it thelounge thelounge add Enter a password when prompted, refresh your browser. You should now be prompted for a password on the webinterface.","title":"Application Setup"},{"location":"images/docker-shout-irc/#support-info","text":"Shell access whilst the container is running: docker exec -it shout-irc /bin/bash To monitor the logs of the container in realtime: docker logs -f shout-irc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' shout-irc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/shout-irc","title":"Support Info"},{"location":"images/docker-shout-irc/#versions","text":"11.06.19: - DEPRECATE IMAGE, USE THELOUNGE. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 25.08.18: - Rebase to alpine 3.8. 13.12.17: - Rebase to alpine 3.7. 27.05.17: - Rebase to alpine 3.6. 09.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 31.08.16: - Rebase to alpine linux, move to lsiocommunity","title":"Versions"},{"location":"images/docker-sickchill/","text":"linuxserver/sickchill Sickchill is an Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sickchill:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Web interface is at :8081 , set paths for downloads, tv-shows to match docker mappings via the webui. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: sickchill: image: lscr.io/linuxserver/sickchill:latest container_name: sickchill environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/data:/downloads - /path/to/data:/tv ports: - 8081:8081 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=sickchill \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v /path/to/data:/config \\ -v /path/to/data:/downloads \\ -v /path/to/data:/tv \\ --restart unless-stopped \\ lscr.io/linuxserver/sickchill:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8081 will map the container's port 8081 to port 8081 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London specify your TimeZone e.g. Europe/London Volume Mappings ( -v ) Volume Function /config this will store config on the docker host /downloads this will store any downloaded data on the docker host /tv this will allow sickchill to view what you already have Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it sickchill /bin/bash To monitor the logs of the container in realtime: docker logs -f sickchill Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sickchill Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sickchill:latest Versions 17.02.22: - Rebase to alpine 3.15. 20.11.21: - Modify binary usage from SickChill.py to SickChill. 14.05.21: - Add linuxserver wheel index. 12.02.21: - Rebasing to alpine 3.13. Add python certifi. 17.09.20: - Update dependencies. 06.09.20: - Switch to python3, install pip package. 22.04.20: - Switch to git clone and using git tags for versioning. 09.01.20: - Remove creating data volumes, fix build args for armhf and aarch64. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 17.04.19: - Adding Nodejs dependancy. 31.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.10.18: - Initial Release.","title":"sickchill"},{"location":"images/docker-sickchill/#linuxserversickchill","text":"Sickchill is an Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.","title":"linuxserver/sickchill"},{"location":"images/docker-sickchill/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sickchill:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-sickchill/#application-setup","text":"Web interface is at :8081 , set paths for downloads, tv-shows to match docker mappings via the webui.","title":"Application Setup"},{"location":"images/docker-sickchill/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-sickchill/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: sickchill: image: lscr.io/linuxserver/sickchill:latest container_name: sickchill environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/data:/downloads - /path/to/data:/tv ports: - 8081:8081 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-sickchill/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=sickchill \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v /path/to/data:/config \\ -v /path/to/data:/downloads \\ -v /path/to/data:/tv \\ --restart unless-stopped \\ lscr.io/linuxserver/sickchill:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-sickchill/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-sickchill/#ports-p","text":"Parameter Function 8081 will map the container's port 8081 to port 8081 on the host","title":"Ports (-p)"},{"location":"images/docker-sickchill/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London specify your TimeZone e.g. Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-sickchill/#volume-mappings-v","text":"Volume Function /config this will store config on the docker host /downloads this will store any downloaded data on the docker host /tv this will allow sickchill to view what you already have","title":"Volume Mappings (-v)"},{"location":"images/docker-sickchill/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-sickchill/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-sickchill/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-sickchill/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-sickchill/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-sickchill/#support-info","text":"Shell access whilst the container is running: docker exec -it sickchill /bin/bash To monitor the logs of the container in realtime: docker logs -f sickchill Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sickchill Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sickchill:latest","title":"Support Info"},{"location":"images/docker-sickchill/#versions","text":"17.02.22: - Rebase to alpine 3.15. 20.11.21: - Modify binary usage from SickChill.py to SickChill. 14.05.21: - Add linuxserver wheel index. 12.02.21: - Rebasing to alpine 3.13. Add python certifi. 17.09.20: - Update dependencies. 06.09.20: - Switch to python3, install pip package. 22.04.20: - Switch to git clone and using git tags for versioning. 09.01.20: - Remove creating data volumes, fix build args for armhf and aarch64. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 17.04.19: - Adding Nodejs dependancy. 31.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.10.18: - Initial Release.","title":"Versions"},{"location":"images/docker-sickgear/","text":"linuxserver/sickgear SickGear provides management of TV shows and/or Anime, it detects new episodes, links downloader apps, and more.. For more information on SickGear visit their website and check it out: https://github.com/SickGear/SickGear Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sickgear:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Setting up the application Access the webui at :8081 , for more information check out SickGear . Migration Non linuxserver.io containers are known to have the following configuration differences and may need SickGear or docker changes to migrate an existing setup The post processing directory which is volume mounted as downloads within this container may be incoming in other versions. The permissions environmental variables which are defined as PGID and PUID within this container may have been APP_UID and APP_UID in other versions. The configuration file directory which is volume mounted as config within this container may be set as the environmetal variable APP_DATA in other versions. The cache directory which is set in config.ini may be configured as a fixed path cache_dir = /data/cache . Symptoms of this issue include port usage problems and a failure to start the web server log entries. Whilst the container is stopped alter this directive to cache_dir = cache which will allow SickGear to look for the folder relative to the volume mounted /config directory. It is recommended that a clean install be completed, rather than a migration, however if migration is necessary: start a new instance of this image compare and align SickGear version numbers bewteen old and new. Ideally they should match but at a minumum the old vesion should be a lower version number to allow SickGear itself to try and migrate stop both containers notice the configuration difference and migrate copies of the old settings into the new app start the new container and test Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: sickgear: image: lscr.io/linuxserver/sickgear:latest container_name: sickgear environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/data:/tv - /path/to/data:/downloads ports: - 8081:8081 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=sickgear \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v /path/to/data:/config \\ -v /path/to/data:/tv \\ -v /path/to/data:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/sickgear:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8081 will map the container's port 8081 to port 8081 on the host Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config this will store any uploaded data on the docker host /tv where you store your tv shows /downloads your downloads folder for post processing (must not be download in progress) Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it sickgear /bin/bash To monitor the logs of the container in realtime: docker logs -f sickgear Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sickgear Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sickgear:latest Versions 18.11.22: - Update service file from legacy SickBeard.py to sickgear.py. 10.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 19.09.22: - Rebase to alpine 3.15. Build unrar from source. 31.01.21: - Add unrar. 29.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.01.21: - Rebasing to alpine 3.13. 03.06.20: - Rebasing to alpine 3.12, switch to python3. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 07.11.18: - Pipeline prep 07.07.18: - Initial draft release","title":"sickgear"},{"location":"images/docker-sickgear/#linuxserversickgear","text":"SickGear provides management of TV shows and/or Anime, it detects new episodes, links downloader apps, and more.. For more information on SickGear visit their website and check it out: https://github.com/SickGear/SickGear","title":"linuxserver/sickgear"},{"location":"images/docker-sickgear/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sickgear:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-sickgear/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-sickgear/#setting-up-the-application","text":"Access the webui at :8081 , for more information check out SickGear .","title":"Setting up the application"},{"location":"images/docker-sickgear/#migration","text":"Non linuxserver.io containers are known to have the following configuration differences and may need SickGear or docker changes to migrate an existing setup The post processing directory which is volume mounted as downloads within this container may be incoming in other versions. The permissions environmental variables which are defined as PGID and PUID within this container may have been APP_UID and APP_UID in other versions. The configuration file directory which is volume mounted as config within this container may be set as the environmetal variable APP_DATA in other versions. The cache directory which is set in config.ini may be configured as a fixed path cache_dir = /data/cache . Symptoms of this issue include port usage problems and a failure to start the web server log entries. Whilst the container is stopped alter this directive to cache_dir = cache which will allow SickGear to look for the folder relative to the volume mounted /config directory. It is recommended that a clean install be completed, rather than a migration, however if migration is necessary: start a new instance of this image compare and align SickGear version numbers bewteen old and new. Ideally they should match but at a minumum the old vesion should be a lower version number to allow SickGear itself to try and migrate stop both containers notice the configuration difference and migrate copies of the old settings into the new app start the new container and test","title":"Migration"},{"location":"images/docker-sickgear/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-sickgear/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: sickgear: image: lscr.io/linuxserver/sickgear:latest container_name: sickgear environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/data:/tv - /path/to/data:/downloads ports: - 8081:8081 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-sickgear/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=sickgear \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v /path/to/data:/config \\ -v /path/to/data:/tv \\ -v /path/to/data:/downloads \\ --restart unless-stopped \\ lscr.io/linuxserver/sickgear:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-sickgear/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-sickgear/#ports-p","text":"Parameter Function 8081 will map the container's port 8081 to port 8081 on the host","title":"Ports (-p)"},{"location":"images/docker-sickgear/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-sickgear/#volume-mappings-v","text":"Volume Function /config this will store any uploaded data on the docker host /tv where you store your tv shows /downloads your downloads folder for post processing (must not be download in progress)","title":"Volume Mappings (-v)"},{"location":"images/docker-sickgear/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-sickgear/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-sickgear/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-sickgear/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-sickgear/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-sickgear/#support-info","text":"Shell access whilst the container is running: docker exec -it sickgear /bin/bash To monitor the logs of the container in realtime: docker logs -f sickgear Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sickgear Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sickgear:latest","title":"Support Info"},{"location":"images/docker-sickgear/#versions","text":"18.11.22: - Update service file from legacy SickBeard.py to sickgear.py. 10.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 19.09.22: - Rebase to alpine 3.15. Build unrar from source. 31.01.21: - Add unrar. 29.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.01.21: - Rebasing to alpine 3.13. 03.06.20: - Rebasing to alpine 3.12, switch to python3. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 07.11.18: - Pipeline prep 07.07.18: - Initial draft release","title":"Versions"},{"location":"images/docker-sickrage/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. Please use linuxserver/sickchill instead linuxserver/sickrage Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/sickrage should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Here are some example snippets to help you get started creating a container from this image. docker docker create \\ --name=sickrage \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v :/config \\ -v :/downloads \\ -v :/tv \\ --restart unless-stopped \\ linuxserver/sickrage docker-compose Compatible with docker-compose v2 schemas. --- version: \"2\" services: sickrage: image: linuxserver/sickrage container_name: sickrage environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads - :/tv ports: - 8081:8081 restart: unless-stopped Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8081 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. /downloads ISOs. /tv TV library directory. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Application Setup Web interface is at :8081 , set paths for downloads, tv-shows to match docker mappings via the webui. Support Info Shell access whilst the container is running: docker exec -it sickrage /bin/bash To monitor the logs of the container in realtime: docker logs -f sickrage Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sickrage Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/sickrage Versions 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 09.08.18: - Change repository to Sick-Rage 17.08.18: - Rebase to alpine 3.8. 20.03.18: - In lieu of a definite fix from SR, add nodejs package for use with torrentz and other sources. 12.12.17: - Rebase to alpine 3.7. 06.08.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 07.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 30.12.15: - Build later version of unrar from source, removed uneeded mako package. 20.11.15: - Updated to new repo, by SickRage Team. 15.10.15: - Initial Release.","title":"sickrage"},{"location":"images/docker-sickrage/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. Please use linuxserver/sickchill instead","title":"DEPRECATION NOTICE"},{"location":"images/docker-sickrage/#linuxserversickrage","text":"","title":"linuxserver/sickrage"},{"location":"images/docker-sickrage/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/sickrage should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-sickrage/#usage","text":"Here are some example snippets to help you get started creating a container from this image.","title":"Usage"},{"location":"images/docker-sickrage/#docker","text":"docker create \\ --name=sickrage \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8081:8081 \\ -v :/config \\ -v :/downloads \\ -v :/tv \\ --restart unless-stopped \\ linuxserver/sickrage","title":"docker"},{"location":"images/docker-sickrage/#docker-compose","text":"Compatible with docker-compose v2 schemas. --- version: \"2\" services: sickrage: image: linuxserver/sickrage container_name: sickrage environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/downloads - :/tv ports: - 8081:8081 restart: unless-stopped","title":"docker-compose"},{"location":"images/docker-sickrage/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-sickrage/#ports-p","text":"Parameter Function 8081 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-sickrage/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-sickrage/#volume-mappings-v","text":"Volume Function /config Configuration files. /downloads ISOs. /tv TV library directory.","title":"Volume Mappings (-v)"},{"location":"images/docker-sickrage/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-sickrage/#application-setup","text":"Web interface is at :8081 , set paths for downloads, tv-shows to match docker mappings via the webui.","title":"Application Setup"},{"location":"images/docker-sickrage/#support-info","text":"Shell access whilst the container is running: docker exec -it sickrage /bin/bash To monitor the logs of the container in realtime: docker logs -f sickrage Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sickrage Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/sickrage","title":"Support Info"},{"location":"images/docker-sickrage/#versions","text":"23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 09.08.18: - Change repository to Sick-Rage 17.08.18: - Rebase to alpine 3.8. 20.03.18: - In lieu of a definite fix from SR, add nodejs package for use with torrentz and other sources. 12.12.17: - Rebase to alpine 3.7. 06.08.17: - Internal git pull instead of at runtime. 25.05.17: - Rebase to alpine 3.6. 07.02.17: - Rebase to alpine 3.5. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 30.12.15: - Build later version of unrar from source, removed uneeded mako package. 20.11.15: - Updated to new repo, by SickRage Team. 15.10.15: - Initial Release.","title":"Versions"},{"location":"images/docker-smokeping/","text":"linuxserver/smokeping Smokeping keeps track of your network latency. For a full example of what this application is capable of visit UCDavis . Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/smokeping:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Once running the URL will be http:///smokeping/smokeping.cgi . For example a full URL might look like https://smokeping.yourdomain.com/smokeping/smokeping.cgi . Basics are, edit the Targets file to ping the hosts you're interested in to match the format found there. Wait 10 minutes. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: smokeping: image: lscr.io/linuxserver/smokeping:latest container_name: smokeping environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/smokeping/config:/config - /path/to/smokeping/data:/data ports: - 80:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=smokeping \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v /path/to/smokeping/config:/config \\ -v /path/to/smokeping/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/smokeping:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Allows HTTP access to the internal webserver. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Configure the Targets file here /data Storage location for db and application data (graphs etc) Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it smokeping /bin/bash To monitor the logs of the container in realtime: docker logs -f smokeping Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' smokeping Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/smokeping:latest Versions 12.12.22: - Rebase to Alpine 3.17, migrate to s6v3, switch to nginx and fcgiwrap. 29.03.21: - Dockerfile: Install curl before we call it 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.11.18: - Allow access without /smokeping in URL. 28.04.18: - Rebase to alpine 3.8. 09.04.18: - Add bc package. 08.04.18: - Add tccping script and tcptraceroute package (thanks rcarmo). 13.12.17: - Expose httpd_conf to /config. 13.12.17: - Rebase to alpine 3.7. 24.07.17: - Add :unraid tag for hosts without ipv6. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Rebase to alpine 3.6. 07.05.17: - Expose smokeping.conf in /config/site-confs to allow user customisations 12.04.17: - Fix cropper.js path, thanks nibbledeez. 09.02.17: - Rebase to alpine 3.5. 17.10.16: - Add ttf-dejavu package as per LT forum . 10.09.16: - Add layer badges to README. 05.09.16: - Add curl package. 28.08.16: - Add badges to README. 25.07.16: - Rebase to alpine linux. 23.07.16: - Fix apt script confusion. 29.06.15: - This is the first release, it is mostly stable, but may contain minor defects. (thus a beta tag)","title":"smokeping"},{"location":"images/docker-smokeping/#linuxserversmokeping","text":"Smokeping keeps track of your network latency. For a full example of what this application is capable of visit UCDavis .","title":"linuxserver/smokeping"},{"location":"images/docker-smokeping/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/smokeping:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-smokeping/#application-setup","text":"Once running the URL will be http:///smokeping/smokeping.cgi . For example a full URL might look like https://smokeping.yourdomain.com/smokeping/smokeping.cgi . Basics are, edit the Targets file to ping the hosts you're interested in to match the format found there. Wait 10 minutes.","title":"Application Setup"},{"location":"images/docker-smokeping/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-smokeping/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: smokeping: image: lscr.io/linuxserver/smokeping:latest container_name: smokeping environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/smokeping/config:/config - /path/to/smokeping/data:/data ports: - 80:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-smokeping/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=smokeping \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -v /path/to/smokeping/config:/config \\ -v /path/to/smokeping/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/smokeping:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-smokeping/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-smokeping/#ports-p","text":"Parameter Function 80 Allows HTTP access to the internal webserver.","title":"Ports (-p)"},{"location":"images/docker-smokeping/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-smokeping/#volume-mappings-v","text":"Volume Function /config Configure the Targets file here /data Storage location for db and application data (graphs etc)","title":"Volume Mappings (-v)"},{"location":"images/docker-smokeping/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-smokeping/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-smokeping/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-smokeping/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-smokeping/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-smokeping/#support-info","text":"Shell access whilst the container is running: docker exec -it smokeping /bin/bash To monitor the logs of the container in realtime: docker logs -f smokeping Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' smokeping Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/smokeping:latest","title":"Support Info"},{"location":"images/docker-smokeping/#versions","text":"12.12.22: - Rebase to Alpine 3.17, migrate to s6v3, switch to nginx and fcgiwrap. 29.03.21: - Dockerfile: Install curl before we call it 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 14.11.18: - Allow access without /smokeping in URL. 28.04.18: - Rebase to alpine 3.8. 09.04.18: - Add bc package. 08.04.18: - Add tccping script and tcptraceroute package (thanks rcarmo). 13.12.17: - Expose httpd_conf to /config. 13.12.17: - Rebase to alpine 3.7. 24.07.17: - Add :unraid tag for hosts without ipv6. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 28.05.17: - Rebase to alpine 3.6. 07.05.17: - Expose smokeping.conf in /config/site-confs to allow user customisations 12.04.17: - Fix cropper.js path, thanks nibbledeez. 09.02.17: - Rebase to alpine 3.5. 17.10.16: - Add ttf-dejavu package as per LT forum . 10.09.16: - Add layer badges to README. 05.09.16: - Add curl package. 28.08.16: - Add badges to README. 25.07.16: - Rebase to alpine linux. 23.07.16: - Fix apt script confusion. 29.06.15: - This is the first release, it is mostly stable, but may contain minor defects. (thus a beta tag)","title":"Versions"},{"location":"images/docker-snapdrop/","text":"linuxserver/snapdrop Snapdrop A local file sharing in your browser. Inspired by Apple's Airdrop. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/snapdrop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Webui is accessible at http://SERVERIP:PORT If you intend to expose Snapdrop to the internet, edit /config/nginx/site-confs/default.conf and uncomment the real_ip settings Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: snapdrop: image: lscr.io/linuxserver/snapdrop:latest container_name: snapdrop environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=snapdrop \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/snapdrop:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http gui 443 https gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Persistent configs and logs. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it snapdrop /bin/bash To monitor the logs of the container in realtime: docker logs -f snapdrop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' snapdrop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/snapdrop:latest Versions 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 09.08.21: - Rebase to Alpine 3.14. Add real_ip block to nginx default site config. 15.09.20: - Initial Release.","title":"snapdrop"},{"location":"images/docker-snapdrop/#linuxserversnapdrop","text":"Snapdrop A local file sharing in your browser. Inspired by Apple's Airdrop.","title":"linuxserver/snapdrop"},{"location":"images/docker-snapdrop/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/snapdrop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-snapdrop/#application-setup","text":"Webui is accessible at http://SERVERIP:PORT If you intend to expose Snapdrop to the internet, edit /config/nginx/site-confs/default.conf and uncomment the real_ip settings","title":"Application Setup"},{"location":"images/docker-snapdrop/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-snapdrop/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: snapdrop: image: lscr.io/linuxserver/snapdrop:latest container_name: snapdrop environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 80:80 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-snapdrop/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=snapdrop \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 80:80 \\ -p 443:443 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/snapdrop:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-snapdrop/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-snapdrop/#ports-p","text":"Parameter Function 80 http gui 443 https gui","title":"Ports (-p)"},{"location":"images/docker-snapdrop/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-snapdrop/#volume-mappings-v","text":"Volume Function /config Persistent configs and logs.","title":"Volume Mappings (-v)"},{"location":"images/docker-snapdrop/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-snapdrop/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-snapdrop/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-snapdrop/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-snapdrop/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-snapdrop/#support-info","text":"Shell access whilst the container is running: docker exec -it snapdrop /bin/bash To monitor the logs of the container in realtime: docker logs -f snapdrop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' snapdrop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/snapdrop:latest","title":"Support Info"},{"location":"images/docker-snapdrop/#versions","text":"20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 09.08.21: - Rebase to Alpine 3.14. Add real_ip block to nginx default site config. 15.09.20: - Initial Release.","title":"Versions"},{"location":"images/docker-snipe-it/","text":"linuxserver/snipe-it Snipe-it makes asset management easy. It was built by people solving real-world IT and asset management problems, and a solid UX has always been a top priority. Straightforward design and bulk actions mean getting things done faster. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/snipe-it:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the webui at :8080 , for more information check out Snipe-it . This container requires a MySQL or MariaDB server to connect to, we reccomend ours This container also generates an SSL certificate and stores it in /config/keys/cert.crt /config/keys/cert.key To use your own certificate swap these files with yours. To use SSL forward your port to 443 inside the container IE: -p 443:443 The application accepts a series of environment variables to further customize itself on boot: Parameter Function -e APP_ENV= Default is production but can use testing or develop -e APP_DEBUG= Set to true to see debugging output in the web UI -e APP_LOCALE= Default is en set to the language preferred full list here -e MAIL_PORT_587_TCP_ADDR= SMTP mailserver ip or hostname -e MAIL_PORT_587_TCP_PORT= SMTP mailserver port -e MAIL_ENV_FROM_ADDR= The email address mail should be replied to and listed when sent -e MAIL_ENV_FROM_NAME= The name listed on email sent from the default account on the system -e MAIL_ENV_ENCRYPTION= Mail encryption to use IE tls -e MAIL_ENV_USERNAME= SMTP server login username -e MAIL_ENV_PASSWORD= SMTP server login password PHP customization This image uses our NGINX base image all configuration files for PHP and NGINX are located in /config/php . To overide any defaults please modify /config/php/php-local.ini IE for upload size: upload_max_filesize = 16 post_max_size = 16M Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: snipe-it: image: lscr.io/linuxserver/snipe-it:latest container_name: snipe-it environment: - PUID=1000 - PGID=1000 - APP_URL=http://localhost:8080 - MYSQL_PORT_3306_TCP_ADDR= - MYSQL_PORT_3306_TCP_PORT= - MYSQL_DATABASE= - MYSQL_USER= - MYSQL_PASSWORD=changeme - TZ=US/Pacific volumes: - :/config ports: - 8080:80 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=snipe-it \\ -e PUID=1000 \\ -e PGID=1000 \\ -e APP_URL=http://localhost:8080 \\ -e MYSQL_PORT_3306_TCP_ADDR= \\ -e MYSQL_PORT_3306_TCP_PORT= \\ -e MYSQL_DATABASE= \\ -e MYSQL_USER= \\ -e MYSQL_PASSWORD=changeme \\ -e TZ=US/Pacific \\ -p 8080:80 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/snipe-it:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 Snipe-IT Web UI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation APP_URL=http://localhost:8080 Hostname or IP and port if applicable, be sure to define https/http MYSQL_PORT_3306_TCP_ADDR= Mysql hostname or IP to use MYSQL_PORT_3306_TCP_PORT= Mysql port to use MYSQL_DATABASE= Mysql database to use MYSQL_USER= Mysql user to use MYSQL_PASSWORD=changeme Mysql password to use TZ=US/Pacific Specify a timezone to use EG Europe/London, this is required to run snipe-it Volume Mappings ( -v ) Volume Function /config Contains your config files and data storage for Snipe-IT Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it snipe-it /bin/bash To monitor the logs of the container in realtime: docker logs -f snipe-it Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' snipe-it Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/snipe-it:latest Versions 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 14.05.22: - Add php7-sodium for v6. 12.04.22: - Don't build development elements. 02.03.22: - Rework init logic, do not show default compose. 29.06.21: - Rebasing to alpine 3.14. 30.04.21: - Rebasing to alpine 3.13, add artisan migrate on spinup. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 10.04.19: - Add php deps for V4.7.0, ensure framework directories are available at build time. 10.04.19: - Fix permissions for new bootstrap cache directory. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 31.10.18: - Rebasing to alpine 3.8 05.08.18: - Migration to live build server. 13.06.18: - Initial Release.","title":"snipe-it"},{"location":"images/docker-snipe-it/#linuxserversnipe-it","text":"Snipe-it makes asset management easy. It was built by people solving real-world IT and asset management problems, and a solid UX has always been a top priority. Straightforward design and bulk actions mean getting things done faster.","title":"linuxserver/snipe-it"},{"location":"images/docker-snipe-it/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/snipe-it:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-snipe-it/#application-setup","text":"Access the webui at :8080 , for more information check out Snipe-it . This container requires a MySQL or MariaDB server to connect to, we reccomend ours This container also generates an SSL certificate and stores it in /config/keys/cert.crt /config/keys/cert.key To use your own certificate swap these files with yours. To use SSL forward your port to 443 inside the container IE: -p 443:443 The application accepts a series of environment variables to further customize itself on boot: Parameter Function -e APP_ENV= Default is production but can use testing or develop -e APP_DEBUG= Set to true to see debugging output in the web UI -e APP_LOCALE= Default is en set to the language preferred full list here -e MAIL_PORT_587_TCP_ADDR= SMTP mailserver ip or hostname -e MAIL_PORT_587_TCP_PORT= SMTP mailserver port -e MAIL_ENV_FROM_ADDR= The email address mail should be replied to and listed when sent -e MAIL_ENV_FROM_NAME= The name listed on email sent from the default account on the system -e MAIL_ENV_ENCRYPTION= Mail encryption to use IE tls -e MAIL_ENV_USERNAME= SMTP server login username -e MAIL_ENV_PASSWORD= SMTP server login password","title":"Application Setup"},{"location":"images/docker-snipe-it/#php-customization","text":"This image uses our NGINX base image all configuration files for PHP and NGINX are located in /config/php . To overide any defaults please modify /config/php/php-local.ini IE for upload size: upload_max_filesize = 16 post_max_size = 16M","title":"PHP customization"},{"location":"images/docker-snipe-it/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-snipe-it/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: snipe-it: image: lscr.io/linuxserver/snipe-it:latest container_name: snipe-it environment: - PUID=1000 - PGID=1000 - APP_URL=http://localhost:8080 - MYSQL_PORT_3306_TCP_ADDR= - MYSQL_PORT_3306_TCP_PORT= - MYSQL_DATABASE= - MYSQL_USER= - MYSQL_PASSWORD=changeme - TZ=US/Pacific volumes: - :/config ports: - 8080:80 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-snipe-it/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=snipe-it \\ -e PUID=1000 \\ -e PGID=1000 \\ -e APP_URL=http://localhost:8080 \\ -e MYSQL_PORT_3306_TCP_ADDR= \\ -e MYSQL_PORT_3306_TCP_PORT= \\ -e MYSQL_DATABASE= \\ -e MYSQL_USER= \\ -e MYSQL_PASSWORD=changeme \\ -e TZ=US/Pacific \\ -p 8080:80 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/snipe-it:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-snipe-it/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-snipe-it/#ports-p","text":"Parameter Function 80 Snipe-IT Web UI","title":"Ports (-p)"},{"location":"images/docker-snipe-it/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation APP_URL=http://localhost:8080 Hostname or IP and port if applicable, be sure to define https/http MYSQL_PORT_3306_TCP_ADDR= Mysql hostname or IP to use MYSQL_PORT_3306_TCP_PORT= Mysql port to use MYSQL_DATABASE= Mysql database to use MYSQL_USER= Mysql user to use MYSQL_PASSWORD=changeme Mysql password to use TZ=US/Pacific Specify a timezone to use EG Europe/London, this is required to run snipe-it","title":"Environment Variables (-e)"},{"location":"images/docker-snipe-it/#volume-mappings-v","text":"Volume Function /config Contains your config files and data storage for Snipe-IT","title":"Volume Mappings (-v)"},{"location":"images/docker-snipe-it/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-snipe-it/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-snipe-it/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-snipe-it/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-snipe-it/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-snipe-it/#support-info","text":"Shell access whilst the container is running: docker exec -it snipe-it /bin/bash To monitor the logs of the container in realtime: docker logs -f snipe-it Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' snipe-it Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/snipe-it:latest","title":"Support Info"},{"location":"images/docker-snipe-it/#versions","text":"20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 14.05.22: - Add php7-sodium for v6. 12.04.22: - Don't build development elements. 02.03.22: - Rework init logic, do not show default compose. 29.06.21: - Rebasing to alpine 3.14. 30.04.21: - Rebasing to alpine 3.13, add artisan migrate on spinup. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 10.04.19: - Add php deps for V4.7.0, ensure framework directories are available at build time. 10.04.19: - Fix permissions for new bootstrap cache directory. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 31.10.18: - Rebasing to alpine 3.8 05.08.18: - Migration to live build server. 13.06.18: - Initial Release.","title":"Versions"},{"location":"images/docker-sonarr/","text":"linuxserver/sonarr Sonarr (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sonarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from Sonarr (currently v3) develop \u2705 Development releases from Sonarr (currently v4) Application Setup Access the webui at :8989 , for more information check out Sonarr . Media folders We have set /tv and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/tvseries:/tv #optional - /path/to/downloadclient-downloads:/downloads #optional ports: - 8989:8989 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=sonarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8989:8989 \\ -v /path/to/data:/config \\ -v /path/to/tvseries:/tv `#optional` \\ -v /path/to/downloadclient-downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/sonarr:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8989 The port for the Sonarr webinterface Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Sonarr Volume Mappings ( -v ) Volume Function /config Database and sonarr configs /tv Location of TV library on disk (See note in Application setup) /downloads Location of download managers output directory (See note in Application setup) Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it sonarr /bin/bash To monitor the logs of the container in realtime: docker logs -f sonarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sonarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sonarr:latest Versions 24.11.22: - Bump develop branch to v4, rebase to Alpine 3.16. 03.08.22: - Deprecate armhf. 02.08.22: - Add armhf deprecation warning. 28.04.22: - Rebase master branch to mono 6.12 base (focal). 20.02.22: - Rebase develop branch to Alpine, deprecate develop-alpine branch. 28.12.21: - Add develop-alpine branch. 11.05.21: - Make the paths clearer to the user. 10.03.21: - Upgrade to Sonarr v3. Existing users are highly recommended to make a backup prior to update. 18.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 05.04.20: - Move app to /app. 01.08.19: - Rebase to Linuxserver LTS mono version. 13.06.19: - Add env variable for setting umask. 10.05.19: - Rebase to Bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.02.19: - Multi arch images and pipeline build logic 15.12.17: - Fix continuation lines. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 17.04.17: - Switch to using inhouse mono baseimage, adds python also. 14.04.17: - Change to mount /etc/localtime in README, thanks cbgj. 13.04.17: - Switch to official mono repository. 30.09.16: - Fix umask 23.09.16: - Add cd to /opt fixes redirects with althub (issue #25), make XDG config environment variable 15.09.16: - Add libcurl3 package. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 20.07.16: - Rebase to xenial. 31.08.15: - Cleanup, changed sources to fetch binarys from. also a new baseimage.","title":"sonarr"},{"location":"images/docker-sonarr/#linuxserversonarr","text":"Sonarr (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.","title":"linuxserver/sonarr"},{"location":"images/docker-sonarr/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sonarr:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-sonarr/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases from Sonarr (currently v3) develop \u2705 Development releases from Sonarr (currently v4)","title":"Version Tags"},{"location":"images/docker-sonarr/#application-setup","text":"Access the webui at :8989 , for more information check out Sonarr .","title":"Application Setup"},{"location":"images/docker-sonarr/#media-folders","text":"We have set /tv and /downloads as optional paths , this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. The folks over at servarr.com wrote a good write-up on how to get started with this.","title":"Media folders"},{"location":"images/docker-sonarr/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-sonarr/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: sonarr: image: lscr.io/linuxserver/sonarr:latest container_name: sonarr environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/data:/config - /path/to/tvseries:/tv #optional - /path/to/downloadclient-downloads:/downloads #optional ports: - 8989:8989 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-sonarr/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=sonarr \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8989:8989 \\ -v /path/to/data:/config \\ -v /path/to/tvseries:/tv `#optional` \\ -v /path/to/downloadclient-downloads:/downloads `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/sonarr:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-sonarr/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-sonarr/#ports-p","text":"Parameter Function 8989 The port for the Sonarr webinterface","title":"Ports (-p)"},{"location":"images/docker-sonarr/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London, this is required for Sonarr","title":"Environment Variables (-e)"},{"location":"images/docker-sonarr/#volume-mappings-v","text":"Volume Function /config Database and sonarr configs /tv Location of TV library on disk (See note in Application setup) /downloads Location of download managers output directory (See note in Application setup)","title":"Volume Mappings (-v)"},{"location":"images/docker-sonarr/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-sonarr/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-sonarr/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-sonarr/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-sonarr/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-sonarr/#support-info","text":"Shell access whilst the container is running: docker exec -it sonarr /bin/bash To monitor the logs of the container in realtime: docker logs -f sonarr Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sonarr Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sonarr:latest","title":"Support Info"},{"location":"images/docker-sonarr/#versions","text":"24.11.22: - Bump develop branch to v4, rebase to Alpine 3.16. 03.08.22: - Deprecate armhf. 02.08.22: - Add armhf deprecation warning. 28.04.22: - Rebase master branch to mono 6.12 base (focal). 20.02.22: - Rebase develop branch to Alpine, deprecate develop-alpine branch. 28.12.21: - Add develop-alpine branch. 11.05.21: - Make the paths clearer to the user. 10.03.21: - Upgrade to Sonarr v3. Existing users are highly recommended to make a backup prior to update. 18.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 05.04.20: - Move app to /app. 01.08.19: - Rebase to Linuxserver LTS mono version. 13.06.19: - Add env variable for setting umask. 10.05.19: - Rebase to Bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.02.19: - Multi arch images and pipeline build logic 15.12.17: - Fix continuation lines. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 17.04.17: - Switch to using inhouse mono baseimage, adds python also. 14.04.17: - Change to mount /etc/localtime in README, thanks cbgj. 13.04.17: - Switch to official mono repository. 30.09.16: - Fix umask 23.09.16: - Add cd to /opt fixes redirects with althub (issue #25), make XDG config environment variable 15.09.16: - Add libcurl3 package. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 20.07.16: - Rebase to xenial. 31.08.15: - Cleanup, changed sources to fetch binarys from. also a new baseimage.","title":"Versions"},{"location":"images/docker-sqlitebrowser/","text":"linuxserver/sqlitebrowser DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sqlitebrowser:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: sqlitebrowser: image: lscr.io/linuxserver/sqlitebrowser:latest container_name: sqlitebrowser security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=sqlitebrowser \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/sqlitebrowser:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Sqlitebrowser desktop gui. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings and potentially dump files. Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it sqlitebrowser /bin/bash To monitor the logs of the container in realtime: docker logs -f sqlitebrowser Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sqlitebrowser Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sqlitebrowser:latest Versions 23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 16.02.22: - Rebase to Alpine. 20.01.21: - Remove Wireshark reference. 29.07.20: - Initial release.","title":"sqlitebrowser"},{"location":"images/docker-sqlitebrowser/#linuxserversqlitebrowser","text":"DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite.","title":"linuxserver/sqlitebrowser"},{"location":"images/docker-sqlitebrowser/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/sqlitebrowser:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-sqlitebrowser/#application-setup","text":"The application can be accessed at: http://yourhost:3000/","title":"Application Setup"},{"location":"images/docker-sqlitebrowser/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-sqlitebrowser/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: sqlitebrowser: image: lscr.io/linuxserver/sqlitebrowser:latest container_name: sqlitebrowser security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-sqlitebrowser/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=sqlitebrowser \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/sqlitebrowser:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-sqlitebrowser/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-sqlitebrowser/#ports-p","text":"Parameter Function 3000 Sqlitebrowser desktop gui.","title":"Ports (-p)"},{"location":"images/docker-sqlitebrowser/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-sqlitebrowser/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings and potentially dump files.","title":"Volume Mappings (-v)"},{"location":"images/docker-sqlitebrowser/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-sqlitebrowser/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-sqlitebrowser/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-sqlitebrowser/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-sqlitebrowser/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-sqlitebrowser/#support-info","text":"Shell access whilst the container is running: docker exec -it sqlitebrowser /bin/bash To monitor the logs of the container in realtime: docker logs -f sqlitebrowser Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' sqlitebrowser Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/sqlitebrowser:latest","title":"Support Info"},{"location":"images/docker-sqlitebrowser/#versions","text":"23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 16.02.22: - Rebase to Alpine. 20.01.21: - Remove Wireshark reference. 29.07.20: - Initial release.","title":"Versions"},{"location":"images/docker-swag/","text":"linuxserver/swag SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt\u2122) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/swag:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Validation and initial setup Before running this container, make sure that the url and subdomains are properly forwarded to this container's host, and that port 443 (and/or 80) is not being used by another service on the host (NAS gui, another webserver, etc.). If you need a dynamic dns provider, you can use the free provider duckdns.org where the URL will be yoursubdomain.duckdns.org and the SUBDOMAINS can be www,ftp,cloud with http validation, or wildcard with dns validation. You can use our duckdns image to update your IP on duckdns.org. For http validation, port 80 on the internet side of the router should be forwarded to this container's port 80 For dns validation, make sure to enter your credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf Cloudflare provides free accounts for managing dns and is very easy to use with this image. Make sure that it is set up for \"dns only\" instead of \"dns + proxy\" Google dns plugin is meant to be used with \"Google Cloud DNS\", a paid enterprise product, and not for \"Google Domains DNS\" DuckDNS only supoprts two types of DNS validated certificates (not both at the same time): Certs that only cover your main subdomain (ie. yoursubdomain.duckdns.org , leave the SUBDOMAINS variable empty) Certs that cover sub-subdomains of your main subdomain (ie. *.yoursubdomain.duckdns.org , set the SUBDOMAINS variable to wildcard ) --cap-add=NET_ADMIN is required for fail2ban to modify iptables After setup, navigate to https://yourdomain.url to access the default homepage (http access through port 80 is disabled by default, you can enable it by editing the default site config at /config/nginx/site-confs/default.conf ). Certs are checked nightly and if expiration is within 30 days, renewal is attempted. If your cert is about to expire in less than 30 days, check the logs under /config/log/letsencrypt to see why the renewals have been failing. It is recommended to input your e-mail in docker parameters so you receive expiration notices from Let's Encrypt in those circumstances. Security and password protection The container detects changes to url and subdomains, revokes existing certs and generates new ones during start. Per RFC7919 , the container is shipping ffdhe4096 as the dhparams.pem . If you'd like to password protect your sites, you can use htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it swag htpasswd -c /config/nginx/.htpasswd You can add multiple user:pass to .htpasswd . For the first user, use the above command, for others, use the above command without the -c flag, as it will force deletion of the existing .htpasswd and creation of a new one You can also use ldap auth for security and access control. A sample, user configurable ldap.conf is provided, and it requires the separate image linuxserver/ldap-auth to communicate with an ldap server. Site config and reverse proxy The default site config resides at /config/nginx/site-confs/default.conf . Feel free to modify this file, and you can add other conf files to this directory. However, if you delete the default file, a new default will be created on container start. Preset reverse proxy config files are added for popular apps. See the README.md file under /config/nginx/proxy_confs for instructions on how to enable them. The preset confs reside in and get imported from this repo . If you wish to hide your site from search engine crawlers, you may find it useful to add this configuration line to your site config, within the server block, above the line where ssl.conf is included add_header X-Robots-Tag \"noindex, nofollow, nosnippet, noarchive\"; This will ask Google et al not to index and list your site. Be careful with this, as you will eventually be de-listed if you leave this line in on a site you wish to be present on search engines If you wish to redirect http to https, you must expose port 80 Using certs in other containers This container includes auto-generated pfx and private-fullchain-bundle pem certs that are needed by other apps like Emby and Znc. To use these certs in other containers, do either of the following: (Easier) Mount the container's config folder in other containers (ie. -v /path-to-swag-config:/swag-ssl ) and in the other containers, use the cert location /swag-ssl/keys/letsencrypt/ (More secure) Mount the SWAG folder etc that resides under /config in other containers (ie. -v /path-to-swag-config/etc:/swag-ssl ) and in the other containers, use the cert location /swag-ssl/letsencrypt/live// (This is more secure because the first method shares the entire SWAG config folder with other containers, including the www files, whereas the second method only shares the ssl certs) These certs include: cert.pem , chain.pem , fullchain.pem and privkey.pem , which are generated by Certbot and used by nginx and various other apps privkey.pfx , a format supported by Microsoft and commonly used by dotnet apps such as Emby Server (no password) priv-fullchain-bundle.pem , a pem cert that bundles the private key and the fullchain, used by apps like ZNC Using fail2ban This container includes fail2ban set up with 5 jails by default: nginx-http-auth nginx-badbots nginx-botsearch nginx-deny nginx-unauthorized To enable or disable other jails, modify the file /config/fail2ban/jail.local To modify filters and actions, instead of editing the .conf files, create .local files with the same name and edit those because .conf files get overwritten when the actions and filters are updated. .local files will append whatever's in the .conf files (ie. nginx-http-auth.conf --> nginx-http-auth.local ) You can check which jails are active via docker exec -it swag fail2ban-client status You can check the status of a specific jail via docker exec -it swag fail2ban-client status You can unban an IP via docker exec -it swag fail2ban-client set unbanip A list of commands can be found here: https://www.fail2ban.org/wiki/index.php/Commands Updating configs This container creates a number of configs for nginx, proxy samples, etc. Config updates are noted in the changelog but not automatically applied to your files. If you have modified a file with noted changes in the changelog: Keep your existing configs as is (not broken, don't fix) Review our repository commits and apply the new changes yourself Delete the modified config file with listed updates, restart the container, reapply your changes If you have NOT modified a file with noted changes in the changelog: Delete the config file with listed updates, restart the container Proxy sample updates are not listed in the changelog. See the changes here: https://github.com/linuxserver/reverse-proxy-confs/commits/master Proxy sample files WILL be updated, however your renamed (enabled) proxy files will not. You can check the new sample and adjust your active config as needed. Migration from the old linuxserver/letsencrypt image Please follow the instructions on this blog post . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag:latest container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=yourdomain.url - VALIDATION=http - SUBDOMAINS=www, #optional - CERTPROVIDER= #optional - DNSPLUGIN=cloudflare #optional - PROPAGATION= #optional - EMAIL= #optional - ONLY_SUBDOMAINS=false #optional - EXTRA_DOMAINS= #optional - STAGING=false #optional volumes: - /path/to/appdata/config:/config ports: - 443:443 - 80:80 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=swag \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=yourdomain.url \\ -e VALIDATION=http \\ -e SUBDOMAINS=www, `#optional` \\ -e CERTPROVIDER= `#optional` \\ -e DNSPLUGIN=cloudflare `#optional` \\ -e PROPAGATION= `#optional` \\ -e EMAIL= `#optional` \\ -e ONLY_SUBDOMAINS=false `#optional` \\ -e EXTRA_DOMAINS= `#optional` \\ -e STAGING=false `#optional` \\ -p 443:443 \\ -p 80:80 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 443 Https port 80 Http port (required for http validation and http -> https redirect) Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. URL=yourdomain.url Top url you have control over ( customdomain.com if you own it, or customsubdomain.ddnsprovider.com if dynamic dns). VALIDATION=http Certbot validation method to use, options are http or dns ( dns method also requires DNSPLUGIN variable set). SUBDOMAINS=www, Subdomains you'd like the cert to cover (comma separated, no spaces) ie. www,ftp,cloud . For a wildcard cert, set this exactly to wildcard (wildcard cert is available via dns validation only) CERTPROVIDER= Optionally define the cert provider. Set to zerossl for ZeroSSL certs (requires existing ZeroSSL account and the e-mail address entered in EMAIL env var). Otherwise defaults to Let's Encrypt. DNSPLUGIN=cloudflare Required if VALIDATION is set to dns . Options are acmedns , aliyun , azure , cloudflare , cpanel , desec , digitalocean , directadmin , dnsimple , dnsmadeeasy , dnspod , do , domeneshop , duckdns , dynu , gandi , gehirn , godaddy , google , he , hetzner , infomaniak , inwx , ionos , linode , loopia , luadns , netcup , njalla , nsone , ovh , porkbun , rfc2136 , route53 , sakuracloud , standalone , transip , and vultr . Also need to enter the credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf . PROPAGATION= Optionally override (in seconds) the default propagation time for the dns plugins. EMAIL= Optional e-mail address used for cert expiration notifications (Required for ZeroSSL). ONLY_SUBDOMAINS=false If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to true EXTRA_DOMAINS= Additional fully qualified domain names (comma separated, no spaces) ie. extradomain.com,subdomain.anotherdomain.org,*.anotherdomain.org STAGING=false Set to true to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes. Volume Mappings ( -v ) Volume Function /config All the config files including the webroot reside here. Miscellaneous Options Parameter Function Portainer notice {% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %} Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it swag /bin/bash To monitor the logs of the container in realtime: docker logs -f swag Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' swag Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/swag:latest Versions 03.12.22: - Remove defunct cloudxns plugin. 22.11.22: - Pin acme to the same version as certbot. 22.11.22: - Pin certbot to 1.32.0 until plugin compatibility improves. 05.11.22: - Update acmedns plugin handling. 06.10.22: - Switch to certbot-dns-duckdns. Update cpanel and gandi dns plugin handling. Minor adjustments to init logic. 05.10.22: - Use certbot file hooks instead of command line hooks 04.10.22: - Add godaddy and porkbun dns plugins. 03.10.22: - Add default_server back to default site conf's https listen. 22.09.22: - Added support for DO DNS validation. 22.09.22: - Added certbot-dns-acmedns for DNS01 validation. 20.08.22: - Existing users should update: nginx.conf - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 10.08.22: - Added support for Dynu DNS validation. 18.05.22: - Added support for Azure DNS validation. 09.04.22: - Added certbot-dns-loopia for DNS01 validation. 05.04.22: - Added support for standalone DNS validation. 28.03.22: - created a logfile for fail2ban nginx-unauthorized in /etc/cont-init.d/50-config 09.01.22: - Added a fail2ban jail for nginx unauthorized 21.12.21: - Fixed issue with iptables not working as expected 30.11.21: - Move maxmind to a new mod 22.11.21: - Added support for Infomaniak DNS for certificate generation. 20.11.21: - Added support for dnspod validation. 15.11.21: - Added support for deSEC DNS for wildcard certificate generation. 26.10.21: - Existing users should update: proxy.conf - Mitigate https://httpoxy.org/ vulnerabilities. Ref: https://www.nginx.com/blog/mitigating-the-httpoxy-vulnerability-with-nginx#Defeating-the-Attack-using-NGINX-and-NGINX-Plus 23.10.21: - Fix Hurricane Electric (HE) DNS validation. 12.10.21: - Fix deprecated LE root cert check to fix failures when using STAGING=true , and failures in revoking. 06.10.21: - Added support for Hurricane Electric (HE) DNS validation. Added lxml build deps. 01.10.21: - Check if the cert uses the old LE root cert, revoke and regenerate if necessary. Here's more info on LE root cert expiration 19.09.21: - Add an optional header to opt out of Google FLoC in ssl.conf . 17.09.21: - Mark SUBDOMAINS var as optional. 01.08.21: - Add support for ionos dns validation. 15.07.21: - Fix libmaxminddb issue due to upstream change. 07.07.21: - Rebase to alpine 3.14. 24.06.21: - Update default nginx conf folder. 28.05.21: - Existing users should update: authelia-server.conf - Use resolver.conf and patch for CVE-2021-32637 . 20.05.21: - Modify resolver.conf generation to detect and ignore ipv6. 14.05.21: - Existing users should update: nginx.conf, ssl.conf, proxy.conf, and the default site-conf - Rework nginx.conf to be inline with alpine upstream and relocate lines from other files. Use linuxserver.io wheel index for pip packages. Switch to using ffdhe4096 for dhparams.pem per RFC7919 . Added worker_processes.conf , which sets the number of nginx workers, and resolver.conf , which sets the dns resolver. Both conf files are auto-generated only on first start and can be user modified later. 21.04.21: - Existing users should update: authelia-server.conf and authelia-location.conf - Add remote name/email headers and pass http method. 12.04.21: - Add php7-gmp and php7-pecl-mailparse. 12.04.21: - Add support for vultr dns validation. 14.03.21: - Add support for directadmin dns validation. 12.02.21: - Clean up rust/cargo cache, which ballooned the image size in the last couple of builds. 10.02.21: - Fix aliyun, domeneshop, inwx and transip dns confs for existing users. 09.02.21: - Rebasing to alpine 3.13. Add nginx mods brotli and dav-ext. Remove nginx mods lua and lua-upstream (due to regression over the last couple of years). 26.01.21: - Add support for hetzner dns validation. 20.01.21: - Add check for ZeroSSL EAB retrieval. 08.01.21: - Add support for getting certs from ZeroSSL via optional CERTPROVIDER env var. Update aliyun, domeneshop, inwx and transip dns plugins with the new plugin names. Hide donoteditthisfile.conf because users were editing it despite its name. Suppress harmless error when no proxy confs are enabled. 03.01.21: - Existing users should update: /config/nginx/site-confs/default.conf - Add helper pages to aid troubleshooting 10.12.20: - Add support for njalla dns validation 09.12.20: - Check for template/conf updates and notify in the log. Add support for gehirn and sakuracloud dns validation. 01.11.20: - Add support for netcup dns validation 29.10.20: - Existing users should update: ssl.conf - Add frame-ancestors to Content-Security-Policy. 04.10.20: - Existing users should update: nginx.conf, proxy.conf, and ssl.conf - Minor cleanups and reordering. 20.09.20: - Existing users should update: nginx.conf - Added geoip2 configs. Added MAXMINDDB_LICENSE_KEY variable to readme. 08.09.20: - Add php7-xsl. 01.09.20: - Existing users should update: nginx.conf, proxy.conf, and various proxy samples - Global websockets across all configs. 03.08.20: - Initial release.","title":"swag"},{"location":"images/docker-swag/#linuxserverswag","text":"SWAG - Secure Web Application Gateway (formerly known as letsencrypt, no relation to Let's Encrypt\u2122) sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt and ZeroSSL). It also contains fail2ban for intrusion prevention.","title":"linuxserver/swag"},{"location":"images/docker-swag/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/swag:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-swag/#application-setup","text":"","title":"Application Setup"},{"location":"images/docker-swag/#validation-and-initial-setup","text":"Before running this container, make sure that the url and subdomains are properly forwarded to this container's host, and that port 443 (and/or 80) is not being used by another service on the host (NAS gui, another webserver, etc.). If you need a dynamic dns provider, you can use the free provider duckdns.org where the URL will be yoursubdomain.duckdns.org and the SUBDOMAINS can be www,ftp,cloud with http validation, or wildcard with dns validation. You can use our duckdns image to update your IP on duckdns.org. For http validation, port 80 on the internet side of the router should be forwarded to this container's port 80 For dns validation, make sure to enter your credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf Cloudflare provides free accounts for managing dns and is very easy to use with this image. Make sure that it is set up for \"dns only\" instead of \"dns + proxy\" Google dns plugin is meant to be used with \"Google Cloud DNS\", a paid enterprise product, and not for \"Google Domains DNS\" DuckDNS only supoprts two types of DNS validated certificates (not both at the same time): Certs that only cover your main subdomain (ie. yoursubdomain.duckdns.org , leave the SUBDOMAINS variable empty) Certs that cover sub-subdomains of your main subdomain (ie. *.yoursubdomain.duckdns.org , set the SUBDOMAINS variable to wildcard ) --cap-add=NET_ADMIN is required for fail2ban to modify iptables After setup, navigate to https://yourdomain.url to access the default homepage (http access through port 80 is disabled by default, you can enable it by editing the default site config at /config/nginx/site-confs/default.conf ). Certs are checked nightly and if expiration is within 30 days, renewal is attempted. If your cert is about to expire in less than 30 days, check the logs under /config/log/letsencrypt to see why the renewals have been failing. It is recommended to input your e-mail in docker parameters so you receive expiration notices from Let's Encrypt in those circumstances.","title":"Validation and initial setup"},{"location":"images/docker-swag/#security-and-password-protection","text":"The container detects changes to url and subdomains, revokes existing certs and generates new ones during start. Per RFC7919 , the container is shipping ffdhe4096 as the dhparams.pem . If you'd like to password protect your sites, you can use htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it swag htpasswd -c /config/nginx/.htpasswd You can add multiple user:pass to .htpasswd . For the first user, use the above command, for others, use the above command without the -c flag, as it will force deletion of the existing .htpasswd and creation of a new one You can also use ldap auth for security and access control. A sample, user configurable ldap.conf is provided, and it requires the separate image linuxserver/ldap-auth to communicate with an ldap server.","title":"Security and password protection"},{"location":"images/docker-swag/#site-config-and-reverse-proxy","text":"The default site config resides at /config/nginx/site-confs/default.conf . Feel free to modify this file, and you can add other conf files to this directory. However, if you delete the default file, a new default will be created on container start. Preset reverse proxy config files are added for popular apps. See the README.md file under /config/nginx/proxy_confs for instructions on how to enable them. The preset confs reside in and get imported from this repo . If you wish to hide your site from search engine crawlers, you may find it useful to add this configuration line to your site config, within the server block, above the line where ssl.conf is included add_header X-Robots-Tag \"noindex, nofollow, nosnippet, noarchive\"; This will ask Google et al not to index and list your site. Be careful with this, as you will eventually be de-listed if you leave this line in on a site you wish to be present on search engines If you wish to redirect http to https, you must expose port 80","title":"Site config and reverse proxy"},{"location":"images/docker-swag/#using-certs-in-other-containers","text":"This container includes auto-generated pfx and private-fullchain-bundle pem certs that are needed by other apps like Emby and Znc. To use these certs in other containers, do either of the following: (Easier) Mount the container's config folder in other containers (ie. -v /path-to-swag-config:/swag-ssl ) and in the other containers, use the cert location /swag-ssl/keys/letsencrypt/ (More secure) Mount the SWAG folder etc that resides under /config in other containers (ie. -v /path-to-swag-config/etc:/swag-ssl ) and in the other containers, use the cert location /swag-ssl/letsencrypt/live// (This is more secure because the first method shares the entire SWAG config folder with other containers, including the www files, whereas the second method only shares the ssl certs) These certs include: cert.pem , chain.pem , fullchain.pem and privkey.pem , which are generated by Certbot and used by nginx and various other apps privkey.pfx , a format supported by Microsoft and commonly used by dotnet apps such as Emby Server (no password) priv-fullchain-bundle.pem , a pem cert that bundles the private key and the fullchain, used by apps like ZNC","title":"Using certs in other containers"},{"location":"images/docker-swag/#using-fail2ban","text":"This container includes fail2ban set up with 5 jails by default: nginx-http-auth nginx-badbots nginx-botsearch nginx-deny nginx-unauthorized To enable or disable other jails, modify the file /config/fail2ban/jail.local To modify filters and actions, instead of editing the .conf files, create .local files with the same name and edit those because .conf files get overwritten when the actions and filters are updated. .local files will append whatever's in the .conf files (ie. nginx-http-auth.conf --> nginx-http-auth.local ) You can check which jails are active via docker exec -it swag fail2ban-client status You can check the status of a specific jail via docker exec -it swag fail2ban-client status You can unban an IP via docker exec -it swag fail2ban-client set unbanip A list of commands can be found here: https://www.fail2ban.org/wiki/index.php/Commands","title":"Using fail2ban"},{"location":"images/docker-swag/#updating-configs","text":"This container creates a number of configs for nginx, proxy samples, etc. Config updates are noted in the changelog but not automatically applied to your files. If you have modified a file with noted changes in the changelog: Keep your existing configs as is (not broken, don't fix) Review our repository commits and apply the new changes yourself Delete the modified config file with listed updates, restart the container, reapply your changes If you have NOT modified a file with noted changes in the changelog: Delete the config file with listed updates, restart the container Proxy sample updates are not listed in the changelog. See the changes here: https://github.com/linuxserver/reverse-proxy-confs/commits/master Proxy sample files WILL be updated, however your renamed (enabled) proxy files will not. You can check the new sample and adjust your active config as needed.","title":"Updating configs"},{"location":"images/docker-swag/#migration-from-the-old-linuxserverletsencrypt-image","text":"Please follow the instructions on this blog post .","title":"Migration from the old linuxserver/letsencrypt image"},{"location":"images/docker-swag/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-swag/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: swag: image: lscr.io/linuxserver/swag:latest container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - URL=yourdomain.url - VALIDATION=http - SUBDOMAINS=www, #optional - CERTPROVIDER= #optional - DNSPLUGIN=cloudflare #optional - PROPAGATION= #optional - EMAIL= #optional - ONLY_SUBDOMAINS=false #optional - EXTRA_DOMAINS= #optional - STAGING=false #optional volumes: - /path/to/appdata/config:/config ports: - 443:443 - 80:80 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-swag/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=swag \\ --cap-add=NET_ADMIN \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e URL=yourdomain.url \\ -e VALIDATION=http \\ -e SUBDOMAINS=www, `#optional` \\ -e CERTPROVIDER= `#optional` \\ -e DNSPLUGIN=cloudflare `#optional` \\ -e PROPAGATION= `#optional` \\ -e EMAIL= `#optional` \\ -e ONLY_SUBDOMAINS=false `#optional` \\ -e EXTRA_DOMAINS= `#optional` \\ -e STAGING=false `#optional` \\ -p 443:443 \\ -p 80:80 `#optional` \\ -v /path/to/appdata/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/swag:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-swag/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-swag/#ports-p","text":"Parameter Function 443 Https port 80 Http port (required for http validation and http -> https redirect)","title":"Ports (-p)"},{"location":"images/docker-swag/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. URL=yourdomain.url Top url you have control over ( customdomain.com if you own it, or customsubdomain.ddnsprovider.com if dynamic dns). VALIDATION=http Certbot validation method to use, options are http or dns ( dns method also requires DNSPLUGIN variable set). SUBDOMAINS=www, Subdomains you'd like the cert to cover (comma separated, no spaces) ie. www,ftp,cloud . For a wildcard cert, set this exactly to wildcard (wildcard cert is available via dns validation only) CERTPROVIDER= Optionally define the cert provider. Set to zerossl for ZeroSSL certs (requires existing ZeroSSL account and the e-mail address entered in EMAIL env var). Otherwise defaults to Let's Encrypt. DNSPLUGIN=cloudflare Required if VALIDATION is set to dns . Options are acmedns , aliyun , azure , cloudflare , cpanel , desec , digitalocean , directadmin , dnsimple , dnsmadeeasy , dnspod , do , domeneshop , duckdns , dynu , gandi , gehirn , godaddy , google , he , hetzner , infomaniak , inwx , ionos , linode , loopia , luadns , netcup , njalla , nsone , ovh , porkbun , rfc2136 , route53 , sakuracloud , standalone , transip , and vultr . Also need to enter the credentials into the corresponding ini (or json for some plugins) file under /config/dns-conf . PROPAGATION= Optionally override (in seconds) the default propagation time for the dns plugins. EMAIL= Optional e-mail address used for cert expiration notifications (Required for ZeroSSL). ONLY_SUBDOMAINS=false If you wish to get certs only for certain subdomains, but not the main domain (main domain may be hosted on another machine and cannot be validated), set this to true EXTRA_DOMAINS= Additional fully qualified domain names (comma separated, no spaces) ie. extradomain.com,subdomain.anotherdomain.org,*.anotherdomain.org STAGING=false Set to true to retrieve certs in staging mode. Rate limits will be much higher, but the resulting cert will not pass the browser's security test. Only to be used for testing purposes.","title":"Environment Variables (-e)"},{"location":"images/docker-swag/#volume-mappings-v","text":"Volume Function /config All the config files including the webroot reside here.","title":"Volume Mappings (-v)"},{"location":"images/docker-swag/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-swag/#portainer-notice","text":"{% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %}","title":"Portainer notice"},{"location":"images/docker-swag/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-swag/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-swag/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-swag/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-swag/#support-info","text":"Shell access whilst the container is running: docker exec -it swag /bin/bash To monitor the logs of the container in realtime: docker logs -f swag Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' swag Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/swag:latest","title":"Support Info"},{"location":"images/docker-swag/#versions","text":"03.12.22: - Remove defunct cloudxns plugin. 22.11.22: - Pin acme to the same version as certbot. 22.11.22: - Pin certbot to 1.32.0 until plugin compatibility improves. 05.11.22: - Update acmedns plugin handling. 06.10.22: - Switch to certbot-dns-duckdns. Update cpanel and gandi dns plugin handling. Minor adjustments to init logic. 05.10.22: - Use certbot file hooks instead of command line hooks 04.10.22: - Add godaddy and porkbun dns plugins. 03.10.22: - Add default_server back to default site conf's https listen. 22.09.22: - Added support for DO DNS validation. 22.09.22: - Added certbot-dns-acmedns for DNS01 validation. 20.08.22: - Existing users should update: nginx.conf - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 10.08.22: - Added support for Dynu DNS validation. 18.05.22: - Added support for Azure DNS validation. 09.04.22: - Added certbot-dns-loopia for DNS01 validation. 05.04.22: - Added support for standalone DNS validation. 28.03.22: - created a logfile for fail2ban nginx-unauthorized in /etc/cont-init.d/50-config 09.01.22: - Added a fail2ban jail for nginx unauthorized 21.12.21: - Fixed issue with iptables not working as expected 30.11.21: - Move maxmind to a new mod 22.11.21: - Added support for Infomaniak DNS for certificate generation. 20.11.21: - Added support for dnspod validation. 15.11.21: - Added support for deSEC DNS for wildcard certificate generation. 26.10.21: - Existing users should update: proxy.conf - Mitigate https://httpoxy.org/ vulnerabilities. Ref: https://www.nginx.com/blog/mitigating-the-httpoxy-vulnerability-with-nginx#Defeating-the-Attack-using-NGINX-and-NGINX-Plus 23.10.21: - Fix Hurricane Electric (HE) DNS validation. 12.10.21: - Fix deprecated LE root cert check to fix failures when using STAGING=true , and failures in revoking. 06.10.21: - Added support for Hurricane Electric (HE) DNS validation. Added lxml build deps. 01.10.21: - Check if the cert uses the old LE root cert, revoke and regenerate if necessary. Here's more info on LE root cert expiration 19.09.21: - Add an optional header to opt out of Google FLoC in ssl.conf . 17.09.21: - Mark SUBDOMAINS var as optional. 01.08.21: - Add support for ionos dns validation. 15.07.21: - Fix libmaxminddb issue due to upstream change. 07.07.21: - Rebase to alpine 3.14. 24.06.21: - Update default nginx conf folder. 28.05.21: - Existing users should update: authelia-server.conf - Use resolver.conf and patch for CVE-2021-32637 . 20.05.21: - Modify resolver.conf generation to detect and ignore ipv6. 14.05.21: - Existing users should update: nginx.conf, ssl.conf, proxy.conf, and the default site-conf - Rework nginx.conf to be inline with alpine upstream and relocate lines from other files. Use linuxserver.io wheel index for pip packages. Switch to using ffdhe4096 for dhparams.pem per RFC7919 . Added worker_processes.conf , which sets the number of nginx workers, and resolver.conf , which sets the dns resolver. Both conf files are auto-generated only on first start and can be user modified later. 21.04.21: - Existing users should update: authelia-server.conf and authelia-location.conf - Add remote name/email headers and pass http method. 12.04.21: - Add php7-gmp and php7-pecl-mailparse. 12.04.21: - Add support for vultr dns validation. 14.03.21: - Add support for directadmin dns validation. 12.02.21: - Clean up rust/cargo cache, which ballooned the image size in the last couple of builds. 10.02.21: - Fix aliyun, domeneshop, inwx and transip dns confs for existing users. 09.02.21: - Rebasing to alpine 3.13. Add nginx mods brotli and dav-ext. Remove nginx mods lua and lua-upstream (due to regression over the last couple of years). 26.01.21: - Add support for hetzner dns validation. 20.01.21: - Add check for ZeroSSL EAB retrieval. 08.01.21: - Add support for getting certs from ZeroSSL via optional CERTPROVIDER env var. Update aliyun, domeneshop, inwx and transip dns plugins with the new plugin names. Hide donoteditthisfile.conf because users were editing it despite its name. Suppress harmless error when no proxy confs are enabled. 03.01.21: - Existing users should update: /config/nginx/site-confs/default.conf - Add helper pages to aid troubleshooting 10.12.20: - Add support for njalla dns validation 09.12.20: - Check for template/conf updates and notify in the log. Add support for gehirn and sakuracloud dns validation. 01.11.20: - Add support for netcup dns validation 29.10.20: - Existing users should update: ssl.conf - Add frame-ancestors to Content-Security-Policy. 04.10.20: - Existing users should update: nginx.conf, proxy.conf, and ssl.conf - Minor cleanups and reordering. 20.09.20: - Existing users should update: nginx.conf - Added geoip2 configs. Added MAXMINDDB_LICENSE_KEY variable to readme. 08.09.20: - Add php7-xsl. 01.09.20: - Existing users should update: nginx.conf, proxy.conf, and various proxy samples - Global websockets across all configs. 03.08.20: - Initial release.","title":"Versions"},{"location":"images/docker-synclounge/","text":"linuxserver/synclounge Synclounge is a third party tool that allows you to watch Plex in sync with your friends/family, wherever you are. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/synclounge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The web app and the server are both accessible at http://SERVERIP:8088 . Note: It is recommended to use http as the external proto with a reverse proxy due to https not working with external plex clients. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: synclounge: image: lscr.io/linuxserver/synclounge:latest container_name: synclounge environment: - TZ=Europe/London - AUTH_LIST=plexuser1,plexuser2,email1,machineid1 #optional - AUTOJOIN_ENABLED=false #optional - AUTOJOIN_ROOM=roomname #optional ports: - 8088:8088 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=synclounge \\ -e TZ=Europe/London \\ -e AUTH_LIST=plexuser1,plexuser2,email1,machineid1 `#optional` \\ -e AUTOJOIN_ENABLED=false `#optional` \\ -e AUTOJOIN_ROOM=roomname `#optional` \\ -p 8088:8088 \\ --restart unless-stopped \\ lscr.io/linuxserver/synclounge:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8088 Web app and server port Environment Variables ( -e ) Env Function TZ=Europe/London Specify a timezone to use EG Europe/London AUTH_LIST=plexuser1,plexuser2,email1,machineid1 If set, only the users defined here and the users of the plex servers defined here will be able to access the server. Use e-mails, plex usernames and/or plex server machine ids, comma separated, no spaces. AUTOJOIN_ENABLED=false DEPRECATED - (Still works but will be removed in the future in favor of the built-in var autojoin__room ) - Set to true to let users autojoin the server and a room (specified by the AUTOJOIN_ROOM var). AUTOJOIN_ROOM=roomname DEPRECATED - (Still works but will be removed in the future in favor of the built-in var autojoin__room ) - Set the room name for auto joining (requires AUTOJOIN_ENABLED set to true ). Volume Mappings ( -v ) Volume Function Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it synclounge /bin/bash To monitor the logs of the container in realtime: docker logs -f synclounge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' synclounge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/synclounge:latest Versions 29.11.22: - Rebase to alpine 3.17, upgrade to s6v3. 19.09.22: - Rebase to alpine 3.15. 12.02.21: - Fix optional dependency builds in aarch64 image. 12.02.21: - Rebasing to alpine 3.13. 28.10.20: - Update to v4. Env vars EXTERNAL_URL , EXTERNAL_SERVER_PORT and AUTOJOIN_PASSWORD are deprecated and no longer have any effect. Env vars AUTOJOIN_ENABLED and AUTOJOIN_ROOM are still working but will be removed in the future in favor of synclounge's built-in var autojoin__room . If you are reverse proxying, do not forget to update your proxy settings ( here and here ) as the server port and addresses are changed. 11.10.20: - Pin builds to upstream commit 6aecc9bd while evaluating the breaking changes upstream. 27.09.20: - Updating the external repo endpoint. 01.06.20: - Rebasing to alpine 3.12. 11.05.20: - Initial Release.","title":"synclounge"},{"location":"images/docker-synclounge/#linuxserversynclounge","text":"Synclounge is a third party tool that allows you to watch Plex in sync with your friends/family, wherever you are.","title":"linuxserver/synclounge"},{"location":"images/docker-synclounge/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/synclounge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-synclounge/#application-setup","text":"The web app and the server are both accessible at http://SERVERIP:8088 . Note: It is recommended to use http as the external proto with a reverse proxy due to https not working with external plex clients.","title":"Application Setup"},{"location":"images/docker-synclounge/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-synclounge/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: synclounge: image: lscr.io/linuxserver/synclounge:latest container_name: synclounge environment: - TZ=Europe/London - AUTH_LIST=plexuser1,plexuser2,email1,machineid1 #optional - AUTOJOIN_ENABLED=false #optional - AUTOJOIN_ROOM=roomname #optional ports: - 8088:8088 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-synclounge/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=synclounge \\ -e TZ=Europe/London \\ -e AUTH_LIST=plexuser1,plexuser2,email1,machineid1 `#optional` \\ -e AUTOJOIN_ENABLED=false `#optional` \\ -e AUTOJOIN_ROOM=roomname `#optional` \\ -p 8088:8088 \\ --restart unless-stopped \\ lscr.io/linuxserver/synclounge:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-synclounge/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-synclounge/#ports-p","text":"Parameter Function 8088 Web app and server port","title":"Ports (-p)"},{"location":"images/docker-synclounge/#environment-variables-e","text":"Env Function TZ=Europe/London Specify a timezone to use EG Europe/London AUTH_LIST=plexuser1,plexuser2,email1,machineid1 If set, only the users defined here and the users of the plex servers defined here will be able to access the server. Use e-mails, plex usernames and/or plex server machine ids, comma separated, no spaces. AUTOJOIN_ENABLED=false DEPRECATED - (Still works but will be removed in the future in favor of the built-in var autojoin__room ) - Set to true to let users autojoin the server and a room (specified by the AUTOJOIN_ROOM var). AUTOJOIN_ROOM=roomname DEPRECATED - (Still works but will be removed in the future in favor of the built-in var autojoin__room ) - Set the room name for auto joining (requires AUTOJOIN_ENABLED set to true ).","title":"Environment Variables (-e)"},{"location":"images/docker-synclounge/#volume-mappings-v","text":"Volume Function","title":"Volume Mappings (-v)"},{"location":"images/docker-synclounge/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-synclounge/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-synclounge/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-synclounge/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-synclounge/#support-info","text":"Shell access whilst the container is running: docker exec -it synclounge /bin/bash To monitor the logs of the container in realtime: docker logs -f synclounge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' synclounge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/synclounge:latest","title":"Support Info"},{"location":"images/docker-synclounge/#versions","text":"29.11.22: - Rebase to alpine 3.17, upgrade to s6v3. 19.09.22: - Rebase to alpine 3.15. 12.02.21: - Fix optional dependency builds in aarch64 image. 12.02.21: - Rebasing to alpine 3.13. 28.10.20: - Update to v4. Env vars EXTERNAL_URL , EXTERNAL_SERVER_PORT and AUTOJOIN_PASSWORD are deprecated and no longer have any effect. Env vars AUTOJOIN_ENABLED and AUTOJOIN_ROOM are still working but will be removed in the future in favor of synclounge's built-in var autojoin__room . If you are reverse proxying, do not forget to update your proxy settings ( here and here ) as the server port and addresses are changed. 11.10.20: - Pin builds to upstream commit 6aecc9bd while evaluating the breaking changes upstream. 27.09.20: - Updating the external repo endpoint. 01.06.20: - Rebasing to alpine 3.12. 11.05.20: - Initial Release.","title":"Versions"},{"location":"images/docker-syncthing/","text":"linuxserver/syncthing Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/syncthing:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Note: The Syncthing devs highly suggest setting a password for this container as it listens on 0.0.0.0. To do this go to Actions -> Settings -> set user/password for the webUI. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: syncthing: image: lscr.io/linuxserver/syncthing:latest container_name: syncthing hostname: syncthing #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/data1:/data1 - /path/to/data2:/data2 ports: - 8384:8384 - 22000:22000/tcp - 22000:22000/udp - 21027:21027/udp restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=syncthing \\ --hostname=syncthing `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8384:8384 \\ -p 22000:22000/tcp \\ -p 22000:22000/udp \\ -p 21027:21027/udp \\ -v /path/to/appdata/config:/config \\ -v /path/to/data1:/data1 \\ -v /path/to/data2:/data2 \\ --restart unless-stopped \\ lscr.io/linuxserver/syncthing:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8384 Application WebUI 22000/tcp Listening port (TCP) 22000/udp Listening port (UDP) 21027/udp Protocol discovery Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. /data1 Data1 /data2 Data2 Miscellaneous Options Parameter Function --hostname= Optionally the hostname can be defined. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it syncthing /bin/bash To monitor the logs of the container in realtime: docker logs -f syncthing Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' syncthing Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/syncthing:latest Versions 17.08.22: - Build on alpine 3.16 for go 1.18). 03.05.22: - Rebase to alpine 3.15 (builds on edge for go 1.18). 05.10.21: - Rebase to alpine 3.14. 12.05.21: - Remove sysctl parameter again 03.05.21: - Raise maximum UDP buffer size. 03.05.21: - Add port mapping for 22000/udp. 29.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.01.21: - Rebasing to alpine 3.13. 15.09.20: - Use go from alpine edge repo to compile. Remove duplicate UMASK env var. Add hostname setting. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 05.03.19: - Update Build process for v1.1.0 release. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 30.07.18: - Rebase to alpine 3.8 and use buildstage. 13.12.17: - Rebase to alpine 3.7. 25.10.17: - Add env for manual setting of umask. 29.07.17: - Simplify build structure as symlinks failing on > 0.14.32 28.05.17: - Rebase to alpine 3.6. 08.02.17: - Rebase to alpine 3.5. 01.11.16: - Switch to compiling latest version from git source. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 11.08.16: - Rebase to alpine linux. 18.12.15: - Initial testing / release (IronicBadger) 24.09.15: - Inital dev complete (Lonix)","title":"syncthing"},{"location":"images/docker-syncthing/#linuxserversyncthing","text":"Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.","title":"linuxserver/syncthing"},{"location":"images/docker-syncthing/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/syncthing:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-syncthing/#application-setup","text":"Note: The Syncthing devs highly suggest setting a password for this container as it listens on 0.0.0.0. To do this go to Actions -> Settings -> set user/password for the webUI.","title":"Application Setup"},{"location":"images/docker-syncthing/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-syncthing/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: syncthing: image: lscr.io/linuxserver/syncthing:latest container_name: syncthing hostname: syncthing #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/appdata/config:/config - /path/to/data1:/data1 - /path/to/data2:/data2 ports: - 8384:8384 - 22000:22000/tcp - 22000:22000/udp - 21027:21027/udp restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-syncthing/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=syncthing \\ --hostname=syncthing `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8384:8384 \\ -p 22000:22000/tcp \\ -p 22000:22000/udp \\ -p 21027:21027/udp \\ -v /path/to/appdata/config:/config \\ -v /path/to/data1:/data1 \\ -v /path/to/data2:/data2 \\ --restart unless-stopped \\ lscr.io/linuxserver/syncthing:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-syncthing/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-syncthing/#ports-p","text":"Parameter Function 8384 Application WebUI 22000/tcp Listening port (TCP) 22000/udp Listening port (UDP) 21027/udp Protocol discovery","title":"Ports (-p)"},{"location":"images/docker-syncthing/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-syncthing/#volume-mappings-v","text":"Volume Function /config Configuration files. /data1 Data1 /data2 Data2","title":"Volume Mappings (-v)"},{"location":"images/docker-syncthing/#miscellaneous-options","text":"Parameter Function --hostname= Optionally the hostname can be defined.","title":"Miscellaneous Options"},{"location":"images/docker-syncthing/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-syncthing/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-syncthing/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-syncthing/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-syncthing/#support-info","text":"Shell access whilst the container is running: docker exec -it syncthing /bin/bash To monitor the logs of the container in realtime: docker logs -f syncthing Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' syncthing Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/syncthing:latest","title":"Support Info"},{"location":"images/docker-syncthing/#versions","text":"17.08.22: - Build on alpine 3.16 for go 1.18). 03.05.22: - Rebase to alpine 3.15 (builds on edge for go 1.18). 05.10.21: - Rebase to alpine 3.14. 12.05.21: - Remove sysctl parameter again 03.05.21: - Raise maximum UDP buffer size. 03.05.21: - Add port mapping for 22000/udp. 29.01.21: - Deprecate UMASK_SET in favor of UMASK in baseimage, see above for more information. 23.01.21: - Rebasing to alpine 3.13. 15.09.20: - Use go from alpine edge repo to compile. Remove duplicate UMASK env var. Add hostname setting. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 05.03.19: - Update Build process for v1.1.0 release. 22.02.19: - Rebasing to alpine 3.9. 16.01.19: - Add pipeline logic and multi arch. 30.07.18: - Rebase to alpine 3.8 and use buildstage. 13.12.17: - Rebase to alpine 3.7. 25.10.17: - Add env for manual setting of umask. 29.07.17: - Simplify build structure as symlinks failing on > 0.14.32 28.05.17: - Rebase to alpine 3.6. 08.02.17: - Rebase to alpine 3.5. 01.11.16: - Switch to compiling latest version from git source. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 11.08.16: - Rebase to alpine linux. 18.12.15: - Initial testing / release (IronicBadger) 24.09.15: - Inital dev complete (Lonix)","title":"Versions"},{"location":"images/docker-syslog-ng/","text":"linuxserver/syslog-ng syslog-ng allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure and store or route them to log analysis tools. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/syslog-ng:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Edit /config/syslog-ng.conf to configure your logging sources and destinations. Note: As the application does not run as root you cannot listen on ports < 1024. The application pid, control file, etc. are all kept in /config so when using tools such as syslog-ng-ctl you need to specify the path e.g. syslog-ng-ctl reload -c /config/syslog-ng.ctl More info at syslog-ng . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: syslog-ng: image: lscr.io/linuxserver/syslog-ng:latest container_name: syslog-ng environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/log:/var/log #optional ports: - 514:5514/udp - 601:6601/tcp - 6514:6514/tcp restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=syslog-ng \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 514:5514/udp \\ -p 601:6601/tcp \\ -p 6514:6514/tcp \\ -v /path/to/config:/config \\ -v /path/to/log:/var/log `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/syslog-ng:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 5514/udp Syslog UDP 6601/tcp Syslog TCP 6514/tcp Syslog TLS Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Stores config and application files /var/log Stores logs collected by the syslog-ng service Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it syslog-ng /bin/bash To monitor the logs of the container in realtime: docker logs -f syslog-ng Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' syslog-ng Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/syslog-ng:latest Versions 01.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 18.12.21: - Rebase to Alpine 3.15. 01.07.21: - Rebase to Alpine 3.14. 26.05.21: - Initial release.","title":"syslog-ng"},{"location":"images/docker-syslog-ng/#linuxserversyslog-ng","text":"syslog-ng allows you to flexibly collect, parse, classify, rewrite and correlate logs from across your infrastructure and store or route them to log analysis tools.","title":"linuxserver/syslog-ng"},{"location":"images/docker-syslog-ng/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/syslog-ng:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-syslog-ng/#application-setup","text":"Edit /config/syslog-ng.conf to configure your logging sources and destinations. Note: As the application does not run as root you cannot listen on ports < 1024. The application pid, control file, etc. are all kept in /config so when using tools such as syslog-ng-ctl you need to specify the path e.g. syslog-ng-ctl reload -c /config/syslog-ng.ctl More info at syslog-ng .","title":"Application Setup"},{"location":"images/docker-syslog-ng/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-syslog-ng/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: syslog-ng: image: lscr.io/linuxserver/syslog-ng:latest container_name: syslog-ng environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/log:/var/log #optional ports: - 514:5514/udp - 601:6601/tcp - 6514:6514/tcp restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-syslog-ng/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=syslog-ng \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 514:5514/udp \\ -p 601:6601/tcp \\ -p 6514:6514/tcp \\ -v /path/to/config:/config \\ -v /path/to/log:/var/log `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/syslog-ng:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-syslog-ng/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-syslog-ng/#ports-p","text":"Parameter Function 5514/udp Syslog UDP 6601/tcp Syslog TCP 6514/tcp Syslog TLS","title":"Ports (-p)"},{"location":"images/docker-syslog-ng/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-syslog-ng/#volume-mappings-v","text":"Volume Function /config Stores config and application files /var/log Stores logs collected by the syslog-ng service","title":"Volume Mappings (-v)"},{"location":"images/docker-syslog-ng/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-syslog-ng/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-syslog-ng/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-syslog-ng/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-syslog-ng/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-syslog-ng/#support-info","text":"Shell access whilst the container is running: docker exec -it syslog-ng /bin/bash To monitor the logs of the container in realtime: docker logs -f syslog-ng Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' syslog-ng Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/syslog-ng:latest","title":"Support Info"},{"location":"images/docker-syslog-ng/#versions","text":"01.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 18.12.21: - Rebase to Alpine 3.15. 01.07.21: - Rebase to Alpine 3.14. 26.05.21: - Initial release.","title":"Versions"},{"location":"images/docker-taisun/","text":"DEPRECATION NOTICE This image is deprecated. We will not offer support for this image and it will not be updated. This project is no longer maintained for VDI please use: https://github.com/linuxserver/docker-webtop For web based docker management try: https://github.com/SelfhostedPro/Yacht https://www.portainer.io/ linuxserver/taisun Taisun is an application for a Docker enabled device with an emphasis on providing a web based interface for managing a single server. Taisun allows you to: Deploy and manage web based virtual desktops. Deploy Taisun specific stacks of applications Browse available images on popular Docker repositories Import a Docker project from any git repository and start developing on your choice of web based IDE or full Linux desktop Spinup a developer container based on popular frameworks and work from a web based IDE Single click remote server access to Taisun and your Docker applications Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/taisun should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Application Setup The webui is at http://localhost:3000, for more information on usage see here . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2\" services: taisun: image: linuxserver/taisun container_name: taisun network_mode: bridge volumes: - /var/run/docker.sock:/var/run/docker.sock ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=taisun \\ -p 3000:3000 \\ -v /var/run/docker.sock:/var/run/docker.sock \\ --restart unless-stopped \\ lscr.io/linuxserver/taisun Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Taisun WebUI. Environment Variables ( -e ) Env Function Volume Mappings ( -v ) Volume Function /var/run/docker.sock Docker Socket on the system Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it taisun /bin/bash To monitor the logs of the container in realtime: docker logs -f taisun Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' taisun Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/taisun Versions 02.02.22: - Deprecate. 23.01.21: - Rebasing to alpine 3.13. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 20.07.19: - Build compose bins from source, use minimal docker install from repos. 28.06.19: - Rebasing to alpine 3.10. 30.03.19: - Updating docker-compose build dependancies for musl libc. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 13.02.19: - Initial release.","title":"taisun"},{"location":"images/docker-taisun/#deprecation-notice","text":"This image is deprecated. We will not offer support for this image and it will not be updated. This project is no longer maintained for VDI please use: https://github.com/linuxserver/docker-webtop For web based docker management try: https://github.com/SelfhostedPro/Yacht https://www.portainer.io/","title":"DEPRECATION NOTICE"},{"location":"images/docker-taisun/#linuxservertaisun","text":"Taisun is an application for a Docker enabled device with an emphasis on providing a web based interface for managing a single server. Taisun allows you to: Deploy and manage web based virtual desktops. Deploy Taisun specific stacks of applications Browse available images on popular Docker repositories Import a Docker project from any git repository and start developing on your choice of web based IDE or full Linux desktop Spinup a developer container based on popular frameworks and work from a web based IDE Single click remote server access to Taisun and your Docker applications","title":"linuxserver/taisun"},{"location":"images/docker-taisun/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/taisun should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-taisun/#application-setup","text":"The webui is at http://localhost:3000, for more information on usage see here .","title":"Application Setup"},{"location":"images/docker-taisun/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-taisun/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2\" services: taisun: image: linuxserver/taisun container_name: taisun network_mode: bridge volumes: - /var/run/docker.sock:/var/run/docker.sock ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-taisun/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=taisun \\ -p 3000:3000 \\ -v /var/run/docker.sock:/var/run/docker.sock \\ --restart unless-stopped \\ lscr.io/linuxserver/taisun","title":"docker cli (click here for more info)"},{"location":"images/docker-taisun/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-taisun/#ports-p","text":"Parameter Function 3000 Taisun WebUI.","title":"Ports (-p)"},{"location":"images/docker-taisun/#environment-variables-e","text":"Env Function","title":"Environment Variables (-e)"},{"location":"images/docker-taisun/#volume-mappings-v","text":"Volume Function /var/run/docker.sock Docker Socket on the system","title":"Volume Mappings (-v)"},{"location":"images/docker-taisun/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-taisun/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-taisun/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-taisun/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-taisun/#support-info","text":"Shell access whilst the container is running: docker exec -it taisun /bin/bash To monitor the logs of the container in realtime: docker logs -f taisun Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' taisun Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/taisun","title":"Support Info"},{"location":"images/docker-taisun/#versions","text":"02.02.22: - Deprecate. 23.01.21: - Rebasing to alpine 3.13. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 20.07.19: - Build compose bins from source, use minimal docker install from repos. 28.06.19: - Rebasing to alpine 3.10. 30.03.19: - Updating docker-compose build dependancies for musl libc. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 13.02.19: - Initial release.","title":"Versions"},{"location":"images/docker-tautulli/","text":"linuxserver/tautulli Tautulli is a python based web application for monitoring, analytics and notifications for Plex Media Server. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/tautulli:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Tautulli releases develop \u2705 Built at head of Tautulli nightly branch Application Setup Access the webui at :8181 , for more information check out Tautulli . To use the build-in Plex LogViewer you have to add a volume, preferably ReadOnly. Then in tautulli gui settings, under Plex Media Server , turn on Show Advanced and set the Logs Folder to the folder you mapped. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: tautulli: image: lscr.io/linuxserver/tautulli:latest container_name: tautulli environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 8181:8181 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=tautulli \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8181:8181 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/tautulli:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8181 WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Contains tautulli config and database. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it tautulli /bin/bash To monitor the logs of the container in realtime: docker logs -f tautulli Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' tautulli Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/tautulli:latest Versions 04.10.22: - Rebase master branch to Alpine 3.16, migrate to s6v3. 10.01.22: - Rebase to Alpine 3.15. 11.07.21: - Add curl package. 23.01.21: - Rebasing to alpine 3.13. 11.07.20: - Add py3-openssl. 05.06.20: - Rebasing to alpine 3.12. Rework to python3. 12.04.20: - Added mock from pip and donate links. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 26.01.19: - Add pipeline logic and multi arch. 23.10.18: - Update plex logs info in readm. 16.08.18: - Rebase to alpine 3.8. 10.03.18: - Rebrand to tautulli. 12.12.17: - Rebase to alpine 3.7. 21.07.17: - Internal git pull instead of at runtime. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 25.05.17: - Rebase to alpine 3.6. 20.04.17: - Add pycryptodomex pip package. 07.02.17: - Rebase to alpine 3.5. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 16.07.15: - Inital Release.","title":"tautulli"},{"location":"images/docker-tautulli/#linuxservertautulli","text":"Tautulli is a python based web application for monitoring, analytics and notifications for Plex Media Server.","title":"linuxserver/tautulli"},{"location":"images/docker-tautulli/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/tautulli:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-tautulli/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable Tautulli releases develop \u2705 Built at head of Tautulli nightly branch","title":"Version Tags"},{"location":"images/docker-tautulli/#application-setup","text":"Access the webui at :8181 , for more information check out Tautulli . To use the build-in Plex LogViewer you have to add a volume, preferably ReadOnly. Then in tautulli gui settings, under Plex Media Server , turn on Show Advanced and set the Logs Folder to the folder you mapped.","title":"Application Setup"},{"location":"images/docker-tautulli/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-tautulli/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: tautulli: image: lscr.io/linuxserver/tautulli:latest container_name: tautulli environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 8181:8181 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-tautulli/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=tautulli \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 8181:8181 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/tautulli:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-tautulli/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-tautulli/#ports-p","text":"Parameter Function 8181 WebUI","title":"Ports (-p)"},{"location":"images/docker-tautulli/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-tautulli/#volume-mappings-v","text":"Volume Function /config Contains tautulli config and database.","title":"Volume Mappings (-v)"},{"location":"images/docker-tautulli/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-tautulli/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-tautulli/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-tautulli/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-tautulli/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-tautulli/#support-info","text":"Shell access whilst the container is running: docker exec -it tautulli /bin/bash To monitor the logs of the container in realtime: docker logs -f tautulli Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' tautulli Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/tautulli:latest","title":"Support Info"},{"location":"images/docker-tautulli/#versions","text":"04.10.22: - Rebase master branch to Alpine 3.16, migrate to s6v3. 10.01.22: - Rebase to Alpine 3.15. 11.07.21: - Add curl package. 23.01.21: - Rebasing to alpine 3.13. 11.07.20: - Add py3-openssl. 05.06.20: - Rebasing to alpine 3.12. Rework to python3. 12.04.20: - Added mock from pip and donate links. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 26.01.19: - Add pipeline logic and multi arch. 23.10.18: - Update plex logs info in readm. 16.08.18: - Rebase to alpine 3.8. 10.03.18: - Rebrand to tautulli. 12.12.17: - Rebase to alpine 3.7. 21.07.17: - Internal git pull instead of at runtime. 12.07.17: - Add inspect commands to README, move to jenkins build and push. 25.05.17: - Rebase to alpine 3.6. 20.04.17: - Add pycryptodomex pip package. 07.02.17: - Rebase to alpine 3.5. 09.09.16: - Add layer badges to README. 27.08.16: - Add badges to README. 08.08.16: - Rebase to alpine linux. 16.07.15: - Inital Release.","title":"Versions"},{"location":"images/docker-tester/","text":"linuxserver/tester This internal tool is used as a desktop sandbox in our CI process to grab a screenshot of a hopefully functional endpoint Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/tester:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u274c armhf \u274c Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: tester: image: lscr.io/linuxserver/tester:latest container_name: tester environment: - URL=http://google.com ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=tester \\ -e URL=http://google.com \\ -p 3000:3000 \\ --restart unless-stopped \\ lscr.io/linuxserver/tester:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 WebUI Environment Variables ( -e ) Env Function URL=http://google.com Specify an endpoint, the container will automatically determine the correct protocol and program to use Volume Mappings ( -v ) Volume Function Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it tester /bin/bash To monitor the logs of the container in realtime: docker logs -f tester Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' tester Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/tester:latest Versions 16.11.22: - Revert the rdesktop baseimage's sesman change that introduced a delay. 24.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 18.04.20: - Initial release.","title":"tester"},{"location":"images/docker-tester/#linuxservertester","text":"This internal tool is used as a desktop sandbox in our CI process to grab a screenshot of a hopefully functional endpoint","title":"linuxserver/tester"},{"location":"images/docker-tester/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/tester:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u274c armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-tester/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-tester/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: tester: image: lscr.io/linuxserver/tester:latest container_name: tester environment: - URL=http://google.com ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-tester/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=tester \\ -e URL=http://google.com \\ -p 3000:3000 \\ --restart unless-stopped \\ lscr.io/linuxserver/tester:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-tester/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-tester/#ports-p","text":"Parameter Function 3000 WebUI","title":"Ports (-p)"},{"location":"images/docker-tester/#environment-variables-e","text":"Env Function URL=http://google.com Specify an endpoint, the container will automatically determine the correct protocol and program to use","title":"Environment Variables (-e)"},{"location":"images/docker-tester/#volume-mappings-v","text":"Volume Function","title":"Volume Mappings (-v)"},{"location":"images/docker-tester/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-tester/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-tester/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-tester/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-tester/#support-info","text":"Shell access whilst the container is running: docker exec -it tester /bin/bash To monitor the logs of the container in realtime: docker logs -f tester Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' tester Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/tester:latest","title":"Support Info"},{"location":"images/docker-tester/#versions","text":"16.11.22: - Revert the rdesktop baseimage's sesman change that introduced a delay. 24.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 18.04.20: - Initial release.","title":"Versions"},{"location":"images/docker-thelounge/","text":"linuxserver/thelounge Thelounge (a fork of shoutIRC) is a web IRC client that you host on your own server. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/thelounge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases. next \u2705 Next Pre-Releases. nightly \u2705 Nightly images from commits in master. Application Setup When the application first runs, it will populate its /config Stop the container Now from the host, edit /config/config.js , wherever you've mapped it In most cases you want the value public: false to allow named users only Setting the two prefetch values to true improves usability, but uses more storage Once you have the configuration you want, save it and start the container again For each user, run the command docker exec -it thelounge s6-setuidgid abc thelounge add You will be prompted to enter a password that will not be echoed. Saving logs to disk is the default, this consumes more space but allows scrollback. To log in to the application, browse to http://:9000 You should now be prompted for a username and password on the webinterface. Once logged in, you can add an IRC network. Some defaults are preset for Freenode Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: thelounge: image: lscr.io/linuxserver/thelounge:latest container_name: thelounge environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 9000:9000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=thelounge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9000:9000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/thelounge:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 9000 Application WebUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Configuration files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it thelounge /bin/bash To monitor the logs of the container in realtime: docker logs -f thelounge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' thelounge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/thelounge:latest Versions 24.10.22: - Fix sqlite3 build. 12.04.22: - Install from source using yarn. 11.04.22: - Rebasing to alpine 3.15 and switching from python2-dev to python3-dev for building node sqlite on arm. 23.01.21: - Rebasing to alpine 3.13. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 15.05.19: - Update Arm variant images to build sqlite3 module. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 25.08.18: - Use global install, simplifies adding users. 20.08.18: - Rebase to alpine 3.8. 06.01.18: - Rebase to alpine 3.7. 26.05.17: - Rebase to alpine 3.6. 06.02.17: - Rebase to alpine 3.5. 14.10.16: - Bump to pickup 2.10 release. 14.10.16: - Add version layer information. 11.09.16: - Add layer badges to README. 31.08.16: - Initial Release.","title":"thelounge"},{"location":"images/docker-thelounge/#linuxserverthelounge","text":"Thelounge (a fork of shoutIRC) is a web IRC client that you host on your own server.","title":"linuxserver/thelounge"},{"location":"images/docker-thelounge/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/thelounge:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-thelounge/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases. next \u2705 Next Pre-Releases. nightly \u2705 Nightly images from commits in master.","title":"Version Tags"},{"location":"images/docker-thelounge/#application-setup","text":"When the application first runs, it will populate its /config Stop the container Now from the host, edit /config/config.js , wherever you've mapped it In most cases you want the value public: false to allow named users only Setting the two prefetch values to true improves usability, but uses more storage Once you have the configuration you want, save it and start the container again For each user, run the command docker exec -it thelounge s6-setuidgid abc thelounge add You will be prompted to enter a password that will not be echoed. Saving logs to disk is the default, this consumes more space but allows scrollback. To log in to the application, browse to http://:9000 You should now be prompted for a username and password on the webinterface. Once logged in, you can add an IRC network. Some defaults are preset for Freenode","title":"Application Setup"},{"location":"images/docker-thelounge/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-thelounge/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: thelounge: image: lscr.io/linuxserver/thelounge:latest container_name: thelounge environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 9000:9000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-thelounge/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=thelounge \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 9000:9000 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/thelounge:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-thelounge/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-thelounge/#ports-p","text":"Parameter Function 9000 Application WebUI","title":"Ports (-p)"},{"location":"images/docker-thelounge/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-thelounge/#volume-mappings-v","text":"Volume Function /config Configuration files.","title":"Volume Mappings (-v)"},{"location":"images/docker-thelounge/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-thelounge/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-thelounge/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-thelounge/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-thelounge/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-thelounge/#support-info","text":"Shell access whilst the container is running: docker exec -it thelounge /bin/bash To monitor the logs of the container in realtime: docker logs -f thelounge Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' thelounge Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/thelounge:latest","title":"Support Info"},{"location":"images/docker-thelounge/#versions","text":"24.10.22: - Fix sqlite3 build. 12.04.22: - Install from source using yarn. 11.04.22: - Rebasing to alpine 3.15 and switching from python2-dev to python3-dev for building node sqlite on arm. 23.01.21: - Rebasing to alpine 3.13. 02.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 15.05.19: - Update Arm variant images to build sqlite3 module. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 25.08.18: - Use global install, simplifies adding users. 20.08.18: - Rebase to alpine 3.8. 06.01.18: - Rebase to alpine 3.7. 26.05.17: - Rebase to alpine 3.6. 06.02.17: - Rebase to alpine 3.5. 14.10.16: - Bump to pickup 2.10 release. 14.10.16: - Add version layer information. 11.09.16: - Add layer badges to README. 31.08.16: - Initial Release.","title":"Versions"},{"location":"images/docker-transmission/","text":"linuxserver/transmission Transmission is designed for easy, powerful use. Transmission has the features you want from a BitTorrent client: encryption, a web interface, peer exchange, magnet links, DHT, \u00b5TP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/transmission:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Webui is on port 9091, the settings.json file in /config has extra settings not available in the webui. Stop the container before editing it or any changes won't be saved. If you choose to use transmission-web-control as your default UI, just note that the origional Web UI will not be available to you despite the button being present. Securing the webui with a username/password. Use the USER and PASS variables in docker run/create/compose to set authentication. Do not manually edit the settings.json to input user/pass, otherwise transmission cannot be stopped cleanly by the s6 supervisor. Updating Blocklists Automatically This requires \"blocklist-enabled\": true, to be set. By setting this to true, it is assumed you have also populated blocklist-url with a valid block list. The automatic update is a shell script that downloads a blocklist from the url stored in the settings.json, gunzips it, and restarts the transmission daemon. The automatic update will run once a day at 3am local server time. Using whitelist Use WHITELIST to enable a list of ip as whitelist. This enable support for rpc-whitelist . When WHITELIST is empty support for whitelist is disabled. Use HOST_WHITELIST to enable an list of dns names as host-whitelist. This enable support for rpc-host-whitelist . When HOST_WHITELIST is empty support for host-whitelist is disabled. Use alternative Transmission torrent ports Use PEERPORT to specify the port(s) Transmission should listen on. This disables random port selection. This should be the same as the port mapped in your docker configuration. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: transmission: image: lscr.io/linuxserver/transmission:latest container_name: transmission environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - TRANSMISSION_WEB_HOME=/combustion-release/ #optional - USER=username #optional - PASS=password #optional - WHITELIST=iplist #optional - PEERPORT=peerport #optional - HOST_WHITELIST=dnsname list #optional volumes: - /path/to/data:/config - /path/to/downloads:/downloads - /path/to/watch/folder:/watch ports: - 9091:9091 - 51413:51413 - 51413:51413/udp restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=transmission \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e TRANSMISSION_WEB_HOME=/combustion-release/ `#optional` \\ -e USER=username `#optional` \\ -e PASS=password `#optional` \\ -e WHITELIST=iplist `#optional` \\ -e PEERPORT=peerport `#optional` \\ -e HOST_WHITELIST=dnsname list `#optional` \\ -p 9091:9091 \\ -p 51413:51413 \\ -p 51413:51413/udp \\ -v /path/to/data:/config \\ -v /path/to/downloads:/downloads \\ -v /path/to/watch/folder:/watch \\ --restart unless-stopped \\ lscr.io/linuxserver/transmission:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 9091 WebUI 51413 Torrent Port TCP 51413/udp Torrent Port UDP Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. TRANSMISSION_WEB_HOME=/combustion-release/ Specify an alternative UI options are /combustion-release/ , /transmission-web-control/ , /kettu/ , /flood-for-transmission/ , and /transmissionic/ . USER=username Specify an optional username for the interface PASS=password Specify an optional password for the interface WHITELIST=iplist Specify an optional list of comma separated ip whitelist. Fills rpc-whitelist setting. PEERPORT=peerport Specify an optional port for torrent TCP/UDP connections. Fills peer-port setting. HOST_WHITELIST=dnsname list Specify an optional list of comma separated dns name whitelist. Fills rpc-host-whitelist setting. Volume Mappings ( -v ) Volume Function /config Where transmission should store config files and logs. /downloads Local path for downloads. /watch Watch folder for torrent files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it transmission /bin/bash To monitor the logs of the container in realtime: docker logs -f transmission Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' transmission Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/transmission:latest Versions 02.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 12.08.22: - Bump unrar to 6.1.7. 03.04.22: - Add Transmissionic as a UI option. 21.02.22: - Build unrar from source, rebase to Alpine 3.15, add symlinks neeeded for TWC. Credit @alexbelgium 09.07.21: - Wait for the transmission-daemon termination after a caught sigterm. 06.03.21: - Add Flood for Transmission as a UI option. 23.01.21: - Rebasing to alpine 3.13. 02.11.20: - Add ca-certificates package to allow connecting to https trackers. 02.06.20: - Rebase to alpine 3.12, update to transmission 3.0, remove python2, add python3. 11.05.20: - Remove unnecessary chmod (remnant of previous change). 28.04.20: - Use transmission-remote to update blocklist. 30.03.20: - Internalize blocklist-update.sh. 29.03.20: - Update auth info in readme. 19.12.19: - Rebasing to alpine 3.11. 04.10.19: - Update package label. 21.08.19: - Add optional user/pass environment variables, fix transmission shut down if user/pass are set. 19.07.19: - Send SIGTERM in blocklist update to properly close pid. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebase to Alpine 3.9, add themes to baseimage, add python and findutils. 22.02.19: - Catch term and clean exit. 07.02.19: - Add pipeline logic and multi arch. 15.08.18: - Rebase to alpine linux 3.8. 12.02.18: - Pull transmission from edge repo. 10.01.18: - Rebase to alpine linux 3.7. 25.07.17: - Add rsync package. 27.05.17: - Rebase to alpine linux 3.6. 06.02.17: - Rebase to alpine linux 3.5. 15.01.17: - Add p7zip, tar, unrar, and unzip packages. 16.10.16: - Blocklist autoupdate with optional authentication. 14.10.16: - Add version layer informationE. 23.09.16: - Add information about securing the webui to README. 21.09.16: - Add curl package. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 09.08.16: - Rebase to alpine linux. 06.12.15: - Separate mapping for watch folder. 16.11.15: - Initial Release.","title":"transmission"},{"location":"images/docker-transmission/#linuxservertransmission","text":"Transmission is designed for easy, powerful use. Transmission has the features you want from a BitTorrent client: encryption, a web interface, peer exchange, magnet links, DHT, \u00b5TP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more.","title":"linuxserver/transmission"},{"location":"images/docker-transmission/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/transmission:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-transmission/#application-setup","text":"Webui is on port 9091, the settings.json file in /config has extra settings not available in the webui. Stop the container before editing it or any changes won't be saved. If you choose to use transmission-web-control as your default UI, just note that the origional Web UI will not be available to you despite the button being present.","title":"Application Setup"},{"location":"images/docker-transmission/#securing-the-webui-with-a-usernamepassword","text":"Use the USER and PASS variables in docker run/create/compose to set authentication. Do not manually edit the settings.json to input user/pass, otherwise transmission cannot be stopped cleanly by the s6 supervisor.","title":"Securing the webui with a username/password."},{"location":"images/docker-transmission/#updating-blocklists-automatically","text":"This requires \"blocklist-enabled\": true, to be set. By setting this to true, it is assumed you have also populated blocklist-url with a valid block list. The automatic update is a shell script that downloads a blocklist from the url stored in the settings.json, gunzips it, and restarts the transmission daemon. The automatic update will run once a day at 3am local server time.","title":"Updating Blocklists Automatically"},{"location":"images/docker-transmission/#using-whitelist","text":"Use WHITELIST to enable a list of ip as whitelist. This enable support for rpc-whitelist . When WHITELIST is empty support for whitelist is disabled. Use HOST_WHITELIST to enable an list of dns names as host-whitelist. This enable support for rpc-host-whitelist . When HOST_WHITELIST is empty support for host-whitelist is disabled.","title":"Using whitelist"},{"location":"images/docker-transmission/#use-alternative-transmission-torrent-ports","text":"Use PEERPORT to specify the port(s) Transmission should listen on. This disables random port selection. This should be the same as the port mapped in your docker configuration.","title":"Use alternative Transmission torrent ports"},{"location":"images/docker-transmission/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-transmission/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: transmission: image: lscr.io/linuxserver/transmission:latest container_name: transmission environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - TRANSMISSION_WEB_HOME=/combustion-release/ #optional - USER=username #optional - PASS=password #optional - WHITELIST=iplist #optional - PEERPORT=peerport #optional - HOST_WHITELIST=dnsname list #optional volumes: - /path/to/data:/config - /path/to/downloads:/downloads - /path/to/watch/folder:/watch ports: - 9091:9091 - 51413:51413 - 51413:51413/udp restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-transmission/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=transmission \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e TRANSMISSION_WEB_HOME=/combustion-release/ `#optional` \\ -e USER=username `#optional` \\ -e PASS=password `#optional` \\ -e WHITELIST=iplist `#optional` \\ -e PEERPORT=peerport `#optional` \\ -e HOST_WHITELIST=dnsname list `#optional` \\ -p 9091:9091 \\ -p 51413:51413 \\ -p 51413:51413/udp \\ -v /path/to/data:/config \\ -v /path/to/downloads:/downloads \\ -v /path/to/watch/folder:/watch \\ --restart unless-stopped \\ lscr.io/linuxserver/transmission:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-transmission/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-transmission/#ports-p","text":"Parameter Function 9091 WebUI 51413 Torrent Port TCP 51413/udp Torrent Port UDP","title":"Ports (-p)"},{"location":"images/docker-transmission/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. TRANSMISSION_WEB_HOME=/combustion-release/ Specify an alternative UI options are /combustion-release/ , /transmission-web-control/ , /kettu/ , /flood-for-transmission/ , and /transmissionic/ . USER=username Specify an optional username for the interface PASS=password Specify an optional password for the interface WHITELIST=iplist Specify an optional list of comma separated ip whitelist. Fills rpc-whitelist setting. PEERPORT=peerport Specify an optional port for torrent TCP/UDP connections. Fills peer-port setting. HOST_WHITELIST=dnsname list Specify an optional list of comma separated dns name whitelist. Fills rpc-host-whitelist setting.","title":"Environment Variables (-e)"},{"location":"images/docker-transmission/#volume-mappings-v","text":"Volume Function /config Where transmission should store config files and logs. /downloads Local path for downloads. /watch Watch folder for torrent files.","title":"Volume Mappings (-v)"},{"location":"images/docker-transmission/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-transmission/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-transmission/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-transmission/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-transmission/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-transmission/#support-info","text":"Shell access whilst the container is running: docker exec -it transmission /bin/bash To monitor the logs of the container in realtime: docker logs -f transmission Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' transmission Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/transmission:latest","title":"Support Info"},{"location":"images/docker-transmission/#versions","text":"02.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 12.08.22: - Bump unrar to 6.1.7. 03.04.22: - Add Transmissionic as a UI option. 21.02.22: - Build unrar from source, rebase to Alpine 3.15, add symlinks neeeded for TWC. Credit @alexbelgium 09.07.21: - Wait for the transmission-daemon termination after a caught sigterm. 06.03.21: - Add Flood for Transmission as a UI option. 23.01.21: - Rebasing to alpine 3.13. 02.11.20: - Add ca-certificates package to allow connecting to https trackers. 02.06.20: - Rebase to alpine 3.12, update to transmission 3.0, remove python2, add python3. 11.05.20: - Remove unnecessary chmod (remnant of previous change). 28.04.20: - Use transmission-remote to update blocklist. 30.03.20: - Internalize blocklist-update.sh. 29.03.20: - Update auth info in readme. 19.12.19: - Rebasing to alpine 3.11. 04.10.19: - Update package label. 21.08.19: - Add optional user/pass environment variables, fix transmission shut down if user/pass are set. 19.07.19: - Send SIGTERM in blocklist update to properly close pid. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebase to Alpine 3.9, add themes to baseimage, add python and findutils. 22.02.19: - Catch term and clean exit. 07.02.19: - Add pipeline logic and multi arch. 15.08.18: - Rebase to alpine linux 3.8. 12.02.18: - Pull transmission from edge repo. 10.01.18: - Rebase to alpine linux 3.7. 25.07.17: - Add rsync package. 27.05.17: - Rebase to alpine linux 3.6. 06.02.17: - Rebase to alpine linux 3.5. 15.01.17: - Add p7zip, tar, unrar, and unzip packages. 16.10.16: - Blocklist autoupdate with optional authentication. 14.10.16: - Add version layer informationE. 23.09.16: - Add information about securing the webui to README. 21.09.16: - Add curl package. 09.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 09.08.16: - Rebase to alpine linux. 06.12.15: - Separate mapping for watch folder. 16.11.15: - Initial Release.","title":"Versions"},{"location":"images/docker-tvheadend/","text":"linuxserver/tvheadend Tvheadend works as a proxy server: is a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun as input sources. Tvheadend offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML). Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/tvheadend:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The setup depends if you run the one of the stable tags or use latest. Running latest is the easiest as it has a setup wizard. Stable First thing to do is to go to Configuration --> DVB Inputs --> TV adapters and add your LNB/switch info. Then create a new network in the Networks tab and set the correct pre-defined muxes and orbital position. Go back to the TV adapters tab and add the newly created network under universal LNB. Go back to the Networks tab and mark the network you created earlier and press the Force Scan button. Tvheadend will now scan the muxes for services. After the scan is done, head to the Services tab and find the services you want as channels, mark them, and press map services. They should now appear under Configuration --> Channel/EPG. Latest The first thing to do is to run the setup wizard. If it doesn't pop up at first login, you can find it in Configuration --> General --> Base and click Start Wizard. This will guide you to set up the basic parts of tvheadend. Configuring XMLTV grabber To configure the XMLTV grabber, first check if your grabber is listed in Configuration --> Channel/EPG --> EPG Grabber Modules. If it's listed, you will have to configure the grabber before enabling. Find the path in the path field of your grabber. We will use the last part. It starts with tv_grab_. Add it after /usr/bin/ in the below command. There should be no space between Usr/bin/ and the part you added. docker exec -it -u abc tvheadend /usr/bin/for_you_to_fill_out --configure Now follow the onscreen progress. If you get asked about cache, just accept the default. After you have configured your grabber, you can go back and enable your grabber. If you allready have a configuration file, you can add it in the .xmltv folder where you mapped the /config volume. If it's not created, create it. Comskip This container comes with Comskip for commercial flagging of recordings. This you have to add in the recording config of tvheadend. Go to Configuration --> Recording. Change the view level to advanced in the top right corner, and add the below in the Post-processor command field. /usr/bin/comskip --ini=/config/comskip/comskip.ini \"%f\" Now comskip will run after each recording is finished. You will find comskip.ini in the comskip folder of your /config volume mapping. See the Comskip homepage for tuning of the ini file. FFmpeg FFmpeg is installed in /usr/bin/ in case you need to use it with pipe. EPG XML file If you have EPG data in XML format from a supplier, you can drop it in the data folder of your /config volume mapping. If it doesn't exist, create it. Then choose the XML file grabber in Configuration --> Channel/EPG --> EPG Grabber Modules. If you use WebGrab+Plus, choose the WebGrab+Plus XML file grabber. The XML file goes in the same path as above. The xml file has to be named guide.xml. For advanced setup of tvheadend, go to [Tvheadend][appurl] Picons We have added all the picons from picons in the folder /picons. To enable the use of these picons, add the path to the Channel icon path in Configuration --> General --> Base. You need to enable minimum advanced view level to see the picons options. Additional runtime parameters In some cases it might be necessary to start tvheadend with additional parameters, for example to enable debugging or specify webroot for reverse proxy. Be sure to have the right parameters set, as adding the wrong once might lead to the container not starting correctly. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: tvheadend: image: lscr.io/linuxserver/tvheadend:latest container_name: tvheadend environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - RUN_OPTS= #optional volumes: - /path/to/data:/config - /path/to/recordings:/recordings ports: - 9981:9981 - 9982:9982 devices: - /dev/dri:/dev/dri #optional - /dev/dvb:/dev/dvb #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=tvheadend \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS= `#optional` \\ -p 9981:9981 \\ -p 9982:9982 \\ -v /path/to/data:/config \\ -v /path/to/recordings:/recordings \\ --device /dev/dri:/dev/dri `#optional` \\ --device /dev/dvb:/dev/dvb `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/tvheadend:latest Host vs. Bridge If you use IPTV, SAT>IP or HDHomeRun, you need to create the container with --net=host and remove the -p flags. This is because to work with these services Tvheadend requires a multicast address of 239.255.255.250 and a UDP port of 1900 which at this time is not possible with docker bridge mode. If you have other host services which also use multicast such as SSDP/DLNA/Emby you may experience stabilty problems. These can be solved by giving tvheadend its own IP using macvlan. Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 9981 WebUI 9982 HTSP server port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. RUN_OPTS= Optionally specify additional arguments to be passed. See Additional runtime parameters. Volume Mappings ( -v ) Volume Function /config Where TVHeadend show store it's config files. /recordings Where you want the PVR to store recordings. Device Mappings ( --device ) Parameter Function /dev/dri Only needed if you want to use your AMD/Intel GPU for hardware accelerated video encoding (vaapi). /dev/dvb Only needed if you want to pass through a DVB card to the container. If you use IPTV or HDHomeRun you can leave it out. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it tvheadend /bin/bash To monitor the logs of the container in realtime: docker logs -f tvheadend Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' tvheadend Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/tvheadend:latest Versions 31.08.22: - Update sample env vars and how RUN_OPTS are handled. 19.08.22: - Switch to new picons builder. 16.04.22: - Added URL XMLTV grabber. 05.01.22: - Rebase to Alpine 3.15. Disable execinfo to fix builds. Update xmltv. 11.05.21: - Added Intel iHD driver support. 02.06.20: - Update to Alpine 3.12. 27.12.19: - Add requests and perl-json-xs package. 27.12.19: - Update to Alpine 3.11. 02.10.19: - Improve permission fixing on render & dvb devices. 18.08.19: - Add AMD drivers. 02.08.19: - Attempt to automatically fix permissions on /dev/dri and /dev/dvb. 28.06.19: - Rebasing to alpine 3.10. 27.03.19: - Rebase to Alpine 3.9, fix init logic to only chown once. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.03.19: - Bump xmltv to 0.6.1. 28.02.19: - add perl-lwp-useragent-determined. 17.02.19: - Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend. 14.02.19: - Add picons path to config. 15.01.19: - Add pipeline logic and multi arch. 12.09.18: - Rebase to alpine 3.8 and use buildstage type build. 21.04.18: - Add JSON::XS Perl package for grab_tv_huro. 24.03.18: - Add dvbcsa package. 04.03.18: - Use sourceforge master rather than mirror for xmltv. 22.02.18: - Add lost libva-intel-driver. 21.02.18: - Fix wrong version of iconv used. 18.02.18: - Add vaapi support, some cleanup and dropping of deprecated options. 04.01.18: - Deprecate cpu_core routine lack of scaling. 11.12.17: - Rebase to alpine 3.7, linting fixes. 02.09.17: - Add codec dependencies. 13.07.17: - Increase uniformity across all archs. 08.07.17: - Update README with full path for comskip. 02.07.17: - Move to one branch for all 4.2 releases. 27.05.17: - Rebase to alpine 3.6. 01.05.17: - Update to tvheadend 4.2.1 stable. 18.04.17: - Use repo version of gnu-libiconv rather than compiling. 09.04.17: - Chain cpanm installs in one block and use --installdeps. 09.02.17: - Perl changes, add picons file to gitignore and update XMLTV to 0.5.69. 07.02.17: - Add variable to add additional runtime paramters. 05.02.17: - Update to alpine 3.5 and change dvb-apps to only compile needed libs. 14.11.16: - Add picons from picons.xyz to /picons folder and add info to README. 22.09.16: - Fix broken tv_grab_wg, libs for xmltv and update README. 18.09.16: - Update XMLTV to 0.5.68 and update README. 10.09.16: - Add layer badges to README. 05.09.16: - Initial Release.","title":"tvheadend"},{"location":"images/docker-tvheadend/#linuxservertvheadend","text":"Tvheadend works as a proxy server: is a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun as input sources. Tvheadend offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming. Multiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML).","title":"linuxserver/tvheadend"},{"location":"images/docker-tvheadend/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/tvheadend:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-tvheadend/#application-setup","text":"The setup depends if you run the one of the stable tags or use latest. Running latest is the easiest as it has a setup wizard. Stable First thing to do is to go to Configuration --> DVB Inputs --> TV adapters and add your LNB/switch info. Then create a new network in the Networks tab and set the correct pre-defined muxes and orbital position. Go back to the TV adapters tab and add the newly created network under universal LNB. Go back to the Networks tab and mark the network you created earlier and press the Force Scan button. Tvheadend will now scan the muxes for services. After the scan is done, head to the Services tab and find the services you want as channels, mark them, and press map services. They should now appear under Configuration --> Channel/EPG. Latest The first thing to do is to run the setup wizard. If it doesn't pop up at first login, you can find it in Configuration --> General --> Base and click Start Wizard. This will guide you to set up the basic parts of tvheadend. Configuring XMLTV grabber To configure the XMLTV grabber, first check if your grabber is listed in Configuration --> Channel/EPG --> EPG Grabber Modules. If it's listed, you will have to configure the grabber before enabling. Find the path in the path field of your grabber. We will use the last part. It starts with tv_grab_. Add it after /usr/bin/ in the below command. There should be no space between Usr/bin/ and the part you added. docker exec -it -u abc tvheadend /usr/bin/for_you_to_fill_out --configure Now follow the onscreen progress. If you get asked about cache, just accept the default. After you have configured your grabber, you can go back and enable your grabber. If you allready have a configuration file, you can add it in the .xmltv folder where you mapped the /config volume. If it's not created, create it. Comskip This container comes with Comskip for commercial flagging of recordings. This you have to add in the recording config of tvheadend. Go to Configuration --> Recording. Change the view level to advanced in the top right corner, and add the below in the Post-processor command field. /usr/bin/comskip --ini=/config/comskip/comskip.ini \"%f\" Now comskip will run after each recording is finished. You will find comskip.ini in the comskip folder of your /config volume mapping. See the Comskip homepage for tuning of the ini file. FFmpeg FFmpeg is installed in /usr/bin/ in case you need to use it with pipe. EPG XML file If you have EPG data in XML format from a supplier, you can drop it in the data folder of your /config volume mapping. If it doesn't exist, create it. Then choose the XML file grabber in Configuration --> Channel/EPG --> EPG Grabber Modules. If you use WebGrab+Plus, choose the WebGrab+Plus XML file grabber. The XML file goes in the same path as above. The xml file has to be named guide.xml. For advanced setup of tvheadend, go to [Tvheadend][appurl] Picons We have added all the picons from picons in the folder /picons. To enable the use of these picons, add the path to the Channel icon path in Configuration --> General --> Base. You need to enable minimum advanced view level to see the picons options.","title":"Application Setup"},{"location":"images/docker-tvheadend/#additional-runtime-parameters","text":"In some cases it might be necessary to start tvheadend with additional parameters, for example to enable debugging or specify webroot for reverse proxy. Be sure to have the right parameters set, as adding the wrong once might lead to the container not starting correctly.","title":"Additional runtime parameters"},{"location":"images/docker-tvheadend/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-tvheadend/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: tvheadend: image: lscr.io/linuxserver/tvheadend:latest container_name: tvheadend environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - RUN_OPTS= #optional volumes: - /path/to/data:/config - /path/to/recordings:/recordings ports: - 9981:9981 - 9982:9982 devices: - /dev/dri:/dev/dri #optional - /dev/dvb:/dev/dvb #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-tvheadend/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=tvheadend \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e RUN_OPTS= `#optional` \\ -p 9981:9981 \\ -p 9982:9982 \\ -v /path/to/data:/config \\ -v /path/to/recordings:/recordings \\ --device /dev/dri:/dev/dri `#optional` \\ --device /dev/dvb:/dev/dvb `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/tvheadend:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-tvheadend/#host-vs-bridge","text":"If you use IPTV, SAT>IP or HDHomeRun, you need to create the container with --net=host and remove the -p flags. This is because to work with these services Tvheadend requires a multicast address of 239.255.255.250 and a UDP port of 1900 which at this time is not possible with docker bridge mode. If you have other host services which also use multicast such as SSDP/DLNA/Emby you may experience stabilty problems. These can be solved by giving tvheadend its own IP using macvlan.","title":"Host vs. Bridge"},{"location":"images/docker-tvheadend/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-tvheadend/#ports-p","text":"Parameter Function 9981 WebUI 9982 HTSP server port.","title":"Ports (-p)"},{"location":"images/docker-tvheadend/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. RUN_OPTS= Optionally specify additional arguments to be passed. See Additional runtime parameters.","title":"Environment Variables (-e)"},{"location":"images/docker-tvheadend/#volume-mappings-v","text":"Volume Function /config Where TVHeadend show store it's config files. /recordings Where you want the PVR to store recordings.","title":"Volume Mappings (-v)"},{"location":"images/docker-tvheadend/#device-mappings-device","text":"Parameter Function /dev/dri Only needed if you want to use your AMD/Intel GPU for hardware accelerated video encoding (vaapi). /dev/dvb Only needed if you want to pass through a DVB card to the container. If you use IPTV or HDHomeRun you can leave it out.","title":"Device Mappings (--device)"},{"location":"images/docker-tvheadend/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-tvheadend/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-tvheadend/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-tvheadend/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-tvheadend/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-tvheadend/#support-info","text":"Shell access whilst the container is running: docker exec -it tvheadend /bin/bash To monitor the logs of the container in realtime: docker logs -f tvheadend Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' tvheadend Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/tvheadend:latest","title":"Support Info"},{"location":"images/docker-tvheadend/#versions","text":"31.08.22: - Update sample env vars and how RUN_OPTS are handled. 19.08.22: - Switch to new picons builder. 16.04.22: - Added URL XMLTV grabber. 05.01.22: - Rebase to Alpine 3.15. Disable execinfo to fix builds. Update xmltv. 11.05.21: - Added Intel iHD driver support. 02.06.20: - Update to Alpine 3.12. 27.12.19: - Add requests and perl-json-xs package. 27.12.19: - Update to Alpine 3.11. 02.10.19: - Improve permission fixing on render & dvb devices. 18.08.19: - Add AMD drivers. 02.08.19: - Attempt to automatically fix permissions on /dev/dri and /dev/dvb. 28.06.19: - Rebasing to alpine 3.10. 27.03.19: - Rebase to Alpine 3.9, fix init logic to only chown once. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 01.03.19: - Bump xmltv to 0.6.1. 28.02.19: - add perl-lwp-useragent-determined. 17.02.19: - Bump xmltv to 5.70, ensure version tagging works by cloning tvheadend. 14.02.19: - Add picons path to config. 15.01.19: - Add pipeline logic and multi arch. 12.09.18: - Rebase to alpine 3.8 and use buildstage type build. 21.04.18: - Add JSON::XS Perl package for grab_tv_huro. 24.03.18: - Add dvbcsa package. 04.03.18: - Use sourceforge master rather than mirror for xmltv. 22.02.18: - Add lost libva-intel-driver. 21.02.18: - Fix wrong version of iconv used. 18.02.18: - Add vaapi support, some cleanup and dropping of deprecated options. 04.01.18: - Deprecate cpu_core routine lack of scaling. 11.12.17: - Rebase to alpine 3.7, linting fixes. 02.09.17: - Add codec dependencies. 13.07.17: - Increase uniformity across all archs. 08.07.17: - Update README with full path for comskip. 02.07.17: - Move to one branch for all 4.2 releases. 27.05.17: - Rebase to alpine 3.6. 01.05.17: - Update to tvheadend 4.2.1 stable. 18.04.17: - Use repo version of gnu-libiconv rather than compiling. 09.04.17: - Chain cpanm installs in one block and use --installdeps. 09.02.17: - Perl changes, add picons file to gitignore and update XMLTV to 0.5.69. 07.02.17: - Add variable to add additional runtime paramters. 05.02.17: - Update to alpine 3.5 and change dvb-apps to only compile needed libs. 14.11.16: - Add picons from picons.xyz to /picons folder and add info to README. 22.09.16: - Fix broken tv_grab_wg, libs for xmltv and update README. 18.09.16: - Update XMLTV to 0.5.68 and update README. 10.09.16: - Add layer badges to README. 05.09.16: - Initial Release.","title":"Versions"},{"location":"images/docker-ubooquity/","text":"linuxserver/ubooquity Ubooquity is a free, lightweight and easy-to-use home server for your comics and ebooks. Use it to access your files from anywhere, with a tablet, an e-reader, a phone or a computer. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ubooquity:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup IMPORTANT Ubooquity has now been upgraded to version 2 and for existing v1.x users we recommend cleaning your appdata and reinstalling, due to changes in the application itself making the two versions essentially incompatible with each other. Also the admin page and library pages are now on separate ports as detailed below. Access the admin page at http://:2203/ubooquity/admin and set a password. Then you can access the webui at http://:2202/ubooquity/ This container will automatically scan your files at startup. MAXMEM The quantity of memory allocated to Ubooquity depends on the hardware your are running it on. If this quantity is too small, you might sometime saturate it with when performing memory intensive operations. That\u2019s when you get java.lang.OutOfMemoryError: Java heap space errors. You can explicitly set the amount of memory Ubooquity is allowed to use (be careful to set a value lower than the actual physical memory of your hardware). Value is a number of megabytes ( put just a number, without MB ) If no value is set it will default to 512MB. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: ubooquity: image: lscr.io/linuxserver/ubooquity:latest container_name: ubooquity environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MAXMEM= volumes: - :/config - :/books - :/comics - :/files ports: - 2202:2202 - 2203:2203 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=ubooquity \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MAXMEM= \\ -p 2202:2202 \\ -p 2203:2203 \\ -v :/config \\ -v :/books \\ -v :/comics \\ -v :/files \\ --restart unless-stopped \\ lscr.io/linuxserver/ubooquity:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 2202 The library port. 2203 The admin port. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. MAXMEM= To set the maximum memory. ( ex: set '1024' for 1GB ) Volume Mappings ( -v ) Volume Function /config Config files and database for ubooquity. /books Location of books. /comics Location of comics. /files Location of raw files. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it ubooquity /bin/bash To monitor the logs of the container in realtime: docker logs -f ubooquity Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ubooquity Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ubooquity:latest Versions 10.10.22: - Rebasing to alpine 3.16, migrate to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 15.10.18: - Upgrade to Ubooquity 2.1.2. 23.08.18: - Rebase to alpine 3.8. 09.12.17: - Rebase to alpine 3.7. 07.10.17: - Upgrade to Ubooquity 2.1.1. 16.07.17: - Upgrade to Ubooquity 2.1.0, see setting up application section for important info for existing v1.x users. 26.05.17: - Rebase to alpine 3.6. 08.04.17: - Switch to java from 3.5 repo, fixes login crashes. 06.02.17: - Rebase to alpine 3.5. 06.12.16: - Initial Release.","title":"ubooquity"},{"location":"images/docker-ubooquity/#linuxserverubooquity","text":"Ubooquity is a free, lightweight and easy-to-use home server for your comics and ebooks. Use it to access your files from anywhere, with a tablet, an e-reader, a phone or a computer.","title":"linuxserver/ubooquity"},{"location":"images/docker-ubooquity/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/ubooquity:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-ubooquity/#application-setup","text":"IMPORTANT Ubooquity has now been upgraded to version 2 and for existing v1.x users we recommend cleaning your appdata and reinstalling, due to changes in the application itself making the two versions essentially incompatible with each other. Also the admin page and library pages are now on separate ports as detailed below. Access the admin page at http://:2203/ubooquity/admin and set a password. Then you can access the webui at http://:2202/ubooquity/ This container will automatically scan your files at startup.","title":"Application Setup"},{"location":"images/docker-ubooquity/#maxmem","text":"The quantity of memory allocated to Ubooquity depends on the hardware your are running it on. If this quantity is too small, you might sometime saturate it with when performing memory intensive operations. That\u2019s when you get java.lang.OutOfMemoryError: Java heap space errors. You can explicitly set the amount of memory Ubooquity is allowed to use (be careful to set a value lower than the actual physical memory of your hardware). Value is a number of megabytes ( put just a number, without MB ) If no value is set it will default to 512MB.","title":"MAXMEM"},{"location":"images/docker-ubooquity/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-ubooquity/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: ubooquity: image: lscr.io/linuxserver/ubooquity:latest container_name: ubooquity environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MAXMEM= volumes: - :/config - :/books - :/comics - :/files ports: - 2202:2202 - 2203:2203 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-ubooquity/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=ubooquity \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MAXMEM= \\ -p 2202:2202 \\ -p 2203:2203 \\ -v :/config \\ -v :/books \\ -v :/comics \\ -v :/files \\ --restart unless-stopped \\ lscr.io/linuxserver/ubooquity:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-ubooquity/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-ubooquity/#ports-p","text":"Parameter Function 2202 The library port. 2203 The admin port.","title":"Ports (-p)"},{"location":"images/docker-ubooquity/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. MAXMEM= To set the maximum memory. ( ex: set '1024' for 1GB )","title":"Environment Variables (-e)"},{"location":"images/docker-ubooquity/#volume-mappings-v","text":"Volume Function /config Config files and database for ubooquity. /books Location of books. /comics Location of comics. /files Location of raw files.","title":"Volume Mappings (-v)"},{"location":"images/docker-ubooquity/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-ubooquity/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-ubooquity/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-ubooquity/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-ubooquity/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-ubooquity/#support-info","text":"Shell access whilst the container is running: docker exec -it ubooquity /bin/bash To monitor the logs of the container in realtime: docker logs -f ubooquity Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' ubooquity Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/ubooquity:latest","title":"Support Info"},{"location":"images/docker-ubooquity/#versions","text":"10.10.22: - Rebasing to alpine 3.16, migrate to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 28.01.19: - Add pipeline logic and multi arch. 15.10.18: - Upgrade to Ubooquity 2.1.2. 23.08.18: - Rebase to alpine 3.8. 09.12.17: - Rebase to alpine 3.7. 07.10.17: - Upgrade to Ubooquity 2.1.1. 16.07.17: - Upgrade to Ubooquity 2.1.0, see setting up application section for important info for existing v1.x users. 26.05.17: - Rebase to alpine 3.6. 08.04.17: - Switch to java from 3.5 repo, fixes login crashes. 06.02.17: - Rebase to alpine 3.5. 06.12.16: - Initial Release.","title":"Versions"},{"location":"images/docker-unifi-controller/","text":"linuxserver/unifi-controller The Unifi-controller software is a powerful, enterprise wireless software engine ideal for high-density client deployments requiring low latency and high uptime performance. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/unifi-controller:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c Application Setup The webui is at https://ip:8443, setup with the first run wizard. For Unifi to adopt other devices, e.g. an Access Point, it is required to change the inform IP address. Because Unifi runs inside Docker by default it uses an IP address not accessible by other devices. To change this go to Settings > System Settings > Controller Configuration and set the Controller Hostname/IP to a hostname or IP address accessible by your devices. Additionally the checkbox \"Override inform host with controller hostname/IP\" has to be checked, so that devices can connect to the controller during adoption (devices use the inform-endpoint during adoption). In order to manually adopt a device take these steps: ssh ubnt@$AP-IP set-inform http://$address:8080/inform The default device password is ubnt . $address is the IP address of the host you are running this container on and $AP-IP is the Access Point IP address. When using a Security Gateway (router) it could be that network connected devices are unable to obtain an ip address. This can be fixed by setting \"DHCP Gateway IP\", under Settings > Networks > network_name, to a correct (and accessable) ip address. Strict reverse proxies This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: unifi-controller: image: lscr.io/linuxserver/unifi-controller:latest container_name: unifi-controller environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MEM_LIMIT=1024 #optional - MEM_STARTUP=1024 #optional volumes: - :/config ports: - 8443:8443 - 3478:3478/udp - 10001:10001/udp - 8080:8080 - 1900:1900/udp #optional - 8843:8843 #optional - 8880:8880 #optional - 6789:6789 #optional - 5514:5514/udp #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=unifi-controller \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MEM_LIMIT=1024 `#optional` \\ -e MEM_STARTUP=1024 `#optional` \\ -p 8443:8443 \\ -p 3478:3478/udp \\ -p 10001:10001/udp \\ -p 8080:8080 \\ -p 1900:1900/udp `#optional` \\ -p 8843:8843 `#optional` \\ -p 8880:8880 `#optional` \\ -p 6789:6789 `#optional` \\ -p 5514:5514/udp `#optional` \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/unifi-controller:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 8443 Unifi web admin port 3478/udp Unifi STUN port 10001/udp Required for AP discovery 8080 Required for device communication 1900/udp Required for Make controller discoverable on L2 network option 8843 Unifi guest portal HTTPS redirect port 8880 Unifi guest portal HTTP redirect port 6789 For mobile throughput test 5514/udp Remote syslog port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use (e.g. Europe/London) - see list MEM_LIMIT=1024 Optionally change the Java memory limit (in Megabytes). Set to default to reset to default MEM_STARTUP=1024 Optionally change the Java initial/minimum memory (in Megabytes). Set to default to reset to default Volume Mappings ( -v ) Volume Function /config All Unifi data stored here Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it unifi-controller /bin/bash To monitor the logs of the container in realtime: docker logs -f unifi-controller Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' unifi-controller Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/unifi-controller:latest Versions 30.11.22: - Bump JRE to 11. 01.06.22: - Deprecate armhf. 23.12.21: - Move min/max memory config from run to system.properties. 22.12.21: - Move deb package install to first init to avoid overlayfs performance issues. 13.12.21: - Rebase 64 bit containers to Focal. 11.12.21: - Add java opts to mitigate CVE-2021-44228. 11.06.21: - Allow for changing Java initial mem via new optional environment variable. 12.01.21: - Deprecate the LTS tag as Unifi no longer releases LTS stable builds. Existing users can switch to the latest tag. Direct upgrade from 5.6.42 (LTS) to 6.0.42 (latest) tested successfully. 17.07.20: - Rebase 64 bit containers to Bionic and Mongo 3.6. 16.06.20: - Add logrotate. 02.06.20: - Updated port list & descriptions. Moved some ports to optional. 14.11.19: - Changed url for deb package to match new Ubiquity domain. 29.07.19: - Allow for changing Java mem limit via new optional environment variable. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.02.19: - Initial release of new unifi-controller image with new tags and pipeline logic","title":"unifi-controller"},{"location":"images/docker-unifi-controller/#linuxserverunifi-controller","text":"The Unifi-controller software is a powerful, enterprise wireless software engine ideal for high-density client deployments requiring low latency and high uptime performance.","title":"linuxserver/unifi-controller"},{"location":"images/docker-unifi-controller/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/unifi-controller:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u274c","title":"Supported Architectures"},{"location":"images/docker-unifi-controller/#application-setup","text":"The webui is at https://ip:8443, setup with the first run wizard. For Unifi to adopt other devices, e.g. an Access Point, it is required to change the inform IP address. Because Unifi runs inside Docker by default it uses an IP address not accessible by other devices. To change this go to Settings > System Settings > Controller Configuration and set the Controller Hostname/IP to a hostname or IP address accessible by your devices. Additionally the checkbox \"Override inform host with controller hostname/IP\" has to be checked, so that devices can connect to the controller during adoption (devices use the inform-endpoint during adoption). In order to manually adopt a device take these steps: ssh ubnt@$AP-IP set-inform http://$address:8080/inform The default device password is ubnt . $address is the IP address of the host you are running this container on and $AP-IP is the Access Point IP address. When using a Security Gateway (router) it could be that network connected devices are unable to obtain an ip address. This can be fixed by setting \"DHCP Gateway IP\", under Settings > Networks > network_name, to a correct (and accessable) ip address.","title":"Application Setup"},{"location":"images/docker-unifi-controller/#strict-reverse-proxies","text":"This image uses a self-signed certificate by default. This naturally means the scheme is https . If you are using a reverse proxy which validates certificates, you need to disable this check for the container .","title":"Strict reverse proxies"},{"location":"images/docker-unifi-controller/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-unifi-controller/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: unifi-controller: image: lscr.io/linuxserver/unifi-controller:latest container_name: unifi-controller environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - MEM_LIMIT=1024 #optional - MEM_STARTUP=1024 #optional volumes: - :/config ports: - 8443:8443 - 3478:3478/udp - 10001:10001/udp - 8080:8080 - 1900:1900/udp #optional - 8843:8843 #optional - 8880:8880 #optional - 6789:6789 #optional - 5514:5514/udp #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-unifi-controller/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=unifi-controller \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e MEM_LIMIT=1024 `#optional` \\ -e MEM_STARTUP=1024 `#optional` \\ -p 8443:8443 \\ -p 3478:3478/udp \\ -p 10001:10001/udp \\ -p 8080:8080 \\ -p 1900:1900/udp `#optional` \\ -p 8843:8843 `#optional` \\ -p 8880:8880 `#optional` \\ -p 6789:6789 `#optional` \\ -p 5514:5514/udp `#optional` \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/unifi-controller:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-unifi-controller/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-unifi-controller/#ports-p","text":"Parameter Function 8443 Unifi web admin port 3478/udp Unifi STUN port 10001/udp Required for AP discovery 8080 Required for device communication 1900/udp Required for Make controller discoverable on L2 network option 8843 Unifi guest portal HTTPS redirect port 8880 Unifi guest portal HTTP redirect port 6789 For mobile throughput test 5514/udp Remote syslog port","title":"Ports (-p)"},{"location":"images/docker-unifi-controller/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use (e.g. Europe/London) - see list MEM_LIMIT=1024 Optionally change the Java memory limit (in Megabytes). Set to default to reset to default MEM_STARTUP=1024 Optionally change the Java initial/minimum memory (in Megabytes). Set to default to reset to default","title":"Environment Variables (-e)"},{"location":"images/docker-unifi-controller/#volume-mappings-v","text":"Volume Function /config All Unifi data stored here","title":"Volume Mappings (-v)"},{"location":"images/docker-unifi-controller/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-unifi-controller/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-unifi-controller/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-unifi-controller/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-unifi-controller/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-unifi-controller/#support-info","text":"Shell access whilst the container is running: docker exec -it unifi-controller /bin/bash To monitor the logs of the container in realtime: docker logs -f unifi-controller Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' unifi-controller Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/unifi-controller:latest","title":"Support Info"},{"location":"images/docker-unifi-controller/#versions","text":"30.11.22: - Bump JRE to 11. 01.06.22: - Deprecate armhf. 23.12.21: - Move min/max memory config from run to system.properties. 22.12.21: - Move deb package install to first init to avoid overlayfs performance issues. 13.12.21: - Rebase 64 bit containers to Focal. 11.12.21: - Add java opts to mitigate CVE-2021-44228. 11.06.21: - Allow for changing Java initial mem via new optional environment variable. 12.01.21: - Deprecate the LTS tag as Unifi no longer releases LTS stable builds. Existing users can switch to the latest tag. Direct upgrade from 5.6.42 (LTS) to 6.0.42 (latest) tested successfully. 17.07.20: - Rebase 64 bit containers to Bionic and Mongo 3.6. 16.06.20: - Add logrotate. 02.06.20: - Updated port list & descriptions. Moved some ports to optional. 14.11.19: - Changed url for deb package to match new Ubiquity domain. 29.07.19: - Allow for changing Java mem limit via new optional environment variable. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 10.02.19: - Initial release of new unifi-controller image with new tags and pipeline logic","title":"Versions"},{"location":"images/docker-webgrabplus/","text":"linuxserver/webgrabplus Webgrabplus is a multi-site incremental xmltv epg grabber. It collects tv-program guide data from selected tvguide sites for your favourite channels. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/webgrabplus:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup To configure WebGrab+Plus follow the documentation Please note that depending on your host this container may not work with the no-new-privileges=true security-opt. Note that there are some things in the guide that does not apply to this container. Below you can find the changes. The configuration files are found where your config volume is mounted. Do not change the filename tag in the configuration file! The /data volume mapping is where WebGrab+Plus outputs the xml file. To use the xml file in another program, you have to point it to the host path you mapped the /data volume to. To adjust the scheduled cron job for grabbing, edit the wg3-cron file found in the /config folder. After you have edited the the wg3-cron file, restart the container to apply the new schedule. Do not adjust the command! Note that due to something in version 3, we had to change the commands for scheduling the grab. If you have a version where there is a wg-cron file in your /config mount, delete it and use wg3-cron instead. Below is the syntax of the cron file. \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 minute (0 - 59) \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 hour (0 - 23) \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of month (1 - 31) \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 month (1 - 12) \u2502 \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of week (0 - 6) (Sunday to Saturday; \u2502 \u2502 \u2502 \u2502 \u2502 7 is also Sunday on some systems) \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 * * * * * /bin/bash /defaults/update.sh Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: webgrabplus: image: lscr.io/linuxserver/webgrabplus:latest container_name: webgrabplus hostname: webgrabplus mac_address: 00:00:00:00:00:00 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=webgrabplus \\ --hostname=webgrabplus \\ --mac-address=00:00:00:00:00:00 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/webgrabplus:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London Volume Mappings ( -v ) Volume Function /config Where webgrabplus should store it's config files. /data Where webgrabplus should store it's data files. Miscellaneous Options Parameter Function --hostname= Set the hostname for the container for the license check. --mac-address= Set the mac_address for the container for the license check. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it webgrabplus /bin/bash To monitor the logs of the container in realtime: docker logs -f webgrabplus Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' webgrabplus Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/webgrabplus:latest Versions 23.03.22: - Rebase to Alpine 3.16 and s6v3. Update to dotnet 6. 29.04.22: - Add hostname and mac_address arguments that are needed for the license check to compose and cli samples. 23.03.22: - Rebase to Alpine 3.15. 23.03.22: - Update to use dotnet instead of mono. 06.01.22: - Rebase to Ubuntu focal. Enable auto builds on version updates (beta and stable). 17.12.21: - Update to version 3.2.2 beta. 05.08.21: - Update to version 3.2.1 beta. 05.06.21: - Added mono-devel dependency. 04.06.21: - Update to version 3.1.8 beta. 22.03.21: - Update to version 3.1.7 beta. 07.03.21: - Update to version 3.1.6 beta. 29.01.21: - Update external version number to show as 3.1.5. 24.01.21: - Update to version 3.1.5 beta. 22.12.20: - Update to version 3.1.4 beta. 12.10.20: - Fix version number in jenkinsfile. 12.10.20: - Update to version 3.1.1 beta. 22.06.20: - Add mono webrequest library. 18.06.20: - Update to v3.1.0. 29.03.20: - Update to v3.0.0. Changed to use wg3-cron file. 28.05.19: - Update to v2.1.0 and beta v2.1.9, rebase to bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 21.03.19: - Update to beta 2.1.7. 19.02.19: - Add pipeline logic and multi arch. 18.01.18: - Initial Release.","title":"webgrabplus"},{"location":"images/docker-webgrabplus/#linuxserverwebgrabplus","text":"Webgrabplus is a multi-site incremental xmltv epg grabber. It collects tv-program guide data from selected tvguide sites for your favourite channels.","title":"linuxserver/webgrabplus"},{"location":"images/docker-webgrabplus/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/webgrabplus:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-webgrabplus/#application-setup","text":"To configure WebGrab+Plus follow the documentation Please note that depending on your host this container may not work with the no-new-privileges=true security-opt. Note that there are some things in the guide that does not apply to this container. Below you can find the changes. The configuration files are found where your config volume is mounted. Do not change the filename tag in the configuration file! The /data volume mapping is where WebGrab+Plus outputs the xml file. To use the xml file in another program, you have to point it to the host path you mapped the /data volume to. To adjust the scheduled cron job for grabbing, edit the wg3-cron file found in the /config folder. After you have edited the the wg3-cron file, restart the container to apply the new schedule. Do not adjust the command! Note that due to something in version 3, we had to change the commands for scheduling the grab. If you have a version where there is a wg-cron file in your /config mount, delete it and use wg3-cron instead. Below is the syntax of the cron file. \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 minute (0 - 59) \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 hour (0 - 23) \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of month (1 - 31) \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 month (1 - 12) \u2502 \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of week (0 - 6) (Sunday to Saturday; \u2502 \u2502 \u2502 \u2502 \u2502 7 is also Sunday on some systems) \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 \u2502 * * * * * /bin/bash /defaults/update.sh","title":"Application Setup"},{"location":"images/docker-webgrabplus/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-webgrabplus/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: webgrabplus: image: lscr.io/linuxserver/webgrabplus:latest container_name: webgrabplus hostname: webgrabplus mac_address: 00:00:00:00:00:00 environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config - /path/to/data:/data restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-webgrabplus/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=webgrabplus \\ --hostname=webgrabplus \\ --mac-address=00:00:00:00:00:00 \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -v /path/to/config:/config \\ -v /path/to/data:/data \\ --restart unless-stopped \\ lscr.io/linuxserver/webgrabplus:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-webgrabplus/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-webgrabplus/#ports-p","text":"Parameter Function","title":"Ports (-p)"},{"location":"images/docker-webgrabplus/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London","title":"Environment Variables (-e)"},{"location":"images/docker-webgrabplus/#volume-mappings-v","text":"Volume Function /config Where webgrabplus should store it's config files. /data Where webgrabplus should store it's data files.","title":"Volume Mappings (-v)"},{"location":"images/docker-webgrabplus/#miscellaneous-options","text":"Parameter Function --hostname= Set the hostname for the container for the license check. --mac-address= Set the mac_address for the container for the license check.","title":"Miscellaneous Options"},{"location":"images/docker-webgrabplus/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-webgrabplus/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-webgrabplus/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-webgrabplus/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-webgrabplus/#support-info","text":"Shell access whilst the container is running: docker exec -it webgrabplus /bin/bash To monitor the logs of the container in realtime: docker logs -f webgrabplus Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' webgrabplus Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/webgrabplus:latest","title":"Support Info"},{"location":"images/docker-webgrabplus/#versions","text":"23.03.22: - Rebase to Alpine 3.16 and s6v3. Update to dotnet 6. 29.04.22: - Add hostname and mac_address arguments that are needed for the license check to compose and cli samples. 23.03.22: - Rebase to Alpine 3.15. 23.03.22: - Update to use dotnet instead of mono. 06.01.22: - Rebase to Ubuntu focal. Enable auto builds on version updates (beta and stable). 17.12.21: - Update to version 3.2.2 beta. 05.08.21: - Update to version 3.2.1 beta. 05.06.21: - Added mono-devel dependency. 04.06.21: - Update to version 3.1.8 beta. 22.03.21: - Update to version 3.1.7 beta. 07.03.21: - Update to version 3.1.6 beta. 29.01.21: - Update external version number to show as 3.1.5. 24.01.21: - Update to version 3.1.5 beta. 22.12.20: - Update to version 3.1.4 beta. 12.10.20: - Fix version number in jenkinsfile. 12.10.20: - Update to version 3.1.1 beta. 22.06.20: - Add mono webrequest library. 18.06.20: - Update to v3.1.0. 29.03.20: - Update to v3.0.0. Changed to use wg3-cron file. 28.05.19: - Update to v2.1.0 and beta v2.1.9, rebase to bionic. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 21.03.19: - Update to beta 2.1.7. 19.02.19: - Add pipeline logic and multi arch. 18.01.18: - Initial Release.","title":"Versions"},{"location":"images/docker-webtop/","text":"linuxserver/webtop Webtop - Alpine, Ubuntu, Fedora, and Arch based containers containing full desktop environments in officially supported flavors accessible via any modern web browser. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/webtop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 XFCE Alpine ubuntu-xfce \u2705 XFCE Ubuntu fedora-xfce \u2705 XFCE Fedora arch-xfce \u2705 XFCE Arch alpine-kde \u2705 KDE Alpine ubuntu-kde \u2705 KDE Ubuntu fedora-kde \u2705 KDE Fedora arch-kde \u2705 KDE Arch alpine-mate \u2705 MATE Alpine ubuntu-mate \u2705 MATE Ubuntu fedora-mate \u2705 MATE Fedora arch-mate \u2705 MATE Arch alpine-i3 \u2705 i3 Alpine ubuntu-i3 \u2705 i3 Ubuntu fedora-i3 \u2705 i3 Fedora arch-i3 \u2705 i3 Arch alpine-openbox \u2705 Openbox Alpine ubuntu-openbox \u2705 Openbox Ubuntu fedora-openbox \u2705 Openbox Fedora arch-openbox \u2705 Openbox Arch alpine-icewm \u2705 IceWM Alpine ubuntu-icewm \u2705 IceWM Ubuntu fedora-icewm \u2705 IceWM Fedora arch-icewm \u2705 IceWM Arch Application Setup The Webtop can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false . You can access advanced features of the Guacamole remote desktop using ctrl+alt+shift enabling you to use remote copy/paste, an onscreen keyboard, or a baked in file manager. This can also be accessed by clicking the small circle on the left side of the screen. Modern GUI desktop apps (including some flavors terminals) have issues with the latest Docker and syscall compatibility, you can use Docker with the --security-opt seccomp=unconfined setting to allow these syscalls or try podman as they have updated their codebase to support them Unlike our other containers these Desktops are not designed to be upgraded by Docker, you will keep your home directoy but anything you installed system level will be lost if you upgrade an existing container. To keep packages up to date instead use Ubuntu's own apt, Alpine's apk, Fedora's dnf, or Arch's pacman program Keyboard Layouts This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard If you ever lose your password you can always reset it by execing into the container as root: docker exec -it webtop passwd abc By default we perform all logic for the abc user and we reccomend using that user only in the container, but new users can be added as long as there is a startwm.sh executable script in their home directory. All of these containers are configured with passwordless sudo, we make no efforts to secure or harden these containers and we do not reccomend ever publishing their ports to the public Internet. Hardware Acceleration (Ubuntu Container Only) Many desktop application will need access to a GPU to function properly and even some Desktop Environments have compisitor effects that will not function without a GPU. This is not a hard requirement and all base images will function without a video device mounted into the container. Intel/ATI/AMD To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device. Nvidia Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container. Arm Devices Best effort is made to install tools to allow mounting in /dev/dri on Arm devices. In most cases if /dev/dri exists on the host it should just work. If running a Raspberry Pi 4 be sure to enable dtoverlay=vc4-fkms-v3d in your usercfg.txt. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: webtop: image: lscr.io/linuxserver/webtop:latest container_name: webtop security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional - TITLE=Webtop #optional volumes: - /path/to/data:/config - /var/run/docker.sock:/var/run/docker.sock #optional ports: - 3000:3000 devices: - /dev/dri:/dev/dri #optional shm_size: \"1gb\" #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=webtop \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -e TITLE=Webtop `#optional` \\ -p 3000:3000 \\ -v /path/to/data:/config \\ -v /var/run/docker.sock:/var/run/docker.sock `#optional` \\ --device /dev/dri:/dev/dri `#optional` \\ --shm-size=\"1gb\" `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/webtop:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Web Desktop GUI Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options. TITLE=Webtop String which will be used as page/tab title in the web browser. Volume Mappings ( -v ) Volume Function /config abc users home directory /var/run/docker.sock Docker Socket on the system, if you want to use Docker in the container Device Mappings ( --device ) Parameter Function /dev/dri Add this for GL support (Linux hosts only) Miscellaneous Options Parameter Function --shm-size= We set this to 1 gig to prevent modern web browsers from crashing --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it webtop /bin/bash To monitor the logs of the container in realtime: docker logs -f webtop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' webtop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/webtop:latest Versions 21.10.22: - Rebase xfce to Alpine 3.16, migrate to s6v3. 12.03.22: - Add documentation for mounting in a GPU. 05.02.22: - Rebase KDE Ubuntu to Jammy, add new documentation for updated gclient, stop recommending priv mode. 21.09.21: - Add Fedora and Arch images, show seccomp settings in readme. 26.09.21: - Rebase to Alpine versions to 3.14. 20.04.21: - Initial release.","title":"webtop"},{"location":"images/docker-webtop/#linuxserverwebtop","text":"Webtop - Alpine, Ubuntu, Fedora, and Arch based containers containing full desktop environments in officially supported flavors accessible via any modern web browser.","title":"linuxserver/webtop"},{"location":"images/docker-webtop/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/webtop:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-webtop/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 XFCE Alpine ubuntu-xfce \u2705 XFCE Ubuntu fedora-xfce \u2705 XFCE Fedora arch-xfce \u2705 XFCE Arch alpine-kde \u2705 KDE Alpine ubuntu-kde \u2705 KDE Ubuntu fedora-kde \u2705 KDE Fedora arch-kde \u2705 KDE Arch alpine-mate \u2705 MATE Alpine ubuntu-mate \u2705 MATE Ubuntu fedora-mate \u2705 MATE Fedora arch-mate \u2705 MATE Arch alpine-i3 \u2705 i3 Alpine ubuntu-i3 \u2705 i3 Ubuntu fedora-i3 \u2705 i3 Fedora arch-i3 \u2705 i3 Arch alpine-openbox \u2705 Openbox Alpine ubuntu-openbox \u2705 Openbox Ubuntu fedora-openbox \u2705 Openbox Fedora arch-openbox \u2705 Openbox Arch alpine-icewm \u2705 IceWM Alpine ubuntu-icewm \u2705 IceWM Ubuntu fedora-icewm \u2705 IceWM Fedora arch-icewm \u2705 IceWM Arch","title":"Version Tags"},{"location":"images/docker-webtop/#application-setup","text":"The Webtop can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true You can also force login on the '/' path without this parameter by passing the environment variable -e AUTO_LOGIN=false . You can access advanced features of the Guacamole remote desktop using ctrl+alt+shift enabling you to use remote copy/paste, an onscreen keyboard, or a baked in file manager. This can also be accessed by clicking the small circle on the left side of the screen. Modern GUI desktop apps (including some flavors terminals) have issues with the latest Docker and syscall compatibility, you can use Docker with the --security-opt seccomp=unconfined setting to allow these syscalls or try podman as they have updated their codebase to support them Unlike our other containers these Desktops are not designed to be upgraded by Docker, you will keep your home directoy but anything you installed system level will be lost if you upgrade an existing container. To keep packages up to date instead use Ubuntu's own apt, Alpine's apk, Fedora's dnf, or Arch's pacman program","title":"Application Setup"},{"location":"images/docker-webtop/#keyboard-layouts","text":"This should match the layout on the computer you are accessing the container from. The keyboard layouts available for use are: * da-dk-qwerty- Danish keyboard * de-ch-qwertz- Swiss German keyboard (qwertz) * de-de-qwertz- German keyboard (qwertz) - OSK available * en-gb-qwerty- English (UK) keyboard * en-us-qwerty- English (US) keyboard - OSK available DEFAULT * es-es-qwerty- Spanish keyboard - OSK available * fr-ch-qwertz- Swiss French keyboard (qwertz) * fr-fr-azerty- French keyboard (azerty) - OSK available * it-it-qwerty- Italian keyboard - OSK available * ja-jp-qwerty- Japanese keyboard * pt-br-qwerty- Portuguese Brazilian keyboard * sv-se-qwerty- Swedish keyboard * tr-tr-qwerty- Turkish-Q keyboard If you ever lose your password you can always reset it by execing into the container as root: docker exec -it webtop passwd abc By default we perform all logic for the abc user and we reccomend using that user only in the container, but new users can be added as long as there is a startwm.sh executable script in their home directory. All of these containers are configured with passwordless sudo, we make no efforts to secure or harden these containers and we do not reccomend ever publishing their ports to the public Internet.","title":"Keyboard Layouts"},{"location":"images/docker-webtop/#hardware-acceleration-ubuntu-container-only","text":"Many desktop application will need access to a GPU to function properly and even some Desktop Environments have compisitor effects that will not function without a GPU. This is not a hard requirement and all base images will function without a video device mounted into the container.","title":"Hardware Acceleration (Ubuntu Container Only)"},{"location":"images/docker-webtop/#intelatiamd","text":"To leverage hardware acceleration you will need to mount /dev/dri video device inside of the conainer. --device=/dev/dri:/dev/dri We will automatically ensure the abc user inside of the container has the proper permissions to access this device.","title":"Intel/ATI/AMD"},{"location":"images/docker-webtop/#nvidia","text":"Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: https://github.com/NVIDIA/nvidia-docker We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime --runtime=nvidia and add an environment variable -e NVIDIA_VISIBLE_DEVICES=all (can also be set to a specific gpu's UUID, this can be discovered by running nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv ). NVIDIA automatically mounts the GPU and drivers from your host into the container.","title":"Nvidia"},{"location":"images/docker-webtop/#arm-devices","text":"Best effort is made to install tools to allow mounting in /dev/dri on Arm devices. In most cases if /dev/dri exists on the host it should just work. If running a Raspberry Pi 4 be sure to enable dtoverlay=vc4-fkms-v3d in your usercfg.txt.","title":"Arm Devices"},{"location":"images/docker-webtop/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-webtop/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: webtop: image: lscr.io/linuxserver/webtop:latest container_name: webtop security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SUBFOLDER=/ #optional - KEYBOARD=en-us-qwerty #optional - TITLE=Webtop #optional volumes: - /path/to/data:/config - /var/run/docker.sock:/var/run/docker.sock #optional ports: - 3000:3000 devices: - /dev/dri:/dev/dri #optional shm_size: \"1gb\" #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-webtop/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=webtop \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SUBFOLDER=/ `#optional` \\ -e KEYBOARD=en-us-qwerty `#optional` \\ -e TITLE=Webtop `#optional` \\ -p 3000:3000 \\ -v /path/to/data:/config \\ -v /var/run/docker.sock:/var/run/docker.sock `#optional` \\ --device /dev/dri:/dev/dri `#optional` \\ --shm-size=\"1gb\" `#optional` \\ --restart unless-stopped \\ lscr.io/linuxserver/webtop:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-webtop/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-webtop/#ports-p","text":"Parameter Function 3000 Web Desktop GUI","title":"Ports (-p)"},{"location":"images/docker-webtop/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SUBFOLDER=/ Specify a subfolder to use with reverse proxies, IE /subfolder/ KEYBOARD=en-us-qwerty See the keyboard layouts section for more information and options. TITLE=Webtop String which will be used as page/tab title in the web browser.","title":"Environment Variables (-e)"},{"location":"images/docker-webtop/#volume-mappings-v","text":"Volume Function /config abc users home directory /var/run/docker.sock Docker Socket on the system, if you want to use Docker in the container","title":"Volume Mappings (-v)"},{"location":"images/docker-webtop/#device-mappings-device","text":"Parameter Function /dev/dri Add this for GL support (Linux hosts only)","title":"Device Mappings (--device)"},{"location":"images/docker-webtop/#miscellaneous-options","text":"Parameter Function --shm-size= We set this to 1 gig to prevent modern web browsers from crashing --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-webtop/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-webtop/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-webtop/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-webtop/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-webtop/#support-info","text":"Shell access whilst the container is running: docker exec -it webtop /bin/bash To monitor the logs of the container in realtime: docker logs -f webtop Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' webtop Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/webtop:latest","title":"Support Info"},{"location":"images/docker-webtop/#versions","text":"21.10.22: - Rebase xfce to Alpine 3.16, migrate to s6v3. 12.03.22: - Add documentation for mounting in a GPU. 05.02.22: - Rebase KDE Ubuntu to Jammy, add new documentation for updated gclient, stop recommending priv mode. 21.09.21: - Add Fedora and Arch images, show seccomp settings in readme. 26.09.21: - Rebase to Alpine versions to 3.14. 20.04.21: - Initial release.","title":"Versions"},{"location":"images/docker-wikijs/","text":"linuxserver/wikijs Wikijs A modern, lightweight and powerful wiki app built on NodeJS. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/wikijs:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: wikijs: image: lscr.io/linuxserver/wikijs:latest container_name: wikijs environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/data ports: - 3000:3000 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=wikijs \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/wikijs:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 Port for Wiki.js's web interface. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where Wiki.js config is stored. /data Where Wiki.js data is stored. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it wikijs /bin/bash To monitor the logs of the container in realtime: docker logs -f wikijs Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' wikijs Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/wikijs:latest Versions 10.10.22: - Rebasing to alpine 3.16, migrate to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 28.04.20: - Added python dependency for some NPM modules as well as git for storage module 14.12.19: - Initial Release.","title":"wikijs"},{"location":"images/docker-wikijs/#linuxserverwikijs","text":"Wikijs A modern, lightweight and powerful wiki app built on NodeJS.","title":"linuxserver/wikijs"},{"location":"images/docker-wikijs/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/wikijs:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-wikijs/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-wikijs/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: wikijs: image: lscr.io/linuxserver/wikijs:latest container_name: wikijs environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config - :/data ports: - 3000:3000 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-wikijs/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=wikijs \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 \\ -v :/config \\ -v :/data \\ --restart unless-stopped \\ lscr.io/linuxserver/wikijs:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-wikijs/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-wikijs/#ports-p","text":"Parameter Function 3000 Port for Wiki.js's web interface.","title":"Ports (-p)"},{"location":"images/docker-wikijs/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-wikijs/#volume-mappings-v","text":"Volume Function /config Where Wiki.js config is stored. /data Where Wiki.js data is stored.","title":"Volume Mappings (-v)"},{"location":"images/docker-wikijs/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-wikijs/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-wikijs/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-wikijs/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-wikijs/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-wikijs/#support-info","text":"Shell access whilst the container is running: docker exec -it wikijs /bin/bash To monitor the logs of the container in realtime: docker logs -f wikijs Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' wikijs Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/wikijs:latest","title":"Support Info"},{"location":"images/docker-wikijs/#versions","text":"10.10.22: - Rebasing to alpine 3.16, migrate to s6v3. 23.01.21: - Rebasing to alpine 3.13. 01.06.20: - Rebasing to alpine 3.12. 28.04.20: - Added python dependency for some NPM modules as well as git for storage module 14.12.19: - Initial Release.","title":"Versions"},{"location":"images/docker-wireguard/","text":"linuxserver/wireguard WireGuard\u00ae is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/wireguard:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Version Tags This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases with support for compiling Wireguard modules alpine \u2705 Stable releases based on Alpine without support for compiling Wireguard modules Application Setup During container start, it will first check if the wireguard module is already installed and loaded. Kernels newer than 5.6 generally have the wireguard module built-in (along with some older custom kernels). However, the module may not be enabled. Make sure it is enabled prior to starting the container. If the kernel is not built-in, or installed on host, the container will check if the kernel headers are present (in /usr/src ) and if not, it will attempt to download the necessary kernel headers from the ubuntu xenial/bionic , debian/raspbian buster repos; then will attempt to compile and install the kernel module. If the kernel headers are not found in either usr/src or in the repos mentioned, container will sleep indefinitely as wireguard cannot be installed. If you're on a debian/ubuntu based host with a custom or downstream distro provided kernel (ie. Pop!_OS), the container won't be able to install the kernel headers from the regular ubuntu and debian repos. In those cases, you can try installing the headers on the host via sudo apt install linux-headers-$(uname -r) (if distro version) and then add a volume mapping for /usr/src:/usr/src , or if custom built, map the location of the existing headers to allow the container to use host installed headers to build the kernel module (tested successful on Pop!_OS, ymmv). With regards to arm32/64 devices, Raspberry Pi 2-4 running the official ubuntu images or Raspbian Buster are supported out of the box. For all other devices and OSes, you can try installing the kernel headers on the host, and mapping /usr/src:/usr/src and it may just work (no guarantees). This can be run as a server or a client, based on the parameters used. Server Mode If the environment variable PEERS is set to a number or a list of strings separated by comma, the container will run in server mode and the necessary server and peer/client confs will be generated. The peer/client config qr codes will be output in the docker log. They will also be saved in text and png format under /config/peerX in case PEERS is a variable and an integer or /config/peer_X in case a list of names was provided instead of an integer. Variables SERVERURL , SERVERPORT , INTERNAL_SUBNET and PEERDNS are optional variables used for server mode. Any changes to these environment variables will trigger regeneration of server and peer confs. Peer/client confs will be recreated with existing private/public keys. Delete the peer folders for the keys to be recreated along with the confs. To add more peers/clients later on, you increment the PEERS environment variable or add more elements to the list and recreate the container. To display the QR codes of active peers again, you can use the following command and list the peer numbers as arguments: docker exec -it wireguard /app/show-peer 1 4 5 or docker exec -it wireguard /app/show-peer myPC myPhone myTablet (Keep in mind that the QR codes are also stored as PNGs in the config folder). The templates used for server and peer confs are saved under /config/templates . Advanced users can modify these templates and force conf generation by deleting /config/wg0.conf and restarting the container. Client Mode Do not set the PEERS environment variable. Drop your client conf into the config folder as /config/wg0.conf and start the container. If you get IPv6 related errors in the log and connection cannot be established, edit the AllowedIPs line in your peer/client wg0.conf to include only 0.0.0.0/0 and not ::/0 ; and restart the container. Road warriors, roaming and returning home If you plan to use Wireguard both remotely and locally, say on your mobile phone, you will need to consider routing. Most firewalls will not route ports forwarded on your WAN interface correctly to the LAN out of the box. This means that when you return home, even though you can see the Wireguard server, the return packets will probably get lost. This is not a Wireguard specific issue and the two generally accepted solutions are NAT reflection (setting your edge router/firewall up in such a way as it translates internal packets correctly) or split horizon DNS (setting your internal DNS to return the private rather than public IP when connecting locally). Both of these approaches have positives and negatives however their setup is out of scope for this document as everyone's network layout and equipment will be different. Maintaining local access to attached services ** Note: This is not a supported configuration by Linuxserver.io - use at your own risk. When routing via Wireguard from another container using the service option in docker, you might lose access to the containers webUI locally. To avoid this, exclude the docker subnet from being routed via Wireguard by modifying your wg0.conf like so (modifying the subnets as you require): ini [Interface] PrivateKey = Address = 9.8.7.6/32 DNS = 8.8.8.8 PostUp = DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.0.0/16; HOMENET2=10.0.0.0/8; HOMENET3=172.16.0.0/12; ip route add $HOMENET3 via $DROUTE;ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT -d $HOMENET3 -j ACCEPT; iptables -A OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT PreDown = HOMENET=192.168.0.0/16; HOMENET2=10.0.0.0/8; HOMENET3=172.16.0.0/12; ip route del $HOMENET3 via $DROUTE;ip route del $HOMENET2 via $DROUTE; ip route del $HOMENET via $DROUTE; iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT; iptables -D OUTPUT -d $HOMENET -j ACCEPT; iptables -D OUTPUT -d $HOMENET2 -j ACCEPT; iptables -D OUTPUT -d $HOMENET3 -j ACCEPT Site-to-site VPN ** Note: This is not a supported configuration by Linuxserver.io - use at your own risk. Site-to-site VPN in server mode requires customizing the AllowedIPs statement for a specific peer in wg0.conf . Since wg0.conf is autogenerated when server vars are changed, it is not recommended to edit it manually. In order to customize the AllowedIPs statement for a specific peer in wg0.conf , you can set an env var SERVER_ALLOWEDIPS_PEER_ to the additional subnets you'd like to add, comma separated and excluding the peer IP (ie. \"192.168.1.0/24,192.168.2.0/24\" ). Replace with either the name or number of a peer (whichever is used in the PEERS var). For instance SERVER_ALLOWEDIPS_PEER_laptop=\"192.168.1.0/24,192.168.2.0/24\" will result in the wg0.conf entry AllowedIPs = 10.13.13.2,192.168.1.0/24,192.168.2.0/24 for the peer named laptop . Keep in mind that this var will only be considered when the confs are regenerated. Adding this var for an existing peer won't force a regeneration. You can delete wg0.conf and restart the container to force regeneration if necessary. Don't forget to set the necessary POSTUP and POSTDOWN rules in your client's peer conf for lan access. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: wireguard: image: lscr.io/linuxserver/wireguard:latest container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SERVERURL=wireguard.domain.com #optional - SERVERPORT=51820 #optional - PEERS=1 #optional - PEERDNS=auto #optional - INTERNAL_SUBNET=10.13.13.0 #optional - ALLOWEDIPS=0.0.0.0/0 #optional - LOG_CONFS=true #optional volumes: - /path/to/appdata/config:/config - /lib/modules:/lib/modules #optional ports: - 51820:51820/udp sysctls: - net.ipv4.conf.all.src_valid_mark=1 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=wireguard \\ --cap-add=NET_ADMIN \\ --cap-add=SYS_MODULE \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SERVERURL=wireguard.domain.com `#optional` \\ -e SERVERPORT=51820 `#optional` \\ -e PEERS=1 `#optional` \\ -e PEERDNS=auto `#optional` \\ -e INTERNAL_SUBNET=10.13.13.0 `#optional` \\ -e ALLOWEDIPS=0.0.0.0/0 `#optional` \\ -e LOG_CONFS=true `#optional` \\ -p 51820:51820/udp \\ -v /path/to/appdata/config:/config \\ -v /lib/modules:/lib/modules `#optional` \\ --sysctl=\"net.ipv4.conf.all.src_valid_mark=1\" \\ --restart unless-stopped \\ lscr.io/linuxserver/wireguard:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 51820/udp wireguard port Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SERVERURL=wireguard.domain.com External IP or domain name for docker host. Used in server mode. If set to auto , the container will try to determine and set the external IP automatically SERVERPORT=51820 External port for docker host. Used in server mode. PEERS=1 Number of peers to create confs for. Required for server mode. Can also be a list of names: myPC,myPhone,myTablet (alphanumeric only) PEERDNS=auto DNS server set in peer/client configs (can be set as 8.8.8.8 ). Used in server mode. Defaults to auto , which uses wireguard docker host's DNS via included CoreDNS forward. INTERNAL_SUBNET=10.13.13.0 Internal subnet for the wireguard and server and peers (only change if it clashes). Used in server mode. ALLOWEDIPS=0.0.0.0/0 The IPs/Ranges that the peers will be able to reach using the VPN connection. If not specified the default value is: '0.0.0.0/0, ::0/0' This will cause ALL traffic to route through the VPN, if you want split tunneling, set this to only the IPs you would like to use the tunnel AND the ip of the server's WG ip, such as 10.13.13.1. LOG_CONFS=true Generated QR codes will be displayed in the docker log. Set to false to skip log output. Volume Mappings ( -v ) Volume Function /config Contains all relevant configuration files. /lib/modules Maps host's modules folder. Only required if compiling wireguard modules. Miscellaneous Options Parameter Function --sysctl= Required for client mode. Portainer notice {% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %} Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it wireguard /bin/bash To monitor the logs of the container in realtime: docker logs -f wireguard Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' wireguard Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/wireguard:latest Versions 26.10.22: - Better handle unsupported peer names. Improve logging. 12.10.22: - Add Alpine branch. Optimize wg and coredns services. 09.10.22: - Switch back to iptables-legacy due to issues on some hosts. 04.10.22: - Rebase to Jammy. Upgrade to s6v3. 16.05.22: - Improve NAT handling in server mode when multiple ethernet devices are present. 23.04.22: - Add pre-shared key support. Automatically added to all new peer confs generated, existing ones are left without to ensure no breaking changes. 10.04.22: - Rebase to Ubuntu Focal. Add LOG_CONFS env var. Remove deprecated add-peer command. 28.10.21: - Add site-to-site vpn support. 11.02.21: - Fix bug related to changing internal subnet and named peer confs not updating. 06.10.20: - Disable CoreDNS in client mode, or if port 53 is already in use in server mode. 04.10.20: - Allow to specify a list of names as PEERS and add ALLOWEDIPS environment variable. Also, add peer name/id to each one of the peer sections in wg0.conf. Important: Existing users need to delete /config/templates/peer.conf and restart 27.09.20: - Cleaning service binding example to have accurate PreDown script. 06.08.20: - Replace resolvconf with openresolv due to dns issues when a client based on this image is connected to a server also based on this image. Add IPv6 info to readme. Display kernel version in logs. 29.07.20: - Update Coredns config to detect dns loops (existing users need to delete /config/coredns/Corefile and restart). 27.07.20: - Update Coredns config to prevent issues with non-user-defined bridge networks (existing users need to delete /config/coredns/Corefile and restart). 05.07.20: - Add Debian updates and security repos for headers. 25.06.20: - Simplify module tests, prevent iptables issues from resulting in false negatives. 19.06.20: - Add support for Ubuntu Focal (20.04) kernels. Compile wireguard tools and kernel module instead of using the ubuntu packages. Make module install optional. Improve verbosity in logs. 29.05.20: - Add support for 64bit raspbian. 28.04.20: - Add Buster/Stretch backports repos for Debian. Tested with OMV 5 and OMV 4 (on kernel 4.19.0-0.bpo.8-amd64). 20.04.20: - Fix typo in client mode conf existence check. 13.04.20: - Fix bug that forced conf recreation on every start. 08.04.20: - Add arm32/64 builds and enable multi-arch (rpi4 with ubuntu and raspbian buster tested). Add CoreDNS for PEERDNS=auto setting. Update the add-peer / show-peer scripts to utilize the templates and the INTERNAL_SUBNET var (previously missed, oops). 05.04.20: - Add INTERNAL_SUBNET variable to prevent subnet clashes. Add templates for server and peer confs. 01.04.20: - Add show-peer script and include info on host installed headers. 31.03.20: - Initial Release.","title":"wireguard"},{"location":"images/docker-wireguard/#linuxserverwireguard","text":"WireGuard\u00ae is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. It is currently under heavy development, but already it might be regarded as the most secure, easiest to use, and simplest VPN solution in the industry.","title":"linuxserver/wireguard"},{"location":"images/docker-wireguard/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/wireguard:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-wireguard/#version-tags","text":"This image provides various versions that are available via tags. Please read the descriptions carefully and exercise caution when using unstable or development tags. Tag Available Description latest \u2705 Stable releases with support for compiling Wireguard modules alpine \u2705 Stable releases based on Alpine without support for compiling Wireguard modules","title":"Version Tags"},{"location":"images/docker-wireguard/#application-setup","text":"During container start, it will first check if the wireguard module is already installed and loaded. Kernels newer than 5.6 generally have the wireguard module built-in (along with some older custom kernels). However, the module may not be enabled. Make sure it is enabled prior to starting the container. If the kernel is not built-in, or installed on host, the container will check if the kernel headers are present (in /usr/src ) and if not, it will attempt to download the necessary kernel headers from the ubuntu xenial/bionic , debian/raspbian buster repos; then will attempt to compile and install the kernel module. If the kernel headers are not found in either usr/src or in the repos mentioned, container will sleep indefinitely as wireguard cannot be installed. If you're on a debian/ubuntu based host with a custom or downstream distro provided kernel (ie. Pop!_OS), the container won't be able to install the kernel headers from the regular ubuntu and debian repos. In those cases, you can try installing the headers on the host via sudo apt install linux-headers-$(uname -r) (if distro version) and then add a volume mapping for /usr/src:/usr/src , or if custom built, map the location of the existing headers to allow the container to use host installed headers to build the kernel module (tested successful on Pop!_OS, ymmv). With regards to arm32/64 devices, Raspberry Pi 2-4 running the official ubuntu images or Raspbian Buster are supported out of the box. For all other devices and OSes, you can try installing the kernel headers on the host, and mapping /usr/src:/usr/src and it may just work (no guarantees). This can be run as a server or a client, based on the parameters used.","title":"Application Setup"},{"location":"images/docker-wireguard/#server-mode","text":"If the environment variable PEERS is set to a number or a list of strings separated by comma, the container will run in server mode and the necessary server and peer/client confs will be generated. The peer/client config qr codes will be output in the docker log. They will also be saved in text and png format under /config/peerX in case PEERS is a variable and an integer or /config/peer_X in case a list of names was provided instead of an integer. Variables SERVERURL , SERVERPORT , INTERNAL_SUBNET and PEERDNS are optional variables used for server mode. Any changes to these environment variables will trigger regeneration of server and peer confs. Peer/client confs will be recreated with existing private/public keys. Delete the peer folders for the keys to be recreated along with the confs. To add more peers/clients later on, you increment the PEERS environment variable or add more elements to the list and recreate the container. To display the QR codes of active peers again, you can use the following command and list the peer numbers as arguments: docker exec -it wireguard /app/show-peer 1 4 5 or docker exec -it wireguard /app/show-peer myPC myPhone myTablet (Keep in mind that the QR codes are also stored as PNGs in the config folder). The templates used for server and peer confs are saved under /config/templates . Advanced users can modify these templates and force conf generation by deleting /config/wg0.conf and restarting the container.","title":"Server Mode"},{"location":"images/docker-wireguard/#client-mode","text":"Do not set the PEERS environment variable. Drop your client conf into the config folder as /config/wg0.conf and start the container. If you get IPv6 related errors in the log and connection cannot be established, edit the AllowedIPs line in your peer/client wg0.conf to include only 0.0.0.0/0 and not ::/0 ; and restart the container.","title":"Client Mode"},{"location":"images/docker-wireguard/#road-warriors-roaming-and-returning-home","text":"If you plan to use Wireguard both remotely and locally, say on your mobile phone, you will need to consider routing. Most firewalls will not route ports forwarded on your WAN interface correctly to the LAN out of the box. This means that when you return home, even though you can see the Wireguard server, the return packets will probably get lost. This is not a Wireguard specific issue and the two generally accepted solutions are NAT reflection (setting your edge router/firewall up in such a way as it translates internal packets correctly) or split horizon DNS (setting your internal DNS to return the private rather than public IP when connecting locally). Both of these approaches have positives and negatives however their setup is out of scope for this document as everyone's network layout and equipment will be different.","title":"Road warriors, roaming and returning home"},{"location":"images/docker-wireguard/#maintaining-local-access-to-attached-services","text":"** Note: This is not a supported configuration by Linuxserver.io - use at your own risk. When routing via Wireguard from another container using the service option in docker, you might lose access to the containers webUI locally. To avoid this, exclude the docker subnet from being routed via Wireguard by modifying your wg0.conf like so (modifying the subnets as you require): ini [Interface] PrivateKey = Address = 9.8.7.6/32 DNS = 8.8.8.8 PostUp = DROUTE=$(ip route | grep default | awk '{print $3}'); HOMENET=192.168.0.0/16; HOMENET2=10.0.0.0/8; HOMENET3=172.16.0.0/12; ip route add $HOMENET3 via $DROUTE;ip route add $HOMENET2 via $DROUTE; ip route add $HOMENET via $DROUTE;iptables -I OUTPUT -d $HOMENET -j ACCEPT;iptables -A OUTPUT -d $HOMENET2 -j ACCEPT; iptables -A OUTPUT -d $HOMENET3 -j ACCEPT; iptables -A OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT PreDown = HOMENET=192.168.0.0/16; HOMENET2=10.0.0.0/8; HOMENET3=172.16.0.0/12; ip route del $HOMENET3 via $DROUTE;ip route del $HOMENET2 via $DROUTE; ip route del $HOMENET via $DROUTE; iptables -D OUTPUT ! -o %i -m mark ! --mark $(wg show %i fwmark) -m addrtype ! --dst-type LOCAL -j REJECT; iptables -D OUTPUT -d $HOMENET -j ACCEPT; iptables -D OUTPUT -d $HOMENET2 -j ACCEPT; iptables -D OUTPUT -d $HOMENET3 -j ACCEPT","title":"Maintaining local access to attached services"},{"location":"images/docker-wireguard/#site-to-site-vpn","text":"** Note: This is not a supported configuration by Linuxserver.io - use at your own risk. Site-to-site VPN in server mode requires customizing the AllowedIPs statement for a specific peer in wg0.conf . Since wg0.conf is autogenerated when server vars are changed, it is not recommended to edit it manually. In order to customize the AllowedIPs statement for a specific peer in wg0.conf , you can set an env var SERVER_ALLOWEDIPS_PEER_ to the additional subnets you'd like to add, comma separated and excluding the peer IP (ie. \"192.168.1.0/24,192.168.2.0/24\" ). Replace with either the name or number of a peer (whichever is used in the PEERS var). For instance SERVER_ALLOWEDIPS_PEER_laptop=\"192.168.1.0/24,192.168.2.0/24\" will result in the wg0.conf entry AllowedIPs = 10.13.13.2,192.168.1.0/24,192.168.2.0/24 for the peer named laptop . Keep in mind that this var will only be considered when the confs are regenerated. Adding this var for an existing peer won't force a regeneration. You can delete wg0.conf and restart the container to force regeneration if necessary. Don't forget to set the necessary POSTUP and POSTDOWN rules in your client's peer conf for lan access.","title":"Site-to-site VPN"},{"location":"images/docker-wireguard/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-wireguard/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: wireguard: image: lscr.io/linuxserver/wireguard:latest container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SERVERURL=wireguard.domain.com #optional - SERVERPORT=51820 #optional - PEERS=1 #optional - PEERDNS=auto #optional - INTERNAL_SUBNET=10.13.13.0 #optional - ALLOWEDIPS=0.0.0.0/0 #optional - LOG_CONFS=true #optional volumes: - /path/to/appdata/config:/config - /lib/modules:/lib/modules #optional ports: - 51820:51820/udp sysctls: - net.ipv4.conf.all.src_valid_mark=1 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-wireguard/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=wireguard \\ --cap-add=NET_ADMIN \\ --cap-add=SYS_MODULE \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -e SERVERURL=wireguard.domain.com `#optional` \\ -e SERVERPORT=51820 `#optional` \\ -e PEERS=1 `#optional` \\ -e PEERDNS=auto `#optional` \\ -e INTERNAL_SUBNET=10.13.13.0 `#optional` \\ -e ALLOWEDIPS=0.0.0.0/0 `#optional` \\ -e LOG_CONFS=true `#optional` \\ -p 51820:51820/udp \\ -v /path/to/appdata/config:/config \\ -v /lib/modules:/lib/modules `#optional` \\ --sysctl=\"net.ipv4.conf.all.src_valid_mark=1\" \\ --restart unless-stopped \\ lscr.io/linuxserver/wireguard:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-wireguard/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-wireguard/#ports-p","text":"Parameter Function 51820/udp wireguard port","title":"Ports (-p)"},{"location":"images/docker-wireguard/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London SERVERURL=wireguard.domain.com External IP or domain name for docker host. Used in server mode. If set to auto , the container will try to determine and set the external IP automatically SERVERPORT=51820 External port for docker host. Used in server mode. PEERS=1 Number of peers to create confs for. Required for server mode. Can also be a list of names: myPC,myPhone,myTablet (alphanumeric only) PEERDNS=auto DNS server set in peer/client configs (can be set as 8.8.8.8 ). Used in server mode. Defaults to auto , which uses wireguard docker host's DNS via included CoreDNS forward. INTERNAL_SUBNET=10.13.13.0 Internal subnet for the wireguard and server and peers (only change if it clashes). Used in server mode. ALLOWEDIPS=0.0.0.0/0 The IPs/Ranges that the peers will be able to reach using the VPN connection. If not specified the default value is: '0.0.0.0/0, ::0/0' This will cause ALL traffic to route through the VPN, if you want split tunneling, set this to only the IPs you would like to use the tunnel AND the ip of the server's WG ip, such as 10.13.13.1. LOG_CONFS=true Generated QR codes will be displayed in the docker log. Set to false to skip log output.","title":"Environment Variables (-e)"},{"location":"images/docker-wireguard/#volume-mappings-v","text":"Volume Function /config Contains all relevant configuration files. /lib/modules Maps host's modules folder. Only required if compiling wireguard modules.","title":"Volume Mappings (-v)"},{"location":"images/docker-wireguard/#miscellaneous-options","text":"Parameter Function --sysctl= Required for client mode.","title":"Miscellaneous Options"},{"location":"images/docker-wireguard/#portainer-notice","text":"{% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %}","title":"Portainer notice"},{"location":"images/docker-wireguard/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-wireguard/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-wireguard/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-wireguard/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-wireguard/#support-info","text":"Shell access whilst the container is running: docker exec -it wireguard /bin/bash To monitor the logs of the container in realtime: docker logs -f wireguard Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' wireguard Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/wireguard:latest","title":"Support Info"},{"location":"images/docker-wireguard/#versions","text":"26.10.22: - Better handle unsupported peer names. Improve logging. 12.10.22: - Add Alpine branch. Optimize wg and coredns services. 09.10.22: - Switch back to iptables-legacy due to issues on some hosts. 04.10.22: - Rebase to Jammy. Upgrade to s6v3. 16.05.22: - Improve NAT handling in server mode when multiple ethernet devices are present. 23.04.22: - Add pre-shared key support. Automatically added to all new peer confs generated, existing ones are left without to ensure no breaking changes. 10.04.22: - Rebase to Ubuntu Focal. Add LOG_CONFS env var. Remove deprecated add-peer command. 28.10.21: - Add site-to-site vpn support. 11.02.21: - Fix bug related to changing internal subnet and named peer confs not updating. 06.10.20: - Disable CoreDNS in client mode, or if port 53 is already in use in server mode. 04.10.20: - Allow to specify a list of names as PEERS and add ALLOWEDIPS environment variable. Also, add peer name/id to each one of the peer sections in wg0.conf. Important: Existing users need to delete /config/templates/peer.conf and restart 27.09.20: - Cleaning service binding example to have accurate PreDown script. 06.08.20: - Replace resolvconf with openresolv due to dns issues when a client based on this image is connected to a server also based on this image. Add IPv6 info to readme. Display kernel version in logs. 29.07.20: - Update Coredns config to detect dns loops (existing users need to delete /config/coredns/Corefile and restart). 27.07.20: - Update Coredns config to prevent issues with non-user-defined bridge networks (existing users need to delete /config/coredns/Corefile and restart). 05.07.20: - Add Debian updates and security repos for headers. 25.06.20: - Simplify module tests, prevent iptables issues from resulting in false negatives. 19.06.20: - Add support for Ubuntu Focal (20.04) kernels. Compile wireguard tools and kernel module instead of using the ubuntu packages. Make module install optional. Improve verbosity in logs. 29.05.20: - Add support for 64bit raspbian. 28.04.20: - Add Buster/Stretch backports repos for Debian. Tested with OMV 5 and OMV 4 (on kernel 4.19.0-0.bpo.8-amd64). 20.04.20: - Fix typo in client mode conf existence check. 13.04.20: - Fix bug that forced conf recreation on every start. 08.04.20: - Add arm32/64 builds and enable multi-arch (rpi4 with ubuntu and raspbian buster tested). Add CoreDNS for PEERDNS=auto setting. Update the add-peer / show-peer scripts to utilize the templates and the INTERNAL_SUBNET var (previously missed, oops). 05.04.20: - Add INTERNAL_SUBNET variable to prevent subnet clashes. Add templates for server and peer confs. 01.04.20: - Add show-peer script and include info on host installed headers. 31.03.20: - Initial Release.","title":"Versions"},{"location":"images/docker-wireshark/","text":"linuxserver/wireshark Wireshark is the world\u2019s foremost and widely-used network protocol analyzer. It lets you see what\u2019s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. Wireshark development thrives thanks to the volunteer contributions of networking experts around the globe and is the continuation of a project started by Gerald Combs in 1998. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/wireshark:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true In order to dump from an interface you will need to pass NET_ADMIN at a minimum, optionally you can use host networking to capture from your host level device or specify a Docker network you want to capture from. If you do not specificy host networking you will need to map port 3000 with -p 3000:3000 . Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: wireshark: image: lscr.io/linuxserver/wireshark:latest container_name: wireshark cap_add: - NET_ADMIN security_opt: - seccomp:unconfined #optional network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 #optional restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=wireshark \\ --net=host \\ --cap-add=NET_ADMIN \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 `#optional` \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/wireshark:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 3000 WireShark desktop gui, only use this if you are not using host mode and sniffing Docker network traffic. Networking ( --net ) Parameter Function --net=host Use Host Networking Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Users home directory in the container, stores program settings and potentially dump files. Miscellaneous Options Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker. Portainer notice {% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %} Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it wireshark /bin/bash To monitor the logs of the container in realtime: docker logs -f wireshark Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' wireshark Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/wireshark:latest Versions 23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 14.02.22: - Rebase to Alpine. 31.03.20: - Initial release.","title":"wireshark"},{"location":"images/docker-wireshark/#linuxserverwireshark","text":"Wireshark is the world\u2019s foremost and widely-used network protocol analyzer. It lets you see what\u2019s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. Wireshark development thrives thanks to the volunteer contributions of networking experts around the globe and is the continuation of a project started by Gerald Combs in 1998.","title":"linuxserver/wireshark"},{"location":"images/docker-wireshark/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/wireshark:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-wireshark/#application-setup","text":"The application can be accessed at: http://yourhost:3000/ By default the user/pass is abc/abc, if you change your password or want to login manually to the GUI session for any reason use the following link: http://yourhost:3000/?login=true In order to dump from an interface you will need to pass NET_ADMIN at a minimum, optionally you can use host networking to capture from your host level device or specify a Docker network you want to capture from. If you do not specificy host networking you will need to map port 3000 with -p 3000:3000 .","title":"Application Setup"},{"location":"images/docker-wireshark/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-wireshark/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: wireshark: image: lscr.io/linuxserver/wireshark:latest container_name: wireshark cap_add: - NET_ADMIN security_opt: - seccomp:unconfined #optional network_mode: host environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - /path/to/config:/config ports: - 3000:3000 #optional restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-wireshark/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=wireshark \\ --net=host \\ --cap-add=NET_ADMIN \\ --security-opt seccomp=unconfined `#optional` \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 3000:3000 `#optional` \\ -v /path/to/config:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/wireshark:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-wireshark/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-wireshark/#ports-p","text":"Parameter Function 3000 WireShark desktop gui, only use this if you are not using host mode and sniffing Docker network traffic.","title":"Ports (-p)"},{"location":"images/docker-wireshark/#networking-net","text":"Parameter Function --net=host Use Host Networking","title":"Networking (--net)"},{"location":"images/docker-wireshark/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-wireshark/#volume-mappings-v","text":"Volume Function /config Users home directory in the container, stores program settings and potentially dump files.","title":"Volume Mappings (-v)"},{"location":"images/docker-wireshark/#miscellaneous-options","text":"Parameter Function --security-opt seccomp=unconfined For Docker Engine only, many modern gui apps need this to function on older hosts as syscalls are unknown to Docker.","title":"Miscellaneous Options"},{"location":"images/docker-wireshark/#portainer-notice","text":"{% hint style=\"warning\" %} This image utilises cap_add or sysctl to work properly. This is not implemented properly in some versions of Portainer, thus this image may not work if deployed through Portainer. {% endhint %}","title":"Portainer notice"},{"location":"images/docker-wireshark/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-wireshark/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-wireshark/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-wireshark/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-wireshark/#support-info","text":"Shell access whilst the container is running: docker exec -it wireshark /bin/bash To monitor the logs of the container in realtime: docker logs -f wireshark Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' wireshark Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/wireshark:latest","title":"Support Info"},{"location":"images/docker-wireshark/#versions","text":"23.10.22: - Rebase to Alpine 3.16, migrate to s6v3. 14.02.22: - Rebase to Alpine. 31.03.20: - Initial release.","title":"Versions"},{"location":"images/docker-xbackbone/","text":"linuxserver/xbackbone Xbackbone is a simple, self-hosted, lightweight PHP file manager that support the instant sharing tool ShareX and *NIX systems. It supports uploading and displaying images, GIF, video, code, formatted text, and file downloading and uploading. Also have a web UI with multi user management, past uploads history and search support. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/xbackbone:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup Access the WebUI at \\ :80/443. Follow the installation wizard. For more information, check out XBackBone . If you want to change the PHP max upload size you can override the php.ini file by adding options in /config/php/php-local.ini Example: upload_max_filesize = 25M post_max_size = 25M For reverse proxying, remember to change the base_url in /config/www/xbackbone/config.php to your domain if you initially set up the application with a local url. E.g. 'base_url' => 'https://images.yourdomain.com', Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: xbackbone: image: lscr.io/linuxserver/xbackbone:latest container_name: xbackbone environment: - PUID=1000 - PGID=1000 - TZ=Europe/Oslo volumes: - /path/to/data:/config ports: - 80:80 - 443:443 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=xbackbone \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/Oslo \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/xbackbone:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 80 http gui 443 https gui Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/Oslo Timezone (i.e., Europe/Oslo) Volume Mappings ( -v ) Volume Function /config config directory volume mapping Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it xbackbone /bin/bash To monitor the logs of the container in realtime: docker logs -f xbackbone Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' xbackbone Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/xbackbone:latest Versions 04.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 01.11.22: - Move application install to /app/www/public, add migration notices for existing users. Container updates should now update the application correctly 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 02.08.22: - Added note about updating. 06.06.21: - Initial Release.","title":"xbackbone"},{"location":"images/docker-xbackbone/#linuxserverxbackbone","text":"Xbackbone is a simple, self-hosted, lightweight PHP file manager that support the instant sharing tool ShareX and *NIX systems. It supports uploading and displaying images, GIF, video, code, formatted text, and file downloading and uploading. Also have a web UI with multi user management, past uploads history and search support.","title":"linuxserver/xbackbone"},{"location":"images/docker-xbackbone/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/xbackbone:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-xbackbone/#application-setup","text":"Access the WebUI at \\ :80/443. Follow the installation wizard. For more information, check out XBackBone . If you want to change the PHP max upload size you can override the php.ini file by adding options in /config/php/php-local.ini Example: upload_max_filesize = 25M post_max_size = 25M For reverse proxying, remember to change the base_url in /config/www/xbackbone/config.php to your domain if you initially set up the application with a local url. E.g. 'base_url' => 'https://images.yourdomain.com',","title":"Application Setup"},{"location":"images/docker-xbackbone/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-xbackbone/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: xbackbone: image: lscr.io/linuxserver/xbackbone:latest container_name: xbackbone environment: - PUID=1000 - PGID=1000 - TZ=Europe/Oslo volumes: - /path/to/data:/config ports: - 80:80 - 443:443 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-xbackbone/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=xbackbone \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/Oslo \\ -p 80:80 \\ -p 443:443 \\ -v /path/to/data:/config \\ --restart unless-stopped \\ lscr.io/linuxserver/xbackbone:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-xbackbone/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-xbackbone/#ports-p","text":"Parameter Function 80 http gui 443 https gui","title":"Ports (-p)"},{"location":"images/docker-xbackbone/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/Oslo Timezone (i.e., Europe/Oslo)","title":"Environment Variables (-e)"},{"location":"images/docker-xbackbone/#volume-mappings-v","text":"Volume Function /config config directory volume mapping","title":"Volume Mappings (-v)"},{"location":"images/docker-xbackbone/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-xbackbone/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-xbackbone/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-xbackbone/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-xbackbone/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-xbackbone/#support-info","text":"Shell access whilst the container is running: docker exec -it xbackbone /bin/bash To monitor the logs of the container in realtime: docker logs -f xbackbone Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' xbackbone Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/xbackbone:latest","title":"Support Info"},{"location":"images/docker-xbackbone/#versions","text":"04.11.22: - Rebase to Alpine 3.16, migrate to s6v3. 01.11.22: - Move application install to /app/www/public, add migration notices for existing users. Container updates should now update the application correctly 20.08.22: - Rebasing to alpine 3.15 with php8. Restructure nginx configs ( see changes announcement ). 02.08.22: - Added note about updating. 06.06.21: - Initial Release.","title":"Versions"},{"location":"images/docker-yq/","text":"The LinuxServer.io team brings you another container release featuring: regular and timely application updates easy user mappings (PGID, PUID) custom base image with s6 overlay weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth regular security updates Find us at: * Blog - all the things you can do with our containers including How-To guides, opinions and much more! * Discord - realtime support / chat with the community and the team. * Discourse - post on our community forum. * Fleet - an online web interface which displays all of our maintained images. * GitHub - view the source for all of our repositories. * Open Collective - please consider helping us by either donating or contributing to our budget linuxserver/yq yq : Command-line YAML/XML processor - jq wrapper for YAML and XML documents. This image includes yq , jq , and xq . Supported Architectures Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/yq should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest Usage Docker cli docker run --rm \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ --entrypoint yq \\ linuxserver/yq \\ .foo.bar input.yml You can replace the last line with any yq command and argument, which will be passed to yq inside the image. docker run --rm \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ --entrypoint jq \\ linuxserver/yq \\ .foo.bar input.json You can replace the last line with any jq command and argument, which will be passed to jq inside the image. docker run --rm \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ --entrypoint xq \\ linuxserver/yq \\ .foo.bar input.xml You can replace the last line with any xq command and argument, which will be passed to xq inside the image. Recommended method We provide a very convenient script that allows the yq container to run as if it was installed natively: sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-yq/master/run-yq.sh -o /usr/local/bin/yq sudo chmod +x /usr/local/bin/yq Running these two commands on your docker host once will let you issue commands such as yq .foo.bar input.yml and the yq container will do its job behind the scenes. sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-yq/master/run-jq.sh -o /usr/local/bin/jq sudo chmod +x /usr/local/bin/jq Running these two commands on your docker host once will let you issue commands such as jq .foo.bar input.json and the jq container will do its job behind the scenes. sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-yq/master/run-xq.sh -o /usr/local/bin/xq sudo chmod +x /usr/local/bin/xq Running these two commands on your docker host once will let you issue commands such as xq .foo.bar input.xml and the xq container will do its job behind the scenes. Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above. Support Info image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/yq Updating Info Via Docker Cli Update the image: docker pull linuxserver/yq You can also remove the old dangling images: docker image prune Building locally If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-yq.git cd docker-yq docker build \\ --no-cache \\ --pull \\ -t linuxserver/yq:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 . Versions 19.09.22: - Rebase to 3.15. 18.05.21: - Rebase to 3.13. add linuxserver wheel repo. 09.10.20: - Fix run scripts evaluating $ in cases where they should not (ex: inside single quotes). Please rerun the Recommended method install/setup commands. 07.10.20: - Initial Release.","title":"yq"},{"location":"images/docker-yq/#linuxserveryq","text":"yq : Command-line YAML/XML processor - jq wrapper for YAML and XML documents. This image includes yq , jq , and xq .","title":"linuxserver/yq"},{"location":"images/docker-yq/#supported-architectures","text":"Our images support multiple architectures such as x86-64 , arm64 and armhf . We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling linuxserver/yq should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Tag x86-64 amd64-latest arm64 arm64v8-latest armhf arm32v7-latest","title":"Supported Architectures"},{"location":"images/docker-yq/#usage","text":"","title":"Usage"},{"location":"images/docker-yq/#docker-cli","text":"docker run --rm \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ --entrypoint yq \\ linuxserver/yq \\ .foo.bar input.yml You can replace the last line with any yq command and argument, which will be passed to yq inside the image. docker run --rm \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ --entrypoint jq \\ linuxserver/yq \\ .foo.bar input.json You can replace the last line with any jq command and argument, which will be passed to jq inside the image. docker run --rm \\ -v \"$PWD:$PWD\" \\ -w=\"$PWD\" \\ --entrypoint xq \\ linuxserver/yq \\ .foo.bar input.xml You can replace the last line with any xq command and argument, which will be passed to xq inside the image.","title":"Docker cli"},{"location":"images/docker-yq/#recommended-method","text":"We provide a very convenient script that allows the yq container to run as if it was installed natively: sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-yq/master/run-yq.sh -o /usr/local/bin/yq sudo chmod +x /usr/local/bin/yq Running these two commands on your docker host once will let you issue commands such as yq .foo.bar input.yml and the yq container will do its job behind the scenes. sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-yq/master/run-jq.sh -o /usr/local/bin/jq sudo chmod +x /usr/local/bin/jq Running these two commands on your docker host once will let you issue commands such as jq .foo.bar input.json and the jq container will do its job behind the scenes. sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-yq/master/run-xq.sh -o /usr/local/bin/xq sudo chmod +x /usr/local/bin/xq Running these two commands on your docker host once will let you issue commands such as xq .foo.bar input.xml and the xq container will do its job behind the scenes.","title":"Recommended method"},{"location":"images/docker-yq/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) can be accessed via the dynamic badge above.","title":"Docker Mods"},{"location":"images/docker-yq/#support-info","text":"image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' linuxserver/yq","title":"Support Info"},{"location":"images/docker-yq/#updating-info","text":"","title":"Updating Info"},{"location":"images/docker-yq/#via-docker-cli","text":"Update the image: docker pull linuxserver/yq You can also remove the old dangling images: docker image prune","title":"Via Docker Cli"},{"location":"images/docker-yq/#building-locally","text":"If you want to make local modifications to these images for development purposes or just to customize the logic: git clone https://github.com/linuxserver/docker-yq.git cd docker-yq docker build \\ --no-cache \\ --pull \\ -t linuxserver/yq:latest . The ARM variants can be built on x86_64 hardware using multiarch/qemu-user-static docker run --rm --privileged multiarch/qemu-user-static:register --reset Once registered you can define the dockerfile to use with -f Dockerfile.aarch64 .","title":"Building locally"},{"location":"images/docker-yq/#versions","text":"19.09.22: - Rebase to 3.15. 18.05.21: - Rebase to 3.13. add linuxserver wheel repo. 09.10.20: - Fix run scripts evaluating $ in cases where they should not (ex: inside single quotes). Please rerun the Recommended method install/setup commands. 07.10.20: - Initial Release.","title":"Versions"},{"location":"images/docker-znc/","text":"linuxserver/znc Znc is an IRC network bouncer or BNC. It can detach the client from the actual IRC server, and also from selected channels. Multiple clients from different locations can connect to a single ZNC account simultaneously and therefore appear under the same nickname on IRC. Supported Architectures We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/znc:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\ Application Setup To log in to the application, browse to http:// :6501. Default User: admin Default Password: admin change password ASAP. Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. docker-compose (recommended, click here for more info ) --- version: \"2.1\" services: znc: image: lscr.io/linuxserver/znc:latest container_name: znc environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 6501:6501 restart: unless-stopped docker cli ( click here for more info ) docker run -d \\ --name=znc \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6501:6501 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/znc:latest Parameters Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container. Ports ( -p ) Parameter Function 6501 Port ZNC listens on. Environment Variables ( -e ) Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London. Volume Mappings ( -v ) Volume Function /config Where local ZNC data is stored. Miscellaneous Options Parameter Function Environment variables from files (Docker secrets) You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file. Umask for running applications For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support. User / Group Identifiers When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup) Docker Mods We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above. Support Info Shell access whilst the container is running: docker exec -it znc /bin/bash To monitor the logs of the container in realtime: docker logs -f znc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' znc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/znc:latest Versions 19.01.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 02.11.19: - Add znc-palaver module. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 31.01.19: - Add pipeline logic and multi arch. 30.01.19: - Add push and clientbuffer modules. 17.08.18: - Rebase to alpine 3.8, use buildstage. 03.01.18: - Deprecate cpu_core routine lack of scaling. 07.12.17: - Rebase alpine linux 3.7. 25.10.17: - Remove debug switch from run command. 26.05.17: - Rebase alpine linux 3.6. 06.02.17: - Rebase alpine linux 3.5. 19.01.17: - Add playback module. 07.01.17: - Add ca-certificates package, resolve sasl issues. 07.12.16: - Use scanelf to determine runtime dependencies. Fix error with continuation. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 11.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 20.08.16: - Rebase to alpine linux, move to main repository. 11.12.15: - Initial Release.","title":"znc"},{"location":"images/docker-znc/#linuxserverznc","text":"Znc is an IRC network bouncer or BNC. It can detach the client from the actual IRC server, and also from selected channels. Multiple clients from different locations can connect to a single ZNC account simultaneously and therefore appear under the same nickname on IRC.","title":"linuxserver/znc"},{"location":"images/docker-znc/#supported-architectures","text":"We utilise the docker manifest for multi-platform awareness. More information is available from docker here and our announcement here . Simply pulling lscr.io/linuxserver/znc:latest should retrieve the correct image for your arch, but you can also pull specific arch images via tags. The architectures supported by this image are: Architecture Available Tag x86-64 \u2705 amd64-\\ arm64 \u2705 arm64v8-\\ armhf \u2705 arm32v7-\\","title":"Supported Architectures"},{"location":"images/docker-znc/#application-setup","text":"To log in to the application, browse to http:// :6501. Default User: admin Default Password: admin change password ASAP.","title":"Application Setup"},{"location":"images/docker-znc/#usage","text":"To help you get started creating a container from this image you can either use docker-compose or the docker cli.","title":"Usage"},{"location":"images/docker-znc/#docker-compose-recommended-click-here-for-more-info","text":"--- version: \"2.1\" services: znc: image: lscr.io/linuxserver/znc:latest container_name: znc environment: - PUID=1000 - PGID=1000 - TZ=Europe/London volumes: - :/config ports: - 6501:6501 restart: unless-stopped","title":"docker-compose (recommended, click here for more info)"},{"location":"images/docker-znc/#docker-cli-click-here-for-more-info","text":"docker run -d \\ --name=znc \\ -e PUID=1000 \\ -e PGID=1000 \\ -e TZ=Europe/London \\ -p 6501:6501 \\ -v :/config \\ --restart unless-stopped \\ lscr.io/linuxserver/znc:latest","title":"docker cli (click here for more info)"},{"location":"images/docker-znc/#parameters","text":"Docker images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate : respectively. For example, -p 8080:80 would expose port 80 from inside the container to be accessible from the host's IP on port 8080 outside the container.","title":"Parameters"},{"location":"images/docker-znc/#ports-p","text":"Parameter Function 6501 Port ZNC listens on.","title":"Ports (-p)"},{"location":"images/docker-znc/#environment-variables-e","text":"Env Function PUID=1000 for UserID - see below for explanation PGID=1000 for GroupID - see below for explanation TZ=Europe/London Specify a timezone to use EG Europe/London.","title":"Environment Variables (-e)"},{"location":"images/docker-znc/#volume-mappings-v","text":"Volume Function /config Where local ZNC data is stored.","title":"Volume Mappings (-v)"},{"location":"images/docker-znc/#miscellaneous-options","text":"Parameter Function","title":"Miscellaneous Options"},{"location":"images/docker-znc/#environment-variables-from-files-docker-secrets","text":"You can set any environment variable from a file by using a special prepend FILE__ . As an example: -e FILE__PASSWORD=/run/secrets/mysecretpassword Will set the environment variable PASSWORD based on the contents of the /run/secrets/mysecretpassword file.","title":"Environment variables from files (Docker secrets)"},{"location":"images/docker-znc/#umask-for-running-applications","text":"For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional -e UMASK=022 setting. Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up here before asking for support.","title":"Umask for running applications"},{"location":"images/docker-znc/#user-group-identifiers","text":"When using volumes ( -v flags), permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID . Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic. In this instance PUID=1000 and PGID=1000 , to find yours use id user as below: $ id username uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)","title":"User / Group Identifiers"},{"location":"images/docker-znc/#docker-mods","text":"We publish various Docker Mods to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.","title":"Docker Mods"},{"location":"images/docker-znc/#support-info","text":"Shell access whilst the container is running: docker exec -it znc /bin/bash To monitor the logs of the container in realtime: docker logs -f znc Container version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' znc Image version number docker inspect -f '{{ index .Config.Labels \"build_version\" }}' lscr.io/linuxserver/znc:latest","title":"Support Info"},{"location":"images/docker-znc/#versions","text":"19.01.22: - Rebasing to alpine 3.15. 01.06.20: - Rebasing to alpine 3.12. 19.12.19: - Rebasing to alpine 3.11. 02.11.19: - Add znc-palaver module. 28.06.19: - Rebasing to alpine 3.10. 23.03.19: - Switching to new Base images, shift to arm32v7 tag. 22.02.19: - Rebasing to alpine 3.9. 31.01.19: - Add pipeline logic and multi arch. 30.01.19: - Add push and clientbuffer modules. 17.08.18: - Rebase to alpine 3.8, use buildstage. 03.01.18: - Deprecate cpu_core routine lack of scaling. 07.12.17: - Rebase alpine linux 3.7. 25.10.17: - Remove debug switch from run command. 26.05.17: - Rebase alpine linux 3.6. 06.02.17: - Rebase alpine linux 3.5. 19.01.17: - Add playback module. 07.01.17: - Add ca-certificates package, resolve sasl issues. 07.12.16: - Use scanelf to determine runtime dependencies. Fix error with continuation. 14.10.16: - Add version layer information. 30.09.16: - Fix umask. 11.09.16: - Add layer badges to README. 28.08.16: - Add badges to README. 20.08.16: - Rebase to alpine linux, move to main repository. 11.12.15: - Initial Release.","title":"Versions"},{"location":"misc/finances/","text":"Finances v0.1 Beta (Work in progress) Created 2021-08-18 Updated 2021-08-18 Charter We will at all times attempt to keep a surplus of $6,000 in the bank account, or an amount which covers 3 years of expenses, whichever is higher. All other money will be disbursed by agreement of a general consensus of linuxserver.io staff members. Annual Expenses DigitalOcean yearly costs (currently paid for) $1200 AWS ~$200 Contabo hosting $287.76 Email Hosting $20 Various domains ~$150 Docker Pro Plan $60 Various licenses ~$150 Votes In order for money to be approved for a project, the requesting member must go through every effort to bring to vote a fully formed idea that is ready to be actioned. This means that all the legwork is done before bringing an idea to vote, or at least as much as is reasonably possible. A vote will last for 3 days in order to give all team members the opportunity to participate without unnecessarily causing delays. A generasl consensus will need to be reached in order for it to proceed. Acceptable uses of money Hardware/Software needed to help the group reach a specific goal Stationary + Related items for possible Conventions Convention Fees (Both Attendence and Travel) Hosting services (Included domain purchases) Good will gestures (Example: For users outside the group that have provided help when asked) Food/Drink for LinuxServer.io focused sprints. Donations to upstream projects Links https://opencollective.com/linuxserver#category-BUDGET","title":"Finances"},{"location":"misc/finances/#finances","text":"v0.1 Beta (Work in progress) Created 2021-08-18 Updated 2021-08-18","title":"Finances"},{"location":"misc/finances/#charter","text":"We will at all times attempt to keep a surplus of $6,000 in the bank account, or an amount which covers 3 years of expenses, whichever is higher. All other money will be disbursed by agreement of a general consensus of linuxserver.io staff members.","title":"Charter"},{"location":"misc/finances/#annual-expenses","text":"DigitalOcean yearly costs (currently paid for) $1200 AWS ~$200 Contabo hosting $287.76 Email Hosting $20 Various domains ~$150 Docker Pro Plan $60 Various licenses ~$150","title":"Annual Expenses"},{"location":"misc/finances/#votes","text":"In order for money to be approved for a project, the requesting member must go through every effort to bring to vote a fully formed idea that is ready to be actioned. This means that all the legwork is done before bringing an idea to vote, or at least as much as is reasonably possible. A vote will last for 3 days in order to give all team members the opportunity to participate without unnecessarily causing delays. A generasl consensus will need to be reached in order for it to proceed.","title":"Votes"},{"location":"misc/finances/#acceptable-uses-of-money","text":"Hardware/Software needed to help the group reach a specific goal Stationary + Related items for possible Conventions Convention Fees (Both Attendence and Travel) Hosting services (Included domain purchases) Good will gestures (Example: For users outside the group that have provided help when asked) Food/Drink for LinuxServer.io focused sprints. Donations to upstream projects","title":"Acceptable uses of money"},{"location":"misc/finances/#links","text":"https://opencollective.com/linuxserver#category-BUDGET","title":"Links"}]} \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 0d1c873f029d09b33153e2bcfb8d40e4abdfc126..52b61ecf2db70b304fcd0c35b3e7be1b4d2f29f7 100644 GIT binary patch delta 15 WcmeC?>E>aR@8;l$@7c)4$_4-*Dg&GV delta 15 WcmeC?>E>aR@8;m(>fFf2$_4-(9RoxF