diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000000..e69de29bb2 diff --git a/404.html b/404.html index dac95ed5fc..47b26fa5fb 100644 --- a/404.html +++ b/404.html @@ -1,977 +1,14 @@ - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
Homepage: https://airsonic.github.io/
-Airsonic is a free, web-based media streamer, providing ubiquitous 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
-Set airsonic_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
The Airsonic web interface can be found at http://ansible_nas_host_or_ip:4040.
-The default username and password is admin
- you'll need to change this immediately after logging in.
Homepage: https://github.com/morpheus65535/bazarr
-Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you.
-Set bazarr_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
Follow the Wiki for conecting to Sonarr and Radarr.
- - - - - - - - - - -Homepage: https://github.com/dani-garcia/bitwarden_rs -Bitwarden: https://bitwarden.com/
-This is a Bitwarden server API implementation written in Rust compatible with upstream Bitwarden clients*, perfect for self-hosted deployment where running the official resource-heavy service might not be ideal.
-Set bitwarden_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
Make sure you set your admin token! It is bitwarden_admin_token
in group_vars/all.yml
file. The string you put here will be the login to the admin section of your Bitwarden installation (https://bitwarden.ansiblenasdomain.tld/admin). This token can be anything, but it's recommended to use a long, randomly generated string of characters, for example running:
-openssl rand -base64 48
.
To create a user, you need to set bitwarden_allow_signups
to true
in your all.yml
, and re-run the playbook to reprovision the
-container. Once you've created your users, set bitwarden_allow_signups
back to false
and run again.
For speed you can target just Bitwarden by appending -t bitwarden
to your ansible-playbook
command.
Homepage: https://github.com/janeczku/calibre-web
-Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database.
-Set calibre_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
Default admin login: Username: admin Password: admin123
-If you do not need eBook conversion you can disable it to save resources by setting the calibre_ebook_conversion
variable in group_vars/all.yml
file to be empty.
Conversion enabled: calibre_ebook_conversion: "linuxserver/calibre-web:calibre"
Conversion disabled: calibre_ebook_conversion: ""
You can target just Calibre by appending -t calibre
to your ansible-playbook
command.
Homepage: https://cloudcmd.io/
-Cloud Commander is a file manager for the web. It includes a command-line console and a text editor. Cloud Commander helps you manage your server and work with files, directories and programs in a web browser from any computer, mobile or tablet.
-Set cloudcmd_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
By default your the root of your Ansible-NAS box (/
) is mounted into /mnt/fs
within the container. If you'd like to
-change this update cloudcmd_browse_directory
in your inventories/<your_inventory>/nas.yml
file.
If you enable external access to Cloud Commander (note that this is not recommended) then ensure you configure authorisation -within the application (F10 from the main menu).
- - - - - - - - - - -Homepage: https://github.com/joshuaavalon/docker-cloudflare -Cloudflare: https://www.cloudflare.com
-If you want your Ansible-NAS accessible externally then you'll need a domain name. You'll also need to set a wildcard -host A record to point to your static IP, or enable this container to automatically update Cloudflare with your dynamic IP address.
-Set cloudflare_ddns_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
Make sure you set your Cloudflare login, domain and API key details within your inventories/<your_inventory>/nas.yml
file.
Homepage: https://emby.media/
-Emby is a mostly open-source media server with a client-server model. This -install for Ansible-NAS provides a server, which various clients can then -connect to from platforms such as other computers, smartphones and smart TVs.
-Note that Plex, also included in Ansible-NAS, has a very -similar functionality.
-Set emby_enabled: true
in your inventories/<your_inventory>/nas.yml
file. There are further
-parameters you can edit such as movies_root
and tv_root
lower down.
The emby web interface can be found at port 8096 (http) or 8920 (https, if -configured) of your NAS. Heimdall has a dedicated icon for emby.
-By default, Ansible-NAS gives emby read/write access to the folders where your
-movies and TV shows are stored. To change this to read-only, edit the following
-lines in all.yml
:
emby_movies_permissions: "rw"
- emby_tv_permissions: "rw"
-
-
-so that they end in ro
instead of rw
. Note that emby will not be able to
-delete files then, which might be exactly what you want. However, you will not
-have the option to store cover art in the related folders. Always leave the
-configuration directory read/write.
Movie and TV show files are almost alway very large and pre-compressed. If you -are using a specialized filesystem such as ZFS for bulk storage, you'll want to -set the parameters accordingly. The ZFS configuration -documentation has an example of this.
-Emby is very fussy about how movies and TV shows must be named to enable -automatic downloads of cover art and metadata. In short, movie files should -follow how movies are listed in the IMDb, including the -year of publication:
- movies/Bride of Frankenstein (1935).mp4
-
-
-Note the spaces. You should probably remove colons and other special characters.
-TV shows require a folder structure with the name of the series - again if -possible with the year of publication - followed by sub-folders for the -individual seasons. For example, the first episode of the first season of -the original "Doctor Who" could be stored as:
- tv/Doctor Who (1963)/Season 1/Doctor Who - s01e01.mp4
-
-
-The TVDB is one source for the exact names of TV -shows.
-Unfortunately, there are number of special cases, especially related to split -movies and older series. See the movie -naming and TV -naming guides for further -information.
- - - - - - - - - - -Homepage: https://firefly-iii.org/
-Firefly III is a self-hosted financial manager. It can help you keep track of expenses, income, budgets and everything in between. It supports credit cards, shared household accounts and savings accounts. It’s pretty fancy. You should use it to save and organise money.
-Set firefly_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
The Firefly III web interface can be found at http://ansible_nas_host_or_ip:8066.
- - - - - - - - - - -Homepage: https://github.com/get-iplayer/get_iplayer
-Downloads TV and radio programmes from BBC iPlayer.
-Set get_iplayer_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
The get_iplayer web interface can be found at http://ansible_nas_host_or_ip:8182.
- - - - - - - - - - -Homepage: https://docs.gitlab.com/omnibus/docker/
-If Gitea isn't powerful enough for you then consider GitLab. It's a much more powerful (and consquently bigger) Git repository solution that includes a suite of code analytics. On the other hand it requires more RAM.
-Set gitlab_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
To make GitLab available externally via Traefik set gitlab_available_externally: "true"
in your inventories/<your_inventory>/nas.yml
file.
The first time you run GitLab you'll be prompted for an account's password. The password is for GitLab's root
administrator account. From there you can log in to create additional users and further configure the application.
Homepage: hhttps://guacamole.apache.org/
-Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.
-Set guacamole_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
The default username and password is guacadmin
. Change it!
You can run a virtual desktop from your Ansible-NAS box, check out the Virtual Desktop docs.
- - - - - - - - - - -Homepage: https://www.home-assistant.io/
-Set homeassistant_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
If you want to access Home Assistant externally, don't forget to set homeassistant_available_externally: "true"
in your inventories/<your_inventory>/nas.yml
file.
The Home Assistant web interface can be found at http://ansible_nas_host_or_ip:8123.
- - - - - - - - - - -Homepage: https://github.com/nfarina/homebridge
-Homebridge is a lightweight NodeJS server you can run on your home network that emulates the iOS HomeKit API. It supports Plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of "smart home" devices.
-Set homebridge_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
The Homebridge web interface can be found at http://ansible_nas_host_or_ip:8087. The default username and password is 'admin' - change this after your first login!
- - - - - - - - - - -Homepage: https://github.com/Jackett/Jackett
-Jackett works as a proxy server: it translates queries from apps (Sonarr, Radarr, SickRage, CouchPotato, Mylar, DuckieTV, qBittorrent, Nefarious 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.
-Set jackett_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
The Jackett web interface can be found at http://ansible_nas_host_or_ip:9117.
- - - - - - - - - - -Homepage: https://jellyfin.github.io/
-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. We welcome anyone who is interested in joining us in our quest!
-Note that Plex, also included in Ansible-NAS, has a very -similar functionality.
-Set jellyfin_enabled: true
in your inventories/<your_inventory>/nas.yml
file. There are further
-parameters you can edit such as movies_root
and tv_root
lower down.
The jellyfin web interface can be found at port 8896 (http) or 8928 (https, if -configured) of your NAS.
-By default, Ansible-NAS gives jellyfin read/write access to the folders where your
-movies and TV shows are stored. To change this to read-only, edit the following
-lines in all.yml
:
jellyfin_movies_permissions: "rw"
- jellyfin_tv_permissions: "rw"
-
-
-so that they end in ro
instead of rw
. Note that jellyfin will not be able to
-delete files then, which might be exactly what you want. However, you will not
-have the option to store cover art in the related folders. Always leave the
-configuration directory read/write.
Movie and TV show files are almost alway very large and pre-compressed. If you -are using a specialized filesystem such as ZFS for bulk storage, you'll want to -set the parameters accordingly. The ZFS configuration -documentation has an example of this.
-jellyfin is very fussy about how movies and TV shows must be named to enable -automatic downloads of cover art and metadata. In short, movie files should -follow how movies are listed in the IMDb, including the -year of publication:
- movies/Bride of Frankenstein (1935).mp4
-
-
-Note the spaces. You should probably remove colons and other special characters.
-TV shows require a folder structure with the name of the series - again if -possible with the year of publication - followed by sub-folders for the -individual seasons. For example, the first episode of the first season of -the original "Doctor Who" could be stored as:
- tv/Doctor Who (1963)/Season 1/Doctor Who - s01e01.mp4
-
-
-The TVDB is one source for the exact names of TV -shows.
-Unfortunately, there are number of special cases, especially related to split -movies and older series. See the movie -naming and TV -naming guides for further -information.
- - - - - - - - - - -Homepage: https://www.joomla.org/
-Joomla! is an award-winning content management system (CMS), which enables you to build web sites and powerful online applications.
-Set joomla_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
If you want to access Joomla externally, set joomla_available_externally: "true"
in your inventories/<your_inventory>/nas.yml
file.
The Joomla web interface can be found at http://ansible_nas_host_or_ip:8181.
-Set joomla_database_password
in your all.yml
before installing Joomla.
On first run you'll need to enter database details:
-mysql
joomla
root
joomla_database_password
.Homepage: https://lidarr.audio/
-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.
-Set lidarr_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
Homepage: https://sourceforge.net/projects/minidlna/
-MiniDLNA is server software with the aim of being fully compliant with DLNA/UPnP clients. The MiniDNLA daemon serves media files (music, pictures, and video) to clients on a network. Example clients include applications such as Totem and Kodi, and devices such as portable media players, Smartphones, Televisions, and gaming systems (such as PS3 and Xbox 360).
-Set minidlna_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
The very basic MiniDLNA web interface can be found at http://ansible_nas_host_or_ip:8201.
- - - - - - - - - - -Homepage: https://miniflux.app/
-Miniflux is a minimalist and opinionated feed reader.
-Set miniflux_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
The Miniflux web interface can be found at http://ansible_nas_host_or_ip:8070, the default username is admin
and password supersecure
.
An admin user will be created with the username and password of miniflux_admin_username
and miniflux_admin_password
respectively. These can be found in the Miniflux section within all.yml.dist
.
Homepage: https://mosquitto.org
-Mosquitto is a lightweight open source MQTT message broker.
-Set mosquitto_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
Homepage: https://www.mymediaalexa.com/
-My Media lets you stream your music collection to your Amazon Echo or Amazon Dot without having to upload all your music collection to the Cloud. This keeps your music under your control.
-Set mymediaforalexa_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
The My Media for Alexa web interface can be found at http://ansible_nas_host_or_ip:52051.
- - - - - - - - - - -Homepage: https://nextcloud.com
-Set nextcloud_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
Tread carefully.
-External access may require that you manually configure your Fully Qualified Domain Name (FQDN) as a trusted domain within the application. There is an evnironment variable set up for this in the "nextcloud task" which will most likely make manual configuration unneccessary. If you get the following screenshot warning when trying to access nextcloud externally you'll need to manually set it up.
-This can be accomplished in two commands.
-# On the server where the docker containers are running
-$ docker exec -it --user www-data nextcloud /bin/bash
-$ php occ config:system:set trusted_domains INDEX_FOR_NEW_ENTRY_SEE_DOCS_LINK_BELOW --value=YOUR_FQDN_HERE --update-only
-
-
-The above commands are documented in the administration guide for Nextcloud:
- - - - - - - - - - - -Homepage: https://nzbget.net/
-The most efficient Usenet downloader. NZBGet is written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources.
-Set nzbget_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
The NZBget web interface can be found at http://ansible_nas_host_or_ip:6789, the default username is nzbget
and password tegbzn6789
. Change this once you've logged in!
Homepage: https://ombi.io/
-Ombi is a self-hosted web application that automatically gives your shared Plex or Emby users the ability to request content by themselves! Ombi can be linked to multiple TV Show and Movie DVR tools to create a seamless end-to-end experience for your users.
-Set ombi_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
Homepage: https://www.openhab.org/
-OpenHab is a vendor and technology agnostic open source automation software for your home. -It allows you to connect many different IoT-Devices (which in this case means "Intranet of Things") using custom bindings made by the community.
-Set openhab_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
The openHAB Webinterface is available at port 7777 (HTTP) and 7778 (HTTPS). -Visit the webinterface and follow the setup instructions found in the openHAB Documentation
- - - - - - - - - - -Homepage: https://pyload.net/
-Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web -.
-Set pyload_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
pyLoad's web interface can be found at http://ansible_nas_host_or_ip:8000
-Default username is pyload
and default password is pyload
.
In order to add or remove users, you will need to access the container from an interactive shell (can easily be done from portainer, if installed) and enter pyLoad's home directory /opt/pyload
and using the command python pyLoadCore.py -u
and follow the on-screen prompts. More commands to configure and customize pyLoad can be found on it's website.
Homepage: radarr
-Radarr is an independent fork of Sonarr reworked for automatically downloading movies via Usenet and BitTorrent.
-Set radarr_enabled: true
in your /inventories/[my inventory]/group_vars/nas.yml
file.
The Radarr web interface can be found at http://ansible_nas_host_or_ip:7878
by default
First make sure Radarr has permissions to write and read the /download
, and /movies
folders. Do this by ensuring the radarr_movies_directory:
and radarr_download_directory
settings are correct.
Radarr will get the file path from the Download client. On default settings with Transmission the path is /storage/downloads/complete
. You will need to create a path mapping in the Remote Path Mappings settings under Download Client to point to your internal path that is by default /downloads
. If you have difficulties with the path mapping you could also just add a new volume path for the Transmission container and use /downloads
as the download directory.
For Radarr to understand that the /movies
folder is a folder, you'll need to add a new subfolder into it.
-You can also do this by adding a random movie to the folder. Keep in mind to have the internal setting Create empty movie folders on yes
Comprehensive setup information can be found on the Radarr github wiki
- - - - - - - - - - -Homepage: https://serposcope.serphacker.com/en/
-Serposcope is a free and open-source rank tracker to monitor websites ranking in Google and improve your SEO performances
-Set serposcope_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
The Serposcope web interface can be found at http://ansible_nas_host_or_ip:7134.
- - - - - - - - - - -Homepages: sonarr
-Sonarr 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.
-Set sonarr_enabled: true
in your /inventories/[my inventory]/group_vars/nas.yml
file.
The Sonarr web interface can be found at http://ansible_nas_host_or_ip:8989
by default
First make sure Sonarr has permissions to write and read the /download
and /tv
folders. Do this by ensuring the sonarr_movies_directory:
and sonarr_download_directory
settings are correct.
Sonarr will get the file path from the Download client. On default settings with Transmission the path is /storage/downloads/complete
. You will need to create a path mapping in the Remote Path Mappings settings under Download Client to point to your internal path that is by default /downloads
. If you have difficulties with the path mapping you could also just add a new volume path for the Transmission container and use /downloads
as the download directory.
For Sonarr to understand that the /tv
folder is a folder, you'll need to add a folder into it.
-You can also do this by adding a random series to the folder. Keep in mind to have the setting Create empty movie folders on yes
For comprehensive configuration instructions see the Sonarr github wiki
- - - - - - - - - - -Homepage: https://thelounge.chat/
-The Lounge is a self-hosted web IRC client.
-Set thelounge_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
The Lounge web interface can be found at http://ansible_nas_host_or_ip:9000.
-The default username and password is admin
. Change this once you've logged in!
Apple docs: https://support.apple.com/en-us/HT201250 -Docker image: https://github.com/awlx/samba-timemachine
-Time Machine is an application that allows you to backup files from your Mac.
-Older versions of Time Machine relied on AFP (netatalk) shares. Apple has deprecated Time Machine over AFP in favor of SMB (Samba), and current versions of Ansible-NAS use a Samba-based Time Machine share. If you are upgrading from an older version of Ansible-NAS, you will need to re-select your Time Machine back up disk by opening Time Machine Preferences and Selecting your backup disk via the "Select Disk..." option. Your Mac will find the old backups on the share and use them.
-Set timemachine_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
Enabling Time Machine will result in the installation of Avahi on the NAS system (if it is not already installed) and a Time Machine service configuration file for Avahi will be added to the system (at /etc/avahi/services/timemachine.service
) to allow for Time Machine discovery by Macs on the local network. Avahi runs on the system, rather than in a container, as the same Avahi instance can be used to announce any number of services.
The Samba server included in the Time Machine docker container logs to STDOUT
and is compatible with Docker's built-in logging infrastructure.
Homepage: https://traefik.io
-Traefik is used to provide external access to your Ansible-NAS box. Additionally, Traefik will automatically request and renew SSL certificates for you.
-You can configure which applications are available externally by enabling the <application_name>_available_externally
setting
-for each application in the Advanced Settings section of your all.yml
.
See External Access for more info.
-Set traefik_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
Traefik's web interface can be found at http://ansible_nas_host_or_ip:8083.
-You'll need to map port 80 and 443 from your router to your Ansible-NAS box. A quick search should reveal instruction for your model of router.
- - - - - - - - - - -Homepage: https://transmissionbt.com/
-Transmission is a free BitTorrent client. Two versions are provided - one that tunnels through a VPN and one that connects -directly.
-Set transmission_enabled: true
, or transmission_with_openvpn_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
Transmission's web interface can be found at http://ansible_nas_host_or_ip:9091 (with VPN) or http://ansible_nas_host_or_ip:9092 (without VPN).
-If you enable Transmission with OpenVPN, you'll need to add the following to your inventory all.yml
:
openvpn_username: super_secret_username
-openvpn_password: super_secret_password
-openvpn_provider: NORDVPN
-openvpn_config: uk686.nordvpn.com.udp
-
-
-See https://hub.docker.com/r/haugene/transmission-openvpn/ for supported VPN providers.
- - - - - - - - - - -Homepage: https://vaemendis.net/ubooquity/ -Documentation: https://vaemendis.github.io/ubooquity-doc/ -Docker Image: https://hub.docker.com/r/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.
-Set ubooquity_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
Access the webui at http://
Important note: if you want to access Ubooquity externally through Traefik (at ubooquity.yourdomain.tld), you need to go to http://
The admin portal is not exposed through Traefik. You can access the admin portal on port 2203.
-Upon your first run, the address is http://
It's possible to run a cut down desktop within a Docker container. We use RattyDAVE's custom Ubuntu Mate image.
-Set virtual_desktop_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
By default {{ ansible_nas_user }}
will be granted access with a password of topsecret
with sudo rights. To change or add additional users override vd_users
in your nas.yml
:
vd_users:
- - username: "{{ ansible_nas_user }}"
- password: "topsecret"
- sudo: "Y"
- - username: "larrylaffer"
- password: "kensentme"
- sudo: "Y"
-
-
-{{ samba_shares_root }}
is mounted to /samba
.
-{{ docker_home }}
is mounted to /docker
.
It's possible to access your virtual desktop through a web browser! Check out Guacamole.
- - - - - - - - - - -Homepage: https://www.wallabag.org/
-wallabag is a self-hostable PHP application allowing you to not miss any content anymore. Click, save and read it when you can. It extracts content so that you can read it when you have time.
-Set wallabag_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
If you want to access Wallabag externally, don't forget to set wallabag_available_externally: "true"
in your inventories/<your_inventory>/nas.yml
file.
I reccomend using the mobile app, which will sync with this installation so you have access to your saved articles even if you don't have signal or wifi access.
-The default credentials are wallabag:wallabag
-The Wallabag web interface can be found at http://ansible_nas_host_or_ip:7780.
- - - - - - - - - - -Homepage: https://github.com/v2tec/watchtower
-A process for watching your Docker containers and automatically updating and restarting them whenever their base image is refreshed.
-Set watchtower_enabled: true
in your inventories/<your_inventory>/nas.yml
file.
By default Watchtower is configured to check daily at 5am for updates.
-Various notification options are available, and can be configured by updating watchtower_command
in your inventories/<your_inventory>/nas.yml
file. A few examples are provided. The full set of options can be found at the Watchtower GitHub project page.
["'])(?.*?)\1/,f=/\{(? [\d,-]+)\}/,g={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"},lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""}};function x(e,t){const n=e.map((e=>{const{start:n,end:s}=g[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function j(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:o,metastring:a}=t;if(a&&f.test(a)){const e=a.match(f).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${a}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=o[0].className,s=h()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return x(["js","jsBlock"],t);case"jsx":case"tsx":return x(["js","jsBlock","jsx"],t);case"html":return x(["js","jsBlock","html"],t);case"python":case"py":case"bash":return x(["bash"],t);case"markdown":case"md":return x(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return x(["tex"],t);case"lua":case"haskell":case"sql":return x(["lua"],t);case"wasm":return x(["wasm"],t);default:return x(Object.keys(g).filter((e=>!["lua","wasm","tex","latex","matlab"].includes(e))),t)}}(s,o),c=n.split("\n"),r=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),l=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h void 0!==e));l[t]?r[l[t]].range+=`${h},`:d[t]?r[d[t]].start=h:u[t]&&(r[u[t]].range+=`${r[u[t]].start}-${h-1},`),c.splice(h,1)}n=c.join("\n");const m={};return Object.entries(r).forEach((e=>{let[t,{range:n}]=e;h()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const b={codeBlockContainer:"codeBlockContainer_Ckt0"};var v=n(5893);function N(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,o]=e;const a=t[s];a&&"string"==typeof o&&(n[a]=o)})),n}(d());return(0,v.jsx)(t,{...n,style:s,className:(0,c.Z)(n.className,b.codeBlockContainer,u.k.common.codeBlock)})}const k={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function y(e){let{children:t,className:n}=e;return(0,v.jsx)(N,{as:"pre",tabIndex:0,className:(0,c.Z)(k.codeBlockStandalone,"thin-scrollbar",n),children:(0,v.jsx)("code",{className:k.codeBlockLines,children:t})})}var C=n(902);const B={attributes:!0,characterData:!0,childList:!0,subtree:!0};function w(e,t){const[n,o]=(0,s.useState)(),a=(0,s.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,s.useEffect)((()=>{a()}),[a]),function(e,t,n){void 0===n&&(n=B);const o=(0,C.zX)(t),a=(0,C.Ql)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(o);return e&&t.observe(e,a),()=>t.disconnect()}),[e,o,a])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),a())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var Z=n(2573);const L={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function _(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:o,getTokenProps:a}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const i=o({line:t,className:(0,c.Z)(n,s&&L.codeLine)}),r=t.map(((e,t)=>(0,v.jsx)("span",{...a({token:e,key:t})},t)));return(0,v.jsxs)("span",{...i,children:[s?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("span",{className:L.codeLineNumber}),(0,v.jsx)("span",{className:L.codeLineContent,children:r})]}):r,(0,v.jsx)("br",{})]})}var E=n(5999);function T(e){return(0,v.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,v.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function S(e){return(0,v.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,v.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const z={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function I(e){let{code:t,className:n}=e;const[o,a]=(0,s.useState)(!1),i=(0,s.useRef)(void 0),r=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),o=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const a=document.getSelection(),i=a.rangeCount>0&&a.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let c=!1;try{c=document.execCommand("copy")}catch{}s.remove(),i&&(a.removeAllRanges(),a.addRange(i)),o&&o.focus()}(t),a(!0),i.current=window.setTimeout((()=>{a(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(i.current)),[]),(0,v.jsx)("button",{type:"button","aria-label":o?(0,E.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,E.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,E.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,c.Z)("clean-btn",n,z.copyButton,o&&z.copyButtonCopied),onClick:r,children:(0,v.jsxs)("span",{className:z.copyButtonIcons,"aria-hidden":"true",children:[(0,v.jsx)(T,{className:z.copyButtonIcon}),(0,v.jsx)(S,{className:z.copyButtonSuccessIcon})]})})}function A(e){return(0,v.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,v.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const M={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function H(e){let{className:t,onClick:n,isEnabled:s}=e;const o=(0,E.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,v.jsx)("button",{type:"button",onClick:n,className:(0,c.Z)("clean-btn",t,s&&M.wordWrapButtonEnabled),"aria-label":o,title:o,children:(0,v.jsx)(A,{className:M.wordWrapButtonIcon,"aria-hidden":"true"})})}function R(e){let{children:t,className:n="",metastring:o,title:a,showLineNumbers:i,language:r}=e;const{prism:{defaultLanguage:u,magicComments:m}}=(0,l.L)(),h=function(e){return e?.toLowerCase()}(r??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??u),f=d(),g=function(){const[e,t]=(0,s.useState)(!1),[n,o]=(0,s.useState)(!1),a=(0,s.useRef)(null),i=(0,s.useCallback)((()=>{const n=a.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[a,e]),c=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=a.current,n=e>t||a.current.querySelector("code").hasAttribute("style");o(n)}),[a]);return w(a,c),(0,s.useEffect)((()=>{c()}),[e,c]),(0,s.useEffect)((()=>(window.addEventListener("resize",c,{passive:!0}),()=>{window.removeEventListener("resize",c)})),[c]),{codeBlockRef:a,isEnabled:e,isCodeScrollable:n,toggle:i}}(),x=function(e){return e?.match(p)?.groups.title??""}(o)||a,{lineClassNames:b,code:y}=j(t,{metastring:o,language:h,magicComments:m}),C=i??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return(0,v.jsxs)(N,{as:"div",className:(0,c.Z)(n,h&&!n.includes(`language-${h}`)&&`language-${h}`),children:[x&&(0,v.jsx)("div",{className:k.codeBlockTitle,children:x}),(0,v.jsxs)("div",{className:k.codeBlockContent,children:[(0,v.jsx)(Z.y$,{theme:f,code:y,language:h??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:o,getTokenProps:a}=e;return(0,v.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,c.Z)(t,k.codeBlock,"thin-scrollbar"),style:n,children:(0,v.jsx)("code",{className:(0,c.Z)(k.codeBlockLines,C&&k.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,v.jsx)(_,{line:e,getLineProps:o,getTokenProps:a,classNames:b[t],showLineNumbers:C},t)))})})}}),(0,v.jsxs)("div",{className:k.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,v.jsx)(H,{className:k.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,v.jsx)(I,{className:k.codeButton,code:y})]})]})]})}function V(e){let{children:t,...n}=e;const o=(0,i.Z)(),a=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),c="string"==typeof a?R:y;return(0,v.jsx)(c,{...n,children:a},String(o))}var W=n(9960);var $=n(6043);const P={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function q(e){return!!e&&("SUMMARY"===e.tagName||q(e.parentElement))}function D(e,t){return!!e&&(e===t||D(e.parentElement,t))}function O(e){let{summary:t,children:n,...o}=e;const a=(0,i.Z)(),r=(0,s.useRef)(null),{collapsed:l,setCollapsed:d}=(0,$.u)({initialState:!o.open}),[u,m]=(0,s.useState)(o.open),h=s.isValidElement(t)?t:(0,v.jsx)("summary",{children:t??"Details"});return(0,v.jsxs)("details",{...o,ref:r,open:u,"data-collapsed":l,className:(0,c.Z)(P.details,a&&P.isBrowser,o.className),onMouseDown:e=>{q(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;q(t)&&D(t,r.current)&&(e.preventDefault(),l?(d(!1),m(!0)):d(!0))},children:[h,(0,v.jsx)($.z,{lazy:!1,collapsed:l,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),m(!e)},children:(0,v.jsx)("div",{className:P.collapsibleContent,children:n})})]})}const F={details:"details_b_Ee"},G="alert alert--info";function U(e){let{...t}=e;return(0,v.jsx)(O,{...t,className:(0,c.Z)(G,F.details,t.className)})}function J(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),o=(0,v.jsx)(v.Fragment,{children:t.filter((e=>e!==n))});return(0,v.jsx)(U,{...e,summary:n,children:o})}var Q=n(2503);function X(e){return(0,v.jsx)(Q.Z,{...e})}const Y={containsTaskList:"containsTaskList_mC6p"};function K(e){if(void 0!==e)return(0,c.Z)(e,e?.includes("contains-task-list")&&Y.containsTaskList)}const ee={img:"img_ev3q"};var te=n(9047),ne=n(1875);const se={Head:a.Z,details:J,Details:J,code:function(e){return s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))?(0,v.jsx)("code",{...e}):(0,v.jsx)(V,{...e})},a:function(e){return(0,v.jsx)(W.Z,{...e})},pre:function(e){return(0,v.jsx)(v.Fragment,{children:e.children})},ul:function(e){return(0,v.jsx)("ul",{...e,className:K(e.className)})},img:function(e){return(0,v.jsx)("img",{loading:"lazy",...e,className:(t=e.className,(0,c.Z)(t,ee.img))});var t},h1:e=>(0,v.jsx)(X,{as:"h1",...e}),h2:e=>(0,v.jsx)(X,{as:"h2",...e}),h3:e=>(0,v.jsx)(X,{as:"h3",...e}),h4:e=>(0,v.jsx)(X,{as:"h4",...e}),h5:e=>(0,v.jsx)(X,{as:"h5",...e}),h6:e=>(0,v.jsx)(X,{as:"h6",...e}),admonition:te.Z,mermaid:ne.Z};function oe(e){let{children:t}=e;return(0,v.jsx)(o.Z,{components:se,children:t})}},2244:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});n(7294);var s=n(512),o=n(9960),a=n(5893);function i(e){const{permalink:t,title:n,subLabel:i,isNext:c}=e;return(0,a.jsxs)(o.Z,{className:(0,s.Z)("pagination-nav__link",c?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[i&&(0,a.jsx)("div",{className:"pagination-nav__sublabel",children:i}),(0,a.jsx)("div",{className:"pagination-nav__label",children:n})]})}},3008:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var s=n(512),o=n(9960);const a={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};var i=n(5893);function c(e){let{permalink:t,label:n,count:c}=e;return(0,i.jsxs)(o.Z,{href:t,className:(0,s.Z)(a.tag,c?a.tagWithCount:a.tagRegular),children:[n,c&&(0,i.jsx)("span",{children:c})]})}},1526:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});n(7294);var s=n(512),o=n(5999),a=n(3008);const i={tags:"tags_jXut",tag:"tag_QGVx"};var c=n(5893);function r(e){let{tags:t}=e;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("b",{children:(0,c.jsx)(o.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,c.jsx)("ul",{className:(0,s.Z)(i.tags,"padding--none","margin-left--sm"),children:t.map((e=>{let{label:t,permalink:n}=e;return(0,c.jsx)("li",{className:i.tag,children:(0,c.jsx)(a.Z,{label:t,permalink:n})},n)}))})]})}},7594:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,o,a]=t;if(s&&a){s=parseInt(s),a=parseInt(a);const e=s{"use strict";n.d(t,{Z:()=>c,a:()=>i});var s=n(7294);const o={},a=s.createContext(o);function i(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/59243b4a.d544dd65.js b/assets/js/59243b4a.d544dd65.js new file mode 100644 index 0000000000..43cdbd2ecf --- /dev/null +++ b/assets/js/59243b4a.d544dd65.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[4234],{4188:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>u,contentTitle:()=>s,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var t=r(5893),o=r(1151);const i={},s="Hardware",a={id:"further-configuration/hardware",title:"Hardware",description:'Ansible-NAS will run against any Ubuntu box, a Raspberry Pi 4, or even a VM if you\'re just testing things out. The hardware you pick for Ansible-NAS depends largely on what you intend to do with your server - and is very much a "how long is a piece of string" type question.',source:"@site/docs/further-configuration/hardware.md",sourceDirName:"further-configuration",slug:"/further-configuration/hardware",permalink:"/docs/further-configuration/hardware",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/further-configuration/hardware.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Further Configuration",permalink:"/docs/category/further-configuration"},next:{title:"Migrating from FreeNAS",permalink:"/docs/further-configuration/migrating-from-freenas"}},u={},l=[{value:"Questions To Think About",id:"questions-to-think-about",level:2},{value:"HP Microserver",id:"hp-microserver",level:2}];function d(e){const n={a:"a",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"hardware",children:"Hardware"}),"\n",(0,t.jsx)(n.p,{children:'Ansible-NAS will run against any Ubuntu box, a Raspberry Pi 4, or even a VM if you\'re just testing things out. The hardware you pick for Ansible-NAS depends largely on what you intend to do with your server - and is very much a "how long is a piece of string" type question.'}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.a,{href:"https://www.reddit.com/r/HomeServer/",children:"homeserver Reddit"})," has lots of good information."]}),"\n",(0,t.jsx)(n.h2,{id:"questions-to-think-about",children:"Questions To Think About"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"What will be taxing the CPU(s) on your Ansible-NAS box? Are you intending to transcode video? How many users will be hitting it?"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"How many applications do you intend to run in parallel? How much memory do these applications require?"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"Are you going to run the ZFS file system?"}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:"What are you intending to store on your Ansible-NAS? Is it data you can download again, or is it important to you that you don't lose it? Do you need mirrored disks?"}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"hp-microserver",children:"HP Microserver"}),"\n",(0,t.jsx)(n.p,{children:"Ansible-NAS development is tested against an HP Microserver N54L, with 16GB of memory, a 120GB SSD for the OS and 5x4TB WD Red NAS drives for storage. It works great :-)"}),"\n",(0,t.jsx)(n.p,{children:"This is obviously not the only solution but a reasonable one if you just want a single box to buy. Many different models are available on eBay at varying prices."})]})}function h(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>a,a:()=>s});var t=r(7294);const o={},i=t.createContext(o);function s(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5a7afefa.ff441173.js b/assets/js/5a7afefa.ff441173.js new file mode 100644 index 0000000000..2986324b16 --- /dev/null +++ b/assets/js/5a7afefa.ff441173.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9116],{3580:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>t,metadata:()=>a,toc:()=>d});var s=i(5893),o=i(1151);const t={title:"Jellyfin"},r=void 0,a={id:"applications/media-serving/jellyfin",title:"Jellyfin",description:"Homepage//jellyfin.org/",source:"@site/docs/applications/media-serving/jellyfin.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/jellyfin",permalink:"/docs/applications/media-serving/jellyfin",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/jellyfin.md",tags:[],version:"current",frontMatter:{title:"Jellyfin"},sidebar:"tutorialSidebar",previous:{title:"Emby",permalink:"/docs/applications/media-serving/emby"},next:{title:"Komga",permalink:"/docs/applications/media-serving/komga"}},l={},d=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2},{value:"Naming movies and TV shows",id:"naming-movies-and-tv-shows",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["Homepage: ",(0,s.jsx)(n.a,{href:"https://jellyfin.org/",children:"https://jellyfin.org/"})]}),"\n",(0,s.jsx)(n.p,{children:"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. We welcome anyone who is interested in joining us in our quest!"}),"\n",(0,s.jsxs)(n.p,{children:["Note that ",(0,s.jsx)(n.a,{href:"https://www.plex.tv/",children:"Plex"}),", also included in Ansible-NAS, has a very\nsimilar functionality."]}),"\n",(0,s.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(n.p,{children:["Set ",(0,s.jsx)(n.code,{children:"jellyfin_enabled: true"})," in your ",(0,s.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file. There are further\nparameters you can edit such as ",(0,s.jsx)(n.code,{children:"movies_root"}),", ",(0,s.jsx)(n.code,{children:"tv_root"})," or ",(0,s.jsx)(n.code,{children:"music_root"})," lower down"]}),"\n",(0,s.jsx)(n.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,s.jsx)(n.p,{children:"The jellyfin web interface can be found at port 8896 (http) or 8928 (https, if\nconfigured) of your NAS."}),"\n",(0,s.jsxs)(n.p,{children:["By default, Ansible-NAS gives jellyfin read/write access to the folders where your\nmovies, TV shows and music are stored. To change this to read-only, edit the following\nlines in ",(0,s.jsx)(n.code,{children:"all.yml"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:' jellyfin_movies_permissions: "rw"\n jellyfin_tv_permissions: "rw"\n jellyfin_books_permissions: "rw"\n jellyfin_audiobooks_permissions: "rw"\n jellyfin_music_permissions: "rw"\n'})}),"\n",(0,s.jsxs)(n.p,{children:["so that they end in ",(0,s.jsx)(n.code,{children:"ro"})," instead of ",(0,s.jsx)(n.code,{children:"rw"}),". Note that jellyfin will not be able to\ndelete files then, which might be exactly what you want. However, you will not\nhave the option to store cover art in the related folders. Always leave the\nconfiguration directory read/write"]}),"\n",(0,s.jsx)(n.h2,{id:"naming-movies-and-tv-shows",children:"Naming movies and TV shows"}),"\n",(0,s.jsxs)(n.p,{children:["jellyfin is very fussy about how movies and TV shows must be named to enable\nautomatic downloads of cover art and metadata. In short, movie files should\nfollow how movies are listed in the ",(0,s.jsx)(n.a,{href:"https://www.imdb.com/",children:"IMDb"}),", including the\nyear of publication:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-raw",children:" movies/Bride of Frankenstein (1935).mp4\n"})}),"\n",(0,s.jsx)(n.p,{children:'Note the spaces. You should probably remove colons and other special characters\nTV shows require a folder structure with the name of the series - again if\npossible with the year of publication - followed by sub-folders for the\nindividual seasons. For example, the first episode of the first season of\nthe original "Doctor Who" could be stored as:'}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-raw",children:" tv/Doctor Who (1963)/Season 1/Doctor Who - s01e01.mp4\n"})}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.a,{href:"https://www.thetvdb.com/",children:"TVDB"})," is one source for the exact names of TV\nshows."]}),"\n",(0,s.jsxs)(n.p,{children:["Unfortunately, there are number of special cases, especially related to split\nmovies and older series. See the ",(0,s.jsx)(n.a,{href:"https://github.com/MediaBrowser/Wiki/wiki/Movie%20naming",children:"movie\nnaming"})," and ",(0,s.jsx)(n.a,{href:"https://github.com/MediaBrowser/Wiki/wiki/TV-naming",children:"TV\nnaming"})," guides for further\ninformation."]})]})}function h(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,n,i)=>{i.d(n,{Z:()=>a,a:()=>r});var s=i(7294);const o={},t=s.createContext(o);function r(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5ac6a52c.959cfaa4.js b/assets/js/5ac6a52c.959cfaa4.js new file mode 100644 index 0000000000..a8a40dd6d3 --- /dev/null +++ b/assets/js/5ac6a52c.959cfaa4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[4361],{4476:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var n=o(5893),a=o(1151);const i={title:"Get_iPlayer"},s=void 0,r={id:"applications/download-tools/get_iplayer",title:"Get_iPlayer",description:"Homepage//github.com/get-iplayer/getiplayer",source:"@site/docs/applications/download-tools/get_iplayer.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/get_iplayer",permalink:"/docs/applications/download-tools/get_iplayer",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/get_iplayer.md",tags:[],version:"current",frontMatter:{title:"Get_iPlayer"},sidebar:"tutorialSidebar",previous:{title:"FlareSolverr",permalink:"/docs/applications/download-tools/flaresolverr"},next:{title:"Jackett",permalink:"/docs/applications/download-tools/jackett"}},l={},c=[{value:"Usage",id:"usage",level:2}];function p(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Homepage: ",(0,n.jsx)(t.a,{href:"https://github.com/get-iplayer/get_iplayer",children:"https://github.com/get-iplayer/get_iplayer"})]}),"\n",(0,n.jsx)(t.p,{children:"Downloads TV and radio programmes from BBC iPlayer."}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"get_iplayer_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(t.p,{children:["The get_iplayer web interface can be found at ",(0,n.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:8182",children:"http://ansible_nas_host_or_ip:8182"}),"."]})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>r,a:()=>s});var n=o(7294);const a={},i=n.createContext(a);function s(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5e95c892.ffbcb476.js b/assets/js/5e95c892.ffbcb476.js new file mode 100644 index 0000000000..1b3932ab56 --- /dev/null +++ b/assets/js/5e95c892.ffbcb476.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9661],{1892:(e,s,a)=>{a.r(s),a.d(s,{default:()=>i});a(7294);var n=a(512),r=a(1944),u=a(5281),c=a(8790),l=a(6040),t=a(5893);function i(e){return(0,t.jsx)(r.FG,{className:(0,n.Z)(u.k.wrapper.docsPages),children:(0,t.jsx)(l.Z,{children:(0,c.H)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/assets/js/6465d520.a20cc889.js b/assets/js/6465d520.a20cc889.js new file mode 100644 index 0000000000..1bab28a891 --- /dev/null +++ b/assets/js/6465d520.a20cc889.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[667],{4452:s=>{s.exports=JSON.parse('{"permalink":"/blog/tags/ansible-nas","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/65d1c99d.bfd0200c.js b/assets/js/65d1c99d.bfd0200c.js new file mode 100644 index 0000000000..78e798d358 --- /dev/null +++ b/assets/js/65d1c99d.bfd0200c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[3412],{4765:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>r,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=t(5893),s=t(1151);const o={title:"Wallabag"},l=void 0,i={id:"applications/other/wallabag",title:"Wallabag",description:"Homepage//www.wallabag.org/",source:"@site/docs/applications/other/wallabag.md",sourceDirName:"applications/other",slug:"/applications/other/wallabag",permalink:"/docs/applications/other/wallabag",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/other/wallabag.md",tags:[],version:"current",frontMatter:{title:"Wallabag"},sidebar:"tutorialSidebar",previous:{title:"Virtual Desktop",permalink:"/docs/applications/other/virtual_desktop"},next:{title:"Stacks",permalink:"/docs/category/stacks"}},r={},c=[{value:"Usage",id:"usage",level:2}];function d(e){const a={a:"a",code:"code",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(a.p,{children:["Homepage: ",(0,n.jsx)(a.a,{href:"https://www.wallabag.org/",children:"https://www.wallabag.org/"})]}),"\n",(0,n.jsx)(a.p,{children:"wallabag is a self-hostable PHP application allowing you to not miss any content anymore. Click, save and read it when you can. It extracts content so that you can read it when you have time."}),"\n",(0,n.jsx)(a.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(a.p,{children:["Set ",(0,n.jsx)(a.code,{children:"wallabag_enabled: true"})," in your ",(0,n.jsx)(a.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(a.p,{children:["If you want to access wallabag externally, don't forget to set ",(0,n.jsx)(a.code,{children:"wallabag_available_externally: true"})," in your ",(0,n.jsx)(a.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsx)(a.p,{children:"I recommend using the mobile app, which will sync with this installation so you have access to your saved articles even if you don't have signal or wifi access."}),"\n",(0,n.jsxs)(a.p,{children:["The default credentials are wallabag",":wallabag"]}),"\n",(0,n.jsxs)(a.p,{children:["The wallabag web interface can be found at ",(0,n.jsx)(a.a,{href:"http://ansible_nas_host_or_ip:7780",children:"http://ansible_nas_host_or_ip:7780"}),"."]})]})}function p(e={}){const{wrapper:a}={...(0,s.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,a,t)=>{t.d(a,{Z:()=>i,a:()=>l});var n=t(7294);const s={},o=n.createContext(s);function l(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function i(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),n.createElement(o.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/66c73125.eff9bae3.js b/assets/js/66c73125.eff9bae3.js new file mode 100644 index 0000000000..2edfde6e63 --- /dev/null +++ b/assets/js/66c73125.eff9bae3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9014],{9104:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>r,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var i=t(5893),o=t(1151);const s={title:"Glances"},a=void 0,c={id:"applications/monitoring/glances",title:"Glances",description:"Homepage//nicolargo.github.io/glances/",source:"@site/docs/applications/monitoring/glances.md",sourceDirName:"applications/monitoring",slug:"/applications/monitoring/glances",permalink:"/docs/applications/monitoring/glances",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/monitoring/glances.md",tags:[],version:"current",frontMatter:{title:"Glances"},sidebar:"tutorialSidebar",previous:{title:"Monitoring",permalink:"/docs/category/monitoring"},next:{title:"Speedtest-Tracker",permalink:"/docs/applications/monitoring/speedtest"}},r={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function p(n){const e={a:"a",code:"code",h2:"h2",p:"p",...(0,o.a)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(e.p,{children:["Homepage: ",(0,i.jsx)(e.a,{href:"https://nicolargo.github.io/glances/",children:"https://nicolargo.github.io/glances/"})]}),"\n",(0,i.jsx)(e.p,{children:"Glances is a cross-platform system monitoring tool written in Python."}),"\n",(0,i.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsxs)(e.p,{children:["Set ",(0,i.jsx)(e.code,{children:"glances_enabled: true"})," in your ",(0,i.jsx)(e.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,i.jsxs)(e.p,{children:["The Glances web interface can be found at ",(0,i.jsx)(e.a,{href:"http://ansible_nas_host_or_ip:61208",children:"http://ansible_nas_host_or_ip:61208"}),"."]}),"\n",(0,i.jsx)(e.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,i.jsx)(e.p,{children:"Glances can be integrated with InfluxDB and Grafana."})]})}function d(n={}){const{wrapper:e}={...(0,o.a)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(p,{...n})}):p(n)}},1151:(n,e,t)=>{t.d(e,{Z:()=>c,a:()=>a});var i=t(7294);const o={},s=i.createContext(o);function a(n){const e=i.useContext(s);return i.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function c(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(o):n.components||o:a(n.components),i.createElement(s.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/6875c492.9e7db273.js b/assets/js/6875c492.9e7db273.js new file mode 100644 index 0000000000..dedc1be565 --- /dev/null +++ b/assets/js/6875c492.9e7db273.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[8610],{9703:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var s=n(5999),a=n(2244),i=n(5893);function l(e){const{metadata:t}=e,{previousPage:n,nextPage:l}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,s.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[n&&(0,i.jsx)(a.Z,{permalink:n,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),l&&(0,i.jsx)(a.Z,{permalink:l,title:(0,i.jsx)(s.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},9985:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var s=n(9460),a=n(390),i=n(5893);function l(e){let{items:t,component:n=a.Z}=e;return(0,i.jsx)(i.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,i.jsx)(s.n,{content:t,children:(0,i.jsx)(n,{children:(0,i.jsx)(t,{})})},t.metadata.permalink)}))})}},1714:(e,t,n)=>{n.r(t),n.d(t,{default:()=>f});n(7294);var s=n(512),a=n(5999),i=n(8824),l=n(1944),r=n(5281),o=n(9960),c=n(1460),g=n(9703),d=n(197),u=n(9985),h=n(2212),p=n(2503),m=n(5893);function x(e){const t=function(){const{selectMessage:e}=(0,i.c)();return t=>e(t,(0,a.I)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}();return(0,a.I)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function j(e){let{tag:t}=e;const n=x(t);return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(l.d,{title:n}),(0,m.jsx)(d.Z,{tag:"blog_tags_posts"})]})}function b(e){let{tag:t,items:n,sidebar:s,listMetadata:i}=e;const l=x(t);return(0,m.jsxs)(c.Z,{sidebar:s,children:[t.unlisted&&(0,m.jsx)(h.Z,{}),(0,m.jsxs)("header",{className:"margin-bottom--xl",children:[(0,m.jsx)(p.Z,{as:"h1",children:l}),(0,m.jsx)(o.Z,{href:t.allTagsPath,children:(0,m.jsx)(a.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page",children:"View All Tags"})})]}),(0,m.jsx)(u.Z,{items:n}),(0,m.jsx)(g.Z,{metadata:i})]})}function f(e){return(0,m.jsxs)(l.FG,{className:(0,s.Z)(r.k.wrapper.blogPages,r.k.page.blogTagPostListPage),children:[(0,m.jsx)(j,{...e}),(0,m.jsx)(b,{...e})]})}},2212:(e,t,n)=>{n.d(t,{Z:()=>h});n(7294);var s=n(512),a=n(5999),i=n(5742),l=n(5893);function r(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function o(){return(0,l.jsx)(a.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,l.jsx)(i.Z,{children:(0,l.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var g=n(5281),d=n(9047);function u(e){let{className:t}=e;return(0,l.jsx)(d.Z,{type:"caution",title:(0,l.jsx)(r,{}),className:(0,s.Z)(t,g.k.common.unlistedBanner),children:(0,l.jsx)(o,{})})}function h(e){return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(c,{}),(0,l.jsx)(u,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/6bcf1124.89e4051e.js b/assets/js/6bcf1124.89e4051e.js new file mode 100644 index 0000000000..5a1e477347 --- /dev/null +++ b/assets/js/6bcf1124.89e4051e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[6995],{711:(r,e,o)=>{o.r(e),o.d(e,{assets:()=>l,contentTitle:()=>s,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=o(5893),t=o(1151);const a={title:"Prowlarr"},s=void 0,i={id:"applications/download-tools/prowlarr",title:"Prowlarr",description:"Homepages: prowlarr",source:"@site/docs/applications/download-tools/prowlarr.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/prowlarr",permalink:"/docs/applications/download-tools/prowlarr",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/prowlarr.md",tags:[],version:"current",frontMatter:{title:"Prowlarr"},sidebar:"tutorialSidebar",previous:{title:"Overseerr",permalink:"/docs/applications/download-tools/overseerr"},next:{title:"pyLoad",permalink:"/docs/applications/download-tools/pyload"}},l={},c=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function d(r){const e={a:"a",code:"code",h2:"h2",p:"p",strong:"strong",...(0,t.a)(),...r.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.p,{children:["Homepages: ",(0,n.jsx)(e.a,{href:"https://github.com/Prowlarr/Prowlarr",children:"prowlarr"})]}),"\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"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)."]}),"\n",(0,n.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(e.p,{children:["Set ",(0,n.jsx)(e.code,{children:"prowlarr_enabled: true"})," in your ",(0,n.jsx)(e.code,{children:"/inventories/[my inventory]/group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(e.p,{children:["The Prowlarr web interface can be found at ",(0,n.jsx)(e.code,{children:"http://ansible_nas_host_or_ip:9696"})," by default"]}),"\n",(0,n.jsx)(e.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,n.jsxs)(e.p,{children:["For comprehensive configuration instructions see the ",(0,n.jsx)(e.a,{href:"https://wiki.servarr.com/prowlarr",children:"Prowlarr wiki"})," or ",(0,n.jsx)(e.a,{href:"https://github.com/Prowlarr/Prowlarr",children:"Prowlarr Github page"})]})]})}function p(r={}){const{wrapper:e}={...(0,t.a)(),...r.components};return e?(0,n.jsx)(e,{...r,children:(0,n.jsx)(d,{...r})}):d(r)}},1151:(r,e,o)=>{o.d(e,{Z:()=>i,a:()=>s});var n=o(7294);const t={},a=n.createContext(t);function s(r){const e=n.useContext(a);return n.useMemo((function(){return"function"==typeof r?r(e):{...e,...r}}),[e,r])}function i(r){let e;return e=r.disableParentContext?"function"==typeof r.components?r.components(t):r.components||t:s(r.components),n.createElement(a.Provider,{value:e},r.children)}}}]); \ No newline at end of file diff --git a/assets/js/6f92de8e.c467dccf.js b/assets/js/6f92de8e.c467dccf.js new file mode 100644 index 0000000000..c648e40db8 --- /dev/null +++ b/assets/js/6f92de8e.c467dccf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[4186],{7469:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>p,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var n=o(5893),i=o(1151);const a={title:"GitLab"},s=void 0,r={id:"applications/development-tools/gitlab",title:"GitLab",description:"Homepage//docs.gitlab.com/omnibus/docker/",source:"@site/docs/applications/development-tools/gitlab.md",sourceDirName:"applications/development-tools",slug:"/applications/development-tools/gitlab",permalink:"/docs/applications/development-tools/gitlab",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/development-tools/gitlab.md",tags:[],version:"current",frontMatter:{title:"GitLab"},sidebar:"tutorialSidebar",previous:{title:"Gitea",permalink:"/docs/applications/development-tools/gitea"},next:{title:"Nomad",permalink:"/docs/applications/development-tools/nomad"}},l={},c=[{value:"Usage",id:"usage",level:2}];function d(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Homepage: ",(0,n.jsx)(t.a,{href:"https://docs.gitlab.com/omnibus/docker/",children:"https://docs.gitlab.com/omnibus/docker/"})]}),"\n",(0,n.jsx)(t.p,{children:"If Gitea isn't powerful enough for you then consider GitLab. It's a much more powerful (and consequently bigger) Git repository solution that includes a suite of code analytics. On the other hand it requires more RAM."}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"gitlab_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(t.p,{children:["To make GitLab available externally via Traefik set ",(0,n.jsx)(t.code,{children:"gitlab_available_externally: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(t.p,{children:["The first time you run GitLab you'll be prompted for an account's password. The password is for GitLab's ",(0,n.jsx)(t.code,{children:"root"})," administrator account. From there you can log in to create additional users and further configure the application."]})]})}function p(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>r,a:()=>s});var n=o(7294);const i={},a=n.createContext(i);function s(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/706e1902.b6ea8db0.js b/assets/js/706e1902.b6ea8db0.js new file mode 100644 index 0000000000..4f6b3cc79e --- /dev/null +++ b/assets/js/706e1902.b6ea8db0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[5837],{4367:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>l,frontMatter:()=>s,metadata:()=>i,toc:()=>p});var t=a(5893),r=a(1151);const s={title:"Organizr"},o=void 0,i={id:"applications/dashboards/organizr",title:"Organizr",description:"Homepage//organizr.app",source:"@site/docs/applications/dashboards/organizr.md",sourceDirName:"applications/dashboards",slug:"/applications/dashboards/organizr",permalink:"/docs/applications/dashboards/organizr",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/dashboards/organizr.md",tags:[],version:"current",frontMatter:{title:"Organizr"},sidebar:"tutorialSidebar",previous:{title:"Homepage",permalink:"/docs/applications/dashboards/homepage"},next:{title:"Development Tools",permalink:"/docs/category/development-tools"}},c={},p=[{value:"Usage",id:"usage",level:2}];function d(e){const n={a:"a",code:"code",h2:"h2",p:"p",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["Homepage: ",(0,t.jsx)(n.a,{href:"https://organizr.app",children:"https://organizr.app"})]}),"\n",(0,t.jsx)(n.p,{children:"HTPC/Homelab services organizer written in PHP."}),"\n",(0,t.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsxs)(n.p,{children:["Set ",(0,t.jsx)(n.code,{children:"organizr_enabled: true"})," in your ",(0,t.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,t.jsxs)(n.p,{children:["The Organizr web interface can be found at ",(0,t.jsx)(n.a,{href:"http://ansible_nas_host_or_ip:10081",children:"http://ansible_nas_host_or_ip:10081"}),"."]})]})}function l(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},1151:(e,n,a)=>{a.d(n,{Z:()=>i,a:()=>o});var t=a(7294);const r={},s=t.createContext(r);function o(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/729f0b03.2be97cb5.js b/assets/js/729f0b03.2be97cb5.js new file mode 100644 index 0000000000..e15c9b076a --- /dev/null +++ b/assets/js/729f0b03.2be97cb5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[7421],{1077:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>a,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var s=t(5893),n=t(1151);const r={title:"Code Server"},i=void 0,c={id:"applications/development-tools/code-server",title:"Code Server",description:"Homepage//code.visualstudio.com/",source:"@site/docs/applications/development-tools/code-server.md",sourceDirName:"applications/development-tools",slug:"/applications/development-tools/code-server",permalink:"/docs/applications/development-tools/code-server",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/development-tools/code-server.md",tags:[],version:"current",frontMatter:{title:"Code Server"},sidebar:"tutorialSidebar",previous:{title:"Development Tools",permalink:"/docs/category/development-tools"},next:{title:"Drone CI",permalink:"/docs/applications/development-tools/drone_ci"}},a={},d=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function l(e){const o={a:"a",code:"code",h2:"h2",p:"p",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(o.p,{children:["Homepage: ",(0,s.jsx)(o.a,{href:"https://code.visualstudio.com/",children:"https://code.visualstudio.com/"})]}),"\n",(0,s.jsxs)(o.p,{children:["Code Server: ",(0,s.jsx)(o.a,{href:"https://docs.linuxserver.io/images/docker-code-server",children:"https://docs.linuxserver.io/images/docker-code-server"})]}),"\n",(0,s.jsx)(o.p,{children:"Run VSCode on you NAS, accessible through the browser. This web based IDE works exactly like VSCode Desktop would, but with the freedom of using it from anywhere."}),"\n",(0,s.jsx)(o.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(o.p,{children:["Set ",(0,s.jsx)(o.code,{children:"code_server_enabled: true"})," in your ",(0,s.jsx)(o.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,s.jsxs)(o.p,{children:["Code Server's web interface can be found at ",(0,s.jsx)(o.a,{href:"http://ansible_nas_host_or_ip:8443",children:"http://ansible_nas_host_or_ip:8443"})]}),"\n",(0,s.jsx)(o.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,s.jsxs)(o.p,{children:["Code Server uses the ",(0,s.jsx)(o.code,{children:"code_root"})," folder to store its projects, by default defined as a zfs dataset on ",(0,s.jsx)(o.code,{children:"samba_shares_root"}),"."]})]})}function p(e={}){const{wrapper:o}={...(0,n.a)(),...e.components};return o?(0,s.jsx)(o,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,o,t)=>{t.d(o,{Z:()=>c,a:()=>i});var s=t(7294);const n={},r=s.createContext(n);function i(e){const o=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function c(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(r.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/738e65e5.0da23d03.js b/assets/js/738e65e5.0da23d03.js new file mode 100644 index 0000000000..0dcea352e4 --- /dev/null +++ b/assets/js/738e65e5.0da23d03.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1839],{5846:(e,s,a)=>{a.r(s),a.d(s,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var n=a(5893),t=a(1151);const r={},i="Samba Shares",o={id:"further-configuration/samba-shares",title:"Samba Shares",description:"Ansible-NAS uses the awesome vladgh.samba Ansible role to configure Samba - check out the Ansible Galaxy page for the many different options you can use to configure a share.",source:"@site/docs/further-configuration/samba-shares.md",sourceDirName:"further-configuration",slug:"/further-configuration/samba-shares",permalink:"/docs/further-configuration/samba-shares",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/further-configuration/samba-shares.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"NFS Exports",permalink:"/docs/further-configuration/nfs-exports"},next:{title:"Contributing",permalink:"/docs/category/contributing"}},c={},l=[{value:"Share Examples",id:"share-examples",level:2},{value:"File Permissions",id:"file-permissions",level:2}];function h(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.h1,{id:"samba-shares",children:"Samba Shares"}),"\n",(0,n.jsxs)(s.p,{children:["Ansible-NAS uses the awesome ",(0,n.jsx)(s.a,{href:"https://github.com/vladgh/ansible-collection-vladgh-samba",children:"vladgh.samba"})," Ansible role to configure Samba - check out ",(0,n.jsx)(s.a,{href:"https://galaxy.ansible.com/vladgh/samba",children:"the Ansible Galaxy page"})," for the many different options you can use to configure a share."]}),"\n",(0,n.jsx)(s.h2,{id:"share-examples",children:"Share Examples"}),"\n",(0,n.jsxs)(s.p,{children:["Ansible-NAS shares are defined in the ",(0,n.jsx)(s.code,{children:"samba_shares"})," section within ",(0,n.jsx)(s.code,{children:"group_vars/all.yml"}),'. The examples provided are "public" shares that anyone on your LAN can read and write to.']}),"\n",(0,n.jsx)(s.h2,{id:"file-permissions",children:"File Permissions"}),"\n",(0,n.jsxs)(s.p,{children:["Ansible-NAS creates an ",(0,n.jsx)(s.code,{children:"ansible-nas"})," user and group on your server, which Samba will use to access the data in your shares. New data created will be permissioned correctly."]}),"\n",(0,n.jsxs)(s.p,{children:["However, if you have existing data this will need to be repermissioned so that Samba can read and serve it. An playbook is provided to do this for you - ",(0,n.jsx)(s.code,{children:"permission_data.yml"}),". It is separated from the main Ansible-NAS playbook due to the time it can take to run with large amounts of data - you should only need to run this once."]})]})}function d(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},1151:(e,s,a)=>{a.d(s,{Z:()=>o,a:()=>i});var n=a(7294);const t={},r=n.createContext(t);function i(e){const s=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),n.createElement(r.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/750d9873.eb7e0b94.js b/assets/js/750d9873.eb7e0b94.js new file mode 100644 index 0000000000..9bfc95b891 --- /dev/null +++ b/assets/js/750d9873.eb7e0b94.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[4814],{7822:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>r,toc:()=>l});var i=t(5893),o=t(1151);const s={title:"The Lounge"},a=void 0,r={id:"applications/other/thelounge",title:"The Lounge",description:"Homepage//thelounge.chat/",source:"@site/docs/applications/other/thelounge.md",sourceDirName:"applications/other",slug:"/applications/other/thelounge",permalink:"/docs/applications/other/thelounge",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/other/thelounge.md",tags:[],version:"current",frontMatter:{title:"The Lounge"},sidebar:"tutorialSidebar",previous:{title:"Silverbullet",permalink:"/docs/applications/other/silverbullet"},next:{title:"Traefik",permalink:"/docs/applications/other/traefik"}},c={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function h(e){const n={a:"a",code:"code",h2:"h2",p:"p",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Homepage: ",(0,i.jsx)(n.a,{href:"https://thelounge.chat/",children:"https://thelounge.chat/"})]}),"\n",(0,i.jsx)(n.p,{children:"The Lounge is a self-hosted web IRC client."}),"\n",(0,i.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsxs)(n.p,{children:["Set ",(0,i.jsx)(n.code,{children:"thelounge_enabled: true"})," in your ",(0,i.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,i.jsxs)(n.p,{children:["The Lounge web interface can be found at ",(0,i.jsx)(n.a,{href:"http://ansible_nas_host_or_ip:9000",children:"http://ansible_nas_host_or_ip:9000"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,i.jsxs)(n.p,{children:["The default username and password is ",(0,i.jsx)(n.code,{children:"admin"}),". Change this once you've logged in!"]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>a});var i=t(7294);const o={},s=i.createContext(o);function a(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7645baed.b24417d0.js b/assets/js/7645baed.b24417d0.js new file mode 100644 index 0000000000..58a0313b2d --- /dev/null +++ b/assets/js/7645baed.b24417d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[356],{4469:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/78deb359.d628fd0d.js b/assets/js/78deb359.d628fd0d.js new file mode 100644 index 0000000000..b8e2db3d74 --- /dev/null +++ b/assets/js/78deb359.d628fd0d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[8656],{174:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>h,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>r});var n=s(5893),i=s(1151);const o={title:"Healthchecks.io"},a=void 0,c={id:"applications/system-tools/healthchecks.io",title:"Healthchecks.io",description:"Homepage//healthchecks.io/",source:"@site/docs/applications/system-tools/healthchecks.io.md",sourceDirName:"applications/system-tools",slug:"/applications/system-tools/healthchecks.io",permalink:"/docs/applications/system-tools/healthchecks.io",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/system-tools/healthchecks.io.md",tags:[],version:"current",frontMatter:{title:"Healthchecks.io"},sidebar:"tutorialSidebar",previous:{title:"Duplicati",permalink:"/docs/applications/system-tools/duplicati"},next:{title:"Krusader",permalink:"/docs/applications/system-tools/krusader"}},h={},r=[{value:"Usage",id:"usage",level:2}];function l(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Homepage: ",(0,n.jsx)(t.a,{href:"https://healthchecks.io/",children:"https://healthchecks.io/"})]}),"\n",(0,n.jsxs)(t.p,{children:["A simple cronjob that uses ",(0,n.jsx)(t.code,{children:"curl"})," to ping a given endpoint on the ",(0,n.jsx)(t.code,{children:"healthchecks.io"})," servers. You can choose how often it should ping the endpoint, and what happens when it doesn't. Email/Slack/Telegram and many more services can be integrated."]}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Create your own project on ",(0,n.jsx)(t.a,{href:"https://healthchecks.io/",children:"https://healthchecks.io/"}),", and set both the time between pings and the grace time. Set your preferred integration such as email."]}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"healthchecks_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file, and if your time between pings is different than the default ",(0,n.jsx)(t.code,{children:"healthchecks_ping_minutes"}),", change it. Finally, set your ping url in the ",(0,n.jsx)(t.code,{children:"healthchecks_url"})," variable."]})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>c,a:()=>a});var n=s(7294);const i={},o=n.createContext(i);function a(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7ac255b7.aae55227.js b/assets/js/7ac255b7.aae55227.js new file mode 100644 index 0000000000..e84df34076 --- /dev/null +++ b/assets/js/7ac255b7.aae55227.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[6604],{5175:(o,t,e)=>{e.r(t),e.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>r});var a=e(5893),n=e(1151);const s={title:"Couchpotato"},c=void 0,i={id:"applications/download-tools/couchpotato",title:"Couchpotato",description:"Homepage//couchpota.to/",source:"@site/docs/applications/download-tools/couchpotato.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/couchpotato",permalink:"/docs/applications/download-tools/couchpotato",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/couchpotato.md",tags:[],version:"current",frontMatter:{title:"Couchpotato"},sidebar:"tutorialSidebar",previous:{title:"Bazarr",permalink:"/docs/applications/download-tools/bazarr"},next:{title:"Deluge",permalink:"/docs/applications/download-tools/deluge"}},l={},r=[{value:"Usage",id:"usage",level:2}];function p(o){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,n.a)(),...o.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(t.p,{children:["Homepage: ",(0,a.jsx)(t.a,{href:"https://couchpota.to/",children:"https://couchpota.to/"})]}),"\n",(0,a.jsx)(t.p,{children:"CouchPotato enables you to download movies automatically, easily and in the best quality as soon as they are available."}),"\n",(0,a.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,a.jsxs)(t.p,{children:["Set ",(0,a.jsx)(t.code,{children:"couchpotato_enabled: true"})," in your ",(0,a.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,a.jsxs)(t.p,{children:["The CouchPotato web interface can be found at ",(0,a.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:5050",children:"http://ansible_nas_host_or_ip:5050"}),"."]})]})}function d(o={}){const{wrapper:t}={...(0,n.a)(),...o.components};return t?(0,a.jsx)(t,{...o,children:(0,a.jsx)(p,{...o})}):p(o)}},1151:(o,t,e)=>{e.d(t,{Z:()=>i,a:()=>c});var a=e(7294);const n={},s=a.createContext(n);function c(o){const t=a.useContext(s);return a.useMemo((function(){return"function"==typeof o?o(t):{...t,...o}}),[t,o])}function i(o){let t;return t=o.disableParentContext?"function"==typeof o.components?o.components(n):o.components||n:c(o.components),a.createElement(s.Provider,{value:t},o.children)}}}]); \ No newline at end of file diff --git a/assets/js/7ce075d9.6a701edf.js b/assets/js/7ce075d9.6a701edf.js new file mode 100644 index 0000000000..7032596e83 --- /dev/null +++ b/assets/js/7ce075d9.6a701edf.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[2598],{9252:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>m});var i=t(5893),a=t(1151);const o={title:"Romm"},s=void 0,r={id:"applications/media-serving/romm",title:"Romm",description:"Homepage//github.com/zurdi15/romm",source:"@site/docs/applications/media-serving/romm.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/romm",permalink:"/docs/applications/media-serving/romm",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/romm.md",tags:[],version:"current",frontMatter:{title:"Romm"},sidebar:"tutorialSidebar",previous:{title:"PyTivo",permalink:"/docs/applications/media-serving/pytivo"},next:{title:"Tautulli",permalink:"/docs/applications/media-serving/tautulli"}},c={},m=[{value:"Usage",id:"usage",level:2}];function l(e){const n={a:"a",code:"code",h2:"h2",p:"p",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Homepage: ",(0,i.jsx)(n.a,{href:"https://github.com/zurdi15/romm",children:"https://github.com/zurdi15/romm"})]}),"\n",(0,i.jsx)(n.p,{children:"RomM (ROM Manager) is a game library manager focused on retro gaming."}),"\n",(0,i.jsx)(n.p,{children:"It enables you to efficiently manage and organize all your games from a web browser."}),"\n",(0,i.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsxs)(n.p,{children:["Set ",(0,i.jsx)(n.code,{children:"romm_enabled: true"})," in your ",(0,i.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,i.jsxs)(n.p,{children:["The Romm web interface can be found at ",(0,i.jsx)(n.a,{href:"http://ansible_nas_host_or_ip:8484",children:"http://ansible_nas_host_or_ip:8484"}),"."]})]})}function d(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>s});var i=t(7294);const a={},o=i.createContext(a);function s(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7ffff81a.d6bae795.js b/assets/js/7ffff81a.d6bae795.js new file mode 100644 index 0000000000..d97951abb3 --- /dev/null +++ b/assets/js/7ffff81a.d6bae795.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[4350],{6629:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>t,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var a=n(5893),r=n(1151);const s={Title:"Calibre"},t=void 0,o={id:"applications/media-serving/calibre",title:"calibre",description:"Homepage//calibre-ebook.com",source:"@site/docs/applications/media-serving/calibre.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/calibre",permalink:"/docs/applications/media-serving/calibre",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/calibre.md",tags:[],version:"current",frontMatter:{Title:"Calibre"},sidebar:"tutorialSidebar",previous:{title:"Calibre-web",permalink:"/docs/applications/media-serving/calibre-web"},next:{title:"Emby",permalink:"/docs/applications/media-serving/emby"}},c={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2},{value:"Ports",id:"ports",level:2}];function d(e){const i={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,r.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(i.p,{children:["Homepage: ",(0,a.jsx)(i.a,{href:"https://calibre-ebook.com",children:"https://calibre-ebook.com"})]}),"\n",(0,a.jsx)(i.p,{children:"Calibre is a powerful and easy to use e-book manager."}),"\n",(0,a.jsx)(i.h2,{id:"usage",children:"Usage"}),"\n",(0,a.jsxs)(i.p,{children:["Set ",(0,a.jsx)(i.code,{children:"calibre_enabled: true"})," in your ",(0,a.jsx)(i.code,{children:"inventories/ /nas.yml"})," file."]}),"\n",(0,a.jsx)(i.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,a.jsxs)(i.p,{children:["By default, there is no password set for the main gui. Optional ",(0,a.jsx)(i.code,{children:"calibre_password"})," will allow setting a password for the user ",(0,a.jsx)(i.code,{children:"abc"}),"."]}),"\n",(0,a.jsxs)(i.p,{children:["Optionally, cli start arguments can be passed to calibre using ",(0,a.jsx)(i.code,{children:"calibre_cli_args"}),"."]}),"\n",(0,a.jsx)(i.p,{children:"The Calibre webserver must be turned on in the Calibre manager to make it available at the selected port (8094 by default)."}),"\n",(0,a.jsx)(i.h2,{id:"ports",children:"Ports"}),"\n",(0,a.jsx)(i.pre,{children:(0,a.jsx)(i.code,{className:"language-yml",children:'calibre_port: "8093"\ncalibre_webserver_port: "8094"\n'})})]})}function p(e={}){const{wrapper:i}={...(0,r.a)(),...e.components};return i?(0,a.jsx)(i,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},1151:(e,i,n)=>{n.d(i,{Z:()=>o,a:()=>t});var a=n(7294);const r={},s=a.createContext(r);function t(e){const i=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function o(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:t(e.components),a.createElement(s.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/814f3328.96584a7a.js b/assets/js/814f3328.96584a7a.js new file mode 100644 index 0000000000..81adecbd86 --- /dev/null +++ b/assets/js/814f3328.96584a7a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[2535],{5641:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Welcome","permalink":"/blog/welcome","unlisted":false}]}')}}]); \ No newline at end of file diff --git a/assets/js/82ad080f.6942305d.js b/assets/js/82ad080f.6942305d.js new file mode 100644 index 0000000000..129a63b0a4 --- /dev/null +++ b/assets/js/82ad080f.6942305d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[7799],{2744:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var i=t(5893),r=t(1151);const a={title:"Bitwarden(_rs)"},s=void 0,o={id:"applications/other/bitwarden",title:"Bitwarden(_rs)",description:"Homepage//github.com/dani-garcia/bitwardenrs",source:"@site/docs/applications/other/bitwarden.md",sourceDirName:"applications/other",slug:"/applications/other/bitwarden",permalink:"/docs/applications/other/bitwarden",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/other/bitwarden.md",tags:[],version:"current",frontMatter:{title:"Bitwarden(_rs)"},sidebar:"tutorialSidebar",previous:{title:"Other",permalink:"/docs/category/other"},next:{title:"Firefly III",permalink:"/docs/applications/other/firefly"}},c={},d=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function l(e){const n={a:"a",code:"code",h2:"h2",p:"p",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Homepage: ",(0,i.jsx)(n.a,{href:"https://github.com/dani-garcia/bitwarden_rs",children:"https://github.com/dani-garcia/bitwarden_rs"})]}),"\n",(0,i.jsxs)(n.p,{children:["Bitwarden: ",(0,i.jsx)(n.a,{href:"https://bitwarden.com/",children:"https://bitwarden.com/"})]}),"\n",(0,i.jsx)(n.p,{children:"This is a Bitwarden server API implementation written in Rust compatible with upstream Bitwarden clients*, perfect for self-hosted deployment where running the official resource-heavy service might not be ideal."}),"\n",(0,i.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsxs)(n.p,{children:["Set ",(0,i.jsx)(n.code,{children:"bitwarden_enabled: true"})," in your ",(0,i.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,i.jsx)(n.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,i.jsxs)(n.p,{children:["Make sure you set your admin token! It is ",(0,i.jsx)(n.code,{children:"bitwarden_admin_token"})," in ",(0,i.jsx)(n.code,{children:"group_vars/all.yml"})," file. The string you put here will be the login to the admin section of your Bitwarden installation (",(0,i.jsx)(n.a,{href:"https://bitwarden.ansiblenasdomain.tld/admin",children:"https://bitwarden.ansiblenasdomain.tld/admin"}),"). This token can be anything, but it's recommended to use a long, randomly generated string of characters, for example running:\n",(0,i.jsx)(n.code,{children:"openssl rand -base64 48"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["To create a user, you need to set ",(0,i.jsx)(n.code,{children:"bitwarden_allow_signups"})," to ",(0,i.jsx)(n.code,{children:"true"})," in your ",(0,i.jsx)(n.code,{children:"all.yml"}),", and re-run the playbook to reprovision the container. Once you've created your users, set ",(0,i.jsx)(n.code,{children:"bitwarden_allow_signups"})," back to ",(0,i.jsx)(n.code,{children:"false"})," and run again."]}),"\n",(0,i.jsxs)(n.p,{children:["For speed you can target just Bitwarden by appending ",(0,i.jsx)(n.code,{children:"-t bitwarden"})," to your ",(0,i.jsx)(n.code,{children:"ansible-playbook"})," command."]})]})}function h(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>s});var i=t(7294);const r={},a=i.createContext(r);function s(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/82caa24e.776dcb16.js b/assets/js/82caa24e.776dcb16.js new file mode 100644 index 0000000000..6e6a75cdcd --- /dev/null +++ b/assets/js/82caa24e.776dcb16.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[8455],{3527:(e,i,a)=>{a.r(i),a.d(i,{assets:()=>r,contentTitle:()=>o,default:()=>p,frontMatter:()=>n,metadata:()=>l,toc:()=>d});var t=a(5893),s=a(1151);const n={title:"Heimdall"},o=void 0,l={id:"applications/dashboards/heimdall",title:"Heimdall",description:"Homepage//heimdall.site",source:"@site/docs/applications/dashboards/heimdall.md",sourceDirName:"applications/dashboards",slug:"/applications/dashboards/heimdall",permalink:"/docs/applications/dashboards/heimdall",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/dashboards/heimdall.md",tags:[],version:"current",frontMatter:{title:"Heimdall"},sidebar:"tutorialSidebar",previous:{title:"Dashy",permalink:"/docs/applications/dashboards/dashy"},next:{title:"Homepage",permalink:"/docs/applications/dashboards/homepage"}},r={},d=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function c(e){const i={a:"a",code:"code",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(i.p,{children:["Homepage: ",(0,t.jsx)(i.a,{href:"https://heimdall.site",children:"https://heimdall.site"})]}),"\n",(0,t.jsx)(i.p,{children:"Heimdall Application Dashboard is a dashboard for all your web applications. It doesn't need to be limited to applications though, you can add links to anything you like"}),"\n",(0,t.jsx)(i.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsxs)(i.p,{children:["Set ",(0,t.jsx)(i.code,{children:"heimdall_enabled: true"})," in your ",(0,t.jsx)(i.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,t.jsxs)(i.p,{children:["The Heimdall web interface can be found at ",(0,t.jsx)(i.a,{href:"http://ansible_nas_host_or_ip:10080",children:"http://ansible_nas_host_or_ip:10080"}),"."]}),"\n",(0,t.jsx)(i.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,t.jsxs)(i.p,{children:["Heimdall defaults to port 10080 - some browsers block this port. Override ",(0,t.jsx)(i.code,{children:"heimdall_port_http"})," to move it somewhere else."]})]})}function p(e={}){const{wrapper:i}={...(0,s.a)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1151:(e,i,a)=>{a.d(i,{Z:()=>l,a:()=>o});var t=a(7294);const s={},n=t.createContext(s);function o(e){const i=t.useContext(n);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),t.createElement(n.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8348f0ef.676c888f.js b/assets/js/8348f0ef.676c888f.js new file mode 100644 index 0000000000..d70586765a --- /dev/null +++ b/assets/js/8348f0ef.676c888f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[4913],{1762:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>r,toc:()=>l});var i=t(5893),o=t(1151);const s={title:"Minio"},a=void 0,r={id:"applications/system-tools/minio",title:"Minio",description:"Homepage//min.io/",source:"@site/docs/applications/system-tools/minio.md",sourceDirName:"applications/system-tools",slug:"/applications/system-tools/minio",permalink:"/docs/applications/system-tools/minio",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/system-tools/minio.md",tags:[],version:"current",frontMatter:{title:"Minio"},sidebar:"tutorialSidebar",previous:{title:"Loki",permalink:"/docs/applications/system-tools/loki"},next:{title:"netboot.xyz",permalink:"/docs/applications/system-tools/netbootxyz"}},c={},l=[{value:"Usage",id:"usage",level:2}];function p(e){const n={a:"a",code:"code",h2:"h2",p:"p",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Homepage: ",(0,i.jsx)(n.a,{href:"https://min.io/",children:"https://min.io/"})]}),"\n",(0,i.jsxs)(n.p,{children:["Docker Container: ",(0,i.jsx)(n.a,{href:"https://hub.docker.com/r/minio/minio",children:"Minio"})]}),"\n",(0,i.jsx)(n.p,{children:"MinIO is a High Performance Object Storage released under GNU Affero General Public License v3.0. It is API compatible with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics and application data workloads."}),"\n",(0,i.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsxs)(n.p,{children:["Set ",(0,i.jsx)(n.code,{children:"minio_enabled: true"})," in your ",(0,i.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,i.jsxs)(n.p,{children:["The Minio web interface can be found at ",(0,i.jsx)(n.a,{href:"http://ansible_nas_host_or_ip:9009",children:"http://ansible_nas_host_or_ip:9009"}),"."]})]})}function d(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>a});var i=t(7294);const o={},s=i.createContext(o);function a(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/845ee9ac.2a58ff8a.js b/assets/js/845ee9ac.2a58ff8a.js new file mode 100644 index 0000000000..aeb04c509f --- /dev/null +++ b/assets/js/845ee9ac.2a58ff8a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9299],{3752:s=>{s.exports=JSON.parse('{"title":"System Tools","description":"All of the system tools available for installation with Ansible-NAS.","slug":"/category/system-tools","permalink":"/docs/category/system-tools","navigation":{"previous":{"title":"Logging","permalink":"/docs/applications/stacks/logging"},"next":{"title":"Cloud Commander","permalink":"/docs/applications/system-tools/cloudcmd"}}}')}}]); \ No newline at end of file diff --git a/assets/js/846ca615.4a8bf9cd.js b/assets/js/846ca615.4a8bf9cd.js new file mode 100644 index 0000000000..e8e3ead195 --- /dev/null +++ b/assets/js/846ca615.4a8bf9cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1483],{6473:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>s,metadata:()=>r,toc:()=>u});var n=o(5893),i=o(1151);const s={title:"Mosquitto"},a=void 0,r={id:"applications/home-automation/mosquitto",title:"Mosquitto",description:"Homepage//mosquitto.org",source:"@site/docs/applications/home-automation/mosquitto.md",sourceDirName:"applications/home-automation",slug:"/applications/home-automation/mosquitto",permalink:"/docs/applications/home-automation/mosquitto",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/home-automation/mosquitto.md",tags:[],version:"current",frontMatter:{title:"Mosquitto"},sidebar:"tutorialSidebar",previous:{title:"Homebridge",permalink:"/docs/applications/home-automation/homebridge"},next:{title:"Nodemation (n8n)",permalink:"/docs/applications/home-automation/n8n"}},c={},u=[{value:"Usage",id:"usage",level:2}];function m(t){const e={a:"a",code:"code",h2:"h2",p:"p",...(0,i.a)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.p,{children:["Homepage: ",(0,n.jsx)(e.a,{href:"https://mosquitto.org",children:"https://mosquitto.org"})]}),"\n",(0,n.jsx)(e.p,{children:"Mosquitto is a lightweight open source MQTT message broker."}),"\n",(0,n.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(e.p,{children:["Set ",(0,n.jsx)(e.code,{children:"mosquitto_enabled: true"})," in your ",(0,n.jsx)(e.code,{children:"inventories/ /group_vars/nas.yml"})," file."]})]})}function l(t={}){const{wrapper:e}={...(0,i.a)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(m,{...t})}):m(t)}},1151:(t,e,o)=>{o.d(e,{Z:()=>r,a:()=>a});var n=o(7294);const i={},s=n.createContext(i);function a(t){const e=n.useContext(s);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:a(t.components),n.createElement(s.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/8593edcb.4693a3d0.js b/assets/js/8593edcb.4693a3d0.js new file mode 100644 index 0000000000..a828b13838 --- /dev/null +++ b/assets/js/8593edcb.4693a3d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[198],{9484:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>r,toc:()=>c});var i=t(5893),a=t(1151);const s={sidebar_position:2},o="Enabling Applications",r={id:"getting-started/enabling-applications",title:"Enabling Applications",description:"Ansible-NAS takes advantage of Ansible's prescendence rules to enable and disable applications.",source:"@site/docs/getting-started/enabling-applications.md",sourceDirName:"getting-started",slug:"/getting-started/enabling-applications",permalink:"/docs/getting-started/enabling-applications",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/getting-started/enabling-applications.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Installation",permalink:"/docs/getting-started/installation"},next:{title:"Configure A Dashboard",permalink:"/docs/getting-started/configure-dashboard"}},l={},c=[];function d(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",p:"p",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"enabling-applications",children:"Enabling Applications"}),"\n",(0,i.jsxs)(n.p,{children:["Ansible-NAS takes advantage of Ansible's ",(0,i.jsx)(n.a,{href:"https://docs.ansible.com/ansible/latest/reference_appendices/general_precedence.html",children:"prescendence rules"})," to enable and disable applications."]}),"\n",(0,i.jsxs)(n.p,{children:["Look through the documentation and find an application you want to install, and set the relevant variable to ",(0,i.jsx)(n.code,{children:"true"})," in your inventory ",(0,i.jsx)(n.code,{children:"nas.yml"}),". Don't edit the source code!"]}),"\n",(0,i.jsx)(n.p,{children:"Run the playbook again, and you're done."}),"\n",(0,i.jsx)(n.admonition,{type:"tip",children:(0,i.jsxs)(n.p,{children:["Every change you make to your configuration will require you to run the playbook against your Ansible-NAS box again. To save time, target a specific application using ",(0,i.jsx)(n.code,{children:"ansible-playbook"}),"'s ",(0,i.jsx)(n.code,{children:"--tag"})," switch."]})})]})}function p(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>o});var i=t(7294);const a={},s=i.createContext(a);function o(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/85bdec23.72ff6777.js b/assets/js/85bdec23.72ff6777.js new file mode 100644 index 0000000000..a21daa8055 --- /dev/null +++ b/assets/js/85bdec23.72ff6777.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[5638],{7155:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>p,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var t=o(5893),n=o(1151);const s={},l="FlareSolverr",a={id:"applications/download-tools/flaresolverr",title:"FlareSolverr",description:"Homepage//github.com/FlareSolverr/FlareSolverr",source:"@site/docs/applications/download-tools/flaresolverr.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/flaresolverr",permalink:"/docs/applications/download-tools/flaresolverr",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/flaresolverr.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Deluge",permalink:"/docs/applications/download-tools/deluge"},next:{title:"Get_iPlayer",permalink:"/docs/applications/download-tools/get_iplayer"}},i={},c=[{value:"Usage",id:"usage",level:2}];function d(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",...(0,n.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.h1,{id:"flaresolverr",children:"FlareSolverr"}),"\n",(0,t.jsxs)(r.p,{children:["Homepage: ",(0,t.jsx)(r.a,{href:"https://github.com/FlareSolverr/FlareSolverr",children:"https://github.com/FlareSolverr/FlareSolverr"})]}),"\n",(0,t.jsx)(r.p,{children:"FlareSolverr is a proxy server to bypass Cloudflare and DDoS-GUARD protection. Some Jackett indexers require it."}),"\n",(0,t.jsx)(r.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsxs)(r.p,{children:["Set ",(0,t.jsx)(r.code,{children:"flaresolverr_enabled: true"})," in your ",(0,t.jsx)(r.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,t.jsxs)(r.p,{children:["The FlareSolverr API can be accessed from ",(0,t.jsx)(r.a,{href:"http://ansible_nas_host_or_ip:8191",children:"http://ansible_nas_host_or_ip:8191"}),"."]})]})}function p(e={}){const{wrapper:r}={...(0,n.a)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},1151:(e,r,o)=>{o.d(r,{Z:()=>a,a:()=>l});var t=o(7294);const n={},s=t.createContext(n);function l(e){const r=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),t.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8684374b.6654972d.js b/assets/js/8684374b.6654972d.js new file mode 100644 index 0000000000..5dd25d18e2 --- /dev/null +++ b/assets/js/8684374b.6654972d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[5446],{3081:(e,a,i)=>{i.r(a),i.d(a,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var n=i(5893),t=i(1151);const o={title:"My Media for Alexa"},s=void 0,r={id:"applications/media-serving/mymediaforalexa",title:"My Media for Alexa",description:"Homepage//www.mymediaalexa.com/",source:"@site/docs/applications/media-serving/mymediaforalexa.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/mymediaforalexa",permalink:"/docs/applications/media-serving/mymediaforalexa",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/mymediaforalexa.md",tags:[],version:"current",frontMatter:{title:"My Media for Alexa"},sidebar:"tutorialSidebar",previous:{title:"MiniDLNA",permalink:"/docs/applications/media-serving/minidlna"},next:{title:"Navidrome",permalink:"/docs/applications/media-serving/navidrome"}},l={},c=[{value:"Usage",id:"usage",level:2}];function d(e){const a={a:"a",code:"code",h2:"h2",p:"p",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(a.p,{children:["Homepage: ",(0,n.jsx)(a.a,{href:"https://www.mymediaalexa.com/",children:"https://www.mymediaalexa.com/"})]}),"\n",(0,n.jsx)(a.p,{children:"My Media lets you stream your music collection to your Amazon Echo or Amazon Dot without having to upload all your music collection to the Cloud. This keeps your music under your control."}),"\n",(0,n.jsx)(a.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(a.p,{children:["Set ",(0,n.jsx)(a.code,{children:"mymediaforalexa_enabled: true"})," in your ",(0,n.jsx)(a.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(a.p,{children:["The My Media for Alexa web interface can be found at ",(0,n.jsx)(a.a,{href:"http://ansible_nas_host_or_ip:52051",children:"http://ansible_nas_host_or_ip:52051"}),"."]})]})}function m(e={}){const{wrapper:a}={...(0,t.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,a,i)=>{i.d(a,{Z:()=>r,a:()=>s});var n=i(7294);const t={},o=n.createContext(t);function s(e){const a=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function r(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),n.createElement(o.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/86e400e1.3717ea9b.js b/assets/js/86e400e1.3717ea9b.js new file mode 100644 index 0000000000..444adbb0d0 --- /dev/null +++ b/assets/js/86e400e1.3717ea9b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9403],{1381:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>s,default:()=>m,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=t(5893),i=t(1151);const a={title:"Minecraft Server"},s=void 0,c={id:"applications/gaming/minecraft-server",title:"Minecraft Server",description:"Homepage//www.minecraft.net/",source:"@site/docs/applications/gaming/minecraft-server.md",sourceDirName:"applications/gaming",slug:"/applications/gaming/minecraft-server",permalink:"/docs/applications/gaming/minecraft-server",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/gaming/minecraft-server.md",tags:[],version:"current",frontMatter:{title:"Minecraft Server"},sidebar:"tutorialSidebar",previous:{title:"Minecraft Bedrock Server",permalink:"/docs/applications/gaming/minecraft-bedrock-server"},next:{title:"Valheim Server",permalink:"/docs/applications/gaming/valheim"}},o={},l=[{value:"Usage",id:"usage",level:2}];function d(e){const n={a:"a",code:"code",h2:"h2",p:"p",...(0,i.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["Homepage: ",(0,r.jsx)(n.a,{href:"https://www.minecraft.net/",children:"https://www.minecraft.net/"})]}),"\n",(0,r.jsx)(n.p,{children:'The server version of the game Minecraft, running in a container. "Prepare for an adventure of limitless possibilities as you build, mine, battle mobs, and explore the ever-changing Minecraft landscape."'}),"\n",(0,r.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,r.jsxs)(n.p,{children:["Set ",(0,r.jsx)(n.code,{children:"minecraft_server_enabled: true"})," in your ",(0,r.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,r.jsx)(n.p,{children:"The Ansible NAS host or ip address should then be usable as a server within the Minecraft multiplayer game menu."}),"\n",(0,r.jsxs)(n.p,{children:["The image ",(0,r.jsx)(n.code,{children:"itzg/minecraft-server"})," has ",(0,r.jsx)(n.a,{href:"https://github.com/itzg/docker-minecraft-server/blob/master/README.md",children:"documentation"})," with further details on how to manage the Minecraft server instance."]})]})}function m(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>s});var r=t(7294);const i={},a=r.createContext(i);function s(e){const n=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),r.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/88b6c1ad.4b7e4158.js b/assets/js/88b6c1ad.4b7e4158.js new file mode 100644 index 0000000000..38bb673a04 --- /dev/null +++ b/assets/js/88b6c1ad.4b7e4158.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1874],{9801:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>l});var n=o(5893),i=o(1151);const a={title:"Watchtower"},s=void 0,r={id:"applications/system-tools/watchtower",title:"Watchtower",description:"Homepage//github.com/v2tec/watchtower",source:"@site/docs/applications/system-tools/watchtower.md",sourceDirName:"applications/system-tools",slug:"/applications/system-tools/watchtower",permalink:"/docs/applications/system-tools/watchtower",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/system-tools/watchtower.md",tags:[],version:"current",frontMatter:{title:"Watchtower"},sidebar:"tutorialSidebar",previous:{title:"Time Machine",permalink:"/docs/applications/system-tools/timemachine"},next:{title:"Further Configuration",permalink:"/docs/category/further-configuration"}},c={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function d(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Homepage: ",(0,n.jsx)(t.a,{href:"https://github.com/v2tec/watchtower",children:"https://github.com/v2tec/watchtower"})]}),"\n",(0,n.jsx)(t.p,{children:"A process for watching your Docker containers and automatically updating and restarting them whenever their base image is refreshed."}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"watchtower_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsx)(t.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,n.jsx)(t.p,{children:"By default Watchtower is configured to check daily at 5am for updates."}),"\n",(0,n.jsxs)(t.p,{children:["Various notification options are available, and can be configured by updating ",(0,n.jsx)(t.code,{children:"watchtower_command"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file. A few examples are provided. The full set of options can be found at the ",(0,n.jsx)(t.a,{href:"https://github.com/v2tec/watchtower",children:"Watchtower GitHub project page"}),"."]})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>r,a:()=>s});var n=o(7294);const i={},a=n.createContext(i);function s(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8905426d.b1d635b9.js b/assets/js/8905426d.b1d635b9.js new file mode 100644 index 0000000000..7f7a244e88 --- /dev/null +++ b/assets/js/8905426d.b1d635b9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[5835],{2919:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>o,toc:()=>l});var s=i(5893),t=i(1151);const a={},r="Miniflux",o={id:"applications/news/miniflux",title:"Miniflux",description:"Homepage//miniflux.app/",source:"@site/docs/applications/news/miniflux.md",sourceDirName:"applications/news",slug:"/applications/news/miniflux",permalink:"/docs/applications/news/miniflux",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/news/miniflux.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"FreshRSS",permalink:"/docs/applications/news/freshrss"},next:{title:"RSS-Bridge",permalink:"/docs/applications/news/rssbridge"}},c={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"miniflux",children:"Miniflux"}),"\n",(0,s.jsxs)(n.p,{children:["Homepage: ",(0,s.jsx)(n.a,{href:"https://miniflux.app/",children:"https://miniflux.app/"})]}),"\n",(0,s.jsx)(n.p,{children:"Miniflux is a minimalist and opinionated feed reader."}),"\n",(0,s.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(n.p,{children:["Set ",(0,s.jsx)(n.code,{children:"miniflux_enabled: true"})," in your ",(0,s.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,s.jsxs)(n.p,{children:["The Miniflux web interface can be found at ",(0,s.jsx)(n.a,{href:"http://ansible_nas_host_or_ip:8070",children:"http://ansible_nas_host_or_ip:8070"}),", the default username is ",(0,s.jsx)(n.code,{children:"admin"})," and password ",(0,s.jsx)(n.code,{children:"supersecure"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,s.jsxs)(n.p,{children:["An admin user will be created with the username and password of ",(0,s.jsx)(n.code,{children:"miniflux_admin_username"})," and ",(0,s.jsx)(n.code,{children:"miniflux_admin_password"})," respectively. These can be found in the Miniflux section within ",(0,s.jsx)(n.code,{children:"all.yml.dist"}),"."]})]})}function p(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,n,i)=>{i.d(n,{Z:()=>o,a:()=>r});var s=i(7294);const t={},a=s.createContext(t);function r(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/89ba8541.dd575f24.js b/assets/js/89ba8541.dd575f24.js new file mode 100644 index 0000000000..ea4793830f --- /dev/null +++ b/assets/js/89ba8541.dd575f24.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[2094],{1841:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>l,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var s=n(5893),a=n(1151);const r={sidebar_position:3},o="Configure A Dashboard",i={id:"getting-started/configure-dashboard",title:"Configure A Dashboard",description:"Once you start to enable a few applications, it becomes difficult to remember the addresses of where to find them.",source:"@site/docs/getting-started/configure-dashboard.md",sourceDirName:"getting-started",slug:"/getting-started/configure-dashboard",permalink:"/docs/getting-started/configure-dashboard",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/getting-started/configure-dashboard.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Enabling Applications",permalink:"/docs/getting-started/enabling-applications"},next:{title:"External Access",permalink:"/docs/getting-started/external-access"}},d={},c=[];function u(e){const t={a:"a",h1:"h1",p:"p",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"configure-a-dashboard",children:"Configure A Dashboard"}),"\n",(0,s.jsx)(t.p,{children:"Once you start to enable a few applications, it becomes difficult to remember the addresses of where to find them."}),"\n",(0,s.jsxs)(t.p,{children:["Ansible-NAS can configure a few different dashboards for your organisational pleasure. Browse the ",(0,s.jsx)(t.a,{href:"/docs/category/dashboards",children:"Dashboards"})," category for options."]})]})}function l(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>o});var s=n(7294);const a={},r=s.createContext(a);function o(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8c55fa2f.6ffdec02.js b/assets/js/8c55fa2f.6ffdec02.js new file mode 100644 index 0000000000..55570a374a --- /dev/null +++ b/assets/js/8c55fa2f.6ffdec02.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[5325],{5990:n=>{n.exports=JSON.parse('{"title":"Content Management","description":"All of the content management applications for installation with Ansible-NAS.","slug":"/category/content-management","permalink":"/docs/category/content-management","navigation":{"previous":{"title":"Applications","permalink":"/docs/category/applications"},"next":{"title":"Dokuwiki","permalink":"/docs/applications/content-management/dokuwiki"}}}')}}]); \ No newline at end of file diff --git a/assets/js/8c72b85b.dbf8d35c.js b/assets/js/8c72b85b.dbf8d35c.js new file mode 100644 index 0000000000..3ebec03c72 --- /dev/null +++ b/assets/js/8c72b85b.dbf8d35c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9039],{8295:s=>{s.exports=JSON.parse('{"title":"News","description":"All of the news applications for installation with Ansible-NAS.","slug":"/category/news","permalink":"/docs/category/news","navigation":{"previous":{"title":"Wireshark","permalink":"/docs/applications/monitoring/wireshark"},"next":{"title":"FreshRSS","permalink":"/docs/applications/news/freshrss"}}}')}}]); \ No newline at end of file diff --git a/assets/js/8df2495e.086648de.js b/assets/js/8df2495e.086648de.js new file mode 100644 index 0000000000..4ce73a33dd --- /dev/null +++ b/assets/js/8df2495e.086648de.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1526],{5945:(n,e,s)=>{s.r(e),s.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var o=s(5893),t=s(1151);const i={title:"Transmission"},r=void 0,a={id:"applications/download-tools/transmission",title:"Transmission",description:"Homepage//transmissionbt.com/",source:"@site/docs/applications/download-tools/transmission.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/transmission",permalink:"/docs/applications/download-tools/transmission",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/transmission.md",tags:[],version:"current",frontMatter:{title:"Transmission"},sidebar:"tutorialSidebar",previous:{title:"Sonarr",permalink:"/docs/applications/download-tools/sonarr"},next:{title:"uTorrent",permalink:"/docs/applications/download-tools/utorrent"}},c={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function p(n){const e={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,t.a)(),...n.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.p,{children:["Homepage: ",(0,o.jsx)(e.a,{href:"https://transmissionbt.com/",children:"https://transmissionbt.com/"})]}),"\n",(0,o.jsx)(e.p,{children:"Transmission is a free BitTorrent client. Two versions are provided - one that tunnels through OpenVPN and one that connects\ndirectly."}),"\n",(0,o.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,o.jsxs)(e.p,{children:["Set ",(0,o.jsx)(e.code,{children:"transmission_enabled: true"}),", or ",(0,o.jsx)(e.code,{children:"transmission_with_openvpn_enabled: true"})," in your ",(0,o.jsx)(e.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,o.jsxs)(e.p,{children:["Transmission's web interface can be found at ",(0,o.jsx)(e.a,{href:"http://ansible_nas_host_or_ip:9091",children:"http://ansible_nas_host_or_ip:9091"})," (with OpenVPN) or ",(0,o.jsx)(e.a,{href:"http://ansible_nas_host_or_ip:9092",children:"http://ansible_nas_host_or_ip:9092"})," (without OpenVPN)."]}),"\n",(0,o.jsx)(e.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,o.jsxs)(e.p,{children:["If you enable Transmission with OpenVPN, you'll need to add the following to your inventory ",(0,o.jsx)(e.code,{children:"all.yml"}),":"]}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-yaml",children:"openvpn_username: super_secret_username\nopenvpn_password: super_secret_password\nopenvpn_provider: NORDVPN\nopenvpn_config: uk686.nordvpn.com.udp\n"})}),"\n",(0,o.jsxs)(e.p,{children:["See ",(0,o.jsx)(e.a,{href:"https://hub.docker.com/r/haugene/transmission-openvpn/",children:"https://hub.docker.com/r/haugene/transmission-openvpn/"})," for supported VPN providers."]})]})}function d(n={}){const{wrapper:e}={...(0,t.a)(),...n.components};return e?(0,o.jsx)(e,{...n,children:(0,o.jsx)(p,{...n})}):p(n)}},1151:(n,e,s)=>{s.d(e,{Z:()=>a,a:()=>r});var o=s(7294);const t={},i=o.createContext(t);function r(n){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function a(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(t):n.components||t:r(n.components),o.createElement(i.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/8ebe0c38.d703338c.js b/assets/js/8ebe0c38.d703338c.js new file mode 100644 index 0000000000..63dad1966d --- /dev/null +++ b/assets/js/8ebe0c38.d703338c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[8416],{9269:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var i=n(5893),o=n(1151);const s={title:"Ubooquity"},a=void 0,r={id:"applications/media-serving/threadfin",title:"Ubooquity",description:"Homepage//github.com/Threadfin/Threadfin",source:"@site/docs/applications/media-serving/threadfin.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/threadfin",permalink:"/docs/applications/media-serving/threadfin",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/threadfin.md",tags:[],version:"current",frontMatter:{title:"Ubooquity"},sidebar:"tutorialSidebar",previous:{title:"Tautulli",permalink:"/docs/applications/media-serving/tautulli"},next:{title:"Ubooquity",permalink:"/docs/applications/media-serving/ubooquity"}},c={},d=[{value:"Usage",id:"usage",level:2}];function l(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(t.p,{children:["Homepage: ",(0,i.jsx)(t.a,{href:"https://github.com/Threadfin/Threadfin",children:"https://github.com/Threadfin/Threadfin"})]}),"\n",(0,i.jsxs)(t.p,{children:["Documentation: ",(0,i.jsx)(t.a,{href:"https://github.com/xteve-project/xTeVe-Documentation/blob/master/en/configuration.md",children:"https://github.com/xteve-project/xTeVe-Documentation/blob/master/en/configuration.md"})]}),"\n",(0,i.jsxs)(t.p,{children:["Docker Image: ",(0,i.jsx)(t.a,{href:"https://hub.docker.com/r/fyb3roptik/threadfin",children:"https://hub.docker.com/r/fyb3roptik/threadfin"})]}),"\n",(0,i.jsx)(t.p,{children:"Threadfin is a M3U proxy server for Plex, Emby, Jellyfin and any client and provider which supports the .TS and .M3U8 (HLS) streaming formats."}),"\n",(0,i.jsx)(t.p,{children:"Threadfin emulates a SiliconDust HDHomeRun OTA tuner, which allows it to expose IPTV style channels to software, which would not normally support it."}),"\n",(0,i.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsxs)(t.p,{children:["Set ",(0,i.jsx)(t.code,{children:"threadfin_enabled: true"})," in your ",(0,i.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,i.jsxs)(t.p,{children:["Access the webui at ",(0,i.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:34400/web",children:"http://ansible_nas_host_or_ip:34400/web"})," by default. See specific configuration section below for information on setting up external access."]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var i=n(7294);const o={},s=i.createContext(o);function a(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9281dee7.d9791cd2.js b/assets/js/9281dee7.d9791cd2.js new file mode 100644 index 0000000000..6ab167231f --- /dev/null +++ b/assets/js/9281dee7.d9791cd2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[2833],{3604:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>a,metadata:()=>r,toc:()=>p});var o=t(5893),i=t(1151);const a={title:"openHAB"},s=void 0,r={id:"applications/home-automation/openhab",title:"openHAB",description:"Homepage//www.openhab.org/",source:"@site/docs/applications/home-automation/openhab.md",sourceDirName:"applications/home-automation",slug:"/applications/home-automation/openhab",permalink:"/docs/applications/home-automation/openhab",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/home-automation/openhab.md",tags:[],version:"current",frontMatter:{title:"openHAB"},sidebar:"tutorialSidebar",previous:{title:"Nodemation (n8n)",permalink:"/docs/applications/home-automation/n8n"},next:{title:"Media Serving",permalink:"/docs/category/media-serving"}},c={},p=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function l(e){const n={a:"a",code:"code",h2:"h2",p:"p",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:["Homepage: ",(0,o.jsx)(n.a,{href:"https://www.openhab.org/",children:"https://www.openhab.org/"})]}),"\n",(0,o.jsx)(n.p,{children:'OpenHab is a vendor and technology agnostic open source automation software for your home.\nIt allows you to connect many different IoT-Devices (which in this case means "Intranet of Things") using custom bindings made by the community.'}),"\n",(0,o.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,o.jsxs)(n.p,{children:["Set ",(0,o.jsx)(n.code,{children:"openhab_enabled: true"})," in your ",(0,o.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,o.jsx)(n.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,o.jsxs)(n.p,{children:["The openHAB Webinterface is available at port 7777 (HTTP) and 7778 (HTTPS).\nVisit the webinterface and follow the setup instructions found in the ",(0,o.jsx)(n.a,{href:"https://www.openhab.org/docs/tutorial/1sttimesetup.html",children:"openHAB Documentation"})]})]})}function u(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>s});var o=t(7294);const i={},a=o.createContext(i);function s(e){const n=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/92c7c73e.dd025de9.js b/assets/js/92c7c73e.dd025de9.js new file mode 100644 index 0000000000..40d011f429 --- /dev/null +++ b/assets/js/92c7c73e.dd025de9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1765],{9098:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var s=n(5893),a=n(1151);const o={title:"Stats"},r=void 0,i={id:"applications/monitoring/stats",title:"Stats",description:"The stats role uses Prometheus, Grafana, Telegraf and a number of metrics exporters to collect and record lots of metrics about your NAS.",source:"@site/docs/applications/monitoring/stats.md",sourceDirName:"applications/monitoring",slug:"/applications/monitoring/stats",permalink:"/docs/applications/monitoring/stats",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/monitoring/stats.md",tags:[],version:"current",frontMatter:{title:"Stats"},sidebar:"tutorialSidebar",previous:{title:"Speedtest-Tracker",permalink:"/docs/applications/monitoring/speedtest"},next:{title:"Wireshark",permalink:"/docs/applications/monitoring/wireshark"}},c={},l=[{value:"Usage",id:"usage",level:2}];function d(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"The stats role uses Prometheus, Grafana, Telegraf and a number of metrics exporters to collect and record lots of metrics about your NAS."}),"\n",(0,s.jsx)(t.p,{children:"Telegraf also exposes an InfluxDB endpoint for applications that require it."}),"\n",(0,s.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(t.p,{children:["Set ",(0,s.jsx)(t.code,{children:"stats_enabled: true"})," in your ",(0,s.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file. If you want to gather metrics on your internet connection, enable ",(0,s.jsx)(t.code,{children:"stats_internet_speed_test_enabled"})," too."]}),"\n",(0,s.jsxs)(t.p,{children:["If you want to access Grafana externally, set ",(0,s.jsx)(t.code,{children:"stats_grafana_available_externally: true"})," in your ",(0,s.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file. If you want to access Promethehus externally, set ",(0,s.jsx)(t.code,{children:"stats_prometheus_available_externally: true"})," in your ",(0,s.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,s.jsxs)(t.p,{children:["The Grafana web interface can be found at ",(0,s.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:3000",children:"http://ansible_nas_host_or_ip:3000"}),", Prometheus can be found at ",(0,s.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:9090",children:"http://ansible_nas_host_or_ip:9090"})]})]})}function p(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>r});var s=n(7294);const a={},o=s.createContext(a);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.20dc69c1.js b/assets/js/935f2afb.20dc69c1.js new file mode 100644 index 0000000000..99e8b851a2 --- /dev/null +++ b/assets/js/935f2afb.20dc69c1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[53],{1109:i=>{i.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/docs/","docId":"index","unlisted":false},{"type":"category","label":"Getting Started","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Installation","href":"/docs/getting-started/installation","docId":"getting-started/installation","unlisted":false},{"type":"link","label":"Enabling Applications","href":"/docs/getting-started/enabling-applications","docId":"getting-started/enabling-applications","unlisted":false},{"type":"link","label":"Configure A Dashboard","href":"/docs/getting-started/configure-dashboard","docId":"getting-started/configure-dashboard","unlisted":false},{"type":"link","label":"External Access","href":"/docs/getting-started/external-access","docId":"getting-started/external-access","unlisted":false}],"href":"/docs/category/getting-started"},{"type":"category","label":"Applications","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Content Management","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Dokuwiki","href":"/docs/applications/content-management/dokuwiki","docId":"applications/content-management/dokuwiki","unlisted":false},{"type":"link","label":"Joomla","href":"/docs/applications/content-management/joomla","docId":"applications/content-management/joomla","unlisted":false},{"type":"link","label":"TiddlyWiki","href":"/docs/applications/content-management/tiddlywiki","docId":"applications/content-management/tiddlywiki","unlisted":false}],"href":"/docs/category/content-management"},{"type":"category","label":"Dashboards","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Dashy","href":"/docs/applications/dashboards/dashy","docId":"applications/dashboards/dashy","unlisted":false},{"type":"link","label":"Heimdall","href":"/docs/applications/dashboards/heimdall","docId":"applications/dashboards/heimdall","unlisted":false},{"type":"link","label":"Homepage","href":"/docs/applications/dashboards/homepage","docId":"applications/dashboards/homepage","unlisted":false},{"type":"link","label":"Organizr","href":"/docs/applications/dashboards/organizr","docId":"applications/dashboards/organizr","unlisted":false}],"href":"/docs/category/dashboards"},{"type":"category","label":"Development Tools","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Code Server","href":"/docs/applications/development-tools/code-server","docId":"applications/development-tools/code-server","unlisted":false},{"type":"link","label":"Drone CI","href":"/docs/applications/development-tools/drone_ci","docId":"applications/development-tools/drone_ci","unlisted":false},{"type":"link","label":"Gitea","href":"/docs/applications/development-tools/gitea","docId":"applications/development-tools/gitea","unlisted":false},{"type":"link","label":"GitLab","href":"/docs/applications/development-tools/gitlab","docId":"applications/development-tools/gitlab","unlisted":false},{"type":"link","label":"Nomad","href":"/docs/applications/development-tools/nomad","docId":"applications/development-tools/nomad","unlisted":false},{"type":"link","label":"Woodpecker CI","href":"/docs/applications/development-tools/woodpecker_ci","docId":"applications/development-tools/woodpecker_ci","unlisted":false}],"href":"/docs/category/development-tools"},{"type":"category","label":"Download Tools","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Bazarr","href":"/docs/applications/download-tools/bazarr","docId":"applications/download-tools/bazarr","unlisted":false},{"type":"link","label":"Couchpotato","href":"/docs/applications/download-tools/couchpotato","docId":"applications/download-tools/couchpotato","unlisted":false},{"type":"link","label":"Deluge","href":"/docs/applications/download-tools/deluge","docId":"applications/download-tools/deluge","unlisted":false},{"type":"link","label":"FlareSolverr","href":"/docs/applications/download-tools/flaresolverr","docId":"applications/download-tools/flaresolverr","unlisted":false},{"type":"link","label":"Get_iPlayer","href":"/docs/applications/download-tools/get_iplayer","docId":"applications/download-tools/get_iplayer","unlisted":false},{"type":"link","label":"Jackett","href":"/docs/applications/download-tools/jackett","docId":"applications/download-tools/jackett","unlisted":false},{"type":"link","label":"Lidarr","href":"/docs/applications/download-tools/lidarr","docId":"applications/download-tools/lidarr","unlisted":false},{"type":"link","label":"Mylar","href":"/docs/applications/download-tools/mylar","docId":"applications/download-tools/mylar","unlisted":false},{"type":"link","label":"NZBGet","href":"/docs/applications/download-tools/nzbget","docId":"applications/download-tools/nzbget","unlisted":false},{"type":"link","label":"Ombi","href":"/docs/applications/download-tools/ombi","docId":"applications/download-tools/ombi","unlisted":false},{"type":"link","label":"Overseerr","href":"/docs/applications/download-tools/overseerr","docId":"applications/download-tools/overseerr","unlisted":false},{"type":"link","label":"Prowlarr","href":"/docs/applications/download-tools/prowlarr","docId":"applications/download-tools/prowlarr","unlisted":false},{"type":"link","label":"pyLoad","href":"/docs/applications/download-tools/pyload","docId":"applications/download-tools/pyload","unlisted":false},{"type":"link","label":"Radarr","href":"/docs/applications/download-tools/radarr","docId":"applications/download-tools/radarr","unlisted":false},{"type":"link","label":"Sabnzbd","href":"/docs/applications/download-tools/sabnzbd","docId":"applications/download-tools/sabnzbd","unlisted":false},{"type":"link","label":"Sonarr","href":"/docs/applications/download-tools/sonarr","docId":"applications/download-tools/sonarr","unlisted":false},{"type":"link","label":"Transmission","href":"/docs/applications/download-tools/transmission","docId":"applications/download-tools/transmission","unlisted":false},{"type":"link","label":"uTorrent","href":"/docs/applications/download-tools/utorrent","docId":"applications/download-tools/utorrent","unlisted":false},{"type":"link","label":"YouTubeDL-Material","href":"/docs/applications/download-tools/youtubedlmaterial","docId":"applications/download-tools/youtubedlmaterial","unlisted":false}],"href":"/docs/category/download-tools"},{"type":"category","label":"Gaming","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Minecraft Bedrock Server","href":"/docs/applications/gaming/minecraft-bedrock-server","docId":"applications/gaming/minecraft-bedrock-server","unlisted":false},{"type":"link","label":"Minecraft Server","href":"/docs/applications/gaming/minecraft-server","docId":"applications/gaming/minecraft-server","unlisted":false},{"type":"link","label":"Valheim Server","href":"/docs/applications/gaming/valheim","docId":"applications/gaming/valheim","unlisted":false}],"href":"/docs/category/gaming"},{"type":"category","label":"Home Automation","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"ESPHome","href":"/docs/applications/home-automation/esphome","docId":"applications/home-automation/esphome","unlisted":false},{"type":"link","label":"Home Assistant","href":"/docs/applications/home-automation/homeassistant","docId":"applications/home-automation/homeassistant","unlisted":false},{"type":"link","label":"Homebridge","href":"/docs/applications/home-automation/homebridge","docId":"applications/home-automation/homebridge","unlisted":false},{"type":"link","label":"Mosquitto","href":"/docs/applications/home-automation/mosquitto","docId":"applications/home-automation/mosquitto","unlisted":false},{"type":"link","label":"Nodemation (n8n)","href":"/docs/applications/home-automation/n8n","docId":"applications/home-automation/n8n","unlisted":false},{"type":"link","label":"openHAB","href":"/docs/applications/home-automation/openhab","docId":"applications/home-automation/openhab","unlisted":false}],"href":"/docs/category/home-automation"},{"type":"category","label":"Media Serving","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Airsonic","href":"/docs/applications/media-serving/airsonic","docId":"applications/media-serving/airsonic","unlisted":false},{"type":"link","label":"Booksonic","href":"/docs/applications/media-serving/booksonic","docId":"applications/media-serving/booksonic","unlisted":false},{"type":"link","label":"Calibre-web","href":"/docs/applications/media-serving/calibre-web","docId":"applications/media-serving/calibre-web","unlisted":false},{"type":"link","label":"calibre","href":"/docs/applications/media-serving/calibre","docId":"applications/media-serving/calibre","unlisted":false},{"type":"link","label":"Emby","href":"/docs/applications/media-serving/emby","docId":"applications/media-serving/emby","unlisted":false},{"type":"link","label":"Jellyfin","href":"/docs/applications/media-serving/jellyfin","docId":"applications/media-serving/jellyfin","unlisted":false},{"type":"link","label":"Komga","href":"/docs/applications/media-serving/komga","docId":"applications/media-serving/komga","unlisted":false},{"type":"link","label":"MiniDLNA","href":"/docs/applications/media-serving/minidlna","docId":"applications/media-serving/minidlna","unlisted":false},{"type":"link","label":"My Media for Alexa","href":"/docs/applications/media-serving/mymediaforalexa","docId":"applications/media-serving/mymediaforalexa","unlisted":false},{"type":"link","label":"Navidrome","href":"/docs/applications/media-serving/navidrome","docId":"applications/media-serving/navidrome","unlisted":false},{"type":"link","label":"Plex","href":"/docs/applications/media-serving/plex","docId":"applications/media-serving/plex","unlisted":false},{"type":"link","label":"PyTivo","href":"/docs/applications/media-serving/pytivo","docId":"applications/media-serving/pytivo","unlisted":false},{"type":"link","label":"Romm","href":"/docs/applications/media-serving/romm","docId":"applications/media-serving/romm","unlisted":false},{"type":"link","label":"Tautulli","href":"/docs/applications/media-serving/tautulli","docId":"applications/media-serving/tautulli","unlisted":false},{"type":"link","label":"Ubooquity","href":"/docs/applications/media-serving/threadfin","docId":"applications/media-serving/threadfin","unlisted":false},{"type":"link","label":"Ubooquity","href":"/docs/applications/media-serving/ubooquity","docId":"applications/media-serving/ubooquity","unlisted":false}],"href":"/docs/category/media-serving"},{"type":"category","label":"Monitoring","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Glances","href":"/docs/applications/monitoring/glances","docId":"applications/monitoring/glances","unlisted":false},{"type":"link","label":"Speedtest-Tracker","href":"/docs/applications/monitoring/speedtest","docId":"applications/monitoring/speedtest","unlisted":false},{"type":"link","label":"Stats","href":"/docs/applications/monitoring/stats","docId":"applications/monitoring/stats","unlisted":false},{"type":"link","label":"Wireshark","href":"/docs/applications/monitoring/wireshark","docId":"applications/monitoring/wireshark","unlisted":false}],"href":"/docs/category/monitoring"},{"type":"category","label":"News","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"FreshRSS","href":"/docs/applications/news/freshrss","docId":"applications/news/freshrss","unlisted":false},{"type":"link","label":"Miniflux","href":"/docs/applications/news/miniflux","docId":"applications/news/miniflux","unlisted":false},{"type":"link","label":"RSS-Bridge","href":"/docs/applications/news/rssbridge","docId":"applications/news/rssbridge","unlisted":false}],"href":"/docs/category/news"},{"type":"category","label":"Observability","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Grafana","href":"/docs/applications/observability/grafana","docId":"applications/observability/grafana","unlisted":false}],"href":"/docs/category/observability"},{"type":"category","label":"Other","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Bitwarden(_rs)","href":"/docs/applications/other/bitwarden","docId":"applications/other/bitwarden","unlisted":false},{"type":"link","label":"Firefly III","href":"/docs/applications/other/firefly","docId":"applications/other/firefly","unlisted":false},{"type":"link","label":"Gotify","href":"/docs/applications/other/gotify","docId":"applications/other/gotify","unlisted":false},{"type":"link","label":"Guacamole","href":"/docs/applications/other/guacamole","docId":"applications/other/guacamole","unlisted":false},{"type":"link","label":"Hello World","href":"/docs/applications/other/hello_world","docId":"applications/other/hello_world","unlisted":false},{"type":"link","label":"Mealie","href":"/docs/applications/other/mealie","docId":"applications/other/mealie","unlisted":false},{"type":"link","label":"Mumble","href":"/docs/applications/other/mumble","docId":"applications/other/mumble","unlisted":false},{"type":"link","label":"Nextcloud","href":"/docs/applications/other/nextcloud","docId":"applications/other/nextcloud","unlisted":false},{"type":"link","label":"Octoprint","href":"/docs/applications/other/octoprint","docId":"applications/other/octoprint","unlisted":false},{"type":"link","label":"Paperless-ng","href":"/docs/applications/other/paperless_ng","docId":"applications/other/paperless_ng","unlisted":false},{"type":"link","label":"Piwigo","href":"/docs/applications/other/piwigo","docId":"applications/other/piwigo","unlisted":false},{"type":"link","label":"Silverbullet","href":"/docs/applications/other/silverbullet","docId":"applications/other/silverbullet","unlisted":false},{"type":"link","label":"The Lounge","href":"/docs/applications/other/thelounge","docId":"applications/other/thelounge","unlisted":false},{"type":"link","label":"Traefik","href":"/docs/applications/other/traefik","docId":"applications/other/traefik","unlisted":false},{"type":"link","label":"Virtual Desktop","href":"/docs/applications/other/virtual_desktop","docId":"applications/other/virtual_desktop","unlisted":false},{"type":"link","label":"Wallabag","href":"/docs/applications/other/wallabag","docId":"applications/other/wallabag","unlisted":false}],"href":"/docs/category/other"},{"type":"category","label":"Stacks","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Logging","href":"/docs/applications/stacks/logging","docId":"applications/stacks/logging","unlisted":false}],"href":"/docs/category/stacks"},{"type":"category","label":"System Tools","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Cloud Commander","href":"/docs/applications/system-tools/cloudcmd","docId":"applications/system-tools/cloudcmd","unlisted":false},{"type":"link","label":"Cloudflare DDNS","href":"/docs/applications/system-tools/cloudflare_ddns","docId":"applications/system-tools/cloudflare_ddns","unlisted":false},{"type":"link","label":"DDNS Updater","href":"/docs/applications/system-tools/ddns_updater","docId":"applications/system-tools/ddns_updater","unlisted":false},{"type":"link","label":"Duplicacy","href":"/docs/applications/system-tools/duplicacy","docId":"applications/system-tools/duplicacy","unlisted":false},{"type":"link","label":"Duplicati","href":"/docs/applications/system-tools/duplicati","docId":"applications/system-tools/duplicati","unlisted":false},{"type":"link","label":"Healthchecks.io","href":"/docs/applications/system-tools/healthchecks.io","docId":"applications/system-tools/healthchecks.io","unlisted":false},{"type":"link","label":"Krusader","href":"/docs/applications/system-tools/krusader","docId":"applications/system-tools/krusader","unlisted":false},{"type":"link","label":"Loki","href":"/docs/applications/system-tools/loki","docId":"applications/system-tools/loki","unlisted":false},{"type":"link","label":"Minio","href":"/docs/applications/system-tools/minio","docId":"applications/system-tools/minio","unlisted":false},{"type":"link","label":"netboot.xyz","href":"/docs/applications/system-tools/netbootxyz","docId":"applications/system-tools/netbootxyz","unlisted":false},{"type":"link","label":"Portainer","href":"/docs/applications/system-tools/portainer","docId":"applications/system-tools/portainer","unlisted":false},{"type":"link","label":"Promtail","href":"/docs/applications/system-tools/promtail","docId":"applications/system-tools/promtail","unlisted":false},{"type":"link","label":"AWS Route53 Dynamic DNS Updater","href":"/docs/applications/system-tools/route53_ddns","docId":"applications/system-tools/route53_ddns","unlisted":false},{"type":"link","label":"Syncthing","href":"/docs/applications/system-tools/syncthing","docId":"applications/system-tools/syncthing","unlisted":false},{"type":"link","label":"Time Machine","href":"/docs/applications/system-tools/timemachine","docId":"applications/system-tools/timemachine","unlisted":false},{"type":"link","label":"Watchtower","href":"/docs/applications/system-tools/watchtower","docId":"applications/system-tools/watchtower","unlisted":false}],"href":"/docs/category/system-tools"}],"href":"/docs/category/applications"},{"type":"category","label":"Further Configuration","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Hardware","href":"/docs/further-configuration/hardware","docId":"further-configuration/hardware","unlisted":false},{"type":"link","label":"Migrating from FreeNAS","href":"/docs/further-configuration/migrating-from-freenas","docId":"further-configuration/migrating-from-freenas","unlisted":false},{"type":"link","label":"NFS Exports","href":"/docs/further-configuration/nfs-exports","docId":"further-configuration/nfs-exports","unlisted":false},{"type":"link","label":"Samba Shares","href":"/docs/further-configuration/samba-shares","docId":"further-configuration/samba-shares","unlisted":false}],"href":"/docs/category/further-configuration"},{"type":"category","label":"Contributing","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Development Environment","href":"/docs/contributing/development-environment","docId":"contributing/development-environment","unlisted":false},{"type":"link","label":"Add An Application","href":"/docs/contributing/add-an-application","docId":"contributing/add-an-application","unlisted":false}],"href":"/docs/category/contributing"},{"type":"link","label":"Support","href":"/docs/support","docId":"support","unlisted":false},{"type":"link","label":"Upgrading","href":"/docs/upgrading","docId":"upgrading","unlisted":false}]},"docs":{"applications/content-management/dokuwiki":{"id":"applications/content-management/dokuwiki","title":"Dokuwiki","description":"Open source wiki software that doesn\'t require a database","sidebar":"tutorialSidebar"},"applications/content-management/joomla":{"id":"applications/content-management/joomla","title":"Joomla","description":"An award-winning content management system","sidebar":"tutorialSidebar"},"applications/content-management/tiddlywiki":{"id":"applications/content-management/tiddlywiki","title":"TiddlyWiki","description":"A notebook for capturing, organizing, and sharing information","sidebar":"tutorialSidebar"},"applications/dashboards/dashy":{"id":"applications/dashboards/dashy","title":"Dashy","description":"Homepage//dashy.to","sidebar":"tutorialSidebar"},"applications/dashboards/heimdall":{"id":"applications/dashboards/heimdall","title":"Heimdall","description":"Homepage//heimdall.site","sidebar":"tutorialSidebar"},"applications/dashboards/homepage":{"id":"applications/dashboards/homepage","title":"Homepage","description":"Homepage//gethomepage.dev","sidebar":"tutorialSidebar"},"applications/dashboards/organizr":{"id":"applications/dashboards/organizr","title":"Organizr","description":"Homepage//organizr.app","sidebar":"tutorialSidebar"},"applications/development-tools/code-server":{"id":"applications/development-tools/code-server","title":"Code Server","description":"Homepage//code.visualstudio.com/","sidebar":"tutorialSidebar"},"applications/development-tools/drone_ci":{"id":"applications/development-tools/drone_ci","title":"Drone CI","description":"Drone is a self-service Continuous Integration platform for busy development teams.","sidebar":"tutorialSidebar"},"applications/development-tools/gitea":{"id":"applications/development-tools/gitea","title":"Gitea","description":"Homepage//gitea.io/","sidebar":"tutorialSidebar"},"applications/development-tools/gitlab":{"id":"applications/development-tools/gitlab","title":"GitLab","description":"Homepage//docs.gitlab.com/omnibus/docker/","sidebar":"tutorialSidebar"},"applications/development-tools/nomad":{"id":"applications/development-tools/nomad","title":"Nomad","description":"Homepage//www.nomadproject.io/","sidebar":"tutorialSidebar"},"applications/development-tools/woodpecker_ci":{"id":"applications/development-tools/woodpecker_ci","title":"Woodpecker CI","description":"Woodpecker is a simple CI engine with great extensibility.","sidebar":"tutorialSidebar"},"applications/download-tools/bazarr":{"id":"applications/download-tools/bazarr","title":"Bazarr","description":"Homepage//github.com/morpheus65535/bazarr","sidebar":"tutorialSidebar"},"applications/download-tools/couchpotato":{"id":"applications/download-tools/couchpotato","title":"Couchpotato","description":"Homepage//couchpota.to/","sidebar":"tutorialSidebar"},"applications/download-tools/deluge":{"id":"applications/download-tools/deluge","title":"Deluge","description":"Homepage//deluge-torrent.org/","sidebar":"tutorialSidebar"},"applications/download-tools/flaresolverr":{"id":"applications/download-tools/flaresolverr","title":"FlareSolverr","description":"Homepage//github.com/FlareSolverr/FlareSolverr","sidebar":"tutorialSidebar"},"applications/download-tools/get_iplayer":{"id":"applications/download-tools/get_iplayer","title":"Get_iPlayer","description":"Homepage//github.com/get-iplayer/getiplayer","sidebar":"tutorialSidebar"},"applications/download-tools/jackett":{"id":"applications/download-tools/jackett","title":"Jackett","description":"Homepage//github.com/Jackett/Jackett","sidebar":"tutorialSidebar"},"applications/download-tools/lidarr":{"id":"applications/download-tools/lidarr","title":"Lidarr","description":"Homepage//lidarr.audio/","sidebar":"tutorialSidebar"},"applications/download-tools/mylar":{"id":"applications/download-tools/mylar","title":"Mylar","description":"Homepage//github.com/evilhero/mylar","sidebar":"tutorialSidebar"},"applications/download-tools/nzbget":{"id":"applications/download-tools/nzbget","title":"NZBGet","description":"Homepage//nzbget.net/","sidebar":"tutorialSidebar"},"applications/download-tools/ombi":{"id":"applications/download-tools/ombi","title":"Ombi","description":"Homepage//ombi.io/","sidebar":"tutorialSidebar"},"applications/download-tools/overseerr":{"id":"applications/download-tools/overseerr","title":"Overseerr","description":"Homepage//docs.overseerr.dev","sidebar":"tutorialSidebar"},"applications/download-tools/prowlarr":{"id":"applications/download-tools/prowlarr","title":"Prowlarr","description":"Homepages: prowlarr","sidebar":"tutorialSidebar"},"applications/download-tools/pyload":{"id":"applications/download-tools/pyload","title":"pyLoad","description":"Homepage//pyload.net/","sidebar":"tutorialSidebar"},"applications/download-tools/radarr":{"id":"applications/download-tools/radarr","title":"Radarr","description":"Homepage: radarr","sidebar":"tutorialSidebar"},"applications/download-tools/sabnzbd":{"id":"applications/download-tools/sabnzbd","title":"Sabnzbd","description":"Homepage//sabnzbd.org/","sidebar":"tutorialSidebar"},"applications/download-tools/sonarr":{"id":"applications/download-tools/sonarr","title":"Sonarr","description":"Homepage//sonarr.tv/","sidebar":"tutorialSidebar"},"applications/download-tools/transmission":{"id":"applications/download-tools/transmission","title":"Transmission","description":"Homepage//transmissionbt.com/","sidebar":"tutorialSidebar"},"applications/download-tools/utorrent":{"id":"applications/download-tools/utorrent","title":"uTorrent","description":"Homepage//www.utorrent.com/","sidebar":"tutorialSidebar"},"applications/download-tools/youtubedlmaterial":{"id":"applications/download-tools/youtubedlmaterial","title":"YouTubeDL-Material","description":"Homepage//github.com/Tzahi12345/YoutubeDL-Material","sidebar":"tutorialSidebar"},"applications/gaming/minecraft-bedrock-server":{"id":"applications/gaming/minecraft-bedrock-server","title":"Minecraft Bedrock Server","description":"Homepage//www.minecraft.net/","sidebar":"tutorialSidebar"},"applications/gaming/minecraft-server":{"id":"applications/gaming/minecraft-server","title":"Minecraft Server","description":"Homepage//www.minecraft.net/","sidebar":"tutorialSidebar"},"applications/gaming/valheim":{"id":"applications/gaming/valheim","title":"Valheim Server","description":"Homepage//github.com/mbround18/valheim-docker","sidebar":"tutorialSidebar"},"applications/home-automation/esphome":{"id":"applications/home-automation/esphome","title":"ESPHome","description":"Homepage: esphome.io","sidebar":"tutorialSidebar"},"applications/home-automation/homeassistant":{"id":"applications/home-automation/homeassistant","title":"Home Assistant","description":"Homepage//www.home-assistant.io/","sidebar":"tutorialSidebar"},"applications/home-automation/homebridge":{"id":"applications/home-automation/homebridge","title":"Homebridge","description":"Homepage//github.com/nfarina/homebridge","sidebar":"tutorialSidebar"},"applications/home-automation/mosquitto":{"id":"applications/home-automation/mosquitto","title":"Mosquitto","description":"Homepage//mosquitto.org","sidebar":"tutorialSidebar"},"applications/home-automation/n8n":{"id":"applications/home-automation/n8n","title":"Nodemation (n8n)","description":"Homepage//n8n.io","sidebar":"tutorialSidebar"},"applications/home-automation/openhab":{"id":"applications/home-automation/openhab","title":"openHAB","description":"Homepage//www.openhab.org/","sidebar":"tutorialSidebar"},"applications/media-serving/airsonic":{"id":"applications/media-serving/airsonic","title":"Airsonic","description":"Homepage//airsonic.github.io/","sidebar":"tutorialSidebar"},"applications/media-serving/booksonic":{"id":"applications/media-serving/booksonic","title":"Booksonic","description":"Homepage//booksonic.org/","sidebar":"tutorialSidebar"},"applications/media-serving/calibre":{"id":"applications/media-serving/calibre","title":"calibre","description":"Homepage//calibre-ebook.com","sidebar":"tutorialSidebar"},"applications/media-serving/calibre-web":{"id":"applications/media-serving/calibre-web","title":"Calibre-web","description":"Homepage//github.com/janeczku/calibre-web","sidebar":"tutorialSidebar"},"applications/media-serving/emby":{"id":"applications/media-serving/emby","title":"Emby","description":"Homepage//emby.media/","sidebar":"tutorialSidebar"},"applications/media-serving/jellyfin":{"id":"applications/media-serving/jellyfin","title":"Jellyfin","description":"Homepage//jellyfin.org/","sidebar":"tutorialSidebar"},"applications/media-serving/komga":{"id":"applications/media-serving/komga","title":"Komga","description":"Homepage//komga.org/","sidebar":"tutorialSidebar"},"applications/media-serving/minidlna":{"id":"applications/media-serving/minidlna","title":"MiniDLNA","description":"Homepage//sourceforge.net/projects/minidlna/","sidebar":"tutorialSidebar"},"applications/media-serving/mymediaforalexa":{"id":"applications/media-serving/mymediaforalexa","title":"My Media for Alexa","description":"Homepage//www.mymediaalexa.com/","sidebar":"tutorialSidebar"},"applications/media-serving/navidrome":{"id":"applications/media-serving/navidrome","title":"Navidrome","description":"Homepage//www.navidrome.org/","sidebar":"tutorialSidebar"},"applications/media-serving/plex":{"id":"applications/media-serving/plex","title":"Plex","description":"Homepage//www.plex.tv/","sidebar":"tutorialSidebar"},"applications/media-serving/pytivo":{"id":"applications/media-serving/pytivo","title":"PyTivo","description":"Project Homepage:","sidebar":"tutorialSidebar"},"applications/media-serving/romm":{"id":"applications/media-serving/romm","title":"Romm","description":"Homepage//github.com/zurdi15/romm","sidebar":"tutorialSidebar"},"applications/media-serving/tautulli":{"id":"applications/media-serving/tautulli","title":"Tautulli","description":"Homepage//tautulli.com/","sidebar":"tutorialSidebar"},"applications/media-serving/threadfin":{"id":"applications/media-serving/threadfin","title":"Ubooquity","description":"Homepage//github.com/Threadfin/Threadfin","sidebar":"tutorialSidebar"},"applications/media-serving/ubooquity":{"id":"applications/media-serving/ubooquity","title":"Ubooquity","description":"Homepage//vaemendis.net/ubooquity/","sidebar":"tutorialSidebar"},"applications/monitoring/glances":{"id":"applications/monitoring/glances","title":"Glances","description":"Homepage//nicolargo.github.io/glances/","sidebar":"tutorialSidebar"},"applications/monitoring/speedtest":{"id":"applications/monitoring/speedtest","title":"Speedtest-Tracker","description":"Homepage//github.com/henrywhitaker3/Speedtest-Tracker","sidebar":"tutorialSidebar"},"applications/monitoring/stats":{"id":"applications/monitoring/stats","title":"Stats","description":"The stats role uses Prometheus, Grafana, Telegraf and a number of metrics exporters to collect and record lots of metrics about your NAS.","sidebar":"tutorialSidebar"},"applications/monitoring/wireshark":{"id":"applications/monitoring/wireshark","title":"Wireshark","description":"Homepage//www.wireshark.org/","sidebar":"tutorialSidebar"},"applications/news/freshrss":{"id":"applications/news/freshrss","title":"FreshRSS","description":"Homepage//freshrss.org/","sidebar":"tutorialSidebar"},"applications/news/miniflux":{"id":"applications/news/miniflux","title":"Miniflux","description":"Homepage//miniflux.app/","sidebar":"tutorialSidebar"},"applications/news/rssbridge":{"id":"applications/news/rssbridge","title":"RSS-Bridge","description":"Homepage//rss-bridge.github.io/rss-bridge/","sidebar":"tutorialSidebar"},"applications/observability/grafana":{"id":"applications/observability/grafana","title":"Grafana","description":"Homepage//grafana.com/","sidebar":"tutorialSidebar"},"applications/other/bitwarden":{"id":"applications/other/bitwarden","title":"Bitwarden(_rs)","description":"Homepage//github.com/dani-garcia/bitwardenrs","sidebar":"tutorialSidebar"},"applications/other/firefly":{"id":"applications/other/firefly","title":"Firefly III","description":"Homepage//firefly-iii.org/","sidebar":"tutorialSidebar"},"applications/other/gotify":{"id":"applications/other/gotify","title":"Gotify","description":"Homepage//gotify.net/","sidebar":"tutorialSidebar"},"applications/other/guacamole":{"id":"applications/other/guacamole","title":"Guacamole","description":"Homepage//guacamole.apache.org/","sidebar":"tutorialSidebar"},"applications/other/hello_world":{"id":"applications/other/hello_world","title":"Hello World","description":"Homepage//www.example.com/","sidebar":"tutorialSidebar"},"applications/other/mealie":{"id":"applications/other/mealie","title":"Mealie","description":"Homepage//docs.mealie.io/","sidebar":"tutorialSidebar"},"applications/other/mumble":{"id":"applications/other/mumble","title":"Mumble","description":"Homepage//www.mumble.info/","sidebar":"tutorialSidebar"},"applications/other/nextcloud":{"id":"applications/other/nextcloud","title":"Nextcloud","description":"Homepage//nextcloud.com","sidebar":"tutorialSidebar"},"applications/other/octoprint":{"id":"applications/other/octoprint","title":"Octoprint","description":"Homepage//octoprint.org/","sidebar":"tutorialSidebar"},"applications/other/paperless_ng":{"id":"applications/other/paperless_ng","title":"Paperless-ng","description":"Homepage//github.com/jonaswinkler/paperless-ng","sidebar":"tutorialSidebar"},"applications/other/piwigo":{"id":"applications/other/piwigo","title":"Piwigo","description":"Homepage: Piwigo.org","sidebar":"tutorialSidebar"},"applications/other/silverbullet":{"id":"applications/other/silverbullet","title":"Silverbullet","description":"Homepage//silverbullet.md","sidebar":"tutorialSidebar"},"applications/other/thelounge":{"id":"applications/other/thelounge","title":"The Lounge","description":"Homepage//thelounge.chat/","sidebar":"tutorialSidebar"},"applications/other/traefik":{"id":"applications/other/traefik","title":"Traefik","description":"Homepage//traefik.io","sidebar":"tutorialSidebar"},"applications/other/virtual_desktop":{"id":"applications/other/virtual_desktop","title":"Virtual Desktop","description":"It\'s possible to run a cut down desktop within a Docker container. We use RattyDAVE\'s custom Ubuntu Mate image.","sidebar":"tutorialSidebar"},"applications/other/wallabag":{"id":"applications/other/wallabag","title":"Wallabag","description":"Homepage//www.wallabag.org/","sidebar":"tutorialSidebar"},"applications/stacks/logging":{"id":"applications/stacks/logging","title":"Logging","description":"The logging stack sets up a fully functional application logging capture and search service based on Loki, viewable via Grafana.","sidebar":"tutorialSidebar"},"applications/system-tools/cloudcmd":{"id":"applications/system-tools/cloudcmd","title":"Cloud Commander","description":"Homepage//cloudcmd.io/","sidebar":"tutorialSidebar"},"applications/system-tools/cloudflare_ddns":{"id":"applications/system-tools/cloudflare_ddns","title":"Cloudflare DDNS","description":"Homepage//github.com/joshuaavalon/docker-cloudflare","sidebar":"tutorialSidebar"},"applications/system-tools/ddns_updater":{"id":"applications/system-tools/ddns_updater","title":"DDNS Updater","description":"Lightweight universal DDNS Updater with a web UI.","sidebar":"tutorialSidebar"},"applications/system-tools/duplicacy":{"id":"applications/system-tools/duplicacy","title":"Duplicacy","description":"Homepage//duplicacy.com/","sidebar":"tutorialSidebar"},"applications/system-tools/duplicati":{"id":"applications/system-tools/duplicati","title":"Duplicati","description":"Homepage//www.duplicati.com/","sidebar":"tutorialSidebar"},"applications/system-tools/healthchecks.io":{"id":"applications/system-tools/healthchecks.io","title":"Healthchecks.io","description":"Homepage//healthchecks.io/","sidebar":"tutorialSidebar"},"applications/system-tools/krusader":{"id":"applications/system-tools/krusader","title":"Krusader","description":"Homepage//krusader.org/","sidebar":"tutorialSidebar"},"applications/system-tools/loki":{"id":"applications/system-tools/loki","title":"Loki","description":"Homepage//grafana.com/oss/loki/","sidebar":"tutorialSidebar"},"applications/system-tools/minio":{"id":"applications/system-tools/minio","title":"Minio","description":"Homepage//min.io/","sidebar":"tutorialSidebar"},"applications/system-tools/netbootxyz":{"id":"applications/system-tools/netbootxyz","title":"netboot.xyz","description":"Homepage//netboot.xyz/","sidebar":"tutorialSidebar"},"applications/system-tools/portainer":{"id":"applications/system-tools/portainer","title":"Portainer","description":"Homepage//docs.portainer.io/start/install/server/docker","sidebar":"tutorialSidebar"},"applications/system-tools/promtail":{"id":"applications/system-tools/promtail","title":"Promtail","description":"Homepage//grafana.com/docs/loki/latest/clients/promtail/","sidebar":"tutorialSidebar"},"applications/system-tools/route53_ddns":{"id":"applications/system-tools/route53_ddns","title":"AWS Route53 Dynamic DNS Updater","description":"ddns-route53//crazymax.dev/ddns-route53/","sidebar":"tutorialSidebar"},"applications/system-tools/syncthing":{"id":"applications/system-tools/syncthing","title":"Syncthing","description":"Homepage//syncthing.net/","sidebar":"tutorialSidebar"},"applications/system-tools/timemachine":{"id":"applications/system-tools/timemachine","title":"Time Machine","description":"Apple docs//support.apple.com/en-us/HT201250","sidebar":"tutorialSidebar"},"applications/system-tools/watchtower":{"id":"applications/system-tools/watchtower","title":"Watchtower","description":"Homepage//github.com/v2tec/watchtower","sidebar":"tutorialSidebar"},"contributing/add-an-application":{"id":"contributing/add-an-application","title":"Add An Application","description":"Adding a new application to Ansible-NAS is easy! First, set up your development environment.","sidebar":"tutorialSidebar"},"contributing/development-environment":{"id":"contributing/development-environment","title":"Development Environment","description":"A little setup is required to ensure that you can develop and test Ansible-NAS contributions.","sidebar":"tutorialSidebar"},"further-configuration/hardware":{"id":"further-configuration/hardware","title":"Hardware","description":"Ansible-NAS will run against any Ubuntu box, a Raspberry Pi 4, or even a VM if you\'re just testing things out. The hardware you pick for Ansible-NAS depends largely on what you intend to do with your server - and is very much a \\"how long is a piece of string\\" type question.","sidebar":"tutorialSidebar"},"further-configuration/migrating-from-freenas":{"id":"further-configuration/migrating-from-freenas","title":"Migrating from FreeNAS","description":"FreeNAS uses ZFS as it\'s core storage filesystem. ZFS on Linux is supported natively in Ubuntu, so importing FreeNAS zpools is easy.","sidebar":"tutorialSidebar"},"further-configuration/nfs-exports":{"id":"further-configuration/nfs-exports","title":"NFS Exports","description":"Ansible-NAS uses the awesome geerlingguy.nfs Ansible role to configure NFS exports.","sidebar":"tutorialSidebar"},"further-configuration/samba-shares":{"id":"further-configuration/samba-shares","title":"Samba Shares","description":"Ansible-NAS uses the awesome vladgh.samba Ansible role to configure Samba - check out the Ansible Galaxy page for the many different options you can use to configure a share.","sidebar":"tutorialSidebar"},"getting-started/configure-dashboard":{"id":"getting-started/configure-dashboard","title":"Configure A Dashboard","description":"Once you start to enable a few applications, it becomes difficult to remember the addresses of where to find them.","sidebar":"tutorialSidebar"},"getting-started/enabling-applications":{"id":"getting-started/enabling-applications","title":"Enabling Applications","description":"Ansible-NAS takes advantage of Ansible\'s prescendence rules to enable and disable applications.","sidebar":"tutorialSidebar"},"getting-started/external-access":{"id":"getting-started/external-access","title":"External Access","description":"There are a number of steps required to enable external access to the applications running on your NAS:","sidebar":"tutorialSidebar"},"getting-started/installation":{"id":"getting-started/installation","title":"Installation","description":"Ansible-NAS is an Ansible playbook that sets up applications of your choice on your home server.","sidebar":"tutorialSidebar"},"index":{"id":"index","title":"Introduction","description":"After getting burned by broken FreeNAS updates one too many times, I figured I could do a much better job myself using just a stock Ubuntu install, some clever Ansible config and a bunch of Docker containers. Ansible-NAS was born!","sidebar":"tutorialSidebar"},"support":{"id":"support","title":"Support","description":"Getting support for Ansible-NAS is easy!","sidebar":"tutorialSidebar"},"upgrading":{"id":"upgrading","title":"Upgrading","description":"Upgrading consists of two steps - firstly updating the Ansible-NAS code on your Ansible control node, and then running the playbook against your Ubuntu server.","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/93a4bf09.8f60cad5.js b/assets/js/93a4bf09.8f60cad5.js new file mode 100644 index 0000000000..f88ddc9067 --- /dev/null +++ b/assets/js/93a4bf09.8f60cad5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[6709],{5754:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=t(5893),r=t(1151);const a={title:"Krusader"},o=void 0,i={id:"applications/system-tools/krusader",title:"Krusader",description:"Homepage//krusader.org/",source:"@site/docs/applications/system-tools/krusader.md",sourceDirName:"applications/system-tools",slug:"/applications/system-tools/krusader",permalink:"/docs/applications/system-tools/krusader",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/system-tools/krusader.md",tags:[],version:"current",frontMatter:{title:"Krusader"},sidebar:"tutorialSidebar",previous:{title:"Healthchecks.io",permalink:"/docs/applications/system-tools/healthchecks.io"},next:{title:"Loki",permalink:"/docs/applications/system-tools/loki"}},c={},l=[{value:"Usage",id:"usage",level:2}];function d(e){const s={a:"a",code:"code",h2:"h2",p:"p",...(0,r.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:["Homepage: ",(0,n.jsx)(s.a,{href:"https://krusader.org/",children:"https://krusader.org/"})]}),"\n",(0,n.jsxs)(s.p,{children:["Docker Container: ",(0,n.jsx)(s.a,{href:"https://hub.docker.com/r/djaydev/krusader",children:"Krusader"})]}),"\n",(0,n.jsx)(s.p,{children:"Krusader provides twin panel file management for your ansible-nas via browser and VNC."}),"\n",(0,n.jsx)(s.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(s.p,{children:["Set ",(0,n.jsx)(s.code,{children:"krusader_enabled: true"})," in your ",(0,n.jsx)(s.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(s.p,{children:["The Krusader web interface can be found at ",(0,n.jsx)(s.a,{href:"http://ansible_nas_host_or_ip:5800",children:"http://ansible_nas_host_or_ip:5800"}),"."]})]})}function p(e={}){const{wrapper:s}={...(0,r.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,s,t)=>{t.d(s,{Z:()=>i,a:()=>o});var n=t(7294);const r={},a=n.createContext(r);function o(e){const s=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/952c0338.f00f86db.js b/assets/js/952c0338.f00f86db.js new file mode 100644 index 0000000000..f09c5eb4cf --- /dev/null +++ b/assets/js/952c0338.f00f86db.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[6686],{5107:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var o=t(5893),s=t(1151);const i={title:"NZBGet"},a=void 0,r={id:"applications/download-tools/nzbget",title:"NZBGet",description:"Homepage//nzbget.net/",source:"@site/docs/applications/download-tools/nzbget.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/nzbget",permalink:"/docs/applications/download-tools/nzbget",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/nzbget.md",tags:[],version:"current",frontMatter:{title:"NZBGet"},sidebar:"tutorialSidebar",previous:{title:"Mylar",permalink:"/docs/applications/download-tools/mylar"},next:{title:"Ombi",permalink:"/docs/applications/download-tools/ombi"}},l={},d=[{value:"Usage",id:"usage",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:["Homepage: ",(0,o.jsx)(n.a,{href:"https://nzbget.net/",children:"https://nzbget.net/"})]}),"\n",(0,o.jsx)(n.p,{children:"The most efficient Usenet downloader. NZBGet is written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources."}),"\n",(0,o.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,o.jsxs)(n.p,{children:["Set ",(0,o.jsx)(n.code,{children:"nzbget_enabled: true"})," in your ",(0,o.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,o.jsxs)(n.p,{children:["The NZBget web interface can be found at ",(0,o.jsx)(n.a,{href:"http://ansible_nas_host_or_ip:6789",children:"http://ansible_nas_host_or_ip:6789"}),", the default username is ",(0,o.jsx)(n.code,{children:"nzbget"})," and password ",(0,o.jsx)(n.code,{children:"tegbzn6789"}),". Change this once you've logged in!"]})]})}function p(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>a});var o=t(7294);const s={},i=o.createContext(s);function a(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/97201270.f6adc91c.js b/assets/js/97201270.f6adc91c.js new file mode 100644 index 0000000000..3a98e382f3 --- /dev/null +++ b/assets/js/97201270.f6adc91c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1996],{6008:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>r,toc:()=>c});var n=s(5893),o=s(1151);const a={title:"Promtail"},i=void 0,r={id:"applications/system-tools/promtail",title:"Promtail",description:"Homepage//grafana.com/docs/loki/latest/clients/promtail/",source:"@site/docs/applications/system-tools/promtail.md",sourceDirName:"applications/system-tools",slug:"/applications/system-tools/promtail",permalink:"/docs/applications/system-tools/promtail",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/system-tools/promtail.md",tags:[],version:"current",frontMatter:{title:"Promtail"},sidebar:"tutorialSidebar",previous:{title:"Portainer",permalink:"/docs/applications/system-tools/portainer"},next:{title:"AWS Route53 Dynamic DNS Updater",permalink:"/docs/applications/system-tools/route53_ddns"}},l={},c=[{value:"Usage",id:"usage",level:2}];function p(t){const e={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,o.a)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.p,{children:["Homepage: ",(0,n.jsx)(e.a,{href:"https://grafana.com/docs/loki/latest/clients/promtail/",children:"https://grafana.com/docs/loki/latest/clients/promtail/"})]}),"\n",(0,n.jsxs)(e.p,{children:["Docker image: ",(0,n.jsx)(e.a,{href:"https://hub.docker.com/r/grafana/promtail",children:"Promtail"})]}),"\n",(0,n.jsx)(e.p,{children:"Promtail is an agent which ships the contents of local logs to a private Grafana Loki instance or Grafana Cloud. It is usually deployed to every machine that has applications needed to be monitored."}),"\n",(0,n.jsx)(e.p,{children:"It primarily:"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsx)(e.li,{children:"Discovers targets"}),"\n",(0,n.jsx)(e.li,{children:"Attaches labels to log streams"}),"\n",(0,n.jsx)(e.li,{children:"Pushes them to the Loki instance."}),"\n"]}),"\n",(0,n.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(e.p,{children:["Set ",(0,n.jsx)(e.code,{children:"promtail_enabled: true"})," in your ",(0,n.jsx)(e.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(e.p,{children:["To see what Promtail is doing (and what containers it has discovered for tailing), visit the web interface at at ",(0,n.jsx)(e.a,{href:"http://ansible_nas_host_or_ip:9080",children:"http://ansible_nas_host_or_ip:9080"}),"."]})]})}function d(t={}){const{wrapper:e}={...(0,o.a)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(p,{...t})}):p(t)}},1151:(t,e,s)=>{s.d(e,{Z:()=>r,a:()=>i});var n=s(7294);const o={},a=n.createContext(o);function i(t){const e=n.useContext(a);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:i(t.components),n.createElement(a.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/97290eac.4746381d.js b/assets/js/97290eac.4746381d.js new file mode 100644 index 0000000000..c0c1b7c60f --- /dev/null +++ b/assets/js/97290eac.4746381d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1037],{7537:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>c,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var t=n(5893),r=n(1151);const i={title:"FreshRSS"},o=void 0,a={id:"applications/news/freshrss",title:"FreshRSS",description:"Homepage//freshrss.org/",source:"@site/docs/applications/news/freshrss.md",sourceDirName:"applications/news",slug:"/applications/news/freshrss",permalink:"/docs/applications/news/freshrss",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/news/freshrss.md",tags:[],version:"current",frontMatter:{title:"FreshRSS"},sidebar:"tutorialSidebar",previous:{title:"News",permalink:"/docs/category/news"},next:{title:"Miniflux",permalink:"/docs/applications/news/miniflux"}},c={},l=[{value:"Usage",id:"usage",level:2}];function p(e){const s={a:"a",code:"code",h2:"h2",p:"p",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.p,{children:["Homepage: ",(0,t.jsx)(s.a,{href:"https://freshrss.org/",children:"https://freshrss.org/"})]}),"\n",(0,t.jsx)(s.p,{children:"FreshRSS is a self-hosted RSS feed aggregator like Leed or Kriss Feed."}),"\n",(0,t.jsx)(s.p,{children:"It is lightweight, easy to work with, powerful, and customizable."}),"\n",(0,t.jsx)(s.p,{children:"It is a multi-user application with an anonymous reading mode. It supports custom tags. There is an API for (mobile) clients, and a Command-Line Interface."}),"\n",(0,t.jsx)(s.p,{children:"Thanks to the WebSub standard (formerly PubSubHubbub), FreshRSS is able to receive instant push notifications from compatible sources, such as Mastodon, Friendica, WordPress, Blogger, FeedBurner, etc."}),"\n",(0,t.jsx)(s.p,{children:"FreshRSS natively supports basic Web scraping, based on XPath, for Web sites not providing any RSS / Atom feed."}),"\n",(0,t.jsx)(s.p,{children:"Finally, it supports extensions for further tuning."}),"\n",(0,t.jsx)(s.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsxs)(s.p,{children:["Set ",(0,t.jsx)(s.code,{children:"freshrss_enabled: true"})," in your ",(0,t.jsx)(s.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,t.jsxs)(s.p,{children:["The FreshRSS web interface can be found at ",(0,t.jsx)(s.a,{href:"http://ansible_nas_host_or_ip:8089",children:"http://ansible_nas_host_or_ip:8089"}),"."]})]})}function d(e={}){const{wrapper:s}={...(0,r.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},1151:(e,s,n)=>{n.d(s,{Z:()=>a,a:()=>o});var t=n(7294);const r={},i=t.createContext(r);function o(e){const s=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function a(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),t.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/988e94bb.8c6abd6e.js b/assets/js/988e94bb.8c6abd6e.js new file mode 100644 index 0000000000..b1cb438632 --- /dev/null +++ b/assets/js/988e94bb.8c6abd6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[5498],{337:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>l});var t=s(5893),a=s(1151);const r={title:"Paperless-ng"},o=void 0,i={id:"applications/other/paperless_ng",title:"Paperless-ng",description:"Homepage//github.com/jonaswinkler/paperless-ng",source:"@site/docs/applications/other/paperless_ng.md",sourceDirName:"applications/other",slug:"/applications/other/paperless_ng",permalink:"/docs/applications/other/paperless_ng",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/other/paperless_ng.md",tags:[],version:"current",frontMatter:{title:"Paperless-ng"},sidebar:"tutorialSidebar",previous:{title:"Octoprint",permalink:"/docs/applications/other/octoprint"},next:{title:"Piwigo",permalink:"/docs/applications/other/piwigo"}},p={},l=[{value:"Usage",id:"usage",level:2},{value:"Create the superuser",id:"create-the-superuser",level:3}];function c(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["Homepage: ",(0,t.jsx)(n.a,{href:"https://github.com/jonaswinkler/paperless-ng",children:"https://github.com/jonaswinkler/paperless-ng"})]}),"\n",(0,t.jsx)(n.p,{children:"Paperless 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."}),"\n",(0,t.jsx)(n.p,{children:"Paperless-ng is a fork of the original project, adding a new interface and many other changes under the hood"}),"\n",(0,t.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsxs)(n.p,{children:["Set ",(0,t.jsx)(n.code,{children:"paperless_ng_enabled: true"})," in your ",(0,t.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,t.jsxs)(n.p,{children:["The paperless-ng web interface can be found at ",(0,t.jsx)(n.a,{href:"http://ansible_nas_host_or_ip:16922",children:"http://ansible_nas_host_or_ip:16922"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"create-the-superuser",children:"Create the superuser"}),"\n",(0,t.jsx)(n.p,{children:"To be able to login, you will need a super user. To create it, execute the following command:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"docker exec -it paperless_ng_uiserver python manage.py createsuperuser\n"})}),"\n",(0,t.jsx)(n.p,{children:"This will prompt you to set a username, an optional e-mail address and finally a password (at least 8 characters)."})]})}function d(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1151:(e,n,s)=>{s.d(n,{Z:()=>i,a:()=>o});var t=s(7294);const a={},r=t.createContext(a);function o(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9cf795e3.c4e914c7.js b/assets/js/9cf795e3.c4e914c7.js new file mode 100644 index 0000000000..eb53fdf5b2 --- /dev/null +++ b/assets/js/9cf795e3.c4e914c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[8967],{1685:i=>{i.exports=JSON.parse('{"title":"Monitoring","description":"All of the monitoring applications available for installation with Ansible-NAS.","slug":"/category/monitoring","permalink":"/docs/category/monitoring","navigation":{"previous":{"title":"Ubooquity","permalink":"/docs/applications/media-serving/ubooquity"},"next":{"title":"Glances","permalink":"/docs/applications/monitoring/glances"}}}')}}]); \ No newline at end of file diff --git a/assets/js/9dcd3851.5acad8ac.js b/assets/js/9dcd3851.5acad8ac.js new file mode 100644 index 0000000000..7fe5667f03 --- /dev/null +++ b/assets/js/9dcd3851.5acad8ac.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[5586],{262:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>r,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var n=t(5893),a=t(1151);const s={title:"Cloudflare DDNS"},l=void 0,i={id:"applications/system-tools/cloudflare_ddns",title:"Cloudflare DDNS",description:"Homepage//github.com/joshuaavalon/docker-cloudflare",source:"@site/docs/applications/system-tools/cloudflare_ddns.md",sourceDirName:"applications/system-tools",slug:"/applications/system-tools/cloudflare_ddns",permalink:"/docs/applications/system-tools/cloudflare_ddns",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/system-tools/cloudflare_ddns.md",tags:[],version:"current",frontMatter:{title:"Cloudflare DDNS"},sidebar:"tutorialSidebar",previous:{title:"Cloud Commander",permalink:"/docs/applications/system-tools/cloudcmd"},next:{title:"DDNS Updater",permalink:"/docs/applications/system-tools/ddns_updater"}},r={},c=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function d(e){const o={a:"a",code:"code",h2:"h2",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(o.p,{children:["Homepage: ",(0,n.jsx)(o.a,{href:"https://github.com/joshuaavalon/docker-cloudflare",children:"https://github.com/joshuaavalon/docker-cloudflare"})]}),"\n",(0,n.jsxs)(o.p,{children:["Cloudflare: ",(0,n.jsx)(o.a,{href:"https://www.cloudflare.com",children:"https://www.cloudflare.com"})]}),"\n",(0,n.jsx)(o.p,{children:"If you want your Ansible-NAS accessible externally then you'll need a domain name. You'll also need to set a wildcard\nhost A record to point to your static IP, or enable this container to automatically update Cloudflare with your dynamic IP address."}),"\n",(0,n.jsx)(o.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(o.p,{children:["Set ",(0,n.jsx)(o.code,{children:"cloudflare_ddns_enabled: true"})," in your ",(0,n.jsx)(o.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(o.p,{children:["Set ",(0,n.jsx)(o.code,{children:"cloudflare_token"})," to the one you grab from the Cloudflare UI (more below)."]}),"\n",(0,n.jsx)(o.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,n.jsxs)(o.p,{children:["Make sure you set your domain (if different than the ansible-nas default) and access token details within your ",(0,n.jsx)(o.code,{children:"inventories/ /group_vars/nas.yml"})," file. If you need to create an API token, see ",(0,n.jsx)(o.a,{href:"https://github.com/joshuaavalon/docker-cloudflare/#api-token",children:"https://github.com/joshuaavalon/docker-cloudflare/#api-token"})," for instructions."]}),"\n",(0,n.jsxs)(o.p,{children:["Cloudflare has deprecated global API key authentication. If you have an older ansible-nas configuration using a global API key, you can upgrade to the API token-based authentication by removing the ",(0,n.jsx)(o.code,{children:"cloudflare_api_key"})," variable from your local ",(0,n.jsx)(o.code,{children:"nas.yml"})," configuration file and setting the ",(0,n.jsx)(o.code,{children:"cloudflare_token"})," variable appropriately."]})]})}function u(e={}){const{wrapper:o}={...(0,a.a)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,o,t)=>{t.d(o,{Z:()=>i,a:()=>l});var n=t(7294);const a={},s=n.createContext(a);function l(e){const o=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function i(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),n.createElement(s.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9e4087bc.e59b2e2e.js b/assets/js/9e4087bc.e59b2e2e.js new file mode 100644 index 0000000000..792556a293 --- /dev/null +++ b/assets/js/9e4087bc.e59b2e2e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[3608],{3169:(e,s,a)=>{a.r(s),a.d(s,{default:()=>o});a(7294);var r=a(9960),t=a(5999),i=a(1944),n=a(6040),l=a(2503),c=a(5893);function h(e){let{year:s,posts:a}=e;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(l.Z,{as:"h3",id:s,children:s}),(0,c.jsx)("ul",{children:a.map((e=>(0,c.jsx)("li",{children:(0,c.jsxs)(r.Z,{to:e.metadata.permalink,children:[e.metadata.formattedDate," - ",e.metadata.title]})},e.metadata.date)))})]})}function d(e){let{years:s}=e;return(0,c.jsx)("section",{className:"margin-vert--lg",children:(0,c.jsx)("div",{className:"container",children:(0,c.jsx)("div",{className:"row",children:s.map(((e,s)=>(0,c.jsx)("div",{className:"col col--4 margin-vert--lg",children:(0,c.jsx)(h,{...e})},s)))})})})}function o(e){let{archive:s}=e;const a=(0,t.I)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),r=(0,t.I)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),h=function(e){const s=e.reduce(((e,s)=>{const a=s.metadata.date.split("-")[0],r=e.get(a)??[];return e.set(a,[s,...r])}),new Map);return Array.from(s,(e=>{let[s,a]=e;return{year:s,posts:a}}))}(s.blogPosts);return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(i.d,{title:a,description:r}),(0,c.jsxs)(n.Z,{children:[(0,c.jsx)("header",{className:"hero hero--primary",children:(0,c.jsxs)("div",{className:"container",children:[(0,c.jsx)(l.Z,{as:"h1",className:"hero__title",children:a}),(0,c.jsx)("p",{className:"hero__subtitle",children:r})]})}),(0,c.jsx)("main",{children:h.length>0&&(0,c.jsx)(d,{years:h})})]})]})}}}]); \ No newline at end of file diff --git a/assets/js/a04ec718.c3241793.js b/assets/js/a04ec718.c3241793.js new file mode 100644 index 0000000000..28f1cdd7d9 --- /dev/null +++ b/assets/js/a04ec718.c3241793.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[6396],{9672:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>l});var n=s(5893),o=s(1151);const i={title:"Virtual Desktop"},a=void 0,r={id:"applications/other/virtual_desktop",title:"Virtual Desktop",description:"It's possible to run a cut down desktop within a Docker container. We use RattyDAVE's custom Ubuntu Mate image.",source:"@site/docs/applications/other/virtual_desktop.md",sourceDirName:"applications/other",slug:"/applications/other/virtual_desktop",permalink:"/docs/applications/other/virtual_desktop",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/other/virtual_desktop.md",tags:[],version:"current",frontMatter:{title:"Virtual Desktop"},sidebar:"tutorialSidebar",previous:{title:"Traefik",permalink:"/docs/applications/other/traefik"},next:{title:"Wallabag",permalink:"/docs/applications/other/wallabag"}},c={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2},{value:"Mounts",id:"mounts",level:2},{value:"Remote Access",id:"remote-access",level:2}];function d(e){const t={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["It's possible to run a cut down desktop within a Docker container. We use ",(0,n.jsx)(t.a,{href:"https://github.com/RattyDAVE/docker-ubuntu-xrdp-mate-custom",children:"RattyDAVE's custom Ubuntu Mate image"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"virtual_desktop_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsx)(t.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,n.jsxs)(t.p,{children:["By default ",(0,n.jsx)(t.code,{children:"ansible_nas_user"})," will be granted access with a password of ",(0,n.jsx)(t.code,{children:"topsecret"})," with sudo rights. To change or add additional users override ",(0,n.jsx)(t.code,{children:"vd_users"})," in your ",(0,n.jsx)(t.code,{children:"nas.yml"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-yaml",children:'vd_users:\n - username: "{{ ansible_nas_user }}"\n password: "topsecret"\n sudo: "Y"\n - username: "larrylaffer"\n password: "kensentme"\n sudo: "Y"\n'})}),"\n",(0,n.jsx)(t.h2,{id:"mounts",children:"Mounts"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.code,{children:"samba_shares_root"})," is mounted to ",(0,n.jsx)(t.code,{children:"/samba"}),".\n",(0,n.jsx)(t.code,{children:"docker_home"})," is mounted to ",(0,n.jsx)(t.code,{children:"/docker"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"remote-access",children:"Remote Access"}),"\n",(0,n.jsxs)(t.p,{children:["It's possible to access your virtual desktop through a web browser! Check out ",(0,n.jsx)(t.a,{href:"/docs/applications/other/guacamole",children:"Guacamole"}),"."]})]})}function u(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>r,a:()=>a});var n=s(7294);const o={},i=n.createContext(o);function a(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a0f8a642.16249e3c.js b/assets/js/a0f8a642.16249e3c.js new file mode 100644 index 0000000000..fefe9f36f2 --- /dev/null +++ b/assets/js/a0f8a642.16249e3c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[3571],{8564:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>l});var o=t(5893),a=t(1151);const i={title:"Nodemation (n8n)"},s=void 0,r={id:"applications/home-automation/n8n",title:"Nodemation (n8n)",description:"Homepage//n8n.io",source:"@site/docs/applications/home-automation/n8n.md",sourceDirName:"applications/home-automation",slug:"/applications/home-automation/n8n",permalink:"/docs/applications/home-automation/n8n",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/home-automation/n8n.md",tags:[],version:"current",frontMatter:{title:"Nodemation (n8n)"},sidebar:"tutorialSidebar",previous:{title:"Mosquitto",permalink:"/docs/applications/home-automation/mosquitto"},next:{title:"openHAB",permalink:"/docs/applications/home-automation/openhab"}},c={},l=[{value:"Usage",id:"usage",level:2}];function u(e){const n={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:["Homepage: ",(0,o.jsx)(n.a,{href:"https://n8n.io",children:"https://n8n.io"})]}),"\n",(0,o.jsx)(n.p,{children:"Extendable workflow automation tool that enables you to connect anything to everything. More pragrmatically, it helps you interconnect API with each other to build your own information / work flows."}),"\n",(0,o.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,o.jsxs)(n.p,{children:["Set ",(0,o.jsx)(n.code,{children:"n8n_enabled: true"})," in your ",(0,o.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,o.jsx)(n.p,{children:"n8n is secured by default, he user and password can be set with:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:' n8n_basic_auth_user: " "\n n8n_basic_auth_password: " "\n'})}),"\n",(0,o.jsx)(n.p,{children:'The default for these is "n8n_user" and "n8n_change_me" respectively, it is recommended to change these.'})]})}function d(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>s});var o=t(7294);const a={},i=o.createContext(a);function s(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a151d981.26f479d9.js b/assets/js/a151d981.26f479d9.js new file mode 100644 index 0000000000..3b2d36646b --- /dev/null +++ b/assets/js/a151d981.26f479d9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[5986],{8098:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>r,toc:()=>l});var o=a(5893),n=a(1151);const s={title:"Jackett"},i=void 0,r={id:"applications/download-tools/jackett",title:"Jackett",description:"Homepage//github.com/Jackett/Jackett",source:"@site/docs/applications/download-tools/jackett.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/jackett",permalink:"/docs/applications/download-tools/jackett",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/jackett.md",tags:[],version:"current",frontMatter:{title:"Jackett"},sidebar:"tutorialSidebar",previous:{title:"Get_iPlayer",permalink:"/docs/applications/download-tools/get_iplayer"},next:{title:"Lidarr",permalink:"/docs/applications/download-tools/lidarr"}},c={},l=[{value:"Usage",id:"usage",level:2}];function d(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,n.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:["Homepage: ",(0,o.jsx)(t.a,{href:"https://github.com/Jackett/Jackett",children:"https://github.com/Jackett/Jackett"})]}),"\n",(0,o.jsx)(t.p,{children:"Jackett works as a proxy server: it translates queries from apps (Sonarr, Radarr, SickRage, CouchPotato, Mylar, DuckieTV, qBittorrent, Nefarious 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."}),"\n",(0,o.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,o.jsxs)(t.p,{children:["Set ",(0,o.jsx)(t.code,{children:"jackett_enabled: true"})," in your ",(0,o.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,o.jsxs)(t.p,{children:["The Jackett web interface can be found at ",(0,o.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:9117",children:"http://ansible_nas_host_or_ip:9117"}),"."]})]})}function p(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1151:(e,t,a)=>{a.d(t,{Z:()=>r,a:()=>i});var o=a(7294);const n={},s=o.createContext(n);function i(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a1b885bc.3f221781.js b/assets/js/a1b885bc.3f221781.js new file mode 100644 index 0000000000..a20ee9ef25 --- /dev/null +++ b/assets/js/a1b885bc.3f221781.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[29],{5946:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var o=t(5893),s=t(1151);const a={title:"Sabnzbd"},r=void 0,i={id:"applications/download-tools/sabnzbd",title:"Sabnzbd",description:"Homepage//sabnzbd.org/",source:"@site/docs/applications/download-tools/sabnzbd.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/sabnzbd",permalink:"/docs/applications/download-tools/sabnzbd",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/sabnzbd.md",tags:[],version:"current",frontMatter:{title:"Sabnzbd"},sidebar:"tutorialSidebar",previous:{title:"Radarr",permalink:"/docs/applications/download-tools/radarr"},next:{title:"Sonarr",permalink:"/docs/applications/download-tools/sonarr"}},d={},l=[{value:"Usage",id:"usage",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:["Homepage: ",(0,o.jsx)(n.a,{href:"https://sabnzbd.org/",children:"https://sabnzbd.org/"})]}),"\n",(0,o.jsx)(n.p,{children:"The time tested Usenet downloader provided with FreeNAS. It just works for those migrating from FreeNAS."}),"\n",(0,o.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,o.jsxs)(n.p,{children:["Set ",(0,o.jsx)(n.code,{children:"sabnzbd_enabled: true"})," in your ",(0,o.jsx)(n.code,{children:"/inventories/[my inventory]/group_vars/nas.yml"})," file."]}),"\n",(0,o.jsxs)(n.p,{children:["The Sabnzbd web interface can be found at ",(0,o.jsx)(n.a,{href:"http://ansible_nas_host_or_ip:18080",children:"http://ansible_nas_host_or_ip:18080"}),". Use this interface to configure the software upon first connection."]})]})}function p(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>i,a:()=>r});var o=t(7294);const s={},a=o.createContext(s);function r(e){const n=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a49d54d7.bcf8774a.js b/assets/js/a49d54d7.bcf8774a.js new file mode 100644 index 0000000000..240d3dd20e --- /dev/null +++ b/assets/js/a49d54d7.bcf8774a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[7187],{4841:s=>{s.exports=JSON.parse('{"label":"website","permalink":"/blog/tags/website","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/a50a43fb.1001db50.js b/assets/js/a50a43fb.1001db50.js new file mode 100644 index 0000000000..bde4557cac --- /dev/null +++ b/assets/js/a50a43fb.1001db50.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1480],{6469:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>r,contentTitle:()=>s,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var o=t(5893),a=t(1151);const i={title:"Joomla",description:"An award-winning content management system"},s=void 0,l={id:"applications/content-management/joomla",title:"Joomla",description:"An award-winning content management system",source:"@site/docs/applications/content-management/joomla.md",sourceDirName:"applications/content-management",slug:"/applications/content-management/joomla",permalink:"/docs/applications/content-management/joomla",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/content-management/joomla.md",tags:[],version:"current",frontMatter:{title:"Joomla",description:"An award-winning content management system"},sidebar:"tutorialSidebar",previous:{title:"Dokuwiki",permalink:"/docs/applications/content-management/dokuwiki"},next:{title:"TiddlyWiki",permalink:"/docs/applications/content-management/tiddlywiki"}},r={},c=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function d(n){const e={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,a.a)(),...n.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(e.p,{children:["Homepage: ",(0,o.jsx)(e.a,{href:"https://www.joomla.org",children:"https://www.joomla.org"})]}),"\n",(0,o.jsx)(e.p,{children:"Joomla! is an award-winning content management system (CMS), which enables you to build web sites and powerful online applications."}),"\n",(0,o.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,o.jsxs)(e.p,{children:["Set ",(0,o.jsx)(e.code,{children:"joomla_enabled: true"})," in your ",(0,o.jsx)(e.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,o.jsxs)(e.p,{children:["If you want to access Joomla externally, set ",(0,o.jsx)(e.code,{children:"joomla_available_externally: true"})," in your ",(0,o.jsx)(e.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,o.jsxs)(e.p,{children:["The Joomla web interface can be found at ",(0,o.jsx)(e.a,{href:"http://ansible_nas_host_or_ip:8181",children:"http://ansible_nas_host_or_ip:8181"}),"."]}),"\n",(0,o.jsx)(e.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,o.jsxs)(e.ul,{children:["\n",(0,o.jsxs)(e.li,{children:["\n",(0,o.jsxs)(e.p,{children:["Set ",(0,o.jsx)(e.code,{children:"joomla_database_password"})," in your ",(0,o.jsx)(e.code,{children:"all.yml"})," before installing Joomla."]}),"\n"]}),"\n",(0,o.jsxs)(e.li,{children:["\n",(0,o.jsx)(e.p,{children:"On first run you'll need to enter database details:"}),"\n",(0,o.jsxs)(e.ul,{children:["\n",(0,o.jsxs)(e.li,{children:["Host: ",(0,o.jsx)(e.code,{children:"mysql"})]}),"\n",(0,o.jsxs)(e.li,{children:["Database: ",(0,o.jsx)(e.code,{children:"joomla"})]}),"\n",(0,o.jsxs)(e.li,{children:["Username: ",(0,o.jsx)(e.code,{children:"root"})]}),"\n",(0,o.jsxs)(e.li,{children:["Password: whatever you set for ",(0,o.jsx)(e.code,{children:"joomla_database_password"}),"."]}),"\n"]}),"\n"]}),"\n"]})]})}function m(n={}){const{wrapper:e}={...(0,a.a)(),...n.components};return e?(0,o.jsx)(e,{...n,children:(0,o.jsx)(d,{...n})}):d(n)}},1151:(n,e,t)=>{t.d(e,{Z:()=>l,a:()=>s});var o=t(7294);const a={},i=o.createContext(a);function s(n){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function l(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(a):n.components||a:s(n.components),o.createElement(i.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.37da1ba7.js b/assets/js/a6aa9e1f.37da1ba7.js new file mode 100644 index 0000000000..fb851d47d4 --- /dev/null +++ b/assets/js/a6aa9e1f.37da1ba7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[3089],{46:(e,t,a)=>{a.r(t),a.d(t,{default:()=>m});a(7294);var n=a(512),s=a(2263),i=a(1944),r=a(5281),l=a(1460),o=a(9703),g=a(197),d=a(9985),p=a(5893);function c(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,s.Z)(),{blogDescription:n,blogTitle:r,permalink:l}=t,o="/"===l?a:r;return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(i.d,{title:o,description:n}),(0,p.jsx)(g.Z,{tag:"blog_posts_list"})]})}function b(e){const{metadata:t,items:a,sidebar:n}=e;return(0,p.jsxs)(l.Z,{sidebar:n,children:[(0,p.jsx)(d.Z,{items:a}),(0,p.jsx)(o.Z,{metadata:t})]})}function m(e){return(0,p.jsxs)(i.FG,{className:(0,n.Z)(r.k.wrapper.blogPages,r.k.page.blogListPage),children:[(0,p.jsx)(c,{...e}),(0,p.jsx)(b,{...e})]})}},9703:(e,t,a)=>{a.d(t,{Z:()=>r});a(7294);var n=a(5999),s=a(2244),i=a(5893);function r(e){const{metadata:t}=e,{previousPage:a,nextPage:r}=t;return(0,i.jsxs)("nav",{className:"pagination-nav","aria-label":(0,n.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"}),children:[a&&(0,i.jsx)(s.Z,{permalink:a,title:(0,i.jsx)(n.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)",children:"Newer Entries"})}),r&&(0,i.jsx)(s.Z,{permalink:r,title:(0,i.jsx)(n.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)",children:"Older Entries"}),isNext:!0})]})}},9985:(e,t,a)=>{a.d(t,{Z:()=>r});a(7294);var n=a(9460),s=a(390),i=a(5893);function r(e){let{items:t,component:a=s.Z}=e;return(0,i.jsx)(i.Fragment,{children:t.map((e=>{let{content:t}=e;return(0,i.jsx)(n.n,{content:t,children:(0,i.jsx)(a,{children:(0,i.jsx)(t,{})})},t.metadata.permalink)}))})}}}]); \ No newline at end of file diff --git a/assets/js/a6f41b68.db85cd16.js b/assets/js/a6f41b68.db85cd16.js new file mode 100644 index 0000000000..ba61ee72b9 --- /dev/null +++ b/assets/js/a6f41b68.db85cd16.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1479],{6262:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>r,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var s=a(5893),t=a(1151);const i={title:"Logging"},o=void 0,l={id:"applications/stacks/logging",title:"Logging",description:"The logging stack sets up a fully functional application logging capture and search service based on Loki, viewable via Grafana.",source:"@site/docs/applications/stacks/logging.md",sourceDirName:"applications/stacks",slug:"/applications/stacks/logging",permalink:"/docs/applications/stacks/logging",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/stacks/logging.md",tags:[],version:"current",frontMatter:{title:"Logging"},sidebar:"tutorialSidebar",previous:{title:"Stacks",permalink:"/docs/category/stacks"},next:{title:"System Tools",permalink:"/docs/category/system-tools"}},r={},c=[];function d(e){const n={a:"a",code:"code",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["The logging stack sets up a fully functional application logging capture and search service based on ",(0,s.jsx)(n.a,{href:"https://grafana.com/oss/loki/",children:"Loki"}),", viewable via Grafana."]}),"\n",(0,s.jsxs)(n.p,{children:["To enable it, add the following to your ",(0,s.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"logging_stack_enabled: true\n"})}),"\n",(0,s.jsx)(n.p,{children:"Which is equivalent to:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:"minio_enabled: true\nloki_enabled: true\npromtail_enabled: true\ngrafana_enabled: true\n"})}),"\n",(0,s.jsx)(n.p,{children:"Once set up, all container stdout logs will be captured and stored. You'll find the Loki data source available in Grafana."}),"\n",(0,s.jsx)(n.p,{children:"Read more:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/docs/applications/observability/grafana",children:"Grafana"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/docs/applications/system-tools/loki",children:"Loki"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/docs/applications/system-tools/minio",children:"Minio"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.a,{href:"/docs/applications/system-tools/promtail",children:"Promtail"})}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,n,a)=>{a.d(n,{Z:()=>l,a:()=>o});var s=a(7294);const t={},i=s.createContext(t);function o(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a7023ddc.797d83e0.js b/assets/js/a7023ddc.797d83e0.js new file mode 100644 index 0000000000..5f28fb0b35 --- /dev/null +++ b/assets/js/a7023ddc.797d83e0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1713],{3457:e=>{e.exports=JSON.parse('[{"label":"ansible-nas","permalink":"/blog/tags/ansible-nas","count":1},{"label":"website","permalink":"/blog/tags/website","count":1}]')}}]); \ No newline at end of file diff --git a/assets/js/a7bd4aaa.8daf68bc.js b/assets/js/a7bd4aaa.8daf68bc.js new file mode 100644 index 0000000000..9cc9d4618e --- /dev/null +++ b/assets/js/a7bd4aaa.8daf68bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[8518],{7255:(n,s,e)=>{e.r(s),e.d(s,{default:()=>d});e(7294);var r=e(1944),o=e(3320),t=e(4477),i=e(8790),a=e(197),c=e(5893);function l(n){const{version:s}=n;return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(a.Z,{version:s.version,tag:(0,o.os)(s.pluginId,s.version)}),(0,c.jsx)(r.d,{children:s.noIndex&&(0,c.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function u(n){const{version:s,route:e}=n;return(0,c.jsx)(r.FG,{className:s.className,children:(0,c.jsx)(t.q,{version:s,children:(0,i.H)(e.routes)})})}function d(n){return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(l,{...n}),(0,c.jsx)(u,{...n})]})}}}]); \ No newline at end of file diff --git a/assets/js/a94703ab.dccf4ad0.js b/assets/js/a94703ab.dccf4ad0.js new file mode 100644 index 0000000000..93c8e9d264 --- /dev/null +++ b/assets/js/a94703ab.dccf4ad0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[4368],{2674:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(7294),o=n(512),i=n(1944),s=n(5281),l=n(2802),r=n(1116),c=n(5999),d=n(2466),u=n(5936);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(5893);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.Ct)();return(0,d.RF)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a {e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.Z)("clean-btn",s.k.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(1442),x=n(6550),f=n(7524),j=n(6668),k=n(1327);function _(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const v={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.Z)("button button--secondary button--outline",v.collapseSidebarButton),onClick:t,children:(0,b.jsx)(_,{className:v.collapseSidebarButtonIcon})})}var C=n(9689),S=n(902);const I=Symbol("EmptyContext"),N=a.createContext(I);function T(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(N.Provider,{value:i,children:t})}var B=n(6043),Z=n(8596),A=n(9960),L=n(2389);function y(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.I)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.I)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),type:"button",className:"clean-btn menu__caret",onClick:a})}function w(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.L)(),k=function(e){const t=(0,L.Z)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.LM)(e):void 0),[e,t])}(t),_=(0,l._F)(t,i),v=(0,Z.Mg)(x,i),{collapsed:g,setCollapsed:C}=(0,B.u)({initialState:()=>!!h&&(!_&&t.collapsed)}),{expandedItem:T,setExpandedItem:w}=function(){const e=(0,a.useContext)(N);if(e===I)throw new S.i6("DocSidebarItemsExpandedStateProvider");return e}(),E=function(e){void 0===e&&(e=!g),w(e?null:c),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,S.D9)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:_,collapsed:g,updateCollapsed:E}),(0,a.useEffect)((()=>{h&&null!=T&&T!==c&&f&&C(!0)}),[h,T,c,C,f]),(0,b.jsxs)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemCategory,s.k.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v}),children:[(0,b.jsx)(A.Z,{className:(0,o.Z)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":_}),onClick:h?e=>{n?.(t),x?E(!1):(e.preventDefault(),E())}:()=>{n?.(t)},"aria-current":v?"page":void 0,"aria-expanded":h?!g:void 0,href:h?k??"#":k,...d,children:m}),x&&h&&(0,b.jsx)(y,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),E()}})]}),(0,b.jsx)(B.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(V,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var E=n(3919),H=n(9471);const M={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l._F)(t,a),x=(0,E.Z)(d);return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(A.Z,{className:(0,o.Z)("menu__link",!x&&M.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.Z,{})]})},u)}const W={menuHtmlItem:"menuHtmlItem_M9Kj"};function F(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(n),l&&[W.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function P(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(w,{item:t,...n});case"html":return(0,b.jsx)(F,{item:t,...n});default:return(0,b.jsx)(R,{item:t,...n})}}function D(e){let{items:t,...n}=e;const a=(0,l.f)(t,n.activePath);return(0,b.jsx)(T,{children:a.map(((e,t)=>(0,b.jsx)(P,{item:e,index:t,...n},t)))})}const V=(0,a.memo)(D),U={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function K(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,C.nT)(),[t,n]=(0,a.useState)(e);return(0,d.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.Z)("menu thin-scrollbar",U.menu,l&&U.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:n,activePath:t,level:1})})})}const Y="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",G="sidebarHidden_VK0M",O="sidebarLogo_isFc";function q(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.L)();return(0,b.jsxs)("div",{className:(0,o.Z)(Y,s&&z,i&&G),children:[s&&(0,b.jsx)(k.Z,{tabIndex:-1,className:O}),(0,b.jsx)(K,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const J=a.memo(q);var Q=n(3102),X=n(2961);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,X.e)();return(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(Q.Zo,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.i)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(J,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(_,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){let{children:t}=e;const n=(0,r.V)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.TH)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.n)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.Z)(s.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.Z)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.V)();return(0,b.jsx)("main",{className:(0,o.Z)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.Z)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,r.V)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(5658);function be(e){const t=(0,l.SN)(e);if(!t)return(0,b.jsx)(me.Z,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.FG,{className:(0,o.Z)(s.k.page.docsDocPage),children:(0,b.jsx)(r.b,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}},5658:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var a=n(512),o=n(5999),i=n(2503),s=n(5893);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.Z)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.Z,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/assets/js/a970095a.22fbfaff.js b/assets/js/a970095a.22fbfaff.js new file mode 100644 index 0000000000..10b3ec597f --- /dev/null +++ b/assets/js/a970095a.22fbfaff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9038],{1102:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>l,toc:()=>u});var n=i(5893),a=i(1151);const s={title:"Tautulli"},o=void 0,l={id:"applications/media-serving/tautulli",title:"Tautulli",description:"Homepage//tautulli.com/",source:"@site/docs/applications/media-serving/tautulli.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/tautulli",permalink:"/docs/applications/media-serving/tautulli",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/tautulli.md",tags:[],version:"current",frontMatter:{title:"Tautulli"},sidebar:"tutorialSidebar",previous:{title:"Romm",permalink:"/docs/applications/media-serving/romm"},next:{title:"Ubooquity",permalink:"/docs/applications/media-serving/threadfin"}},r={},u=[{value:"Usage",id:"usage",level:2}];function c(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Homepage: ",(0,n.jsx)(t.a,{href:"https://tautulli.com/",children:"https://tautulli.com/"})]}),"\n",(0,n.jsx)(t.p,{children:"Tautulli allows you to monitor your Plex Media Server."}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"tautulli_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(t.p,{children:["The Tautulli web interface can be found at ",(0,n.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:8181",children:"http://ansible_nas_host_or_ip:8181"}),"."]})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},1151:(e,t,i)=>{i.d(t,{Z:()=>l,a:()=>o});var n=i(7294);const a={},s=n.createContext(a);function o(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ab4454dc.7dce1d3b.js b/assets/js/ab4454dc.7dce1d3b.js new file mode 100644 index 0000000000..f0a3b601df --- /dev/null +++ b/assets/js/ab4454dc.7dce1d3b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9225],{6639:a=>{a.exports=JSON.parse('{"title":"Stacks","description":"Application stacks install a number of different apps together to perform a common goal. There are all of the application stacks available for installation with Ansible-NAS.","slug":"/category/stacks","permalink":"/docs/category/stacks","navigation":{"previous":{"title":"Wallabag","permalink":"/docs/applications/other/wallabag"},"next":{"title":"Logging","permalink":"/docs/applications/stacks/logging"}}}')}}]); \ No newline at end of file diff --git a/assets/js/ad09f174.c67391c8.js b/assets/js/ad09f174.c67391c8.js new file mode 100644 index 0000000000..6aa7cdb490 --- /dev/null +++ b/assets/js/ad09f174.c67391c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1473],{4750:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var o=n(5893),i=n(1151);const a={title:"Hello World"},s=void 0,l={id:"applications/other/hello_world",title:"Hello World",description:"Homepage//www.example.com/",source:"@site/docs/applications/other/hello_world.md",sourceDirName:"applications/other",slug:"/applications/other/hello_world",permalink:"/docs/applications/other/hello_world",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/other/hello_world.md",tags:[],version:"current",frontMatter:{title:"Hello World"},sidebar:"tutorialSidebar",previous:{title:"Guacamole",permalink:"/docs/applications/other/guacamole"},next:{title:"Mealie",permalink:"/docs/applications/other/mealie"}},r={},c=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function p(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:["Homepage: ",(0,o.jsx)(t.a,{href:"https://www.example.com/",children:"https://www.example.com/"})]}),"\n",(0,o.jsx)(t.p,{children:"A few sentences here about what the application does."}),"\n",(0,o.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,o.jsxs)(t.p,{children:["Set ",(0,o.jsx)(t.code,{children:"hello_world_enabled: true"})," in your ",(0,o.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,o.jsxs)(t.p,{children:["The Hello World web interface can be found at ",(0,o.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:9999",children:"http://ansible_nas_host_or_ip:9999"}),"."]}),"\n",(0,o.jsx)(t.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,o.jsx)(t.p,{children:"Detail any information here about user setup steps once Ansible-NAS has started the application."})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(p,{...e})}):p(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>s});var o=n(7294);const i={},a=o.createContext(i);function s(e){const t=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ad99c96a.0d062a5e.js b/assets/js/ad99c96a.0d062a5e.js new file mode 100644 index 0000000000..5448c1808e --- /dev/null +++ b/assets/js/ad99c96a.0d062a5e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[8308],{8297:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>c});var i=t(5893),s=t(1151);const r={sidebar_position:1},o="Development Environment",l={id:"contributing/development-environment",title:"Development Environment",description:"A little setup is required to ensure that you can develop and test Ansible-NAS contributions.",source:"@site/docs/contributing/development-environment.md",sourceDirName:"contributing",slug:"/contributing/development-environment",permalink:"/docs/contributing/development-environment",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/contributing/development-environment.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Contributing",permalink:"/docs/category/contributing"},next:{title:"Add An Application",permalink:"/docs/contributing/add-an-application"}},d={},c=[{value:"Requirements",id:"requirements",level:2},{value:"Setup",id:"setup",level:2},{value:"IDE",id:"ide",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"development-environment",children:"Development Environment"}),"\n",(0,i.jsx)(n.p,{children:"A little setup is required to ensure that you can develop and test Ansible-NAS contributions."}),"\n",(0,i.jsx)(n.h2,{id:"requirements",children:"Requirements"}),"\n",(0,i.jsx)(n.p,{children:"Developing Ansible-NAS features require a few things:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Ansible (see ",(0,i.jsx)(n.a,{href:"https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html",children:"Installing Ansible"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Python 3 (see ",(0,i.jsx)(n.a,{href:"https://docs.python.org/3/using/index.html",children:"Python Setup and Usage"}),")"]}),"\n",(0,i.jsxs)(n.li,{children:["Node (see ",(0,i.jsx)(n.a,{href:"https://nodejs.org/en/download/",children:"Node.js Downloads"}),")"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"setup",children:"Setup"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Ansible requirements - ",(0,i.jsx)(n.code,{children:"ansible-galaxy install -r requirements.yml"})]}),"\n",(0,i.jsxs)(n.li,{children:["Python requirements - ",(0,i.jsx)(n.code,{children:"pip install -r requirements-dev.txt"})]}),"\n",(0,i.jsxs)(n.li,{children:["Node.js requirements - ",(0,i.jsx)(n.code,{children:"pushd website && npm install && popd"})]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"ide",children:"IDE"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Development of Ansible-NAS is carried out in Visual Studio Code."}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>l,a:()=>o});var i=t(7294);const s={},r=i.createContext(s);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/adaff3e8.64f4ce59.js b/assets/js/adaff3e8.64f4ce59.js new file mode 100644 index 0000000000..ff82d2c85e --- /dev/null +++ b/assets/js/adaff3e8.64f4ce59.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[4959],{938:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>r,toc:()=>c});var s=i(5893),o=i(1151);const t={title:"Emby"},a=void 0,r={id:"applications/media-serving/emby",title:"Emby",description:"Homepage//emby.media/",source:"@site/docs/applications/media-serving/emby.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/emby",permalink:"/docs/applications/media-serving/emby",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/emby.md",tags:[],version:"current",frontMatter:{title:"Emby"},sidebar:"tutorialSidebar",previous:{title:"calibre",permalink:"/docs/applications/media-serving/calibre"},next:{title:"Jellyfin",permalink:"/docs/applications/media-serving/jellyfin"}},l={},c=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2},{value:"Naming movies and TV shows",id:"naming-movies-and-tv-shows",level:2}];function d(e){const n={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["Homepage: ",(0,s.jsx)(n.a,{href:"https://emby.media/",children:"https://emby.media/"})]}),"\n",(0,s.jsx)(n.p,{children:"Emby is a mostly open-source media server with a client-server model. This\ninstall for Ansible-NAS provides a server, which various clients can then\nconnect to from platforms such as other computers, smartphones and smart TVs."}),"\n",(0,s.jsxs)(n.p,{children:["Note that ",(0,s.jsx)(n.a,{href:"https://www.plex.tv/",children:"Plex"}),", also included in Ansible-NAS, has a very\nsimilar functionality."]}),"\n",(0,s.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(n.p,{children:["Set ",(0,s.jsx)(n.code,{children:"emby_enabled: true"})," in your ",(0,s.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file. There are further\nparameters you can edit such as ",(0,s.jsx)(n.code,{children:"movies_root"})," and ",(0,s.jsx)(n.code,{children:"tv_root"})," lower down."]}),"\n",(0,s.jsx)(n.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,s.jsxs)(n.p,{children:["The emby web interface can be found at port 8096 (http) or 8920 (https, if\nconfigured) of your NAS. Heimdall has a dedicated icon for emby\nBy default, Ansible-NAS gives emby read/write access to the folders where your\nmovies and TV shows are stored. To change this to read-only, edit the following\nlines in ",(0,s.jsx)(n.code,{children:"all.yml"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-yaml",children:' emby_movies_permissions: "rw"\n emby_tv_permissions: "rw"\n'})}),"\n",(0,s.jsxs)(n.p,{children:["so that they end in ",(0,s.jsx)(n.code,{children:"ro"})," instead of ",(0,s.jsx)(n.code,{children:"rw"}),". Note that emby will not be able to\ndelete files then, which might be exactly what you want. However, you will not\nhave the option to store cover art in the related folders. Always leave the\nconfiguration directory read/write"]}),"\n",(0,s.jsx)(n.h2,{id:"naming-movies-and-tv-shows",children:"Naming movies and TV shows"}),"\n",(0,s.jsxs)(n.p,{children:["Emby is very fussy about how movies and TV shows must be named to enable\nautomatic downloads of cover art and metadata. In short, movie files should\nfollow how movies are listed in the ",(0,s.jsx)(n.a,{href:"https://www.imdb.com/",children:"IMDb"}),", including the\nyear of publication:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-raw",children:" movies/Bride of Frankenstein (1935).mp4\n"})}),"\n",(0,s.jsx)(n.p,{children:'Note the spaces. You should probably remove colons and other special characters\nTV shows require a folder structure with the name of the series - again if\npossible with the year of publication - followed by sub-folders for the\nindividual seasons. For example, the first episode of the first season of\nthe original "Doctor Who" could be stored as:'}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-raw",children:" tv/Doctor Who (1963)/Season 1/Doctor Who - s01e01.mp4\n"})}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.a,{href:"https://www.thetvdb.com/",children:"TVDB"})," is one source for the exact names of TV\nshows."]}),"\n",(0,s.jsxs)(n.p,{children:["Unfortunately, there are number of special cases, especially related to split\nmovies and older series. See the ",(0,s.jsx)(n.a,{href:"https://github.com/MediaBrowser/Wiki/wiki/Movie%20naming",children:"movie\nnaming"})," and ",(0,s.jsx)(n.a,{href:"https://github.com/MediaBrowser/Wiki/wiki/TV-naming",children:"TV\nnaming"})," guides for further\ninformation."]})]})}function h(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>a});var s=i(7294);const o={},t=s.createContext(o);function a(e){const n=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ae3283a5.53792017.js b/assets/js/ae3283a5.53792017.js new file mode 100644 index 0000000000..9f95affe56 --- /dev/null +++ b/assets/js/ae3283a5.53792017.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[720],{8410:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>r,toc:()=>l});var s=t(5893),a=t(1151);const i={title:"Komga"},o=void 0,r={id:"applications/media-serving/komga",title:"Komga",description:"Homepage//komga.org/",source:"@site/docs/applications/media-serving/komga.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/komga",permalink:"/docs/applications/media-serving/komga",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/komga.md",tags:[],version:"current",frontMatter:{title:"Komga"},sidebar:"tutorialSidebar",previous:{title:"Jellyfin",permalink:"/docs/applications/media-serving/jellyfin"},next:{title:"MiniDLNA",permalink:"/docs/applications/media-serving/minidlna"}},c={},l=[{value:"Usage",id:"usage",level:2}];function d(e){const n={a:"a",code:"code",h2:"h2",p:"p",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["Homepage: ",(0,s.jsx)(n.a,{href:"https://komga.org/",children:"https://komga.org/"})]}),"\n",(0,s.jsxs)(n.p,{children:["Docker Image: ",(0,s.jsx)(n.a,{href:"https://hub.docker.com/r/gotson/komga",children:"https://hub.docker.com/r/gotson/komga"})]}),"\n",(0,s.jsx)(n.p,{children:"Komga is a media server for your comics, mangas, BDs and magazines."}),"\n",(0,s.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(n.p,{children:["Set ",(0,s.jsx)(n.code,{children:"komga_enabled: true"})," in your ",(0,s.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,s.jsxs)(n.p,{children:["Access the webui at ",(0,s.jsx)(n.a,{href:"http://ansible_nas_host_or_ip:8088",children:"http://ansible_nas_host_or_ip:8088"})," by default."]})]})}function p(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>o});var s=t(7294);const a={},i=s.createContext(a);function o(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b280f023.1473aa33.js b/assets/js/b280f023.1473aa33.js new file mode 100644 index 0000000000..35de93f487 --- /dev/null +++ b/assets/js/b280f023.1473aa33.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9724],{9114:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var o=a(5893),n=a(1151);const r={title:"Lidarr"},i=void 0,s={id:"applications/download-tools/lidarr",title:"Lidarr",description:"Homepage//lidarr.audio/",source:"@site/docs/applications/download-tools/lidarr.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/lidarr",permalink:"/docs/applications/download-tools/lidarr",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/lidarr.md",tags:[],version:"current",frontMatter:{title:"Lidarr"},sidebar:"tutorialSidebar",previous:{title:"Jackett",permalink:"/docs/applications/download-tools/jackett"},next:{title:"Mylar",permalink:"/docs/applications/download-tools/mylar"}},l={},d=[{value:"Usage",id:"usage",level:2}];function c(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,n.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:["Homepage: ",(0,o.jsx)(t.a,{href:"https://lidarr.audio/",children:"https://lidarr.audio/"})]}),"\n",(0,o.jsx)(t.p,{children:"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."}),"\n",(0,o.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,o.jsxs)(t.p,{children:["Set ",(0,o.jsx)(t.code,{children:"lidarr_enabled: true"})," in your ",(0,o.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]})]})}function p(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},1151:(e,t,a)=>{a.d(t,{Z:()=>s,a:()=>i});var o=a(7294);const n={},r=o.createContext(n);function i(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b2b675dd.2d0c06d2.js b/assets/js/b2b675dd.2d0c06d2.js new file mode 100644 index 0000000000..a465067168 --- /dev/null +++ b/assets/js/b2b675dd.2d0c06d2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[533],{8017:e=>{e.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/b2f554cd.85f1e619.js b/assets/js/b2f554cd.85f1e619.js new file mode 100644 index 0000000000..a01148e185 --- /dev/null +++ b/assets/js/b2f554cd.85f1e619.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1477],{10:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"welcome","metadata":{"permalink":"/blog/welcome","source":"@site/blog/2022-09-19-welcome/index.md","title":"Welcome","description":"It\'s about time Ansible-NAS had a proper website and domain name. This new Docusaurus based site is moving closer to that goal, served from https://ansible-nas.io via Github Pages.","date":"2022-09-19T00:00:00.000Z","formattedDate":"September 19, 2022","tags":[{"label":"ansible-nas","permalink":"/blog/tags/ansible-nas"},{"label":"website","permalink":"/blog/tags/website"}],"readingTime":0.14,"hasTruncateMarker":false,"authors":[{"name":"David Stephens","title":"Maintainer of Ansible-NAS","url":"https://github.com/davestephens","imageURL":"https://github.com/davestephens.png","key":"davestephens"}],"frontMatter":{"slug":"welcome","title":"Welcome","authors":["davestephens"],"tags":["ansible-nas","website"]},"unlisted":false},"content":"It\'s about time Ansible-NAS had a proper website and domain name. This new [Docusaurus](https://docusaurus.io) based site is moving closer to that goal, served from [https://ansible-nas.io](https://ansible-nas.io) via Github Pages."}]}')}}]); \ No newline at end of file diff --git a/assets/js/b37ec2af.24b578b5.js b/assets/js/b37ec2af.24b578b5.js new file mode 100644 index 0000000000..c7186eb36e --- /dev/null +++ b/assets/js/b37ec2af.24b578b5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1084],{1522:(e,i,o)=>{o.r(i),o.d(i,{assets:()=>u,contentTitle:()=>a,default:()=>l,frontMatter:()=>s,metadata:()=>r,toc:()=>c});var t=o(5893),n=o(1151);const s={title:"Ubooquity"},a=void 0,r={id:"applications/media-serving/ubooquity",title:"Ubooquity",description:"Homepage//vaemendis.net/ubooquity/",source:"@site/docs/applications/media-serving/ubooquity.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/ubooquity",permalink:"/docs/applications/media-serving/ubooquity",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/ubooquity.md",tags:[],version:"current",frontMatter:{title:"Ubooquity"},sidebar:"tutorialSidebar",previous:{title:"Ubooquity",permalink:"/docs/applications/media-serving/threadfin"},next:{title:"Monitoring",permalink:"/docs/category/monitoring"}},u={},c=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2},{value:"Admin login",id:"admin-login",level:3}];function d(e){const i={a:"a",code:"code",h2:"h2",h3:"h3",p:"p",...(0,n.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(i.p,{children:["Homepage: ",(0,t.jsx)(i.a,{href:"https://vaemendis.net/ubooquity/",children:"https://vaemendis.net/ubooquity/"})]}),"\n",(0,t.jsxs)(i.p,{children:["Documentation: ",(0,t.jsx)(i.a,{href:"https://vaemendis.github.io/ubooquity-doc/",children:"https://vaemendis.github.io/ubooquity-doc/"})]}),"\n",(0,t.jsxs)(i.p,{children:["Docker Image: ",(0,t.jsx)(i.a,{href:"https://hub.docker.com/r/linuxserver/ubooquity/",children:"https://hub.docker.com/r/linuxserver/ubooquity/"})]}),"\n",(0,t.jsx)(i.p,{children:"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."}),"\n",(0,t.jsx)(i.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsxs)(i.p,{children:["Set ",(0,t.jsx)(i.code,{children:"ubooquity_enabled: true"})," in your ",(0,t.jsx)(i.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,t.jsxs)(i.p,{children:["Access the webui at ",(0,t.jsx)(i.a,{href:"http://ansible_nas_host_or_ip:2202/ubooquity",children:"http://ansible_nas_host_or_ip:2202/ubooquity"})," by default. See specific configuration section below for information on setting up external access."]}),"\n",(0,t.jsx)(i.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,t.jsxs)(i.p,{children:["Important note: if you want to access Ubooquity externally through Traefik (at ubooquity.yourdomain.tld), you need to go to ",(0,t.jsx)(i.a,{href:"http://ansible_nas_host_or_ip:2203/ubooquity/admin",children:"http://ansible_nas_host_or_ip:2203/ubooquity/admin"}),' and set the reverse proxy prefix to blank under "Advanced". Otherwise you will need to append "/ubooquity" to the url in order to access.']}),"\n",(0,t.jsx)(i.h3,{id:"admin-login",children:"Admin login"}),"\n",(0,t.jsx)(i.p,{children:"The admin portal is not exposed through Traefik. You can access the admin portal on port 2203."}),"\n",(0,t.jsxs)(i.p,{children:["Upon your first run, the address is ",(0,t.jsx)(i.a,{href:"http://ansible_nas_host_or_ip:2203/ubooquity/admin",children:"http://ansible_nas_host_or_ip:2203/ubooquity/admin"}),". You will be able to set the admin password here."]})]})}function l(e={}){const{wrapper:i}={...(0,n.a)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},1151:(e,i,o)=>{o.d(i,{Z:()=>r,a:()=>a});var t=o(7294);const n={},s=t.createContext(n);function a(e){const i=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),t.createElement(s.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b710f03f.c229b52b.js b/assets/js/b710f03f.c229b52b.js new file mode 100644 index 0000000000..dbd7821bc5 --- /dev/null +++ b/assets/js/b710f03f.c229b52b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9935],{2128:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var n=t(5893),s=t(1151);const i={title:"Ombi"},a=void 0,r={id:"applications/download-tools/ombi",title:"Ombi",description:"Homepage//ombi.io/",source:"@site/docs/applications/download-tools/ombi.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/ombi",permalink:"/docs/applications/download-tools/ombi",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/ombi.md",tags:[],version:"current",frontMatter:{title:"Ombi"},sidebar:"tutorialSidebar",previous:{title:"NZBGet",permalink:"/docs/applications/download-tools/nzbget"},next:{title:"Overseerr",permalink:"/docs/applications/download-tools/overseerr"}},l={},c=[{value:"Usage",id:"usage",level:2}];function d(e){const o={a:"a",code:"code",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(o.p,{children:["Homepage: ",(0,n.jsx)(o.a,{href:"https://ombi.io/",children:"https://ombi.io/"})]}),"\n",(0,n.jsx)(o.p,{children:"Ombi is a self-hosted web application that automatically gives your shared Plex or Emby users the ability to request content by themselves! Ombi can be linked to multiple TV Show and Movie DVR tools to create a seamless end-to-end experience for your users."}),"\n",(0,n.jsx)(o.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(o.p,{children:["Set ",(0,n.jsx)(o.code,{children:"ombi_enabled: true"})," in your ",(0,n.jsx)(o.code,{children:"inventories/ /group_vars/nas.yml"})," file."]})]})}function p(e={}){const{wrapper:o}={...(0,s.a)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,o,t)=>{t.d(o,{Z:()=>r,a:()=>a});var n=t(7294);const s={},i=n.createContext(s);function a(e){const o=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function r(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),n.createElement(i.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b906a42b.56d83780.js b/assets/js/b906a42b.56d83780.js new file mode 100644 index 0000000000..980d925cfd --- /dev/null +++ b/assets/js/b906a42b.56d83780.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[729],{9886:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>l,frontMatter:()=>o,metadata:()=>a,toc:()=>u});var s=t(5893),r=t(1151);const o={},i="Upgrading",a={id:"upgrading",title:"Upgrading",description:"Upgrading consists of two steps - firstly updating the Ansible-NAS code on your Ansible control node, and then running the playbook against your Ubuntu server.",source:"@site/docs/upgrading.md",sourceDirName:".",slug:"/upgrading",permalink:"/docs/upgrading",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/upgrading.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Support",permalink:"/docs/support"}},c={},u=[];function d(n){const e={code:"code",h1:"h1",p:"p",pre:"pre",...(0,r.a)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.h1,{id:"upgrading",children:"Upgrading"}),"\n",(0,s.jsx)(e.p,{children:"Upgrading consists of two steps - firstly updating the Ansible-NAS code on your Ansible control node, and then running the playbook against your Ubuntu server."}),"\n",(0,s.jsx)(e.p,{children:"Assuming you haven't changed anything except the files in your inventory directory, you can simply run:"}),"\n",(0,s.jsx)(e.pre,{children:(0,s.jsx)(e.code,{className:"language-bash",children:"git pull origin main\n"})}),"\n",(0,s.jsx)(e.p,{children:"...to pull the latest updates from GitHub. If you've changed files outside of the inventory directory, you'll need to fix any merge conflicts."}),"\n",(0,s.jsx)(e.p,{children:"To see the effect of running the latest version of Ansible-NAS against your Ubuntu server, you can run Ansible in check mode first:"}),"\n",(0,s.jsx)(e.pre,{children:(0,s.jsx)(e.code,{className:"language-bash",children:"ansible-playbook -i inventories/my-ansible-nas/inventory nas.yml -b -K -C\n"})}),"\n",(0,s.jsx)(e.p,{children:"Once you're happy, run as normal."})]})}function l(n={}){const{wrapper:e}={...(0,r.a)(),...n.components};return e?(0,s.jsx)(e,{...n,children:(0,s.jsx)(d,{...n})}):d(n)}},1151:(n,e,t)=>{t.d(e,{Z:()=>a,a:()=>i});var s=t(7294);const r={},o=s.createContext(r);function i(n){const e=s.useContext(o);return s.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function a(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:i(n.components),s.createElement(o.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/b9dab9c9.f3f22ce5.js b/assets/js/b9dab9c9.f3f22ce5.js new file mode 100644 index 0000000000..318f5104c6 --- /dev/null +++ b/assets/js/b9dab9c9.f3f22ce5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1472],{5758:i=>{i.exports=JSON.parse('{"title":"Observability","description":"All of the observability tooling available for installation with Ansible-NAS.","slug":"/category/observability","permalink":"/docs/category/observability","navigation":{"previous":{"title":"RSS-Bridge","permalink":"/docs/applications/news/rssbridge"},"next":{"title":"Grafana","permalink":"/docs/applications/observability/grafana"}}}')}}]); \ No newline at end of file diff --git a/assets/js/ba258535.6f8cb0ea.js b/assets/js/ba258535.6f8cb0ea.js new file mode 100644 index 0000000000..3123c040a7 --- /dev/null +++ b/assets/js/ba258535.6f8cb0ea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[5550],{8042:s=>{s.exports=JSON.parse('{"label":"ansible-nas","permalink":"/blog/tags/ansible-nas","allTagsPath":"/blog/tags","count":1,"unlisted":false}')}}]); \ No newline at end of file diff --git a/assets/js/bd782b2c.635c4a8c.js b/assets/js/bd782b2c.635c4a8c.js new file mode 100644 index 0000000000..fda2a32b67 --- /dev/null +++ b/assets/js/bd782b2c.635c4a8c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[2544],{2807:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var n=o(5893),s=o(1151);const i={title:"netboot.xyz"},r=void 0,a={id:"applications/system-tools/netbootxyz",title:"netboot.xyz",description:"Homepage//netboot.xyz/",source:"@site/docs/applications/system-tools/netbootxyz.md",sourceDirName:"applications/system-tools",slug:"/applications/system-tools/netbootxyz",permalink:"/docs/applications/system-tools/netbootxyz",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/system-tools/netbootxyz.md",tags:[],version:"current",frontMatter:{title:"netboot.xyz"},sidebar:"tutorialSidebar",previous:{title:"Minio",permalink:"/docs/applications/system-tools/minio"},next:{title:"Portainer",permalink:"/docs/applications/system-tools/portainer"}},l={},c=[{value:"Usage",id:"usage",level:2}];function p(t){const e={a:"a",code:"code",h2:"h2",p:"p",...(0,s.a)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.p,{children:["Homepage: ",(0,n.jsx)(e.a,{href:"https://netboot.xyz/",children:"https://netboot.xyz/"})]}),"\n",(0,n.jsxs)(e.p,{children:["Docker Container: ",(0,n.jsx)(e.a,{href:"https://hub.docker.com/r/linuxserver/netbootxyz",children:"https://hub.docker.com/r/linuxserver/netbootxyz"})]}),"\n",(0,n.jsxs)(e.p,{children:["netboot.xyz 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. ",(0,n.jsx)(e.a,{href:"https://ipxe.org/",children:"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."]}),"\n",(0,n.jsx)(e.p,{children:"You can remote attach the ISO to servers, set it up as a rescue option in Grub, or even set up your home network to boot to it by default so that it's always available."}),"\n",(0,n.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(e.p,{children:["Set ",(0,n.jsx)(e.code,{children:"netbootxyz_enabled: true"})," in your ",(0,n.jsx)(e.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(e.p,{children:["The netbooxyz web interface can be found at ",(0,n.jsx)(e.a,{href:"http://ansible_nas_host_or_ip:3002",children:"http://ansible_nas_host_or_ip:3002"}),"."]})]})}function h(t={}){const{wrapper:e}={...(0,s.a)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(p,{...t})}):p(t)}},1151:(t,e,o)=>{o.d(e,{Z:()=>a,a:()=>r});var n=o(7294);const s={},i=n.createContext(s);function r(t){const e=n.useContext(i);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:r(t.components),n.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/be539c39.4aae4cc8.js b/assets/js/be539c39.4aae4cc8.js new file mode 100644 index 0000000000..4446f3f4a1 --- /dev/null +++ b/assets/js/be539c39.4aae4cc8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[5207],{9287:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var n=s(5893),o=s(1151);const r={title:"Portainer"},i=void 0,a={id:"applications/system-tools/portainer",title:"Portainer",description:"Homepage//docs.portainer.io/start/install/server/docker",source:"@site/docs/applications/system-tools/portainer.md",sourceDirName:"applications/system-tools",slug:"/applications/system-tools/portainer",permalink:"/docs/applications/system-tools/portainer",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/system-tools/portainer.md",tags:[],version:"current",frontMatter:{title:"Portainer"},sidebar:"tutorialSidebar",previous:{title:"netboot.xyz",permalink:"/docs/applications/system-tools/netbootxyz"},next:{title:"Promtail",permalink:"/docs/applications/system-tools/promtail"}},c={},l=[{value:"Usage",id:"usage",level:2}];function p(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Homepage: ",(0,n.jsx)(t.a,{href:"https://docs.portainer.io/start/install/server/docker",children:"https://docs.portainer.io/start/install/server/docker"})]}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"portainer_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(t.p,{children:["The Portainer web interface can be found at ",(0,n.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:9000",children:"http://ansible_nas_host_or_ip:9000"}),"."]})]})}function d(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>a,a:()=>i});var n=s(7294);const o={},r=n.createContext(o);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c240dca4.8e114138.js b/assets/js/c240dca4.8e114138.js new file mode 100644 index 0000000000..9bfebf18f3 --- /dev/null +++ b/assets/js/c240dca4.8e114138.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9351],{6558:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var n=s(5893),a=s(1151);const o={slug:"welcome",title:"Welcome",authors:["davestephens"],tags:["ansible-nas","website"]},i=void 0,r={permalink:"/blog/welcome",source:"@site/blog/2022-09-19-welcome/index.md",title:"Welcome",description:"It's about time Ansible-NAS had a proper website and domain name. This new Docusaurus based site is moving closer to that goal, served from https://ansible-nas.io via Github Pages.",date:"2022-09-19T00:00:00.000Z",formattedDate:"September 19, 2022",tags:[{label:"ansible-nas",permalink:"/blog/tags/ansible-nas"},{label:"website",permalink:"/blog/tags/website"}],readingTime:.14,hasTruncateMarker:!1,authors:[{name:"David Stephens",title:"Maintainer of Ansible-NAS",url:"https://github.com/davestephens",imageURL:"https://github.com/davestephens.png",key:"davestephens"}],frontMatter:{slug:"welcome",title:"Welcome",authors:["davestephens"],tags:["ansible-nas","website"]},unlisted:!1},l={authorsImageUrls:[void 0]},c=[];function u(e){const t={a:"a",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(t.p,{children:["It's about time Ansible-NAS had a proper website and domain name. This new ",(0,n.jsx)(t.a,{href:"https://docusaurus.io",children:"Docusaurus"})," based site is moving closer to that goal, served from ",(0,n.jsx)(t.a,{href:"https://ansible-nas.io",children:"https://ansible-nas.io"})," via Github Pages."]})}function m(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>r,a:()=>i});var n=s(7294);const a={},o=n.createContext(a);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c377a04b.a33c18b6.js b/assets/js/c377a04b.a33c18b6.js new file mode 100644 index 0000000000..7930fa6189 --- /dev/null +++ b/assets/js/c377a04b.a33c18b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[6971],{9925:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var s=n(5893),o=n(1151);const i={sidebar_position:1},r="Introduction",a={id:"index",title:"Introduction",description:"After getting burned by broken FreeNAS updates one too many times, I figured I could do a much better job myself using just a stock Ubuntu install, some clever Ansible config and a bunch of Docker containers. Ansible-NAS was born!",source:"@site/docs/index.md",sourceDirName:".",slug:"/",permalink:"/docs/",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/index.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Getting Started",permalink:"/docs/category/getting-started"}},c={},d=[{value:"Getting Started",id:"getting-started",level:2}];function l(e){const t={a:"a",h1:"h1",h2:"h2",p:"p",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsx)(t.p,{children:"After getting burned by broken FreeNAS updates one too many times, I figured I could do a much better job myself using just a stock Ubuntu install, some clever Ansible config and a bunch of Docker containers. Ansible-NAS was born!"}),"\n",(0,s.jsx)(t.h2,{id:"getting-started",children:"Getting Started"}),"\n",(0,s.jsxs)(t.p,{children:["Head to the ",(0,s.jsx)(t.a,{href:"/docs/getting-started/installation",children:"installation"})," guide to get started. Once you're done, check out how to ",(0,s.jsx)(t.a,{href:"/docs/getting-started/enabling-applications",children:"enable applications"}),", as well as how to enable ",(0,s.jsx)(t.a,{href:"/docs/getting-started/external-access",children:"external access"})]})]})}function u(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(7294);const o={},i=s.createContext(o);function r(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.8cc4e2ad.js b/assets/js/c4f5d8e4.8cc4e2ad.js new file mode 100644 index 0000000000..d06e7bdf2f --- /dev/null +++ b/assets/js/c4f5d8e4.8cc4e2ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[4195],{9722:(e,a,t)=>{t.d(a,{Z:()=>c});var l,r=t(7294);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a {let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1088,height:687.962,viewBox:"0 0 1088 687.962","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Easy to Use"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 12"},r.createElement("g",{"data-name":"Group 11"},r.createElement("path",{"data-name":"Path 83",d:"M961.81 454.442c-5.27 45.15-16.22 81.4-31.25 110.31-20 38.52-54.21 54.04-84.77 70.28a193.275 193.275 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657.282 657.282 0 0 0-104.09-13.16q-14.97-.675-29.97-.67c-15.42.02-293.07 5.29-360.67-131.57-16.69-33.76-28.13-75-32.24-125.27-11.63-142.12 52.29-235.46 134.74-296.47 155.97-115.41 369.76-110.57 523.43 7.88 102.36 78.9 198.2 198.31 179.02 362.74Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 84",d:"M930.56 564.752c-20 38.52-47.21 64.04-77.77 80.28a193.272 193.272 0 0 1-27.46 11.94c-55.61 19.3-117.85 14.18-166.74 3.99a657.3 657.3 0 0 0-104.09-13.16q-14.97-.675-29.97-.67-23.13.03-46.25 1.72c-100.17 7.36-253.82-6.43-321.42-143.29L326 177.962l62.95 161.619 20.09 51.59 55.37-75.98L493 275.962l130.2 149.27 36.8-81.27 254.78 207.919 14.21 11.59Z",fill:"#f2f2f2"}),r.createElement("path",{"data-name":"Path 85",d:"m302 282.962 26-57 36 83-31-60Z",opacity:.1}),r.createElement("path",{"data-name":"Path 86",d:"M554.5 647.802q-14.97-.675-29.97-.67l-115.49-255.96Z",opacity:.1}),r.createElement("path",{"data-name":"Path 87",d:"M464.411 315.191 493 292.962l130 150-132-128Z",opacity:.1}),r.createElement("path",{"data-name":"Path 88",d:"M852.79 645.032a193.265 193.265 0 0 1-27.46 11.94L623.2 425.232Z",opacity:.1}),r.createElement("circle",{"data-name":"Ellipse 11",cx:3,cy:3,r:3,transform:"translate(479 98.962)",fill:"#f2f2f2"}),r.createElement("circle",{"data-name":"Ellipse 12",cx:3,cy:3,r:3,transform:"translate(396 201.962)",fill:"#f2f2f2"}),r.createElement("circle",{"data-name":"Ellipse 13",cx:2,cy:2,r:2,transform:"translate(600 220.962)",fill:"#f2f2f2"}),r.createElement("circle",{"data-name":"Ellipse 14",cx:2,cy:2,r:2,transform:"translate(180 265.962)",fill:"#f2f2f2"}),r.createElement("circle",{"data-name":"Ellipse 15",cx:2,cy:2,r:2,transform:"translate(612 96.962)",fill:"#f2f2f2"}),r.createElement("circle",{"data-name":"Ellipse 16",cx:2,cy:2,r:2,transform:"translate(736 192.962)",fill:"#f2f2f2"}),r.createElement("circle",{"data-name":"Ellipse 17",cx:2,cy:2,r:2,transform:"translate(858 344.962)",fill:"#f2f2f2"}),r.createElement("path",{"data-name":"Path 89",d:"M306 121.222h-2.76v-2.76h-1.48v2.76H299v1.478h2.76v2.759h1.48V122.7H306Z",fill:"#f2f2f2"}),r.createElement("path",{"data-name":"Path 90",d:"M848 424.222h-2.76v-2.76h-1.48v2.76H841v1.478h2.76v2.759h1.48V425.7H848Z",fill:"#f2f2f2"}),r.createElement("path",{"data-name":"Path 91",d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 92",d:"M1088 613.962c0 16.569-243.557 74-544 74s-544-57.431-544-74 243.557 14 544 14 544-30.568 544-14Z",opacity:.1}),r.createElement("ellipse",{"data-name":"Ellipse 18",cx:544,cy:30,rx:544,ry:30,transform:"translate(0 583.962)",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 93",d:"M568 571.962c0 33.137-14.775 24-33 24s-33 9.137-33-24 33-96 33-96 33 62.863 33 96Z",fill:"#ff6584"}),r.createElement("path",{"data-name":"Path 94",d:"M550 584.641c0 15.062-6.716 10.909-15 10.909s-15 4.153-15-10.909 15-43.636 15-43.636 15 28.576 15 43.636Z",opacity:.1}),r.createElement("rect",{"data-name":"Rectangle 97",width:92,height:18,rx:9,transform:"translate(489 604.962)",fill:"#2f2e41"}),r.createElement("rect",{"data-name":"Rectangle 98",width:92,height:18,rx:9,transform:"translate(489 586.962)",fill:"#2f2e41"}),r.createElement("path",{"data-name":"Path 95",d:"M137 490.528c0 55.343 34.719 100.126 77.626 100.126",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 96",d:"M214.626 590.654c0-55.965 38.745-101.251 86.626-101.251",fill:"#6c63ff"}),r.createElement("path",{"data-name":"Path 97",d:"M165.125 495.545c0 52.57 22.14 95.109 49.5 95.109",fill:"#6c63ff"}),r.createElement("path",{"data-name":"Path 98",d:"M214.626 590.654c0-71.511 44.783-129.377 100.126-129.377",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 99",d:"M198.3 591.36s11.009-.339 14.326-2.7 16.934-5.183 17.757-1.395 16.544 18.844 4.115 18.945-28.879-1.936-32.19-3.953-4.008-10.897-4.008-10.897Z",fill:"#a8a8a8"}),r.createElement("path",{"data-name":"Path 100",d:"M234.716 604.89c-12.429.1-28.879-1.936-32.19-3.953-2.522-1.536-3.527-7.048-3.863-9.591l-.368.014s.7 8.879 4.009 10.9 19.761 4.053 32.19 3.953c3.588-.029 4.827-1.305 4.759-3.2-.498 1.142-1.867 1.855-4.537 1.877Z",opacity:.2}),r.createElement("path",{"data-name":"Path 101",d:"M721.429 527.062c0 38.029 23.857 68.8 53.341 68.8",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 102",d:"M774.769 595.863c0-38.456 26.623-69.575 59.525-69.575",fill:"#6c63ff"}),r.createElement("path",{"data-name":"Path 103",d:"M740.755 530.509c0 36.124 15.213 65.354 34.014 65.354",fill:"#6c63ff"}),r.createElement("path",{"data-name":"Path 104",d:"M774.769 595.863c0-49.139 30.773-88.9 68.8-88.9",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 105",d:"M763.548 596.348s7.565-.233 9.844-1.856 11.636-3.562 12.2-.958 11.368 12.949 2.828 13.018-19.844-1.33-22.119-2.716-2.753-7.488-2.753-7.488Z",fill:"#a8a8a8"}),r.createElement("path",{"data-name":"Path 106",d:"M788.574 605.645c-8.54.069-19.844-1.33-22.119-2.716-1.733-1.056-2.423-4.843-2.654-6.59l-.253.01s.479 6.1 2.755 7.487 13.579 2.785 22.119 2.716c2.465-.02 3.317-.9 3.27-2.2-.343.788-1.283 1.278-3.118 1.293Z",opacity:.2}),r.createElement("path",{"data-name":"Path 107",d:"M893.813 618.699s11.36-1.729 14.5-4.591 16.89-7.488 18.217-3.667 19.494 17.447 6.633 19.107-30.153 1.609-33.835-.065-5.515-10.784-5.515-10.784Z",fill:"#a8a8a8"}),r.createElement("path",{"data-name":"Path 108",d:"M933.228 628.154c-12.86 1.659-30.153 1.609-33.835-.065-2.8-1.275-4.535-6.858-5.2-9.45l-.379.061s1.833 9.109 5.516 10.783 20.975 1.725 33.835.065c3.712-.479 4.836-1.956 4.529-3.906-.375 1.246-1.703 2.156-4.466 2.512Z",opacity:.2}),r.createElement("path",{"data-name":"Path 109",d:"M614.26 617.881s9.587-1.459 12.237-3.875 14.255-6.32 15.374-3.095 16.452 14.725 5.6 16.125-25.448 1.358-28.555-.055-4.656-9.1-4.656-9.1Z",fill:"#a8a8a8"}),r.createElement("path",{"data-name":"Path 110",d:"M647.524 625.856c-10.853 1.4-25.448 1.358-28.555-.055-2.367-1.076-3.827-5.788-4.39-7.976l-.32.051s1.547 7.687 4.655 9.1 17.7 1.456 28.555.055c3.133-.4 4.081-1.651 3.822-3.3-.314 1.057-1.435 1.825-3.767 2.125Z",opacity:.2}),r.createElement("path",{"data-name":"Path 111",d:"M122.389 613.09s7.463-1.136 9.527-3.016 11.1-4.92 11.969-2.409 12.808 11.463 4.358 12.553-19.811 1.057-22.23-.043-3.624-7.085-3.624-7.085Z",fill:"#a8a8a8"}),r.createElement("path",{"data-name":"Path 112",d:"M148.285 619.302c-8.449 1.09-19.811 1.057-22.23-.043-1.842-.838-2.979-4.506-3.417-6.209l-.249.04s1.2 5.984 3.624 7.085 13.781 1.133 22.23.043c2.439-.315 3.177-1.285 2.976-2.566-.246.818-1.119 1.416-2.934 1.65Z",opacity:.2}),r.createElement("path",{"data-name":"Path 113",d:"M383.7 601.318c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.118-36.793 93.694-36.793 93.08 6.573 93.08 36.793Z",opacity:.1}),r.createElement("path",{"data-name":"Path 114",d:"M383.7 593.881c0 30.22-42.124 20.873-93.7 20.873s-93.074 9.347-93.074-20.873 42.114-36.8 93.69-36.8 93.084 6.576 93.084 36.8Z",fill:"#3f3d56"})),r.createElement("path",{"data-name":"Path 40",d:"M360.175 475.732h91.791v37.153h-91.791Z",fill:"#fff",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 41",d:"M277.126 597.026a21.828 21.828 0 0 1-18.908-10.927 21.829 21.829 0 0 0 18.908 32.782h21.855v-21.855Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 42",d:"m375.451 481.607 76.514-4.782v-10.928a21.854 21.854 0 0 0-21.855-21.855h-98.347l-2.732-4.735a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.732-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.732-2.731-4.732a3.154 3.154 0 0 0-5.464 0l-2.732 4.735h-.071l-4.526-4.525a3.153 3.153 0 0 0-5.276 1.414l-1.5 5.577-5.674-1.521a3.154 3.154 0 0 0-3.863 3.864l1.52 5.679-5.575 1.494a3.155 3.155 0 0 0-1.416 5.278l4.526 4.526v.07l-4.735 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.727a3.154 3.154 0 0 0 0 5.464l4.735 2.736-4.735 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.732a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.731a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.735a3.154 3.154 0 0 0 0 5.464l4.732 2.732-4.732 2.728a3.154 3.154 0 0 0 0 5.464l4.732 2.732a21.854 21.854 0 0 0 21.858 21.855h131.13a21.854 21.854 0 0 0 21.855-21.855v-87.42l-76.514-4.782a11.632 11.632 0 0 1 0-23.219",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 43",d:"M408.255 618.882h32.782v-43.71h-32.782Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 44",d:"M462.893 591.563a5.438 5.438 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 45",d:"M419.183 553.317h32.782v-21.855h-32.782Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 46",d:"M462.893 545.121a2.732 2.732 0 1 0 0-5.464 2.811 2.811 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253c.023-.081.042-.164.063-.246a2.814 2.814 0 0 0 .349.035",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 47",d:"M320.836 479.556a2.732 2.732 0 0 1-2.732-2.732 8.2 8.2 0 0 0-16.391 0 2.732 2.732 0 0 1-5.464 0 13.66 13.66 0 0 1 27.319 0 2.732 2.732 0 0 1-2.732 2.732",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 48",d:"M364.546 618.881h65.565a21.854 21.854 0 0 0 21.855-21.855v-76.492h-65.565a21.854 21.854 0 0 0-21.855 21.855Z",fill:"#ffff50",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 49",d:"M435.596 554.41h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0-54.434h-54.681a1.093 1.093 0 1 1 0-2.185h54.681a1.093 1.093 0 0 1 0 2.185m0 21.652h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m0 21.855h-54.681a1.093 1.093 0 1 1 0-2.186h54.681a1.093 1.093 0 0 1 0 2.186m16.369-100.959c-.013 0-.024-.007-.037-.005-3.377.115-4.974 3.492-6.384 6.472-1.471 3.114-2.608 5.139-4.473 5.078-2.064-.074-3.244-2.406-4.494-4.874-1.436-2.835-3.075-6.049-6.516-5.929-3.329.114-4.932 3.053-6.346 5.646-1.5 2.762-2.529 4.442-4.5 4.364-2.106-.076-3.225-1.972-4.52-4.167-1.444-2.443-3.112-5.191-6.487-5.1-3.272.113-4.879 2.606-6.3 4.808-1.5 2.328-2.552 3.746-4.551 3.662-2.156-.076-3.27-1.65-4.558-3.472-1.447-2.047-3.077-4.363-6.442-4.251-3.2.109-4.807 2.153-6.224 3.954-1.346 1.709-2.4 3.062-4.621 2.977a1.094 1.094 0 0 0-.079 2.186c3.3.11 4.967-1.967 6.417-3.81 1.286-1.635 2.4-3.045 4.582-3.12 2.1-.09 3.091 1.218 4.584 3.327 1.417 2 3.026 4.277 6.263 4.394 3.391.114 5.022-2.42 6.467-4.663 1.292-2 2.406-3.734 4.535-3.807 1.959-.073 3.026 1.475 4.529 4.022 1.417 2.4 3.023 5.121 6.324 5.241 3.415.118 5.064-2.863 6.5-5.5 1.245-2.282 2.419-4.437 4.5-4.509 1.959-.046 2.981 1.743 4.492 4.732 1.412 2.79 3.013 5.95 6.365 6.071h.185c3.348 0 4.937-3.36 6.343-6.331 1.245-2.634 2.423-5.114 4.444-5.216Z",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 50",d:"M342.691 618.882h43.71v-43.71h-43.71Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 2188.845 -1120.376)"},r.createElement("rect",{"data-name":"Rectangle 3",width:92.361,height:36.462,rx:2,fill:"#d8d8d8"}),r.createElement("g",{"data-name":"Group 2",transform:"translate(1.531 23.03)",fill:"#4a4a4a"},r.createElement("rect",{"data-name":"Rectangle 4",width:5.336,height:5.336,rx:1,transform:"translate(16.797)"}),r.createElement("rect",{"data-name":"Rectangle 5",width:5.336,height:5.336,rx:1,transform:"translate(23.12)"}),r.createElement("rect",{"data-name":"Rectangle 6",width:5.336,height:5.336,rx:1,transform:"translate(29.444)"}),r.createElement("rect",{"data-name":"Rectangle 7",width:5.336,height:5.336,rx:1,transform:"translate(35.768)"}),r.createElement("rect",{"data-name":"Rectangle 8",width:5.336,height:5.336,rx:1,transform:"translate(42.091)"}),r.createElement("rect",{"data-name":"Rectangle 9",width:5.336,height:5.336,rx:1,transform:"translate(48.415)"}),r.createElement("rect",{"data-name":"Rectangle 10",width:5.336,height:5.336,rx:1,transform:"translate(54.739)"}),r.createElement("rect",{"data-name":"Rectangle 11",width:5.336,height:5.336,rx:1,transform:"translate(61.063)"}),r.createElement("rect",{"data-name":"Rectangle 12",width:5.336,height:5.336,rx:1,transform:"translate(67.386)"}),r.createElement("path",{"data-name":"Path 51",d:"M1.093 0h13.425a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0ZM75 0h13.426a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H75a1.093 1.093 0 0 1-1.093-1.093v-3.15A1.093 1.093 0 0 1 75 0Z",fillRule:"evenodd"})),r.createElement("g",{"data-name":"Group 3",transform:"translate(1.531 10.261)",fill:"#4a4a4a"},r.createElement("path",{"data-name":"Path 52",d:"M1.093 0h5.125A1.093 1.093 0 0 1 7.31 1.093v3.149a1.093 1.093 0 0 1-1.092 1.093H1.093A1.093 1.093 0 0 1 0 4.242V1.093A1.093 1.093 0 0 1 1.093 0Z",fillRule:"evenodd"}),r.createElement("rect",{"data-name":"Rectangle 13",width:5.336,height:5.336,rx:1,transform:"translate(8.299)"}),r.createElement("rect",{"data-name":"Rectangle 14",width:5.336,height:5.336,rx:1,transform:"translate(14.623)"}),r.createElement("rect",{"data-name":"Rectangle 15",width:5.336,height:5.336,rx:1,transform:"translate(20.947)"}),r.createElement("rect",{"data-name":"Rectangle 16",width:5.336,height:5.336,rx:1,transform:"translate(27.271)"}),r.createElement("rect",{"data-name":"Rectangle 17",width:5.336,height:5.336,rx:1,transform:"translate(33.594)"}),r.createElement("rect",{"data-name":"Rectangle 18",width:5.336,height:5.336,rx:1,transform:"translate(39.918)"}),r.createElement("rect",{"data-name":"Rectangle 19",width:5.336,height:5.336,rx:1,transform:"translate(46.242)"}),r.createElement("rect",{"data-name":"Rectangle 20",width:5.336,height:5.336,rx:1,transform:"translate(52.565)"}),r.createElement("rect",{"data-name":"Rectangle 21",width:5.336,height:5.336,rx:1,transform:"translate(58.888)"}),r.createElement("rect",{"data-name":"Rectangle 22",width:5.336,height:5.336,rx:1,transform:"translate(65.212)"}),r.createElement("rect",{"data-name":"Rectangle 23",width:5.336,height:5.336,rx:1,transform:"translate(71.536)"}),r.createElement("rect",{"data-name":"Rectangle 24",width:5.336,height:5.336,rx:1,transform:"translate(77.859)"}),r.createElement("rect",{"data-name":"Rectangle 25",width:5.336,height:5.336,rx:1,transform:"translate(84.183)"})),r.createElement("g",{"data-name":"Group 4",transform:"rotate(180 45.525 4.773)",fill:"#4a4a4a"},r.createElement("path",{"data-name":"Path 53",d:"M1.093 0h5.126a1.093 1.093 0 0 1 1.093 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093H1.093A1.093 1.093 0 0 1 0 4.243v-3.15A1.093 1.093 0 0 1 1.093 0Z",fillRule:"evenodd"}),r.createElement("rect",{"data-name":"Rectangle 26",width:5.336,height:5.336,rx:1,transform:"translate(8.299)"}),r.createElement("rect",{"data-name":"Rectangle 27",width:5.336,height:5.336,rx:1,transform:"translate(14.623)"}),r.createElement("rect",{"data-name":"Rectangle 28",width:5.336,height:5.336,rx:1,transform:"translate(20.947)"}),r.createElement("rect",{"data-name":"Rectangle 29",width:5.336,height:5.336,rx:1,transform:"translate(27.271)"}),r.createElement("rect",{"data-name":"Rectangle 30",width:5.336,height:5.336,rx:1,transform:"translate(33.594)"}),r.createElement("rect",{"data-name":"Rectangle 31",width:5.336,height:5.336,rx:1,transform:"translate(39.918)"}),r.createElement("rect",{"data-name":"Rectangle 32",width:5.336,height:5.336,rx:1,transform:"translate(46.242)"}),r.createElement("rect",{"data-name":"Rectangle 33",width:5.336,height:5.336,rx:1,transform:"translate(52.565)"}),r.createElement("rect",{"data-name":"Rectangle 34",width:5.336,height:5.336,rx:1,transform:"translate(58.889)"}),r.createElement("rect",{"data-name":"Rectangle 35",width:5.336,height:5.336,rx:1,transform:"translate(65.213)"}),r.createElement("rect",{"data-name":"Rectangle 36",width:5.336,height:5.336,rx:1,transform:"translate(71.537)"}),r.createElement("rect",{"data-name":"Rectangle 37",width:5.336,height:5.336,rx:1,transform:"translate(77.86)"}),r.createElement("rect",{"data-name":"Rectangle 38",width:5.336,height:5.336,rx:1,transform:"translate(84.183)"}),r.createElement("rect",{"data-name":"Rectangle 39",width:5.336,height:5.336,rx:1,transform:"translate(8.299)"}),r.createElement("rect",{"data-name":"Rectangle 40",width:5.336,height:5.336,rx:1,transform:"translate(14.623)"}),r.createElement("rect",{"data-name":"Rectangle 41",width:5.336,height:5.336,rx:1,transform:"translate(20.947)"}),r.createElement("rect",{"data-name":"Rectangle 42",width:5.336,height:5.336,rx:1,transform:"translate(27.271)"}),r.createElement("rect",{"data-name":"Rectangle 43",width:5.336,height:5.336,rx:1,transform:"translate(33.594)"}),r.createElement("rect",{"data-name":"Rectangle 44",width:5.336,height:5.336,rx:1,transform:"translate(39.918)"}),r.createElement("rect",{"data-name":"Rectangle 45",width:5.336,height:5.336,rx:1,transform:"translate(46.242)"}),r.createElement("rect",{"data-name":"Rectangle 46",width:5.336,height:5.336,rx:1,transform:"translate(52.565)"}),r.createElement("rect",{"data-name":"Rectangle 47",width:5.336,height:5.336,rx:1,transform:"translate(58.889)"}),r.createElement("rect",{"data-name":"Rectangle 48",width:5.336,height:5.336,rx:1,transform:"translate(65.213)"}),r.createElement("rect",{"data-name":"Rectangle 49",width:5.336,height:5.336,rx:1,transform:"translate(71.537)"}),r.createElement("rect",{"data-name":"Rectangle 50",width:5.336,height:5.336,rx:1,transform:"translate(77.86)"}),r.createElement("rect",{"data-name":"Rectangle 51",width:5.336,height:5.336,rx:1,transform:"translate(84.183)"})),r.createElement("g",{"data-name":"Group 6",fill:"#4a4a4a"},r.createElement("path",{"data-name":"Path 54",d:"M2.624 16.584h7.3a1.093 1.093 0 0 1 1.092 1.093v3.15a1.093 1.093 0 0 1-1.093 1.093h-7.3a1.093 1.093 0 0 1-1.092-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094Z",fillRule:"evenodd"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(12.202 16.584)"},r.createElement("rect",{"data-name":"Rectangle 52",width:5.336,height:5.336,rx:1}),r.createElement("rect",{"data-name":"Rectangle 53",width:5.336,height:5.336,rx:1,transform:"translate(6.324)"}),r.createElement("rect",{"data-name":"Rectangle 54",width:5.336,height:5.336,rx:1,transform:"translate(12.647)"}),r.createElement("rect",{"data-name":"Rectangle 55",width:5.336,height:5.336,rx:1,transform:"translate(18.971)"}),r.createElement("rect",{"data-name":"Rectangle 56",width:5.336,height:5.336,rx:1,transform:"translate(25.295)"}),r.createElement("rect",{"data-name":"Rectangle 57",width:5.336,height:5.336,rx:1,transform:"translate(31.619)"}),r.createElement("rect",{"data-name":"Rectangle 58",width:5.336,height:5.336,rx:1,transform:"translate(37.942)"}),r.createElement("rect",{"data-name":"Rectangle 59",width:5.336,height:5.336,rx:1,transform:"translate(44.265)"}),r.createElement("rect",{"data-name":"Rectangle 60",width:5.336,height:5.336,rx:1,transform:"translate(50.589)"}),r.createElement("rect",{"data-name":"Rectangle 61",width:5.336,height:5.336,rx:1,transform:"translate(56.912)"}),r.createElement("rect",{"data-name":"Rectangle 62",width:5.336,height:5.336,rx:1,transform:"translate(63.236)"})),r.createElement("path",{"data-name":"Path 55",d:"M83.053 16.584h6.906a1.093 1.093 0 0 1 1.091 1.093v3.15a1.093 1.093 0 0 1-1.091 1.093h-6.907a1.093 1.093 0 0 1-1.093-1.093v-3.149a1.093 1.093 0 0 1 1.093-1.094Z",fillRule:"evenodd"})),r.createElement("g",{"data-name":"Group 7",transform:"translate(1.531 29.627)",fill:"#4a4a4a"},r.createElement("rect",{"data-name":"Rectangle 63",width:5.336,height:5.336,rx:1}),r.createElement("rect",{"data-name":"Rectangle 64",width:5.336,height:5.336,rx:1,transform:"translate(6.324)"}),r.createElement("rect",{"data-name":"Rectangle 65",width:5.336,height:5.336,rx:1,transform:"translate(12.647)"}),r.createElement("rect",{"data-name":"Rectangle 66",width:5.336,height:5.336,rx:1,transform:"translate(18.971)"}),r.createElement("path",{"data-name":"Path 56",d:"M26.387 0h30.422a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093H26.387a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 26.387 0Zm33.594 0h3.942a1.093 1.093 0 0 1 1.093 1.093v3.151a1.093 1.093 0 0 1-1.093 1.093h-3.942a1.093 1.093 0 0 1-1.093-1.093V1.093A1.093 1.093 0 0 1 59.981 0Z",fillRule:"evenodd"}),r.createElement("rect",{"data-name":"Rectangle 67",width:5.336,height:5.336,rx:1,transform:"translate(66.003)"}),r.createElement("rect",{"data-name":"Rectangle 68",width:5.336,height:5.336,rx:1,transform:"translate(72.327)"}),r.createElement("rect",{"data-name":"Rectangle 69",width:5.336,height:5.336,rx:1,transform:"translate(84.183)"}),r.createElement("path",{"data-name":"Path 57",d:"M78.254 2.273v-1.18A1.093 1.093 0 0 1 79.347 0h3.15a1.093 1.093 0 0 1 1.093 1.093v1.18Z"}),r.createElement("path",{"data-name":"Path 58",d:"M83.591 3.063v1.18a1.093 1.093 0 0 1-1.093 1.093h-3.15a1.093 1.093 0 0 1-1.093-1.093v-1.18Z"})),r.createElement("rect",{"data-name":"Rectangle 70",width:88.927,height:2.371,rx:1.085,transform:"translate(1.925 1.17)",fill:"#4a4a4a"}),r.createElement("rect",{"data-name":"Rectangle 71",width:4.986,height:1.581,rx:.723,transform:"translate(4.1 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 72",width:4.986,height:1.581,rx:.723,transform:"translate(10.923 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 73",width:4.986,height:1.581,rx:.723,transform:"translate(16.173 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 74",width:4.986,height:1.581,rx:.723,transform:"translate(21.421 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 75",width:4.986,height:1.581,rx:.723,transform:"translate(26.671 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 76",width:4.986,height:1.581,rx:.723,transform:"translate(33.232 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 77",width:4.986,height:1.581,rx:.723,transform:"translate(38.48 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 78",width:4.986,height:1.581,rx:.723,transform:"translate(43.73 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 79",width:4.986,height:1.581,rx:.723,transform:"translate(48.978 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 80",width:4.986,height:1.581,rx:.723,transform:"translate(55.54 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 81",width:4.986,height:1.581,rx:.723,transform:"translate(60.788 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 82",width:4.986,height:1.581,rx:.723,transform:"translate(66.038 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 83",width:4.986,height:1.581,rx:.723,transform:"translate(72.599 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 84",width:4.986,height:1.581,rx:.723,transform:"translate(77.847 1.566)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 85",width:4.986,height:1.581,rx:.723,transform:"translate(83.097 1.566)",fill:"#d8d8d8",opacity:.136})),r.createElement("path",{"data-name":"Path 59",d:"M408.256 591.563a5.439 5.439 0 0 0-.7.07c-.042-.164-.081-.329-.127-.493a5.457 5.457 0 1 0-5.4-9.372q-.181-.185-.366-.367a5.454 5.454 0 1 0-9.384-5.4c-.162-.046-.325-.084-.486-.126a5.467 5.467 0 1 0-10.788 0c-.162.042-.325.08-.486.126a5.457 5.457 0 1 0-9.384 5.4 21.843 21.843 0 1 0 36.421 21.02 5.452 5.452 0 1 0 .7-10.858",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 60",d:"M342.691 553.317h43.71v-21.855h-43.71Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 61",d:"M397.328 545.121a2.732 2.732 0 1 0 0-5.464 2.811 2.811 0 0 0-.349.035c-.022-.082-.04-.164-.063-.246a2.733 2.733 0 0 0-1.052-5.253 2.7 2.7 0 0 0-1.648.566q-.09-.093-.184-.184a2.7 2.7 0 0 0 .553-1.633 2.732 2.732 0 0 0-5.245-1.07 10.928 10.928 0 1 0 0 21.031 2.732 2.732 0 0 0 5.245-1.07 2.7 2.7 0 0 0-.553-1.633q.093-.09.184-.184a2.7 2.7 0 0 0 1.648.566 2.732 2.732 0 0 0 1.052-5.253c.023-.081.042-.164.063-.246a2.811 2.811 0 0 0 .349.035",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 62",d:"M408.256 464.531a2.967 2.967 0 0 1-.535-.055 2.754 2.754 0 0 1-.514-.153 2.838 2.838 0 0 1-.471-.251 4.139 4.139 0 0 1-.415-.339 3.2 3.2 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.517 2.968 2.968 0 0 1 .055-.535 3.152 3.152 0 0 1 .152-.514 2.874 2.874 0 0 1 .252-.47 2.633 2.633 0 0 1 .753-.754 2.837 2.837 0 0 1 .471-.251 2.753 2.753 0 0 1 .514-.153 2.527 2.527 0 0 1 1.071 0 2.654 2.654 0 0 1 .983.4 4.139 4.139 0 0 1 .415.339 4.019 4.019 0 0 1 .339.415 2.786 2.786 0 0 1 .251.47 2.864 2.864 0 0 1 .208 1.049 2.77 2.77 0 0 1-.8 1.934 4.139 4.139 0 0 1-.415.339 2.722 2.722 0 0 1-1.519.459m21.855-1.366a2.789 2.789 0 0 1-1.935-.8 4.162 4.162 0 0 1-.338-.415 2.7 2.7 0 0 1-.459-1.519 2.789 2.789 0 0 1 .8-1.934 4.139 4.139 0 0 1 .415-.339 2.838 2.838 0 0 1 .471-.251 2.752 2.752 0 0 1 .514-.153 2.527 2.527 0 0 1 1.071 0 2.654 2.654 0 0 1 .983.4 4.139 4.139 0 0 1 .415.339 2.79 2.79 0 0 1 .8 1.934 3.069 3.069 0 0 1-.055.535 2.779 2.779 0 0 1-.153.514 3.885 3.885 0 0 1-.251.47 4.02 4.02 0 0 1-.339.415 4.138 4.138 0 0 1-.415.339 2.722 2.722 0 0 1-1.519.459",fillRule:"evenodd"}))))}},8066:(e,a,t)=>{t.d(a,{Z:()=>c});var l,r=t(7294);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var a=1;a {let{title:a,titleId:t,...c}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",width:1041.277,height:554.141,viewBox:"0 0 1041.277 554.141","aria-labelledby":t},c),void 0===a?r.createElement("title",{id:t},"Powered by React"):a?r.createElement("title",{id:t},a):null,l||(l=r.createElement("g",{"data-name":"Group 24"},r.createElement("g",{"data-name":"Group 23",transform:"translate(-.011 -.035)"},r.createElement("path",{"data-name":"Path 299",d:"M961.48 438.21q-1.74 3.75-3.47 7.4-2.7 5.67-5.33 11.12c-.78 1.61-1.56 3.19-2.32 4.77-8.6 17.57-16.63 33.11-23.45 45.89a73.21 73.21 0 0 1-63.81 38.7l-151.65 1.65h-1.6l-13 .14-11.12.12-34.1.37h-1.38l-17.36.19h-.53l-107 1.16-95.51 1-11.11.12-69 .75h-.08l-44.75.48h-.48l-141.5 1.53-42.33.46a87.991 87.991 0 0 1-10.79-.54c-1.22-.14-2.44-.3-3.65-.49a87.38 87.38 0 0 1-51.29-27.54c-18.21-20.03-31.46-43.4-40.36-68.76q-1.93-5.49-3.6-11.12c-30.81-104.15 6.75-238.52 74.35-328.44q4.25-5.64 8.64-11l.07-.08c20.79-25.52 44.1-46.84 68.93-62 44-26.91 92.75-34.49 140.7-11.9 40.57 19.12 78.45 28.11 115.17 30.55 3.71.24 7.42.42 11.11.53 84.23 2.65 163.17-27.7 255.87-47.29 3.69-.78 7.39-1.55 11.12-2.28C763 .54 836.36-6.4 923.6 8.19a189.089 189.089 0 0 1 26.76 6.4q5.77 1.86 11.12 4c41.64 16.94 64.35 48.24 74 87.46q1.37 5.46 2.37 11.11c17.11 94.34-33 228.16-76.37 321.05Z",fill:"#f2f2f2"}),r.createElement("path",{"data-name":"Path 300",d:"M497.02 445.61a95.21 95.21 0 0 1-1.87 11.12h93.7v-11.12Zm-78.25 62.81 11.11-.09v-27.47c-3.81-.17-7.52-.34-11.11-.52Zm-232.92-62.81v11.12h198.5v-11.12Zm849.68-339.52h-74V18.6q-5.35-2.17-11.12-4v91.49H696.87V13.67c-3.73.73-7.43 1.5-11.12 2.28v90.14H429.88V63.24c-3.69-.11-7.4-.29-11.11-.53v43.38H162.9v-62c-24.83 15.16-48.14 36.48-68.93 62h-.07v.08q-4.4 5.4-8.64 11h8.64v328.44h-83q1.66 5.63 3.6 11.12h79.39v93.62a87 87 0 0 0 12.2 2.79c1.21.19 2.43.35 3.65.49a87.991 87.991 0 0 0 10.79.54l42.33-.46v-97h255.91v94.21l11.11-.12v-94.07h255.87v91.36l11.12-.12v-91.24h253.49v4.77c.76-1.58 1.54-3.16 2.32-4.77q2.63-5.45 5.33-11.12 1.73-3.64 3.47-7.4v-321h76.42q-1.01-5.69-2.37-11.12ZM162.9 445.61V117.17h255.87v328.44Zm267 0V117.17h255.85v328.44Zm520.48 0H696.87V117.17h253.49Z",opacity:.1}),r.createElement("path",{"data-name":"Path 301",d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z",fill:"#65617d"}),r.createElement("path",{"data-name":"Path 302",d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l46.65-28 93.6-.78 2-.01.66-.01 2-.03 44.94-.37 2.01-.01.64-.01 2-.01 14.41-.12.38-.01 35.55-.3h.29l277.4-2.34 6.79-.05h.68l5.18-.05 37.65-.31 2-.03 1.85-.02h.96l11.71-.09 2.32-.03 3.11-.02 9.75-.09 15.47-.13 2-.02 3.48-.02h.65l74.71-.64Z",opacity:.2}),r.createElement("path",{"data-name":"Path 303",d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 304",d:"M296.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z",opacity:.1}),r.createElement("path",{"data-name":"Path 305",d:"M298.1 483.66v24.49a6.13 6.13 0 0 1-3.5 5.54 6 6 0 0 1-2.5.6l-34.9.74a6 6 0 0 1-2.7-.57 6.12 6.12 0 0 1-3.57-5.57v-25.23Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Rectangle 137",fill:"#3f3d56",d:"M680.92 483.65h47.17v31.5h-47.17z"}),r.createElement("path",{"data-name":"Rectangle 138",opacity:.1,d:"M680.92 483.65h47.17v31.5h-47.17z"}),r.createElement("path",{"data-name":"Rectangle 139",fill:"#3f3d56",d:"M678.92 483.65h47.17v31.5h-47.17z"}),r.createElement("path",{"data-name":"Path 306",d:"M298.09 483.65v4.97l-47.17 1.26v-6.23Z",opacity:.1}),r.createElement("path",{"data-name":"Path 307",d:"M381.35 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95Z",fill:"#65617d"}),r.createElement("path",{"data-name":"Path 308",d:"M185.85 308.41v181.2h-.05a4 4 0 0 1-3.95-3.95v-173.3a4 4 0 0 1 3.95-3.95Z",opacity:.1}),r.createElement("path",{"data-name":"Path 309",d:"M194.59 319.15h177.5V467.4l-177.5 4Z",fill:"#39374d"}),r.createElement("path",{"data-name":"Path 310",d:"M726.09 483.65v6.41l-47.17-1.26v-5.15Z",opacity:.1}),r.createElement("path",{"data-name":"Path 311",d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95l-191.69-5.1a4 4 0 0 1-3.85-3.95v-168.2a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.99 3.95Z",fill:"#65617d"}),r.createElement("path",{"data-name":"Path 312",d:"M788.35 312.36v173.3a4 4 0 0 1-4 3.95v-181.2a4 4 0 0 1 4 3.95Z",opacity:.1}),r.createElement("path",{"data-name":"Path 313",d:"M775.59 319.15h-177.5V467.4l177.5 4Z",fill:"#39374d"}),r.createElement("path",{"data-name":"Path 314",d:"M583.85 312.36v168.2a4 4 0 0 1-3.85 3.95l-191.65 5.1a4 4 0 0 1-4-3.95v-173.3a4 4 0 0 1 3.95-3.95h191.6a4 4 0 0 1 3.95 3.95Z",fill:"#65617d"}),r.createElement("path",{"data-name":"Path 315",d:"M397.09 319.15h177.5V467.4l-177.5 4Z",fill:"#4267b2"}),r.createElement("path",{"data-name":"Path 316",d:"M863.09 533.65v13l-151.92 1.4-1.62.03-57.74.53-1.38.02-17.55.15h-.52l-106.98.99-175.61 1.63h-.15l-44.65.42-.48.01-198.4 1.82v-15l202.51-1.33h.48l40.99-.28h.19l283.08-1.87h.29l.17-.01h.47l4.79-.03h1.46l74.49-.5 4.4-.02.98-.01Z",opacity:.1}),r.createElement("circle",{"data-name":"Ellipse 111",cx:51.33,cy:51.33,r:51.33,transform:"translate(435.93 246.82)",fill:"#fbbebe"}),r.createElement("path",{"data-name":"Path 317",d:"M538.6 377.16s-99.5 12-90 0c3.44-4.34 4.39-17.2 4.2-31.85-.06-4.45-.22-9.06-.45-13.65-1.1-22-3.75-43.5-3.75-43.5s87-41 77-8.5c-4 13.13-2.69 31.57.35 48.88.89 5.05 1.92 10 3 14.7a344.66 344.66 0 0 0 9.65 33.92Z",fill:"#fbbebe"}),r.createElement("path",{"data-name":"Path 318",d:"M506.13 373.09c11.51-2.13 23.7-6 34.53-1.54 2.85 1.17 5.47 2.88 8.39 3.86s6.12 1.22 9.16 1.91c10.68 2.42 19.34 10.55 24.9 20s8.44 20.14 11.26 30.72l6.9 25.83c6 22.45 12 45.09 13.39 68.3a2437.506 2437.506 0 0 1-250.84 1.43c5.44-10.34 11-21.31 10.54-33s-7.19-23.22-4.76-34.74c1.55-7.34 6.57-13.39 9.64-20.22 8.75-19.52 1.94-45.79 17.32-60.65 6.92-6.68 17-9.21 26.63-8.89 12.28.41 24.85 4.24 37 6.11 15.56 2.36 30.26 3.76 45.94.88Z",fill:"#ff6584"}),r.createElement("path",{"data-name":"Path 319",d:"m637.03 484.26-.1 1.43v.1l-.17 2.3-1.33 18.51-1.61 22.3-.46 6.28-1 13.44v.17l-107 1-175.59 1.9v.84h-.14v-1.12l.45-14.36.86-28.06.74-23.79.07-2.37a10.53 10.53 0 0 1 11.42-10.17c4.72.4 10.85.89 18.18 1.41l3 .22c42.33 2.94 120.56 6.74 199.5 2 1.66-.09 3.33-.19 5-.31 12.24-.77 24.47-1.76 36.58-3a10.53 10.53 0 0 1 11.6 11.23Z",opacity:.1}),r.createElement("path",{"data-name":"Path 320",d:"M349.74 552.53v-.84l175.62-1.91 107-1h.3v-.17l1-13.44.43-6 1.64-22.61 1.29-17.9v-.44a10.617 10.617 0 0 0-.11-2.47.3.3 0 0 0 0-.1 10.391 10.391 0 0 0-2-4.64 10.54 10.54 0 0 0-9.42-4 937.419 937.419 0 0 1-36.58 3c-1.67.12-3.34.22-5 .31-78.94 4.69-157.17.89-199.5-2l-3-.22c-7.33-.52-13.46-1-18.18-1.41a10.54 10.54 0 0 0-11.24 8.53 11 11 0 0 0-.18 1.64l-.68 22.16-.93 28.07-.44 14.36v1.12Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 321",d:"m637.33 491.27-1.23 15.33-1.83 22.85-.46 5.72-1 12.81-.06.64v.17l-.15 1.48.11-1.48h-.29l-107 1-175.65 1.9v-.28l.49-14.36 1-28.06.64-18.65a6.36 6.36 0 0 1 3.06-5.25 6.25 6.25 0 0 1 3.78-.9c2.1.17 4.68.37 7.69.59 4.89.36 10.92.78 17.94 1.22 13 .82 29.31 1.7 48 2.42 52 2 122.2 2.67 188.88-3.17 3-.26 6.1-.55 9.13-.84a6.26 6.26 0 0 1 3.48.66 5.159 5.159 0 0 1 .86.54 6.14 6.14 0 0 1 2 2.46 3.564 3.564 0 0 1 .25.61 6.279 6.279 0 0 1 .36 2.59Z",opacity:.1}),r.createElement("path",{"data-name":"Path 322",d:"M298.1 504.96v3.19a6.13 6.13 0 0 1-3.5 5.54l-40.1.77a6.12 6.12 0 0 1-3.57-5.57v-3Z",opacity:.1}),r.createElement("path",{"data-name":"Path 323",d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 324",d:"m298.59 515.57-52.25 1v-8.67l52.25-1Z",opacity:.1}),r.createElement("path",{"data-name":"Path 325",d:"m300.59 515.57-52.25 1v-8.67l52.25-1Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 326",d:"M679.22 506.96v3.19a6.13 6.13 0 0 0 3.5 5.54l40.1.77a6.12 6.12 0 0 0 3.57-5.57v-3Z",opacity:.1}),r.createElement("path",{"data-name":"Path 327",d:"m678.72 517.57 52.25 1v-8.67l-52.25-1Z",opacity:.1}),r.createElement("path",{"data-name":"Path 328",d:"m676.72 517.57 52.25 1v-8.67l-52.25-1Z",fill:"#3f3d56"}),r.createElement("path",{"data-name":"Path 329",d:"M454.79 313.88c.08 7-3.16 13.6-5.91 20.07a163.491 163.491 0 0 0-12.66 74.71c.73 11 2.58 22 .73 32.9s-8.43 21.77-19 24.9c17.53 10.45 41.26 9.35 57.76-2.66 8.79-6.4 15.34-15.33 21.75-24.11a97.86 97.86 0 0 1-13.31 44.75 103.43 103.43 0 0 0 73.51-40.82c4.31-5.81 8.06-12.19 9.72-19.23 3.09-13-1.22-26.51-4.51-39.5a266.055 266.055 0 0 1-6.17-33c-.43-3.56-.78-7.22.1-10.7 1-4.07 3.67-7.51 5.64-11.22 5.6-10.54 5.73-23.3 2.86-34.88s-8.49-22.26-14.06-32.81c-4.46-8.46-9.3-17.31-17.46-22.28-5.1-3.1-11-4.39-16.88-5.64l-25.37-5.43c-5.55-1.19-11.26-2.38-16.87-1.51-9.47 1.48-16.14 8.32-22 15.34-4.59 5.46-15.81 15.71-16.6 22.86-.72 6.59 5.1 17.63 6.09 24.58 1.3 9 2.22 6 7.3 11.52 3.21 3.42 5.28 7.37 5.34 12.16Z",fill:"#3f3d56"})),r.createElement("path",{"data-name":"Path 40",d:"M280.139 370.832h43.635v17.662h-43.635Z",fill:"#fff",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 41",d:"M240.66 428.493a10.377 10.377 0 0 1-8.989-5.195 10.377 10.377 0 0 0 8.988 15.584h10.391v-10.389Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 42",d:"m287.402 373.625 36.373-2.273v-5.195a10.389 10.389 0 0 0-10.39-10.389h-46.75l-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249-1.3-2.249a1.5 1.5 0 0 0-2.6 0l-1.3 2.249h-.034l-2.152-2.151a1.5 1.5 0 0 0-2.508.672l-.696 2.653-2.7-.723a1.5 1.5 0 0 0-1.836 1.837l.722 2.7-2.65.71a1.5 1.5 0 0 0-.673 2.509l2.152 2.152v.033l-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.25 1.282-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3-2.249 1.3a1.5 1.5 0 0 0 0 2.6l2.249 1.3a10.389 10.389 0 0 0 10.389 10.34h62.335a10.389 10.389 0 0 0 10.39-10.39v-41.557l-36.373-2.273a5.53 5.53 0 0 1 0-11.038",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 43",d:"M302.996 438.882h15.584v-20.779h-15.584Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 44",d:"M328.97 425.895a2.582 2.582 0 0 0-.332.033c-.02-.078-.038-.156-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569c-.077-.022-.154-.04-.231-.06a2.6 2.6 0 1 0-5.128 0c-.077.02-.154.038-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 45",d:"M308.191 407.713h15.584v-10.389h-15.584Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 46",d:"M328.969 403.818a1.3 1.3 0 1 0 0-2.6 1.336 1.336 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.285 1.285 0 0 0-.783.269l-.087-.087a1.285 1.285 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.285 1.285 0 0 0-.263-.776l.087-.087a1.285 1.285 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5c.011-.038.02-.078.03-.117a1.337 1.337 0 0 0 .166.017",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 47",d:"M261.439 372.65a1.3 1.3 0 0 1-1.3-1.3 3.9 3.9 0 0 0-7.792 0 1.3 1.3 0 1 1-2.6 0 6.494 6.494 0 0 1 12.987 0 1.3 1.3 0 0 1-1.3 1.3",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 48",d:"M282.217 438.882h31.168a10.389 10.389 0 0 0 10.389-10.389V392.13h-31.168a10.389 10.389 0 0 0-10.389 10.389Z",fill:"#ffff50",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 49",d:"M315.993 408.233h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0-25.877h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.293h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m0 10.389h-25.994a.52.52 0 1 1 0-1.039h25.994a.52.52 0 0 1 0 1.039m7.782-47.993h-.018c-1.605.055-2.365 1.66-3.035 3.077-.7 1.48-1.24 2.443-2.126 2.414-.981-.035-1.542-1.144-2.137-2.317-.683-1.347-1.462-2.876-3.1-2.819-1.582.054-2.344 1.451-3.017 2.684-.715 1.313-1.2 2.112-2.141 2.075-1-.036-1.533-.938-2.149-1.981-.686-1.162-1.479-2.467-3.084-2.423-1.555.053-2.319 1.239-2.994 2.286-.713 1.106-1.213 1.781-2.164 1.741-1.025-.036-1.554-.784-2.167-1.65-.688-.973-1.463-2.074-3.062-2.021a3.815 3.815 0 0 0-2.959 1.879c-.64.812-1.14 1.456-2.2 1.415a.52.52 0 0 0-.037 1.039 3.588 3.588 0 0 0 3.05-1.811c.611-.777 1.139-1.448 2.178-1.483 1-.043 1.47.579 2.179 1.582.674.953 1.438 2.033 2.977 2.089 1.612.054 2.387-1.151 3.074-2.217.614-.953 1.144-1.775 2.156-1.81.931-.035 1.438.7 2.153 1.912.674 1.141 1.437 2.434 3.006 2.491 1.623.056 2.407-1.361 3.09-2.616.592-1.085 1.15-2.109 2.14-2.143.931-.022 1.417.829 2.135 2.249.671 1.326 1.432 2.828 3.026 2.886h.088c1.592 0 2.347-1.6 3.015-3.01.592-1.252 1.152-2.431 2.113-2.479Z",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 50",d:"M271.828 438.882h20.779v-20.779h-20.779Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("g",{"data-name":"Group 8",transform:"rotate(-14.98 1643.944 -873.93)"},r.createElement("rect",{"data-name":"Rectangle 3",width:43.906,height:17.333,rx:2,fill:"#d8d8d8"}),r.createElement("g",{"data-name":"Group 2",transform:"translate(.728 10.948)",fill:"#4a4a4a"},r.createElement("rect",{"data-name":"Rectangle 4",width:2.537,height:2.537,rx:1,transform:"translate(7.985)"}),r.createElement("rect",{"data-name":"Rectangle 5",width:2.537,height:2.537,rx:1,transform:"translate(10.991)"}),r.createElement("rect",{"data-name":"Rectangle 6",width:2.537,height:2.537,rx:1,transform:"translate(13.997)"}),r.createElement("rect",{"data-name":"Rectangle 7",width:2.537,height:2.537,rx:1,transform:"translate(17.003)"}),r.createElement("rect",{"data-name":"Rectangle 8",width:2.537,height:2.537,rx:1,transform:"translate(20.009)"}),r.createElement("rect",{"data-name":"Rectangle 9",width:2.537,height:2.537,rx:1,transform:"translate(23.015)"}),r.createElement("rect",{"data-name":"Rectangle 10",width:2.537,height:2.537,rx:1,transform:"translate(26.021)"}),r.createElement("rect",{"data-name":"Rectangle 11",width:2.537,height:2.537,rx:1,transform:"translate(29.028)"}),r.createElement("rect",{"data-name":"Rectangle 12",width:2.537,height:2.537,rx:1,transform:"translate(32.034)"}),r.createElement("path",{"data-name":"Path 51",d:"M.519 0H6.9a.519.519 0 0 1 .521.52v1.5a.519.519 0 0 1-.519.519H.519A.519.519 0 0 1 0 2.017V.519A.519.519 0 0 1 .519 0Zm35.134 0h6.383a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519h-6.384a.519.519 0 0 1-.519-.519v-1.5A.519.519 0 0 1 35.652 0Z",fillRule:"evenodd"})),r.createElement("g",{"data-name":"Group 3",transform:"translate(.728 4.878)",fill:"#4a4a4a"},r.createElement("path",{"data-name":"Path 52",d:"M.519 0h2.437a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519H.519A.519.519 0 0 1 0 2.017V.519A.519.519 0 0 1 .519 0Z",fillRule:"evenodd"}),r.createElement("rect",{"data-name":"Rectangle 13",width:2.537,height:2.537,rx:1,transform:"translate(3.945)"}),r.createElement("rect",{"data-name":"Rectangle 14",width:2.537,height:2.537,rx:1,transform:"translate(6.951)"}),r.createElement("rect",{"data-name":"Rectangle 15",width:2.537,height:2.537,rx:1,transform:"translate(9.958)"}),r.createElement("rect",{"data-name":"Rectangle 16",width:2.537,height:2.537,rx:1,transform:"translate(12.964)"}),r.createElement("rect",{"data-name":"Rectangle 17",width:2.537,height:2.537,rx:1,transform:"translate(15.97)"}),r.createElement("rect",{"data-name":"Rectangle 18",width:2.537,height:2.537,rx:1,transform:"translate(18.976)"}),r.createElement("rect",{"data-name":"Rectangle 19",width:2.537,height:2.537,rx:1,transform:"translate(21.982)"}),r.createElement("rect",{"data-name":"Rectangle 20",width:2.537,height:2.537,rx:1,transform:"translate(24.988)"}),r.createElement("rect",{"data-name":"Rectangle 21",width:2.537,height:2.537,rx:1,transform:"translate(27.994)"}),r.createElement("rect",{"data-name":"Rectangle 22",width:2.537,height:2.537,rx:1,transform:"translate(31)"}),r.createElement("rect",{"data-name":"Rectangle 23",width:2.537,height:2.537,rx:1,transform:"translate(34.006)"}),r.createElement("rect",{"data-name":"Rectangle 24",width:2.537,height:2.537,rx:1,transform:"translate(37.012)"}),r.createElement("rect",{"data-name":"Rectangle 25",width:2.537,height:2.537,rx:1,transform:"translate(40.018)"})),r.createElement("g",{"data-name":"Group 4",transform:"rotate(180 21.642 2.269)",fill:"#4a4a4a"},r.createElement("path",{"data-name":"Path 53",d:"M.519 0h2.437a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519H.519A.519.519 0 0 1 0 2.017V.519A.519.519 0 0 1 .519 0Z",fillRule:"evenodd"}),r.createElement("rect",{"data-name":"Rectangle 26",width:2.537,height:2.537,rx:1,transform:"translate(3.945)"}),r.createElement("rect",{"data-name":"Rectangle 27",width:2.537,height:2.537,rx:1,transform:"translate(6.951)"}),r.createElement("rect",{"data-name":"Rectangle 28",width:2.537,height:2.537,rx:1,transform:"translate(9.958)"}),r.createElement("rect",{"data-name":"Rectangle 29",width:2.537,height:2.537,rx:1,transform:"translate(12.964)"}),r.createElement("rect",{"data-name":"Rectangle 30",width:2.537,height:2.537,rx:1,transform:"translate(15.97)"}),r.createElement("rect",{"data-name":"Rectangle 31",width:2.537,height:2.537,rx:1,transform:"translate(18.976)"}),r.createElement("rect",{"data-name":"Rectangle 32",width:2.537,height:2.537,rx:1,transform:"translate(21.982)"}),r.createElement("rect",{"data-name":"Rectangle 33",width:2.537,height:2.537,rx:1,transform:"translate(24.988)"}),r.createElement("rect",{"data-name":"Rectangle 34",width:2.537,height:2.537,rx:1,transform:"translate(27.994)"}),r.createElement("rect",{"data-name":"Rectangle 35",width:2.537,height:2.537,rx:1,transform:"translate(31.001)"}),r.createElement("rect",{"data-name":"Rectangle 36",width:2.537,height:2.537,rx:1,transform:"translate(34.007)"}),r.createElement("rect",{"data-name":"Rectangle 37",width:2.537,height:2.537,rx:1,transform:"translate(37.013)"}),r.createElement("rect",{"data-name":"Rectangle 38",width:2.537,height:2.537,rx:1,transform:"translate(40.018)"}),r.createElement("rect",{"data-name":"Rectangle 39",width:2.537,height:2.537,rx:1,transform:"translate(3.945)"}),r.createElement("rect",{"data-name":"Rectangle 40",width:2.537,height:2.537,rx:1,transform:"translate(6.951)"}),r.createElement("rect",{"data-name":"Rectangle 41",width:2.537,height:2.537,rx:1,transform:"translate(9.958)"}),r.createElement("rect",{"data-name":"Rectangle 42",width:2.537,height:2.537,rx:1,transform:"translate(12.964)"}),r.createElement("rect",{"data-name":"Rectangle 43",width:2.537,height:2.537,rx:1,transform:"translate(15.97)"}),r.createElement("rect",{"data-name":"Rectangle 44",width:2.537,height:2.537,rx:1,transform:"translate(18.976)"}),r.createElement("rect",{"data-name":"Rectangle 45",width:2.537,height:2.537,rx:1,transform:"translate(21.982)"}),r.createElement("rect",{"data-name":"Rectangle 46",width:2.537,height:2.537,rx:1,transform:"translate(24.988)"}),r.createElement("rect",{"data-name":"Rectangle 47",width:2.537,height:2.537,rx:1,transform:"translate(27.994)"}),r.createElement("rect",{"data-name":"Rectangle 48",width:2.537,height:2.537,rx:1,transform:"translate(31.001)"}),r.createElement("rect",{"data-name":"Rectangle 49",width:2.537,height:2.537,rx:1,transform:"translate(34.007)"}),r.createElement("rect",{"data-name":"Rectangle 50",width:2.537,height:2.537,rx:1,transform:"translate(37.013)"}),r.createElement("rect",{"data-name":"Rectangle 51",width:2.537,height:2.537,rx:1,transform:"translate(40.018)"})),r.createElement("g",{"data-name":"Group 6",fill:"#4a4a4a"},r.createElement("path",{"data-name":"Path 54",d:"M1.247 7.883h3.47a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519h-3.47A.519.519 0 0 1 .728 9.9V8.403a.519.519 0 0 1 .519-.52Z",fillRule:"evenodd"}),r.createElement("g",{"data-name":"Group 5",transform:"translate(5.801 7.883)"},r.createElement("rect",{"data-name":"Rectangle 52",width:2.537,height:2.537,rx:1}),r.createElement("rect",{"data-name":"Rectangle 53",width:2.537,height:2.537,rx:1,transform:"translate(3.006)"}),r.createElement("rect",{"data-name":"Rectangle 54",width:2.537,height:2.537,rx:1,transform:"translate(6.012)"}),r.createElement("rect",{"data-name":"Rectangle 55",width:2.537,height:2.537,rx:1,transform:"translate(9.018)"}),r.createElement("rect",{"data-name":"Rectangle 56",width:2.537,height:2.537,rx:1,transform:"translate(12.025)"}),r.createElement("rect",{"data-name":"Rectangle 57",width:2.537,height:2.537,rx:1,transform:"translate(15.031)"}),r.createElement("rect",{"data-name":"Rectangle 58",width:2.537,height:2.537,rx:1,transform:"translate(18.037)"}),r.createElement("rect",{"data-name":"Rectangle 59",width:2.537,height:2.537,rx:1,transform:"translate(21.042)"}),r.createElement("rect",{"data-name":"Rectangle 60",width:2.537,height:2.537,rx:1,transform:"translate(24.049)"}),r.createElement("rect",{"data-name":"Rectangle 61",width:2.537,height:2.537,rx:1,transform:"translate(27.055)"}),r.createElement("rect",{"data-name":"Rectangle 62",width:2.537,height:2.537,rx:1,transform:"translate(30.061)"})),r.createElement("path",{"data-name":"Path 55",d:"M39.482 7.883h3.28a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519h-3.281a.519.519 0 0 1-.519-.521V8.403a.519.519 0 0 1 .519-.52Z",fillRule:"evenodd"})),r.createElement("g",{"data-name":"Group 7",transform:"translate(.728 14.084)",fill:"#4a4a4a"},r.createElement("rect",{"data-name":"Rectangle 63",width:2.537,height:2.537,rx:1}),r.createElement("rect",{"data-name":"Rectangle 64",width:2.537,height:2.537,rx:1,transform:"translate(3.006)"}),r.createElement("rect",{"data-name":"Rectangle 65",width:2.537,height:2.537,rx:1,transform:"translate(6.012)"}),r.createElement("rect",{"data-name":"Rectangle 66",width:2.537,height:2.537,rx:1,transform:"translate(9.018)"}),r.createElement("path",{"data-name":"Path 56",d:"M12.543 0h14.462a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519H12.543a.519.519 0 0 1-.519-.52V.519A.519.519 0 0 1 12.543 0Zm15.97 0h1.874a.519.519 0 0 1 .519.519v1.5a.519.519 0 0 1-.519.519h-1.874a.519.519 0 0 1-.519-.519v-1.5A.519.519 0 0 1 28.513 0Z",fillRule:"evenodd"}),r.createElement("rect",{"data-name":"Rectangle 67",width:2.537,height:2.537,rx:1,transform:"translate(31.376)"}),r.createElement("rect",{"data-name":"Rectangle 68",width:2.537,height:2.537,rx:1,transform:"translate(34.382)"}),r.createElement("rect",{"data-name":"Rectangle 69",width:2.537,height:2.537,rx:1,transform:"translate(40.018)"}),r.createElement("path",{"data-name":"Path 57",d:"M37.199 1.08V.519A.519.519 0 0 1 37.718 0h1.499a.519.519 0 0 1 .519.519v.561Z"}),r.createElement("path",{"data-name":"Path 58",d:"M39.737 1.456v.561a.519.519 0 0 1-.519.519h-1.499a.519.519 0 0 1-.519-.519v-.561Z"})),r.createElement("rect",{"data-name":"Rectangle 70",width:42.273,height:1.127,rx:.564,transform:"translate(.915 .556)",fill:"#4a4a4a"}),r.createElement("rect",{"data-name":"Rectangle 71",width:2.37,height:.752,rx:.376,transform:"translate(1.949 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 72",width:2.37,height:.752,rx:.376,transform:"translate(5.193 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 73",width:2.37,height:.752,rx:.376,transform:"translate(7.688 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 74",width:2.37,height:.752,rx:.376,transform:"translate(10.183 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 75",width:2.37,height:.752,rx:.376,transform:"translate(12.679 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 76",width:2.37,height:.752,rx:.376,transform:"translate(15.797 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 77",width:2.37,height:.752,rx:.376,transform:"translate(18.292 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 78",width:2.37,height:.752,rx:.376,transform:"translate(20.788 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 79",width:2.37,height:.752,rx:.376,transform:"translate(23.283 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 80",width:2.37,height:.752,rx:.376,transform:"translate(26.402 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 81",width:2.37,height:.752,rx:.376,transform:"translate(28.897 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 82",width:2.37,height:.752,rx:.376,transform:"translate(31.393 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 83",width:2.37,height:.752,rx:.376,transform:"translate(34.512 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 84",width:2.37,height:.752,rx:.376,transform:"translate(37.007 .744)",fill:"#d8d8d8",opacity:.136}),r.createElement("rect",{"data-name":"Rectangle 85",width:2.37,height:.752,rx:.376,transform:"translate(39.502 .744)",fill:"#d8d8d8",opacity:.136})),r.createElement("path",{"data-name":"Path 59",d:"M302.996 425.895a2.583 2.583 0 0 0-.332.033c-.02-.078-.038-.156-.06-.234a2.594 2.594 0 1 0-2.567-4.455q-.086-.088-.174-.175a2.593 2.593 0 1 0-4.461-2.569c-.077-.022-.154-.04-.231-.06a2.6 2.6 0 1 0-5.128 0c-.077.02-.154.038-.231.06a2.594 2.594 0 1 0-4.461 2.569 10.384 10.384 0 1 0 17.314 9.992 2.592 2.592 0 1 0 .332-5.161",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 60",d:"M271.828 407.713h20.779v-10.389h-20.779Z",fill:"#3ecc5f",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 61",d:"M297.801 403.818a1.3 1.3 0 1 0 0-2.6 1.338 1.338 0 0 0-.166.017l-.03-.117a1.3 1.3 0 0 0-.5-2.5 1.285 1.285 0 0 0-.783.269l-.087-.087a1.285 1.285 0 0 0 .263-.776 1.3 1.3 0 0 0-2.493-.509 5.195 5.195 0 1 0 0 10 1.3 1.3 0 0 0 2.493-.509 1.285 1.285 0 0 0-.263-.776l.087-.087a1.285 1.285 0 0 0 .783.269 1.3 1.3 0 0 0 .5-2.5c.011-.038.02-.078.03-.117a1.335 1.335 0 0 0 .166.017",fill:"#44d860",fillRule:"evenodd"}),r.createElement("path",{"data-name":"Path 62",d:"M302.997 365.507a1.41 1.41 0 0 1-.255-.026 1.309 1.309 0 0 1-.244-.073 1.349 1.349 0 0 1-.224-.119 1.967 1.967 0 0 1-.2-.161 1.52 1.52 0 0 1-.161-.2 1.282 1.282 0 0 1-.218-.722 1.41 1.41 0 0 1 .026-.255 1.5 1.5 0 0 1 .072-.244 1.364 1.364 0 0 1 .12-.223 1.252 1.252 0 0 1 .358-.358 1.349 1.349 0 0 1 .224-.119 1.309 1.309 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.262 1.262 0 0 1 .468.192 1.968 1.968 0 0 1 .2.161 1.908 1.908 0 0 1 .161.2 1.322 1.322 0 0 1 .12.223 1.361 1.361 0 0 1 .1.5 1.317 1.317 0 0 1-.379.919 1.968 1.968 0 0 1-.2.161 1.346 1.346 0 0 1-.223.119 1.332 1.332 0 0 1-.5.1m10.389-.649a1.326 1.326 0 0 1-.92-.379 1.979 1.979 0 0 1-.161-.2 1.282 1.282 0 0 1-.218-.722 1.326 1.326 0 0 1 .379-.919 1.967 1.967 0 0 1 .2-.161 1.351 1.351 0 0 1 .224-.119 1.308 1.308 0 0 1 .244-.073 1.2 1.2 0 0 1 .509 0 1.262 1.262 0 0 1 .468.192 1.967 1.967 0 0 1 .2.161 1.326 1.326 0 0 1 .379.919 1.461 1.461 0 0 1-.026.255 1.323 1.323 0 0 1-.073.244 1.847 1.847 0 0 1-.119.223 1.911 1.911 0 0 1-.161.2 1.967 1.967 0 0 1-.2.161 1.294 1.294 0 0 1-.722.218",fillRule:"evenodd"}),r.createElement("g",{transform:"translate(466.3 278.56)",fill:"#61dafb"},r.createElement("path",{"data-name":"Path 330",d:"M263.668 117.179c0-5.827-7.3-11.35-18.487-14.775 2.582-11.4 1.434-20.477-3.622-23.382a7.861 7.861 0 0 0-4.016-1v4a4.152 4.152 0 0 1 2.044.466c2.439 1.4 3.5 6.724 2.672 13.574-.2 1.685-.52 3.461-.914 5.272a86.9 86.9 0 0 0-11.386-1.954 87.469 87.469 0 0 0-7.459-8.965c5.845-5.433 11.332-8.41 15.062-8.41V78c-4.931 0-11.386 3.514-17.913 9.611-6.527-6.061-12.982-9.539-17.913-9.539v4c3.712 0 9.216 2.959 15.062 8.356a84.687 84.687 0 0 0-7.405 8.947 83.732 83.732 0 0 0-11.4 1.972 54.136 54.136 0 0 1-.932-5.2c-.843-6.85.2-12.175 2.618-13.592a3.991 3.991 0 0 1 2.062-.466v-4a8 8 0 0 0-4.052 1c-5.039 2.9-6.168 11.96-3.568 23.328-11.153 3.443-18.415 8.947-18.415 14.757 0 5.828 7.3 11.35 18.487 14.775-2.582 11.4-1.434 20.477 3.622 23.382a7.882 7.882 0 0 0 4.034 1c4.931 0 11.386-3.514 17.913-9.611 6.527 6.061 12.982 9.539 17.913 9.539a8 8 0 0 0 4.052-1c5.039-2.9 6.168-11.96 3.568-23.328 11.111-3.42 18.373-8.943 18.373-14.752Zm-23.346-11.96a80.235 80.235 0 0 1-2.421 7.083 83.185 83.185 0 0 0-2.349-4.3 96.877 96.877 0 0 0-2.582-4.2c2.547.377 5.004.843 7.353 1.417Zm-8.212 19.1c-1.4 2.421-2.833 4.716-4.321 6.85a93.313 93.313 0 0 1-8.1.359c-2.708 0-5.415-.126-8.069-.341q-2.232-3.2-4.339-6.814-2.044-3.523-3.73-7.136a94.058 94.058 0 0 1 3.712-7.154c1.4-2.421 2.833-4.716 4.321-6.85a93.313 93.313 0 0 1 8.1-.359c2.708 0 5.415.126 8.069.341q2.232 3.2 4.339 6.814 2.044 3.523 3.73 7.136a101.198 101.198 0 0 1-3.712 7.15Zm5.792-2.331a76.525 76.525 0 0 1 2.474 7.136 80.22 80.22 0 0 1-7.387 1.434c.879-1.381 1.757-2.8 2.582-4.25a96.22 96.22 0 0 0 2.329-4.324Zm-18.182 19.128a73.921 73.921 0 0 1-4.985-5.738c1.614.072 3.263.126 4.931.126 1.685 0 3.353-.036 4.985-.126a69.993 69.993 0 0 1-4.931 5.738Zm-13.34-10.561c-2.546-.377-5-.843-7.352-1.417a80.235 80.235 0 0 1 2.421-7.083c.735 1.434 1.506 2.869 2.349 4.3s1.702 2.837 2.582 4.2Zm13.25-37.314a73.924 73.924 0 0 1 4.985 5.738 110.567 110.567 0 0 0-4.931-.126c-1.686 0-3.353.036-4.985.126a69.993 69.993 0 0 1 4.931-5.738ZM206.362 103.8a100.567 100.567 0 0 0-4.913 8.55 76.525 76.525 0 0 1-2.474-7.136 90.158 90.158 0 0 1 7.387-1.414Zm-16.227 22.449c-6.348-2.708-10.454-6.258-10.454-9.073s4.106-6.383 10.454-9.073c1.542-.663 3.228-1.255 4.967-1.811a86.122 86.122 0 0 0 4.034 10.92 84.9 84.9 0 0 0-3.981 10.866 53.804 53.804 0 0 1-5.021-1.826Zm9.647 25.623c-2.439-1.4-3.5-6.724-2.672-13.574.2-1.686.52-3.461.914-5.272a86.9 86.9 0 0 0 11.386 1.954 87.465 87.465 0 0 0 7.459 8.965c-5.845 5.433-11.332 8.41-15.062 8.41a4.279 4.279 0 0 1-2.026-.48Zm42.532-13.663c.843 6.85-.2 12.175-2.618 13.592a3.99 3.99 0 0 1-2.062.466c-3.712 0-9.216-2.959-15.062-8.356a84.689 84.689 0 0 0 7.405-8.947 83.731 83.731 0 0 0 11.4-1.972 50.194 50.194 0 0 1 .936 5.22Zm6.9-11.96c-1.542.663-3.228 1.255-4.967 1.811a86.12 86.12 0 0 0-4.034-10.92 84.9 84.9 0 0 0 3.981-10.866 56.777 56.777 0 0 1 5.039 1.829c6.348 2.708 10.454 6.258 10.454 9.073-.017 2.818-4.123 6.386-10.471 9.076Z"}),r.createElement("path",{"data-name":"Path 331",d:"M201.718 78.072Z"}),r.createElement("circle",{"data-name":"Ellipse 112",cx:8.194,cy:8.194,r:8.194,transform:"translate(211.472 108.984)"}),r.createElement("path",{"data-name":"Path 332",d:"M237.525 78.018Z"})))))}},4002:(e,a,t)=>{t.d(a,{Z:()=>k});var l,r,n,c,h,d,m,i,f,s,o,g,E,p,v,x,R,w,Z,M,u,P,y,b,A,j,q,V,H,G,O,N,_,S,B,F,z=t(7294);function C(){return C=Object.assign?Object.assign.bind():function(e){for(var a=1;a {let{title:a,titleId:t,...k}=e;return z.createElement("svg",C({xmlns:"http://www.w3.org/2000/svg",width:1129,height:663,viewBox:"0 0 1129 663","aria-labelledby":t},k),void 0===a?z.createElement("title",{id:t},"Focus on What Matters"):a?z.createElement("title",{id:t},a):null,l||(l=z.createElement("circle",{cx:321,cy:321,r:321,fill:"#f2f2f2"})),r||(r=z.createElement("ellipse",{cx:559,cy:635.5,rx:514,ry:27.5,fill:"#3f3d56"})),n||(n=z.createElement("ellipse",{cx:558,cy:627,rx:460,ry:22,opacity:.2})),c||(c=z.createElement("path",{fill:"#3f3d56",d:"M131 152.5h840v50H131z"})),h||(h=z.createElement("path",{d:"M131 608.83a21.67 21.67 0 0 0 21.67 21.67h796.66A21.67 21.67 0 0 0 971 608.83V177.5H131ZM949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67Z",fill:"#3f3d56"})),d||(d=z.createElement("path",{d:"M949.33 117.5H152.67A21.67 21.67 0 0 0 131 139.17v38.33h840v-38.33a21.67 21.67 0 0 0-21.67-21.67Z",opacity:.2})),m||(m=z.createElement("circle",{cx:181,cy:147.5,r:13,fill:"#3f3d56"})),i||(i=z.createElement("circle",{cx:217,cy:147.5,r:13,fill:"#3f3d56"})),f||(f=z.createElement("circle",{cx:253,cy:147.5,r:13,fill:"#3f3d56"})),s||(s=z.createElement("rect",{x:168,y:213.5,width:337,height:386,rx:5.335,fill:"#606060"})),o||(o=z.createElement("rect",{x:603,y:272.5,width:284,height:22,rx:5.476,fill:"#2e8555"})),g||(g=z.createElement("rect",{x:537,y:352.5,width:416,height:15,rx:5.476,fill:"#2e8555"})),E||(E=z.createElement("rect",{x:537,y:396.5,width:416,height:15,rx:5.476,fill:"#2e8555"})),p||(p=z.createElement("rect",{x:537,y:440.5,width:416,height:15,rx:5.476,fill:"#2e8555"})),v||(v=z.createElement("rect",{x:537,y:484.5,width:416,height:15,rx:5.476,fill:"#2e8555"})),x||(x=z.createElement("rect",{x:865,y:552.5,width:88,height:26,rx:7.028,fill:"#3ecc5f"})),R||(R=z.createElement("path",{d:"M1053.103 506.116a30.114 30.114 0 0 0 3.983-15.266c0-13.797-8.544-24.98-19.083-24.98s-19.082 11.183-19.082 24.98a30.114 30.114 0 0 0 3.983 15.266 31.248 31.248 0 0 0 0 30.532 31.248 31.248 0 0 0 0 30.532 31.248 31.248 0 0 0 0 30.532 30.114 30.114 0 0 0-3.983 15.266c0 13.797 8.543 24.981 19.082 24.981s19.083-11.184 19.083-24.98a30.114 30.114 0 0 0-3.983-15.267 31.248 31.248 0 0 0 0-30.532 31.248 31.248 0 0 0 0-30.532 31.248 31.248 0 0 0 0-30.532Z",fill:"#3f3d56"})),w||(w=z.createElement("ellipse",{cx:1038.003,cy:460.318,rx:19.083,ry:24.981,fill:"#3f3d56"})),Z||(Z=z.createElement("ellipse",{cx:1038.003,cy:429.786,rx:19.083,ry:24.981,fill:"#3f3d56"})),M||(M=z.createElement("path",{d:"M1109.439 220.845a91.61 91.61 0 0 0 7.106-10.461l-50.14-8.235 54.228.403a91.566 91.566 0 0 0 1.746-72.426l-72.755 37.742 67.097-49.321A91.413 91.413 0 1 0 965.75 220.845a91.458 91.458 0 0 0-10.425 16.67l65.087 33.814-69.4-23.292a91.46 91.46 0 0 0 14.738 85.837 91.406 91.406 0 1 0 143.689 0 91.418 91.418 0 0 0 0-113.03Z",fill:"#3ecc5f",fillRule:"evenodd"})),u||(u=z.createElement("path",{d:"M946.188 277.36a91.013 91.013 0 0 0 19.562 56.514 91.406 91.406 0 1 0 143.689 0c12.25-15.553-163.25-66.774-163.25-56.515Z",opacity:.1})),P||(P=z.createElement("path",{d:"M330.12 342.936h111.474v45.12H330.12Z",fill:"#fff",fillRule:"evenodd"})),y||(y=z.createElement("path",{d:"M229.263 490.241a26.51 26.51 0 0 1-22.963-13.27 26.51 26.51 0 0 0 22.963 39.812h26.541V490.24Z",fill:"#3ecc5f",fillRule:"evenodd"})),b||(b=z.createElement("path",{d:"m348.672 350.07 92.922-5.807v-13.27a26.54 26.54 0 0 0-26.541-26.542H295.616l-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746-3.317-5.746a3.83 3.83 0 0 0-6.636 0l-3.317 5.746-3.318-5.746a3.83 3.83 0 0 0-6.635 0l-3.318 5.746c-.03 0-.056.004-.086.004l-5.497-5.495a3.83 3.83 0 0 0-6.407 1.717l-1.817 6.773-6.89-1.847a3.83 3.83 0 0 0-4.691 4.693l1.844 6.891-6.77 1.814a3.832 3.832 0 0 0-1.72 6.41l5.497 5.497c0 .028-.004.055-.004.085l-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318-5.747 3.317a3.83 3.83 0 0 0 0 6.636l5.747 3.317-5.747 3.318a3.83 3.83 0 0 0 0 6.635l5.747 3.318a26.54 26.54 0 0 0 26.541 26.542h159.249a26.54 26.54 0 0 0 26.541-26.542V384.075l-92.922-5.807a14.126 14.126 0 0 1 0-28.197",fill:"#3ecc5f",fillRule:"evenodd"})),A||(A=z.createElement("path",{d:"M388.511 516.783h39.812V463.7h-39.812Z",fill:"#3ecc5f",fillRule:"evenodd"})),j||(j=z.createElement("path",{d:"M454.865 483.606a6.602 6.602 0 0 0-.848.085c-.05-.2-.099-.4-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.445-.446a6.624 6.624 0 1 0-11.397-6.564c-.196-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.101 0c-.197.05-.394.097-.59.152a6.628 6.628 0 1 0-11.398 6.564 26.528 26.528 0 1 0 44.232 25.528 6.621 6.621 0 1 0 .848-13.186",fill:"#44d860",fillRule:"evenodd"})),q||(q=z.createElement("path",{d:"M401.782 437.158h39.812v-26.541h-39.812Z",fill:"#3ecc5f",fillRule:"evenodd"})),V||(V=z.createElement("path",{d:"M454.865 427.205a3.318 3.318 0 0 0 0-6.635 3.411 3.411 0 0 0-.424.042c-.026-.1-.049-.199-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.282 3.282 0 0 0-2 .688q-.11-.113-.224-.223a3.282 3.282 0 0 0 .672-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.282 3.282 0 0 0-.672-1.982q.114-.11.223-.223a3.282 3.282 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3.413 3.413 0 0 0 .424.042",fill:"#44d860",fillRule:"evenodd"})),H||(H=z.createElement("path",{d:"M282.345 347.581a3.318 3.318 0 0 1-3.317-3.318 9.953 9.953 0 1 0-19.906 0 3.318 3.318 0 1 1-6.636 0 16.588 16.588 0 1 1 33.177 0 3.318 3.318 0 0 1-3.318 3.318",fillRule:"evenodd"})),G||(G=z.createElement("path",{d:"M335.428 516.783h79.625a26.54 26.54 0 0 0 26.541-26.542v-92.895H361.97a26.54 26.54 0 0 0-26.542 26.542Z",fill:"#ffff50",fillRule:"evenodd"})),O||(O=z.createElement("path",{d:"M421.714 438.485h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.541h-66.406a1.327 1.327 0 1 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0-66.106h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m0 26.294h-66.406a1.327 1.327 0 0 1 0-2.654h66.406a1.327 1.327 0 0 1 0 2.654m0 26.542h-66.406a1.327 1.327 0 0 1 0-2.655h66.406a1.327 1.327 0 0 1 0 2.655m19.88-122.607c-.016 0-.03-.008-.045-.007-4.1.14-6.04 4.241-7.753 7.86-1.786 3.783-3.168 6.242-5.432 6.167-2.506-.09-3.94-2.922-5.458-5.918-1.744-3.443-3.734-7.347-7.913-7.201-4.042.138-5.99 3.708-7.706 6.857-1.828 3.355-3.071 5.394-5.47 5.3-2.557-.093-3.916-2.395-5.488-5.06-1.753-2.967-3.78-6.304-7.878-6.19-3.973.137-5.925 3.166-7.648 5.84-1.822 2.826-3.098 4.549-5.527 4.447-2.618-.093-3.97-2.004-5.535-4.216-1.757-2.486-3.737-5.3-7.823-5.163-3.886.133-5.838 2.615-7.56 4.802-1.634 2.075-2.91 3.718-5.611 3.615a1.328 1.328 0 1 0-.096 2.654c4.004.134 6.032-2.389 7.793-4.628 1.562-1.985 2.91-3.698 5.564-3.789 2.556-.108 3.754 1.48 5.567 4.041 1.721 2.434 3.675 5.195 7.606 5.337 4.118.138 6.099-2.94 7.853-5.663 1.569-2.434 2.923-4.535 5.508-4.624 2.38-.088 3.674 1.792 5.5 4.885 1.722 2.916 3.671 6.22 7.68 6.365 4.147.143 6.15-3.477 7.895-6.682 1.511-2.77 2.938-5.388 5.466-5.475 2.38-.056 3.62 2.116 5.456 5.746 1.714 3.388 3.658 7.226 7.73 7.373l.224.004c4.066 0 5.996-4.08 7.704-7.689 1.511-3.198 2.942-6.21 5.397-6.334Z",fillRule:"evenodd"})),N||(N=z.createElement("path",{d:"M308.887 516.783h53.083V463.7h-53.083Z",fill:"#3ecc5f",fillRule:"evenodd"})),_||(_=z.createElement("path",{d:"M388.511 483.606a6.602 6.602 0 0 0-.848.085c-.05-.2-.098-.4-.154-.599a6.627 6.627 0 1 0-6.557-11.382q-.22-.225-.444-.446a6.624 6.624 0 1 0-11.397-6.564c-.197-.055-.394-.102-.59-.152a6.64 6.64 0 1 0-13.102 0c-.196.05-.394.097-.59.152a6.628 6.628 0 1 0-11.397 6.564 26.528 26.528 0 1 0 44.231 25.528 6.621 6.621 0 1 0 .848-13.186",fill:"#44d860",fillRule:"evenodd"})),S||(S=z.createElement("path",{d:"M308.887 437.158h53.083v-26.541h-53.083Z",fill:"#3ecc5f",fillRule:"evenodd"})),B||(B=z.createElement("path",{d:"M375.24 427.205a3.318 3.318 0 1 0 0-6.635 3.411 3.411 0 0 0-.423.042c-.026-.1-.05-.199-.077-.298a3.319 3.319 0 0 0-1.278-6.38 3.282 3.282 0 0 0-2.001.688q-.11-.113-.223-.223a3.282 3.282 0 0 0 .671-1.983 3.318 3.318 0 0 0-6.37-1.299 13.27 13.27 0 1 0 0 25.541 3.318 3.318 0 0 0 6.37-1.3 3.282 3.282 0 0 0-.671-1.982q.113-.11.223-.223a3.282 3.282 0 0 0 2.001.688 3.318 3.318 0 0 0 1.278-6.38c.028-.098.05-.199.077-.298a3.413 3.413 0 0 0 .423.042",fill:"#44d860",fillRule:"evenodd"})),F||(F=z.createElement("path",{d:"M388.511 329.334a3.603 3.603 0 0 1-.65-.067 3.344 3.344 0 0 1-.624-.185 3.447 3.447 0 0 1-.572-.306 5.027 5.027 0 0 1-.504-.411 3.887 3.887 0 0 1-.41-.504 3.275 3.275 0 0 1-.558-1.845 3.602 3.602 0 0 1 .067-.65 3.826 3.826 0 0 1 .184-.624 3.489 3.489 0 0 1 .307-.57 3.197 3.197 0 0 1 .914-.916 3.447 3.447 0 0 1 .572-.305 3.344 3.344 0 0 1 .624-.186 3.07 3.07 0 0 1 1.3 0 3.223 3.223 0 0 1 1.195.49 5.028 5.028 0 0 1 .504.412 4.88 4.88 0 0 1 .411.504 3.382 3.382 0 0 1 .306.571 3.478 3.478 0 0 1 .252 1.274 3.364 3.364 0 0 1-.969 2.349 5.027 5.027 0 0 1-.504.411 3.306 3.306 0 0 1-1.845.558m26.542-1.66a3.388 3.388 0 0 1-2.35-.968 5.042 5.042 0 0 1-.41-.504 3.275 3.275 0 0 1-.558-1.845 3.387 3.387 0 0 1 .967-2.349 5.026 5.026 0 0 1 .505-.411 3.447 3.447 0 0 1 .572-.305 3.343 3.343 0 0 1 .623-.186 3.07 3.07 0 0 1 1.3 0 3.224 3.224 0 0 1 1.195.49 5.026 5.026 0 0 1 .504.412 3.388 3.388 0 0 1 .97 2.35 3.726 3.726 0 0 1-.067.65 3.374 3.374 0 0 1-.186.623 4.715 4.715 0 0 1-.305.57 4.88 4.88 0 0 1-.412.505 5.026 5.026 0 0 1-.504.412 3.305 3.305 0 0 1-1.844.557",fillRule:"evenodd"})))}},3261:(e,a,t)=>{t.r(a),t.d(a,{default:()=>o});t(7294);var l=t(512),r=(t(9960),t(2263)),n=t(6040);const c={features:"features_t9lD",featureSvg:"featureSvg_GfXr"};var h=t(5893);const d=[{title:"Over Fifty Applications",Svg:t(9722).Z,description:(0,h.jsx)(h.Fragment,{children:"Easily install over fifty different applications onto your home server."})},{title:"Easily Extensible",Svg:t(4002).Z,description:(0,h.jsx)(h.Fragment,{children:"Simple to extend with more applications by adding a new Ansible role."})},{title:"Powered by Ansible",Svg:t(8066).Z,description:(0,h.jsx)(h.Fragment,{children:"Built from scratch with Ansible."})}];function m(e){let{Svg:a,title:t,description:r}=e;return(0,h.jsxs)("div",{className:(0,l.Z)("col col--4"),children:[(0,h.jsx)("div",{className:"text--center",children:(0,h.jsx)(a,{className:c.featureSvg,role:"img"})}),(0,h.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,h.jsx)("h3",{children:t}),(0,h.jsx)("p",{children:r})]})]})}function i(){return(0,h.jsx)("section",{className:c.features,children:(0,h.jsx)("div",{className:"container",children:(0,h.jsx)("div",{className:"row",children:d.map(((e,a)=>(0,h.jsx)(m,{...e},a)))})})})}const f={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"};function s(){const{siteConfig:e}=(0,r.Z)();return(0,h.jsx)("header",{className:(0,l.Z)("hero hero--primary",f.heroBanner),children:(0,h.jsxs)("div",{className:"container",children:[(0,h.jsx)("h1",{className:"hero__title",children:e.title}),(0,h.jsx)("p",{className:"hero__subtitle",children:e.tagline})]})})}function o(){const{siteConfig:e}=(0,r.Z)();return(0,h.jsxs)(n.Z,{title:"Easy home server setup",description:"Description will go into a meta tag in ",children:[(0,h.jsx)(s,{}),(0,h.jsx)("main",{children:(0,h.jsx)(i,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/c9b8643b.babee1d4.js b/assets/js/c9b8643b.babee1d4.js new file mode 100644 index 0000000000..a68ddd6dd9 --- /dev/null +++ b/assets/js/c9b8643b.babee1d4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[8171],{2275:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var n=o(5893),a=o(1151);const i={title:"YouTubeDL-Material"},r=void 0,s={id:"applications/download-tools/youtubedlmaterial",title:"YouTubeDL-Material",description:"Homepage//github.com/Tzahi12345/YoutubeDL-Material",source:"@site/docs/applications/download-tools/youtubedlmaterial.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/youtubedlmaterial",permalink:"/docs/applications/download-tools/youtubedlmaterial",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/youtubedlmaterial.md",tags:[],version:"current",frontMatter:{title:"YouTubeDL-Material"},sidebar:"tutorialSidebar",previous:{title:"uTorrent",permalink:"/docs/applications/download-tools/utorrent"},next:{title:"Gaming",permalink:"/docs/category/gaming"}},l={},c=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function u(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Homepage: ",(0,n.jsx)(t.a,{href:"https://github.com/Tzahi12345/YoutubeDL-Material",children:"https://github.com/Tzahi12345/YoutubeDL-Material"}),"\nDocker Container: ",(0,n.jsx)(t.a,{href:"https://hub.docker.com/r/tzahi12345/youtubedl-material",children:"https://hub.docker.com/r/tzahi12345/youtubedl-material"})]}),"\n",(0,n.jsx)(t.p,{children:"YoutubeDL-Material is a Material Design frontend for youtube-dl. It's coded using Angular 9 for the frontend, and Node.js on the backend."}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"youtubedlmaterial_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories//group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(t.p,{children:["The YouTubeDL-Material web interface can be found at ",(0,n.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:8998",children:"http://ansible_nas_host_or_ip:8998"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,n.jsxs)(t.p,{children:["A YouTube directory will be created in your configured downloads spot. YouTubeDL-Material downloads will be placed there.\nYou can change the download location via ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]})]})}function d(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(u,{...e})}):u(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>s,a:()=>r});var n=o(7294);const a={},i=n.createContext(a);function r(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cad7e91f.5846652a.js b/assets/js/cad7e91f.5846652a.js new file mode 100644 index 0000000000..9bc3d0a50b --- /dev/null +++ b/assets/js/cad7e91f.5846652a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[8458],{9260:(o,e,a)=>{a.r(e),a.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var n=a(5893),t=a(1151);const r={title:"Bazarr"},i=void 0,s={id:"applications/download-tools/bazarr",title:"Bazarr",description:"Homepage//github.com/morpheus65535/bazarr",source:"@site/docs/applications/download-tools/bazarr.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/bazarr",permalink:"/docs/applications/download-tools/bazarr",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/bazarr.md",tags:[],version:"current",frontMatter:{title:"Bazarr"},sidebar:"tutorialSidebar",previous:{title:"Download Tools",permalink:"/docs/category/download-tools"},next:{title:"Couchpotato",permalink:"/docs/applications/download-tools/couchpotato"}},c={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function d(o){const e={a:"a",code:"code",h2:"h2",p:"p",...(0,t.a)(),...o.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.p,{children:["Homepage: ",(0,n.jsx)(e.a,{href:"https://github.com/morpheus65535/bazarr",children:"https://github.com/morpheus65535/bazarr"})]}),"\n",(0,n.jsx)(e.p,{children:"Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you."}),"\n",(0,n.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(e.p,{children:["Set ",(0,n.jsx)(e.code,{children:"bazarr_enabled: true"})," in your ",(0,n.jsx)(e.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsx)(e.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,n.jsxs)(e.p,{children:["Follow the ",(0,n.jsx)(e.a,{href:"https://github.com/morpheus65535/bazarr/wiki",children:"Wiki"})," for connecting to Sonarr and Radarr."]})]})}function p(o={}){const{wrapper:e}={...(0,t.a)(),...o.components};return e?(0,n.jsx)(e,{...o,children:(0,n.jsx)(d,{...o})}):d(o)}},1151:(o,e,a)=>{a.d(e,{Z:()=>s,a:()=>i});var n=a(7294);const t={},r=n.createContext(t);function i(o){const e=n.useContext(r);return n.useMemo((function(){return"function"==typeof o?o(e):{...e,...o}}),[e,o])}function s(o){let e;return e=o.disableParentContext?"function"==typeof o.components?o.components(t):o.components||t:i(o.components),n.createElement(r.Provider,{value:e},o.children)}}}]); \ No newline at end of file diff --git a/assets/js/ccc49370.d5165793.js b/assets/js/ccc49370.d5165793.js new file mode 100644 index 0000000000..1a40f5fcc9 --- /dev/null +++ b/assets/js/ccc49370.d5165793.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[6103],{5203:(e,n,t)=>{t.r(n),t.d(n,{default:()=>p});t(7294);var a=t(512),i=t(1944),s=t(5281),o=t(9460),l=t(1460),r=t(390),c=t(5999),d=t(2244),u=t(5893);function m(e){const{nextItem:n,prevItem:t}=e;return(0,u.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,c.I)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"}),children:[t&&(0,u.jsx)(d.Z,{...t,subLabel:(0,u.jsx)(c.Z,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post",children:"Newer Post"})}),n&&(0,u.jsx)(d.Z,{...n,subLabel:(0,u.jsx)(c.Z,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post",children:"Older Post"}),isNext:!0})]})}function g(){const{assets:e,metadata:n}=(0,o.C)(),{title:t,description:a,date:s,tags:l,authors:r,frontMatter:c}=n,{keywords:d}=c,m=e.image??c.image;return(0,u.jsxs)(i.d,{title:t,description:a,keywords:d,image:m,children:[(0,u.jsx)("meta",{property:"og:type",content:"article"}),(0,u.jsx)("meta",{property:"article:published_time",content:s}),r.some((e=>e.url))&&(0,u.jsx)("meta",{property:"article:author",content:r.map((e=>e.url)).filter(Boolean).join(",")}),l.length>0&&(0,u.jsx)("meta",{property:"article:tag",content:l.map((e=>e.label)).join(",")})]})}var h=t(9407),f=t(2212);function v(e){let{sidebar:n,children:t}=e;const{metadata:a,toc:i}=(0,o.C)(),{nextItem:s,prevItem:c,frontMatter:d,unlisted:g}=a,{hide_table_of_contents:v,toc_min_heading_level:p,toc_max_heading_level:x}=d;return(0,u.jsxs)(l.Z,{sidebar:n,toc:!v&&i.length>0?(0,u.jsx)(h.Z,{toc:i,minHeadingLevel:p,maxHeadingLevel:x}):void 0,children:[g&&(0,u.jsx)(f.Z,{}),(0,u.jsx)(r.Z,{children:t}),(s||c)&&(0,u.jsx)(m,{nextItem:s,prevItem:c})]})}function p(e){const n=e.content;return(0,u.jsx)(o.n,{content:e.content,isBlogPostPage:!0,children:(0,u.jsxs)(i.FG,{className:(0,a.Z)(s.k.wrapper.blogPages,s.k.page.blogPostPage),children:[(0,u.jsx)(g,{}),(0,u.jsx)(v,{sidebar:e.sidebar,children:(0,u.jsx)(n,{})})]})})}},9407:(e,n,t)=>{t.d(n,{Z:()=>c});t(7294);var a=t(512),i=t(3743);const s={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var o=t(5893);const l="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function c(e){let{className:n,...t}=e;return(0,o.jsx)("div",{className:(0,a.Z)(s.tableOfContents,"thin-scrollbar",n),children:(0,o.jsx)(i.Z,{...t,linkClassName:l,linkActiveClassName:r})})}},3743:(e,n,t)=>{t.d(n,{Z:()=>f});var a=t(7294),i=t(6668);function s(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const a=t.slice(2,e.level);e.parentIndex=Math.max(...a),t[e.level]=n}));const a=[];return n.forEach((e=>{const{parentIndex:t,...i}=e;t>=0?n[t].children.push(i):a.push(i)})),a}function o(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return n.flatMap((e=>{const n=o({toc:e.children,minHeadingLevel:t,maxHeadingLevel:a});return function(e){return e.level>=t&&e.level<=a}(e)?[{...e,children:n}]:n}))}function l(e){const n=e.getBoundingClientRect();return n.top===n.bottom?l(e.parentNode):n}function r(e,n){let{anchorTopOffset:t}=n;const a=e.find((e=>l(e).top>=t));if(a){return function(e){return e.top>0&&e.bottom {e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,a.useRef)(void 0),t=c();(0,a.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:i,minHeadingLevel:s,maxHeadingLevel:o}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),l=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const a=[];for(let i=n;i<=t;i+=1)a.push(`h${i}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:s,maxHeadingLevel:o}),c=r(l,{anchorTopOffset:t.current}),d=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(i),e.classList.add(i),n.current=e):e.classList.remove(i)}(e,e===d)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,t])}var u=t(9960),m=t(5893);function g(e){let{toc:n,className:t,linkClassName:a,isChild:i}=e;return n.length?(0,m.jsx)("ul",{className:i?void 0:t,children:n.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.Z,{to:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(g,{isChild:!0,toc:e.children,className:t,linkClassName:a})]},e.id)))}):null}const h=a.memo(g);function f(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:l="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:c,maxHeadingLevel:u,...g}=e;const f=(0,i.L)(),v=c??f.tableOfContents.minHeadingLevel,p=u??f.tableOfContents.maxHeadingLevel,x=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:i}=e;return(0,a.useMemo)((()=>o({toc:s(n),minHeadingLevel:t,maxHeadingLevel:i})),[n,t,i])}({toc:n,minHeadingLevel:v,maxHeadingLevel:p});return d((0,a.useMemo)((()=>{if(l&&r)return{linkClassName:l,linkActiveClassName:r,minHeadingLevel:v,maxHeadingLevel:p}}),[l,r,v,p])),(0,m.jsx)(h,{toc:x,className:t,linkClassName:l,...g})}},2212:(e,n,t)=>{t.d(n,{Z:()=>g});t(7294);var a=t(512),i=t(5999),s=t(5742),o=t(5893);function l(){return(0,o.jsx)(i.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,o.jsx)(i.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function c(){return(0,o.jsx)(s.Z,{children:(0,o.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(5281),u=t(9047);function m(e){let{className:n}=e;return(0,o.jsx)(u.Z,{type:"caution",title:(0,o.jsx)(l,{}),className:(0,a.Z)(n,d.k.common.unlistedBanner),children:(0,o.jsx)(r,{})})}function g(e){return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(c,{}),(0,o.jsx)(m,{...e})]})}}}]); \ No newline at end of file diff --git a/assets/js/d1de2f22.bac859a3.js b/assets/js/d1de2f22.bac859a3.js new file mode 100644 index 0000000000..8243443dc3 --- /dev/null +++ b/assets/js/d1de2f22.bac859a3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9465],{1065:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>d,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=t(5893),r=t(1151);const i={title:"RSS-Bridge"},a=void 0,o={id:"applications/news/rssbridge",title:"RSS-Bridge",description:"Homepage//rss-bridge.github.io/rss-bridge/",source:"@site/docs/applications/news/rssbridge.md",sourceDirName:"applications/news",slug:"/applications/news/rssbridge",permalink:"/docs/applications/news/rssbridge",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/news/rssbridge.md",tags:[],version:"current",frontMatter:{title:"RSS-Bridge"},sidebar:"tutorialSidebar",previous:{title:"Miniflux",permalink:"/docs/applications/news/miniflux"},next:{title:"Observability",permalink:"/docs/category/observability"}},d={},c=[{value:"Usage",id:"usage",level:2}];function l(e){const s={a:"a",code:"code",h2:"h2",p:"p",...(0,r.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(s.p,{children:["Homepage: ",(0,n.jsx)(s.a,{href:"https://rss-bridge.github.io/rss-bridge/",children:"https://rss-bridge.github.io/rss-bridge/"})]}),"\n",(0,n.jsx)(s.p,{children:"RSS-Bridge is a PHP project capable of generating RSS and Atom feeds for websites that don't have one. It can be used on webservers or as a stand-alone application in CLI mode."}),"\n",(0,n.jsx)(s.p,{children:"Important: RSS-Bridge is not a feed reader or feed aggregator, but a tool to generate feeds that are consumed by feed readers and feed aggregators."}),"\n",(0,n.jsx)(s.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(s.p,{children:["Set ",(0,n.jsx)(s.code,{children:"rssbridge_enabled: true"})," in your ",(0,n.jsx)(s.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(s.p,{children:["The RSS-Bridge web interface can be found at ",(0,n.jsx)(s.a,{href:"http://ansible_nas_host_or_ip:8091",children:"http://ansible_nas_host_or_ip:8091"}),"."]})]})}function p(e={}){const{wrapper:s}={...(0,r.a)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>a});var n=t(7294);const r={},i=n.createContext(r);function a(e){const s=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),n.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d22a62cd.0fa5ce2f.js b/assets/js/d22a62cd.0fa5ce2f.js new file mode 100644 index 0000000000..330d99c466 --- /dev/null +++ b/assets/js/d22a62cd.0fa5ce2f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9741],{4691:a=>{a.exports=JSON.parse('{"title":"Home Automation","description":"All of the home automation applications available for installation with Ansible-NAS.","slug":"/category/home-automation","permalink":"/docs/category/home-automation","navigation":{"previous":{"title":"Valheim Server","permalink":"/docs/applications/gaming/valheim"},"next":{"title":"ESPHome","permalink":"/docs/applications/home-automation/esphome"}}}')}}]); \ No newline at end of file diff --git a/assets/js/d5fa0a96.24a3327a.js b/assets/js/d5fa0a96.24a3327a.js new file mode 100644 index 0000000000..101e62774f --- /dev/null +++ b/assets/js/d5fa0a96.24a3327a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1868],{6972:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var o=n(5893),r=n(1151);const a={title:"Mylar"},s=void 0,l={id:"applications/download-tools/mylar",title:"Mylar",description:"Homepage//github.com/evilhero/mylar",source:"@site/docs/applications/download-tools/mylar.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/mylar",permalink:"/docs/applications/download-tools/mylar",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/mylar.md",tags:[],version:"current",frontMatter:{title:"Mylar"},sidebar:"tutorialSidebar",previous:{title:"Lidarr",permalink:"/docs/applications/download-tools/lidarr"},next:{title:"NZBGet",permalink:"/docs/applications/download-tools/nzbget"}},i={},c=[{value:"Usage",id:"usage",level:2}];function d(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,r.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:["Homepage: ",(0,o.jsx)(t.a,{href:"https://github.com/evilhero/mylar",children:"https://github.com/evilhero/mylar"})]}),"\n",(0,o.jsxs)(t.p,{children:["Docker Container: ",(0,o.jsx)(t.a,{href:"https://hub.docker.com/r/linuxserver/mylar",children:"https://hub.docker.com/r/linuxserver/mylar"})]}),"\n",(0,o.jsx)(t.p,{children:"An automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents"}),"\n",(0,o.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,o.jsxs)(t.p,{children:["Set ",(0,o.jsx)(t.code,{children:"mylar_enabled: true"})," in your ",(0,o.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,o.jsxs)(t.p,{children:["If you want to access Mylar externally, don't forget to set ",(0,o.jsx)(t.code,{children:"mylar_available_externally: true"})," in your ",(0,o.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,o.jsxs)(t.p,{children:["The Mylar web interface can be found at ",(0,o.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:5858",children:"http://ansible_nas_host_or_ip:5858"}),"."]})]})}function p(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>s});var o=n(7294);const r={},a=o.createContext(r);function s(e){const t=o.useContext(a);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),o.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d6642739.8ba5fe7f.js b/assets/js/d6642739.8ba5fe7f.js new file mode 100644 index 0000000000..eea3258ea6 --- /dev/null +++ b/assets/js/d6642739.8ba5fe7f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[674],{5877:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>c,metadata:()=>a,toc:()=>r});var n=i(5893),s=i(1151);const c={title:"Duplicacy"},o=void 0,a={id:"applications/system-tools/duplicacy",title:"Duplicacy",description:"Homepage//duplicacy.com/",source:"@site/docs/applications/system-tools/duplicacy.md",sourceDirName:"applications/system-tools",slug:"/applications/system-tools/duplicacy",permalink:"/docs/applications/system-tools/duplicacy",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/system-tools/duplicacy.md",tags:[],version:"current",frontMatter:{title:"Duplicacy"},sidebar:"tutorialSidebar",previous:{title:"DDNS Updater",permalink:"/docs/applications/system-tools/ddns_updater"},next:{title:"Duplicati",permalink:"/docs/applications/system-tools/duplicati"}},l={},r=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function p(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Homepage: ",(0,n.jsx)(t.a,{href:"https://duplicacy.com/",children:"https://duplicacy.com/"})]}),"\n",(0,n.jsx)(t.p,{children:"Duplicacy is a next-generation, cross-platform, cloud backup tool. Duplicacy backs up your files to many cloud storages with client-side encryption and the highest level of deduplication."}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"duplicacy_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(t.p,{children:["Duplicacy's web interface can be found at ",(0,n.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:3875",children:"http://ansible_nas_host_or_ip:3875"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,n.jsx)(t.p,{children:"The Duplicacy Web UI container has a number of configurations"})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},1151:(e,t,i)=>{i.d(t,{Z:()=>a,a:()=>o});var n=i(7294);const s={},c=n.createContext(s);function o(e){const t=n.useContext(c);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(c.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d9e16301.a21eae35.js b/assets/js/d9e16301.a21eae35.js new file mode 100644 index 0000000000..7a1dd635e3 --- /dev/null +++ b/assets/js/d9e16301.a21eae35.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[6217],{3514:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var n=s(5893),i=s(1151);const r={},o="Support",a={id:"support",title:"Support",description:"Getting support for Ansible-NAS is easy!",source:"@site/docs/support.md",sourceDirName:".",slug:"/support",permalink:"/docs/support",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/support.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Add An Application",permalink:"/docs/contributing/add-an-application"},next:{title:"Upgrading",permalink:"/docs/upgrading"}},p={},u=[{value:"GitHub Issues",id:"github-issues",level:2},{value:"Gitter.im",id:"gitterim",level:2}];function c(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"support",children:"Support"}),"\n",(0,n.jsx)(t.p,{children:"Getting support for Ansible-NAS is easy!"}),"\n",(0,n.jsx)(t.h2,{id:"github-issues",children:"GitHub Issues"}),"\n",(0,n.jsxs)(t.p,{children:["Raise an ",(0,n.jsx)(t.a,{href:"https://github.com/davestephens/ansible-nas/issues",children:"issue"}),", using the supplied template to provide as much information as possible."]}),"\n",(0,n.jsx)(t.h2,{id:"gitterim",children:"Gitter.im"}),"\n",(0,n.jsxs)(t.p,{children:["Ansible-NAS has its own ",(0,n.jsx)(t.a,{href:"https://gitter.im/Ansible-NAS/Chat",children:"Gitter"})," chat room. ",(0,n.jsx)(t.code,{children:"davestephens"})," hangs out there as well as a few existing users. Come say hi!"]})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>a,a:()=>o});var n=s(7294);const i={},r=n.createContext(i);function o(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/dc84a1c4.b6512205.js b/assets/js/dc84a1c4.b6512205.js new file mode 100644 index 0000000000..78bc16183c --- /dev/null +++ b/assets/js/dc84a1c4.b6512205.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1974],{3508:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>r,contentTitle:()=>c,default:()=>u,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var a=o(5893),n=o(1151);const i={title:"Guacamole"},c=void 0,s={id:"applications/other/guacamole",title:"Guacamole",description:"Homepage//guacamole.apache.org/",source:"@site/docs/applications/other/guacamole.md",sourceDirName:"applications/other",slug:"/applications/other/guacamole",permalink:"/docs/applications/other/guacamole",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/other/guacamole.md",tags:[],version:"current",frontMatter:{title:"Guacamole"},sidebar:"tutorialSidebar",previous:{title:"Gotify",permalink:"/docs/applications/other/gotify"},next:{title:"Hello World",permalink:"/docs/applications/other/hello_world"}},r={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2},{value:"What to connect to?",id:"what-to-connect-to",level:2}];function p(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,n.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(t.p,{children:["Homepage: ",(0,a.jsx)(t.a,{href:"https://guacamole.apache.org/",children:"https://guacamole.apache.org/"})]}),"\n",(0,a.jsx)(t.p,{children:"Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH."}),"\n",(0,a.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,a.jsxs)(t.p,{children:["Set ",(0,a.jsx)(t.code,{children:"guacamole_enabled: true"})," in your ",(0,a.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,a.jsx)(t.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,a.jsxs)(t.p,{children:["The default username and password is ",(0,a.jsx)(t.code,{children:"guacadmin"}),". Change it!"]}),"\n",(0,a.jsx)(t.h2,{id:"what-to-connect-to",children:"What to connect to?"}),"\n",(0,a.jsxs)(t.p,{children:["You can run a virtual desktop from your Ansible-NAS box, check out the ",(0,a.jsx)(t.a,{href:"/docs/applications/other/virtual_desktop",children:"Virtual Desktop docs"}),"."]})]})}function u(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(p,{...e})}):p(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>s,a:()=>c});var a=o(7294);const n={},i=a.createContext(n);function c(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),a.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e34a7319.6b680f6a.js b/assets/js/e34a7319.6b680f6a.js new file mode 100644 index 0000000000..f2859dca58 --- /dev/null +++ b/assets/js/e34a7319.6b680f6a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[3955],{2126:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var r=t(5893),o=t(1151);const i={},s="Migrating from FreeNAS",a={id:"further-configuration/migrating-from-freenas",title:"Migrating from FreeNAS",description:"FreeNAS uses ZFS as it's core storage filesystem. ZFS on Linux is supported natively in Ubuntu, so importing FreeNAS zpools is easy.",source:"@site/docs/further-configuration/migrating-from-freenas.md",sourceDirName:"further-configuration",slug:"/further-configuration/migrating-from-freenas",permalink:"/docs/further-configuration/migrating-from-freenas",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/further-configuration/migrating-from-freenas.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Hardware",permalink:"/docs/further-configuration/hardware"},next:{title:"NFS Exports",permalink:"/docs/further-configuration/nfs-exports"}},c={},l=[];function u(e){const n={a:"a",code:"code",h1:"h1",li:"li",ol:"ol",p:"p",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{id:"migrating-from-freenas",children:"Migrating from FreeNAS"}),"\n",(0,r.jsxs)(n.p,{children:["FreeNAS uses ZFS as it's core storage filesystem. ",(0,r.jsx)(n.a,{href:"https://zfsonlinux.org/",children:"ZFS on Linux"})," is supported natively in Ubuntu, so importing FreeNAS zpools is easy."]}),"\n",(0,r.jsx)(n.p,{children:"Once you have an Ubuntu Server installation up and running:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsx)(n.li,{children:"Ensure you have a working backup of your FreeNAS data."}),"\n",(0,r.jsx)(n.li,{children:"Check that the working backup you think you have actually works."}),"\n",(0,r.jsx)(n.li,{children:"Shut down your Ubuntu Server, connect the disks, start it back up."}),"\n",(0,r.jsxs)(n.li,{children:["SSH to the server and run ",(0,r.jsx)(n.code,{children:"zpool list"})," to determine available ZFS pools."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"zpool import "})," against each of the pools you want to attach."]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"chown -R root:root /mnt/ "})," to fix the ownership of the data."]}),"\n",(0,r.jsxs)(n.li,{children:["Update your Ansible-NAS configuration to reflect the paths of the ZFS zpools. You'll likely want to point ",(0,r.jsx)(n.code,{children:"docker_home"})," at your ZFS zpools."]}),"\n"]})]})}function d(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>s});var r=t(7294);const o={},i=r.createContext(o);function s(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),r.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e3e38c7a.4965b562.js b/assets/js/e3e38c7a.4965b562.js new file mode 100644 index 0000000000..87c3b180d2 --- /dev/null +++ b/assets/js/e3e38c7a.4965b562.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1147],{6126:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>r,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>d,toc:()=>l});var t=n(5893),a=n(1151);const s={title:"pyLoad"},i=void 0,d={id:"applications/download-tools/pyload",title:"pyLoad",description:"Homepage//pyload.net/",source:"@site/docs/applications/download-tools/pyload.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/pyload",permalink:"/docs/applications/download-tools/pyload",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/pyload.md",tags:[],version:"current",frontMatter:{title:"pyLoad"},sidebar:"tutorialSidebar",previous:{title:"Prowlarr",permalink:"/docs/applications/download-tools/prowlarr"},next:{title:"Radarr",permalink:"/docs/applications/download-tools/radarr"}},r={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function c(e){const o={a:"a",code:"code",h2:"h2",p:"p",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(o.p,{children:["Homepage: ",(0,t.jsx)(o.a,{href:"https://pyload.net/",children:"https://pyload.net/"})]}),"\n",(0,t.jsx)(o.p,{children:"Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web."}),"\n",(0,t.jsx)(o.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsxs)(o.p,{children:["Set ",(0,t.jsx)(o.code,{children:"pyload_enabled: true"})," in your ",(0,t.jsx)(o.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,t.jsxs)(o.p,{children:["pyLoad's web interface can be found at ",(0,t.jsx)(o.a,{href:"http://ansible_nas_host_or_ip:8000",children:"http://ansible_nas_host_or_ip:8000"}),"."]}),"\n",(0,t.jsx)(o.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,t.jsxs)(o.p,{children:["Default username is ",(0,t.jsx)(o.code,{children:"pyload"})," and default password is ",(0,t.jsx)(o.code,{children:"pyload"}),"\nIn order to add or remove users, you will need to access the container from an interactive shell (can easily be done from portainer, if installed) and enter pyLoad's home directory ",(0,t.jsx)(o.code,{children:"/opt/pyload"})," and using the command ",(0,t.jsx)(o.code,{children:"python pyLoadCore.py -u"})," and follow the on-screen prompts. More commands to configure and customize pyLoad can be found on it's website."]})]})}function p(e={}){const{wrapper:o}={...(0,a.a)(),...e.components};return o?(0,t.jsx)(o,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1151:(e,o,n)=>{n.d(o,{Z:()=>d,a:()=>i});var t=n(7294);const a={},s=t.createContext(a);function i(e){const o=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function d(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),t.createElement(s.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e435e0fa.caa318e3.js b/assets/js/e435e0fa.caa318e3.js new file mode 100644 index 0000000000..b87739c645 --- /dev/null +++ b/assets/js/e435e0fa.caa318e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[5414],{4123:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var n=o(5893),i=o(1151);const r={title:"Octoprint"},a=void 0,s={id:"applications/other/octoprint",title:"Octoprint",description:"Homepage//octoprint.org/",source:"@site/docs/applications/other/octoprint.md",sourceDirName:"applications/other",slug:"/applications/other/octoprint",permalink:"/docs/applications/other/octoprint",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/other/octoprint.md",tags:[],version:"current",frontMatter:{title:"Octoprint"},sidebar:"tutorialSidebar",previous:{title:"Nextcloud",permalink:"/docs/applications/other/nextcloud"},next:{title:"Paperless-ng",permalink:"/docs/applications/other/paperless_ng"}},c={},l=[{value:"Usage",id:"usage",level:2}];function p(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Homepage: ",(0,n.jsx)(t.a,{href:"https://octoprint.org/",children:"https://octoprint.org/"})]}),"\n",(0,n.jsx)(t.p,{children:"Octoprint is a control and monitoring application for your 3D printer. You can start and stop print jobs, view your webcam feed, move the print head and extruder manually and check your gcode files, all from a single web interface. Octoprint doesn't require modifications on the printer firmware, just make sure your NAS is phisically connected to it with a usb cable."}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Connect the printer to your NAS, and take note of where the serial interface is mounted (usually it's automounted in ",(0,n.jsx)(t.code,{children:"/dev/ttyUSB0"}),"). Set ",(0,n.jsx)(t.code,{children:"octoprint_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file, as well as the ",(0,n.jsx)(t.code,{children:"octoprint_printer_mountpoint"})," variable if your printer doesn't mount to the default location."]}),"\n",(0,n.jsxs)(t.p,{children:["If you want to also have a webcam feed, attach one to your NAS and take note of its mountpoint as well (usually ",(0,n.jsx)(t.code,{children:"/dev/video0"}),"). Set ",(0,n.jsx)(t.code,{children:"octoprint_enable_webcam: true"})," and add a ",(0,n.jsx)(t.code,{children:"octoprint_webcam_mountpoint"})," variable if the webcam doesn't mount to the default location."]})]})}function d(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>s,a:()=>a});var n=o(7294);const i={},r=n.createContext(i);function a(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e441f269.627fe5a0.js b/assets/js/e441f269.627fe5a0.js new file mode 100644 index 0000000000..fd38de073e --- /dev/null +++ b/assets/js/e441f269.627fe5a0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1977],{7709:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=s(5893),r=s(1151);const i={title:"AWS Route53 Dynamic DNS Updater"},d=void 0,o={id:"applications/system-tools/route53_ddns",title:"AWS Route53 Dynamic DNS Updater",description:"ddns-route53//crazymax.dev/ddns-route53/",source:"@site/docs/applications/system-tools/route53_ddns.md",sourceDirName:"applications/system-tools",slug:"/applications/system-tools/route53_ddns",permalink:"/docs/applications/system-tools/route53_ddns",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/system-tools/route53_ddns.md",tags:[],version:"current",frontMatter:{title:"AWS Route53 Dynamic DNS Updater"},sidebar:"tutorialSidebar",previous:{title:"Promtail",permalink:"/docs/applications/system-tools/promtail"},next:{title:"Syncthing",permalink:"/docs/applications/system-tools/syncthing"}},a={},c=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2},{value:"AWS Access Credentials",id:"aws-access-credentials",level:3},{value:"Networking",id:"networking",level:3},{value:"Application",id:"application",level:3}];function l(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,r.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["ddns-route53: ",(0,n.jsx)(t.a,{href:"https://crazymax.dev/ddns-route53/",children:"https://crazymax.dev/ddns-route53/"})]}),"\n",(0,n.jsxs)(t.p,{children:["AWS Route53: ",(0,n.jsx)(t.a,{href:"https://aws.amazon.com/route53/",children:"https://aws.amazon.com/route53/"})]}),"\n",(0,n.jsxs)(t.p,{children:["If you want your Ansible-NAS accessible externally then you need a domain name. You will also need to set a wildcard host ",(0,n.jsx)(t.code,{children:"A"})," record to point to your static IP, or enable this container to automatically update AWS Route53 with your dynamic IP address."]}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"route53_ddns_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsx)(t.p,{children:"Set required AWS access credentials from the AWS Console. (See below.)"}),"\n",(0,n.jsx)(t.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,n.jsxs)(t.p,{children:["Make sure you set your domain (if different than the ",(0,n.jsx)(t.code,{children:"ansible-nas"})," default) and access details within your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(t.p,{children:["To set up Route53 to work with the service, please review the ",(0,n.jsx)(t.a,{href:"https://crazymax.dev/ddns-route53/usage/prerequisites/",children:"Prerequisites"})," page. In short, you will need to set up a Route53 ",(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zones-working-with.html",children:"Hosted Zone"}),", an ",(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html",children:"IAM Policy"}),", and an ",(0,n.jsx)(t.a,{href:"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html",children:"IAM User"})," with API credentials."]}),"\n",(0,n.jsx)(t.h3,{id:"aws-access-credentials",children:"AWS Access Credentials"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Parameter"}),(0,n.jsx)(t.th,{children:"Description"}),(0,n.jsx)(t.th,{children:"Status"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"route53_key_id"}),(0,n.jsx)(t.td,{children:"AWS access key ID"}),(0,n.jsx)(t.td,{children:"mandatory"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"route53_secret_key"}),(0,n.jsx)(t.td,{children:"AWS secret key"}),(0,n.jsx)(t.td,{children:"mandatory"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"networking",children:"Networking"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Parameter"}),(0,n.jsx)(t.th,{children:"Description"}),(0,n.jsx)(t.th,{children:"Status"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"route53_hosted_zone_id"}),(0,n.jsx)(t.td,{children:"Route53 hosted zone ID"}),(0,n.jsx)(t.td,{children:"mandatory"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"route53_ttl"}),(0,n.jsx)(t.td,{children:"Time-to-live for the DNS entry"}),(0,n.jsx)(t.td,{})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"route53_host"}),(0,n.jsx)(t.td,{children:"Wildcard domain to update"}),(0,n.jsx)(t.td,{})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"application",children:"Application"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{children:"Parameter"}),(0,n.jsx)(t.th,{children:"Description"}),(0,n.jsx)(t.th,{children:"Status"})]})}),(0,n.jsx)(t.tbody,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{children:"route53_schedule"}),(0,n.jsxs)(t.td,{children:[(0,n.jsx)(t.a,{href:"https://pkg.go.dev/github.com/robfig/cron?utm_source=godoc#hdr-CRON_Expression_Format",children:"CRON"})," schedule for checking and updating DNS entry"]}),(0,n.jsx)(t.td,{})]})})]})]})}function h(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>o,a:()=>d});var n=s(7294);const r={},i=n.createContext(r);function d(e){const t=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:d(e.components),n.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e529306b.2d8e7165.js b/assets/js/e529306b.2d8e7165.js new file mode 100644 index 0000000000..c4f7d88966 --- /dev/null +++ b/assets/js/e529306b.2d8e7165.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[8126],{6374:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var a=i(5893),t=i(1151);const r={title:"Valheim Server"},s=void 0,o={id:"applications/gaming/valheim",title:"Valheim Server",description:"Homepage//github.com/mbround18/valheim-docker",source:"@site/docs/applications/gaming/valheim.md",sourceDirName:"applications/gaming",slug:"/applications/gaming/valheim",permalink:"/docs/applications/gaming/valheim",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/gaming/valheim.md",tags:[],version:"current",frontMatter:{title:"Valheim Server"},sidebar:"tutorialSidebar",previous:{title:"Minecraft Server",permalink:"/docs/applications/gaming/minecraft-server"},next:{title:"Home Automation",permalink:"/docs/category/home-automation"}},l={},c=[{value:"Usage",id:"usage",level:2}];function d(e){const n={a:"a",code:"code",h2:"h2",p:"p",...(0,t.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n.p,{children:["Homepage: ",(0,a.jsx)(n.a,{href:"https://github.com/mbround18/valheim-docker",children:"https://github.com/mbround18/valheim-docker"})]}),"\n",(0,a.jsx)(n.p,{children:"Valheim Docker powered by Odin. The Valheim dedicated gameserver manager which is designed with resiliency in mind by providing automatic updates, world backup support, and a user friendly cli interface."}),"\n",(0,a.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,a.jsxs)(n.p,{children:["Set ",(0,a.jsx)(n.code,{children:"valheim_enabled: true"})," in your ",(0,a.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,a.jsxs)(n.p,{children:["Set ",(0,a.jsx)(n.code,{children:"valheim_optional_env"})," to a list of environment variables you need for the server. You can use many ",(0,a.jsx)(n.code,{children:"valheim_*"})," variables alredy defined as defaults."]}),"\n",(0,a.jsxs)(n.p,{children:["Valheim server will be available at ",(0,a.jsx)(n.a,{href:"http://ansible_nas_host_or_ip:2456",children:"http://ansible_nas_host_or_ip:2456"})," address."]}),"\n",(0,a.jsxs)(n.p,{children:["Refer to ",(0,a.jsx)(n.a,{href:"https://github.com/mbround18/valheim-docker",children:"Valheim-docker documentation"})," for further details on how to manage the Valheim servers."]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},1151:(e,n,i)=>{i.d(n,{Z:()=>o,a:()=>s});var a=i(7294);const t={},r=a.createContext(t);function s(e){const n=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:s(e.components),a.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e563856b.d3fd91ae.js b/assets/js/e563856b.d3fd91ae.js new file mode 100644 index 0000000000..aab9ca4048 --- /dev/null +++ b/assets/js/e563856b.d3fd91ae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9073],{8337:(e,o,t)=>{t.r(o),t.d(o,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var n=t(5893),s=t(1151);const i={title:"Cloud Commander"},r=void 0,a={id:"applications/system-tools/cloudcmd",title:"Cloud Commander",description:"Homepage//cloudcmd.io/",source:"@site/docs/applications/system-tools/cloudcmd.md",sourceDirName:"applications/system-tools",slug:"/applications/system-tools/cloudcmd",permalink:"/docs/applications/system-tools/cloudcmd",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/system-tools/cloudcmd.md",tags:[],version:"current",frontMatter:{title:"Cloud Commander"},sidebar:"tutorialSidebar",previous:{title:"System Tools",permalink:"/docs/category/system-tools"},next:{title:"Cloudflare DDNS",permalink:"/docs/applications/system-tools/cloudflare_ddns"}},c={},d=[{value:"Usage",id:"usage",level:2}];function l(e){const o={a:"a",code:"code",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(o.p,{children:["Homepage: ",(0,n.jsx)(o.a,{href:"https://cloudcmd.io/",children:"https://cloudcmd.io/"})]}),"\n",(0,n.jsx)(o.p,{children:"Cloud Commander is a file manager for the web. It includes a command-line console and a text editor. Cloud Commander helps you manage your server and work with files, directories and programs in a web browser from any computer, mobile or tablet."}),"\n",(0,n.jsx)(o.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(o.p,{children:["Set ",(0,n.jsx)(o.code,{children:"cloudcmd_enabled: true"})," in your ",(0,n.jsx)(o.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(o.p,{children:["By default your the root of your Ansible-NAS box (",(0,n.jsx)(o.code,{children:"/"}),") is mounted into ",(0,n.jsx)(o.code,{children:"/mnt/fs"})," within the container. If you'd like to change this update ",(0,n.jsx)(o.code,{children:"cloudcmd_browse_directory"})," in your ",(0,n.jsx)(o.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsx)(o.p,{children:"If you enable external access to Cloud Commander (note that this is not recommended) then ensure you configure authorisation\nwithin the application (F10 from the main menu)."})]})}function u(e={}){const{wrapper:o}={...(0,s.a)(),...e.components};return o?(0,n.jsx)(o,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,o,t)=>{t.d(o,{Z:()=>a,a:()=>r});var n=t(7294);const s={},i=n.createContext(s);function r(e){const o=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function a(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(i.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e860bafb.6d58d943.js b/assets/js/e860bafb.6d58d943.js new file mode 100644 index 0000000000..f28d7baed8 --- /dev/null +++ b/assets/js/e860bafb.6d58d943.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[8421],{1277:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>l});var s=n(5893),t=n(1151);const o={title:"Airsonic"},a=void 0,r={id:"applications/media-serving/airsonic",title:"Airsonic",description:"Homepage//airsonic.github.io/",source:"@site/docs/applications/media-serving/airsonic.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/airsonic",permalink:"/docs/applications/media-serving/airsonic",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/airsonic.md",tags:[],version:"current",frontMatter:{title:"Airsonic"},sidebar:"tutorialSidebar",previous:{title:"Media Serving",permalink:"/docs/category/media-serving"},next:{title:"Booksonic",permalink:"/docs/applications/media-serving/booksonic"}},c={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function d(e){const i={a:"a",code:"code",h2:"h2",p:"p",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(i.p,{children:["Homepage: ",(0,s.jsx)(i.a,{href:"https://airsonic.github.io/",children:"https://airsonic.github.io/"})]}),"\n",(0,s.jsx)(i.p,{children:"Airsonic is a free, web-based media streamer, providing ubiquitous 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"}),"\n",(0,s.jsx)(i.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(i.p,{children:["Set ",(0,s.jsx)(i.code,{children:"airsonic_enabled: true"})," in your ",(0,s.jsx)(i.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,s.jsxs)(i.p,{children:["The Airsonic web interface can be found at ",(0,s.jsx)(i.a,{href:"http://ansible_nas_host_or_ip:4040",children:"http://ansible_nas_host_or_ip:4040"}),"."]}),"\n",(0,s.jsx)(i.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,s.jsxs)(i.p,{children:["The default username and password is ",(0,s.jsx)(i.code,{children:"admin"})," - you'll need to change this immediately after logging in."]})]})}function u(e={}){const{wrapper:i}={...(0,t.a)(),...e.components};return i?(0,s.jsx)(i,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,i,n)=>{n.d(i,{Z:()=>r,a:()=>a});var s=n(7294);const t={},o=s.createContext(t);function a(e){const i=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),s.createElement(o.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ebdcce7c.9240e70c.js b/assets/js/ebdcce7c.9240e70c.js new file mode 100644 index 0000000000..ee59fa3928 --- /dev/null +++ b/assets/js/ebdcce7c.9240e70c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[7767],{63:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>l,frontMatter:()=>i,metadata:()=>a,toc:()=>p});var r=n(5893),s=n(1151);const i={title:"Speedtest-Tracker"},o=void 0,a={id:"applications/monitoring/speedtest",title:"Speedtest-Tracker",description:"Homepage//github.com/henrywhitaker3/Speedtest-Tracker",source:"@site/docs/applications/monitoring/speedtest.md",sourceDirName:"applications/monitoring",slug:"/applications/monitoring/speedtest",permalink:"/docs/applications/monitoring/speedtest",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/monitoring/speedtest.md",tags:[],version:"current",frontMatter:{title:"Speedtest-Tracker"},sidebar:"tutorialSidebar",previous:{title:"Glances",permalink:"/docs/applications/monitoring/glances"},next:{title:"Stats",permalink:"/docs/applications/monitoring/stats"}},c={},p=[{value:"Usage",id:"usage",level:2}];function d(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["Homepage: ",(0,r.jsx)(t.a,{href:"https://github.com/henrywhitaker3/Speedtest-Tracker",children:"https://github.com/henrywhitaker3/Speedtest-Tracker"})]}),"\n",(0,r.jsxs)(t.p,{children:["Docker Container: ",(0,r.jsx)(t.a,{href:"https://hub.docker.com/r/henrywhitaker3/speedtest-tracker",children:"https://hub.docker.com/r/henrywhitaker3/speedtest-tracker"})]}),"\n",(0,r.jsx)(t.p,{children:"Continuously track your internet speed"}),"\n",(0,r.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,r.jsxs)(t.p,{children:["Set ",(0,r.jsx)(t.code,{children:"speedtest_tracker_enabled: true"})," in your ",(0,r.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,r.jsxs)(t.p,{children:["If you want to access Speedtest-Tracker externally, don't forget to set ",(0,r.jsx)(t.code,{children:"speedtest_tracker_available_externally: true"})," in your ",(0,r.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,r.jsxs)(t.p,{children:["The Speedtest-Tracker interface can be found at ",(0,r.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:8765",children:"http://ansible_nas_host_or_ip:8765"}),"."]})]})}function l(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>o});var r=n(7294);const s={},i=r.createContext(s);function o(e){const t=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ecb32864.894504ba.js b/assets/js/ecb32864.894504ba.js new file mode 100644 index 0000000000..07081f225b --- /dev/null +++ b/assets/js/ecb32864.894504ba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[4608],{1495:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var t=n(5893),s=n(1151);const o={title:"Plex"},a=void 0,r={id:"applications/media-serving/plex",title:"Plex",description:"Homepage//www.plex.tv/",source:"@site/docs/applications/media-serving/plex.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/plex",permalink:"/docs/applications/media-serving/plex",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/plex.md",tags:[],version:"current",frontMatter:{title:"Plex"},sidebar:"tutorialSidebar",previous:{title:"Navidrome",permalink:"/docs/applications/media-serving/navidrome"},next:{title:"PyTivo",permalink:"/docs/applications/media-serving/pytivo"}},l={},c=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function p(e){const i={a:"a",code:"code",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(i.p,{children:["Homepage: ",(0,t.jsx)(i.a,{href:"https://www.plex.tv/",children:"https://www.plex.tv/"})]}),"\n",(0,t.jsx)(i.p,{children:"Plex is a personal media server that also provides access to several external movie, web show, and podcast services. Allows you to stream music too. Apps for many devices, including e.g. chromecast integration."}),"\n",(0,t.jsx)(i.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsxs)(i.p,{children:["Set ",(0,t.jsx)(i.code,{children:"plex_enabled: true"})," in your ",(0,t.jsx)(i.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,t.jsxs)(i.p,{children:["The Plex web interface can be found at ",(0,t.jsx)(i.a,{href:"http://ansible_nas_host_or_ip:32400/web/index.html",children:"http://ansible_nas_host_or_ip:32400/web/index.html"}),"."]}),"\n",(0,t.jsx)(i.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,t.jsx)(i.p,{children:"You'll need to log in with a plex account, (or possibly claim your server).\nYou'll need to set up your local file store - go to settings > Manage > Libraries, and add your libraries. These are mounted in the root directory by default."})]})}function d(e={}){const{wrapper:i}={...(0,s.a)(),...e.components};return i?(0,t.jsx)(i,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},1151:(e,i,n)=>{n.d(i,{Z:()=>r,a:()=>a});var t=n(7294);const s={},o=t.createContext(s);function a(e){const i=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function r(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(o.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ef5c90a0.71a759b3.js b/assets/js/ef5c90a0.71a759b3.js new file mode 100644 index 0000000000..6f64dba493 --- /dev/null +++ b/assets/js/ef5c90a0.71a759b3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[5216],{8758:e=>{e.exports=JSON.parse('{"permalink":"/blog/tags/website","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/efc8ef5c.a6541f01.js b/assets/js/efc8ef5c.a6541f01.js new file mode 100644 index 0000000000..43668be444 --- /dev/null +++ b/assets/js/efc8ef5c.a6541f01.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[7932],{1571:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var n=t(5893),r=t(1151);const s={title:"Grafana"},i=void 0,o={id:"applications/observability/grafana",title:"Grafana",description:"Homepage//grafana.com/",source:"@site/docs/applications/observability/grafana.md",sourceDirName:"applications/observability",slug:"/applications/observability/grafana",permalink:"/docs/applications/observability/grafana",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/observability/grafana.md",tags:[],version:"current",frontMatter:{title:"Grafana"},sidebar:"tutorialSidebar",previous:{title:"Observability",permalink:"/docs/category/observability"},next:{title:"Other",permalink:"/docs/category/other"}},c={},l=[{value:"Usage",id:"usage",level:2}];function d(e){const a={a:"a",code:"code",h2:"h2",p:"p",...(0,r.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(a.p,{children:["Homepage: ",(0,n.jsx)(a.a,{href:"https://grafana.com/",children:"https://grafana.com/"})]}),"\n",(0,n.jsxs)(a.p,{children:["Docker image: ",(0,n.jsx)(a.a,{href:"https://hub.docker.com/r/grafana/grafana",children:"Grafana"})]}),"\n",(0,n.jsx)(a.p,{children:"Query, visualize, alert on, and understand your data no matter where it\u2019s stored. With Grafana you can create, explore, and share all of your data through beautiful, flexible dashboards."}),"\n",(0,n.jsx)(a.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(a.p,{children:["Set ",(0,n.jsx)(a.code,{children:"stats_enabled: true"})," in your ",(0,n.jsx)(a.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(a.p,{children:["Grafana's web interface can be found at ",(0,n.jsx)(a.a,{href:"http://ansible_nas_host_or_ip:3000",children:"http://ansible_nas_host_or_ip:3000"}),"."]})]})}function p(e={}){const{wrapper:a}={...(0,r.a)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,a,t)=>{t.d(a,{Z:()=>o,a:()=>i});var n=t(7294);const r={},s=n.createContext(r);function i(e){const a=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(s.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f04cdb90.5b3540a2.js b/assets/js/f04cdb90.5b3540a2.js new file mode 100644 index 0000000000..b0a7a6869c --- /dev/null +++ b/assets/js/f04cdb90.5b3540a2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[4821],{1802:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>l,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var n=o(5893),i=o(1151);const s={title:"Woodpecker CI"},r=void 0,c={id:"applications/development-tools/woodpecker_ci",title:"Woodpecker CI",description:"Woodpecker is a simple CI engine with great extensibility.",source:"@site/docs/applications/development-tools/woodpecker_ci.md",sourceDirName:"applications/development-tools",slug:"/applications/development-tools/woodpecker_ci",permalink:"/docs/applications/development-tools/woodpecker_ci",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/development-tools/woodpecker_ci.md",tags:[],version:"current",frontMatter:{title:"Woodpecker CI"},sidebar:"tutorialSidebar",previous:{title:"Nomad",permalink:"/docs/applications/development-tools/nomad"},next:{title:"Download Tools",permalink:"/docs/category/download-tools"}},a={},d=[{value:"Usage",id:"usage",level:2},{value:"Setup Tasks",id:"setup-tasks",level:2}];function p(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"Woodpecker is a simple CI engine with great extensibility."}),"\n",(0,n.jsxs)(t.p,{children:["Check it out at ",(0,n.jsx)(t.a,{href:"https://woodpecker-ci.org/",children:"https://woodpecker-ci.org/"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"woodpecker_ci_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(t.p,{children:["Gitea (",(0,n.jsx)(t.code,{children:"gitea_enabled: true"}),") must be set up and running before attempting to set up Woodpecker CI."]}),"\n",(0,n.jsx)(t.h2,{id:"setup-tasks",children:"Setup Tasks"}),"\n",(0,n.jsxs)(t.p,{children:["An Oauth2 application must be set up in Gitea. Visit ",(0,n.jsx)(t.a,{href:"https://woodpecker-ci.org/docs/administration/forges/gitea",children:"https://woodpecker-ci.org/docs/administration/forges/gitea"})," for more info, then set ",(0,n.jsx)(t.code,{children:"woodpecker_ci_gitea_client"})," and ",(0,n.jsx)(t.code,{children:"woodpecker_ci_gitea_secret"})," accordingly."]}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"woodpecker_ci_admin_user"})," to the same username as your user in Gitea."]})]})}function l(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(p,{...e})}):p(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>c,a:()=>r});var n=o(7294);const i={},s=n.createContext(i);function r(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f0878079.6038498b.js b/assets/js/f0878079.6038498b.js new file mode 100644 index 0000000000..3159b97784 --- /dev/null +++ b/assets/js/f0878079.6038498b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[3373],{6080:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var t=i(5893),o=i(1151);const a={title:"Navidrome"},s=void 0,r={id:"applications/media-serving/navidrome",title:"Navidrome",description:"Homepage//www.navidrome.org/",source:"@site/docs/applications/media-serving/navidrome.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/navidrome",permalink:"/docs/applications/media-serving/navidrome",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/navidrome.md",tags:[],version:"current",frontMatter:{title:"Navidrome"},sidebar:"tutorialSidebar",previous:{title:"My Media for Alexa",permalink:"/docs/applications/media-serving/mymediaforalexa"},next:{title:"Plex",permalink:"/docs/applications/media-serving/plex"}},c={},d=[{value:"Usage",id:"usage",level:2}];function l(e){const n={a:"a",code:"code",h2:"h2",p:"p",...(0,o.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["Homepage: ",(0,t.jsx)(n.a,{href:"https://www.navidrome.org/",children:"https://www.navidrome.org/"})]}),"\n",(0,t.jsx)(n.p,{children:"Navidrome is an open source web-based music collection server and streamer that is compatible with Subsonic/Airsonic. It gives you freedom to listen to your music collection from any browser or mobile device. It's like your personal Spotify!"}),"\n",(0,t.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsxs)(n.p,{children:["Set ",(0,t.jsx)(n.code,{children:"navidrome_enabled: true"})," in your ",(0,t.jsx)(n.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,t.jsxs)(n.p,{children:["The Navidrome web interface can be found at ",(0,t.jsx)(n.a,{href:"http://ansible_nas_host_or_ip:4533",children:"http://ansible_nas_host_or_ip:4533"}),"."]})]})}function p(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},1151:(e,n,i)=>{i.d(n,{Z:()=>r,a:()=>s});var t=i(7294);const o={},a=t.createContext(o);function s(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f28278b8.382610ff.js b/assets/js/f28278b8.382610ff.js new file mode 100644 index 0000000000..f41c46ca88 --- /dev/null +++ b/assets/js/f28278b8.382610ff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9276],{3617:t=>{t.exports=JSON.parse('{"title":"Further Configuration","description":"How to contribute to Ansible-NAS.","slug":"/category/further-configuration","permalink":"/docs/category/further-configuration","navigation":{"previous":{"title":"Watchtower","permalink":"/docs/applications/system-tools/watchtower"},"next":{"title":"Hardware","permalink":"/docs/further-configuration/hardware"}}}')}}]); \ No newline at end of file diff --git a/assets/js/f3c20bd6.0757204c.js b/assets/js/f3c20bd6.0757204c.js new file mode 100644 index 0000000000..30c20f1626 --- /dev/null +++ b/assets/js/f3c20bd6.0757204c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[7677],{1498:(e,o,n)=>{n.r(o),n.d(o,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>t,metadata:()=>r,toc:()=>l});var i=n(5893),s=n(1151);const t={title:"Booksonic"},a=void 0,r={id:"applications/media-serving/booksonic",title:"Booksonic",description:"Homepage//booksonic.org/",source:"@site/docs/applications/media-serving/booksonic.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/booksonic",permalink:"/docs/applications/media-serving/booksonic",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/booksonic.md",tags:[],version:"current",frontMatter:{title:"Booksonic"},sidebar:"tutorialSidebar",previous:{title:"Airsonic",permalink:"/docs/applications/media-serving/airsonic"},next:{title:"Calibre-web",permalink:"/docs/applications/media-serving/calibre-web"}},c={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function p(e){const o={a:"a",code:"code",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(o.p,{children:["Homepage: ",(0,i.jsx)(o.a,{href:"https://booksonic.org/",children:"https://booksonic.org/"})]}),"\n",(0,i.jsx)(o.p,{children:"Stream your audiobooks to any pc or android phone. Most of the functionality is also available on other platforms that have apps for subsonic."}),"\n",(0,i.jsxs)(o.p,{children:["Fully Open-Source. You can find the code on ",(0,i.jsx)(o.a,{href:"https://github.com/popeen?tab=repositories&q=booksonic",children:"GitHub"})]}),"\n",(0,i.jsxs)(o.p,{children:["Get the Android app on ",(0,i.jsx)(o.a,{href:"https://play.google.com/store/apps/details?id=github.popeen.dsub",children:"Google Play"})," or build it from ",(0,i.jsx)(o.a,{href:"https://github.com/popeen/Popeens-DSub",children:"source"})]}),"\n",(0,i.jsx)(o.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsxs)(o.p,{children:["Set ",(0,i.jsx)(o.code,{children:"booksonic_enabled: true"})," in your ",(0,i.jsx)(o.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,i.jsxs)(o.p,{children:["The Booksonic web interface can be found at ",(0,i.jsx)(o.a,{href:"http://ansible_nas_host_or_ip:4041",children:"http://ansible_nas_host_or_ip:4041"}),"."]}),"\n",(0,i.jsx)(o.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,i.jsxs)(o.p,{children:["The default username and password is ",(0,i.jsx)(o.code,{children:"admin"})," - you'll need to change this immediately after logging in."]})]})}function d(e={}){const{wrapper:o}={...(0,s.a)(),...e.components};return o?(0,i.jsx)(o,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},1151:(e,o,n)=>{n.d(o,{Z:()=>r,a:()=>a});var i=n(7294);const s={},t=i.createContext(s);function a(e){const o=i.useContext(t);return i.useMemo((function(){return"function"==typeof e?e(o):{...o,...e}}),[o,e])}function r(e){let o;return o=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),i.createElement(t.Provider,{value:o},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f4a7a7ec.11393105.js b/assets/js/f4a7a7ec.11393105.js new file mode 100644 index 0000000000..2c8f85034b --- /dev/null +++ b/assets/js/f4a7a7ec.11393105.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[9141],{1273:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>r,toc:()=>l});var n=a(5893),s=a(1151);const o={title:"Homepage"},i=void 0,r={id:"applications/dashboards/homepage",title:"Homepage",description:"Homepage//gethomepage.dev",source:"@site/docs/applications/dashboards/homepage.md",sourceDirName:"applications/dashboards",slug:"/applications/dashboards/homepage",permalink:"/docs/applications/dashboards/homepage",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/dashboards/homepage.md",tags:[],version:"current",frontMatter:{title:"Homepage"},sidebar:"tutorialSidebar",previous:{title:"Heimdall",permalink:"/docs/applications/dashboards/heimdall"},next:{title:"Organizr",permalink:"/docs/applications/dashboards/organizr"}},c={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function d(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Homepage: ",(0,n.jsx)(t.a,{href:"https://gethomepage.dev",children:"https://gethomepage.dev"})]}),"\n",(0,n.jsx)(t.p,{children:"A modern, fully static, fast, secure fully proxied, highly customizable application dashboard\nwith integrations for over 100 services and translations into multiple languages.\nEasily configured via YAML files or through docker label discovery."}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"homepage_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(t.p,{children:["The Homepage web interface can be found at ",(0,n.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:10080",children:"http://ansible_nas_host_or_ip:11111"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,n.jsxs)(t.p,{children:["Heimdall defaults to port 10080 - some browsers block this port. Override ",(0,n.jsx)(t.code,{children:"heimdall_port_http"})," to move it somewhere else."]})]})}function p(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,t,a)=>{a.d(t,{Z:()=>r,a:()=>i});var n=a(7294);const s={},o=n.createContext(s);function i(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f6436b4c.ef27ad99.js b/assets/js/f6436b4c.ef27ad99.js new file mode 100644 index 0000000000..d4c3a1b7a7 --- /dev/null +++ b/assets/js/f6436b4c.ef27ad99.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[2801],{5597:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var s=n(5893),i=n(1151);const o={},a="Mumble",r={id:"applications/other/mumble",title:"Mumble",description:"Homepage//www.mumble.info/",source:"@site/docs/applications/other/mumble.md",sourceDirName:"applications/other",slug:"/applications/other/mumble",permalink:"/docs/applications/other/mumble",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/other/mumble.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Mealie",permalink:"/docs/applications/other/mealie"},next:{title:"Nextcloud",permalink:"/docs/applications/other/nextcloud"}},l={},c=[{value:"Usage",id:"usage",level:2}];function u(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",strong:"strong",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"mumble",children:"Mumble"}),"\n",(0,s.jsxs)(t.p,{children:["Homepage: ",(0,s.jsx)(t.a,{href:"https://www.mumble.info/",children:"https://www.mumble.info/"})]}),"\n",(0,s.jsx)(t.p,{children:"Mumble is a free, open source, low latency, high quality voice chat application."}),"\n",(0,s.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(t.p,{children:["Set ",(0,s.jsx)(t.code,{children:"mumble_enabled: true"})," in your ",(0,s.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file.\nThe configuration here applies a server password, via ",(0,s.jsx)(t.code,{children:"mumble_server_password"}),", to\nthe Mumble instance, so that if you make this application available externally it won't be\naccessible to everyone by default. That being said, it is ",(0,s.jsx)(t.strong,{children:"strongly"})," encouraged that\nyou change this value to something unique."]}),"\n",(0,s.jsxs)(t.p,{children:["Clients can then connect to the service at ",(0,s.jsx)(t.code,{children:"ansible_nas_host_or_ip:64738"})," using the\npassword that you've definitely changed."]})]})}function p(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var s=n(7294);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f6aca652.5da97f1b.js b/assets/js/f6aca652.5da97f1b.js new file mode 100644 index 0000000000..2e370619bc --- /dev/null +++ b/assets/js/f6aca652.5da97f1b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[636],{6698:(e,i,o)=>{o.r(i),o.d(i,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>p});var n=o(5893),t=o(1151);const s={title:"PyTivo"},r=void 0,a={id:"applications/media-serving/pytivo",title:"PyTivo",description:"Project Homepage:",source:"@site/docs/applications/media-serving/pytivo.md",sourceDirName:"applications/media-serving",slug:"/applications/media-serving/pytivo",permalink:"/docs/applications/media-serving/pytivo",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/media-serving/pytivo.md",tags:[],version:"current",frontMatter:{title:"PyTivo"},sidebar:"tutorialSidebar",previous:{title:"Plex",permalink:"/docs/applications/media-serving/plex"},next:{title:"Romm",permalink:"/docs/applications/media-serving/romm"}},c={},p=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function l(e){const i={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(i.p,{children:["Project Homepage:\n",(0,n.jsx)(i.a,{href:"https://github.com/lucasnz/pytivo",children:"https://github.com/lucasnz/pytivo"})]}),"\n",(0,n.jsxs)(i.p,{children:["Docker Homepage:\n",(0,n.jsx)(i.a,{href:"https://hub.docker.com/r/pinion/docker-pytivo",children:"https://hub.docker.com/r/pinion/docker-pytivo"})]}),"\n",(0,n.jsxs)(i.p,{children:["PyTivo is both an HMO and GoBack server. Similar to TiVo Desktop pyTivo\nloads many standard video compression codecs and outputs mpeg2 video to\nthe TiVo. However, pyTivo is able to load MANY more file types than TiVo\nDesktop. ",(0,n.jsx)(i.a,{href:"http://pytivo.org/",children:"http://pytivo.org/"})]}),"\n",(0,n.jsx)(i.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(i.p,{children:["Set ",(0,n.jsx)(i.code,{children:"pytivo_enabled: true"})," in your ",(0,n.jsx)(i.code,{children:"group_vars/all.yml"})," file. The PyTivo\nweb interface can be found at ",(0,n.jsx)(i.a,{href:"http://ansible_nas_host_or_ip:9032",children:"http://ansible_nas_host_or_ip:9032"}),"."]}),"\n",(0,n.jsx)(i.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,n.jsx)(i.p,{children:"PyTivo needs to be configured for use. Your ansible-nas media is\navailable to share via:"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsx)(i.li,{children:"/movies - Where your movies are stored"}),"\n",(0,n.jsx)(i.li,{children:"/music - Where your music is stored"}),"\n",(0,n.jsx)(i.li,{children:"/photos - Where your photos are stored"}),"\n",(0,n.jsx)(i.li,{children:"/podcasts - Where your podcasts are stored"}),"\n",(0,n.jsx)(i.li,{children:"/tv - Where your TV episodes are stored"}),"\n"]}),"\n",(0,n.jsxs)(i.p,{children:["Configuration help for PyTivo settings can be found at ",(0,n.jsx)(i.a,{href:"https://pytivo.sourceforge.io/wiki/index.php/Configure_pyTivo",children:"Configure_pyTivo"}),"."]})]})}function d(e={}){const{wrapper:i}={...(0,t.a)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,i,o)=>{o.d(i,{Z:()=>a,a:()=>r});var n=o(7294);const t={},s=n.createContext(t);function r(e){const i=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),n.createElement(s.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f7ab641b.dc48d875.js b/assets/js/f7ab641b.dc48d875.js new file mode 100644 index 0000000000..cb203769a7 --- /dev/null +++ b/assets/js/f7ab641b.dc48d875.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[3178],{3439:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>t,metadata:()=>l,toc:()=>c});var s=n(5893),o=n(1151);const t={title:"Piwigo"},r=void 0,l={id:"applications/other/piwigo",title:"Piwigo",description:"Homepage: Piwigo.org",source:"@site/docs/applications/other/piwigo.md",sourceDirName:"applications/other",slug:"/applications/other/piwigo",permalink:"/docs/applications/other/piwigo",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/other/piwigo.md",tags:[],version:"current",frontMatter:{title:"Piwigo"},sidebar:"tutorialSidebar",previous:{title:"Paperless-ng",permalink:"/docs/applications/other/paperless_ng"},next:{title:"Silverbullet",permalink:"/docs/applications/other/silverbullet"}},a={},c=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function d(e){const i={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(i.p,{children:["Homepage: ",(0,s.jsx)(i.a,{href:"https://piwigo.org",children:"Piwigo.org"})]}),"\n",(0,s.jsx)(i.p,{children:"Piwigo is open source photo gallery software for the web. Designed for organisations, teams and individuals."}),"\n",(0,s.jsx)(i.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(i.p,{children:["Set ",(0,s.jsx)(i.code,{children:"piwigo_enabled: true"})," in your ",(0,s.jsx)(i.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,s.jsxs)(i.p,{children:["If you want to access Piwigo externally, set ",(0,s.jsx)(i.code,{children:"piwigo_available_externally: true"})," in your ",(0,s.jsx)(i.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,s.jsxs)(i.p,{children:["The Piwigo web interface can be found at ",(0,s.jsx)(i.a,{href:"http://ansible_nas_host_or_ip:16923",children:"http://ansible_nas_host_or_ip:16923"}),"."]}),"\n",(0,s.jsx)(i.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,s.jsx)(i.p,{children:"Optional configurations:"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:["Set ",(0,s.jsx)(i.code,{children:"piwigo_mysql_user"})," in ",(0,s.jsx)(i.code,{children:"inventories/ /group_vars/nas.yml"}),' before installing Piwigo, this defaults to "piwigo".']}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:["Set ",(0,s.jsx)(i.code,{children:"piwigo_mysql_password"})," in ",(0,s.jsx)(i.code,{children:"inventories/ /group_vars/nas.yml"}),' before installing Piwigo, this defaults to "piwigo".']}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsxs)(i.p,{children:["Set ",(0,s.jsx)(i.code,{children:"piwigo_mysql_root_password"})," in ",(0,s.jsx)(i.code,{children:"inventories/ /group_vars/nas.yml"}),' before installing Piwigo, this defaults to "piwigo".']}),"\n"]}),"\n",(0,s.jsxs)(i.li,{children:["\n",(0,s.jsx)(i.p,{children:"On first run you'll need to enter database details:"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:["Host: ",(0,s.jsx)(i.code,{children:"db:3306"})]}),"\n",(0,s.jsx)(i.li,{children:'Username: the value of piwigo_mysql_user, defaults to "piwigo"'}),"\n",(0,s.jsx)(i.li,{children:'Password: the value of piwigo_password, defaults to "piwigo"'}),"\n",(0,s.jsxs)(i.li,{children:["Database Name: ",(0,s.jsx)(i.code,{children:"piwigo"})]}),"\n",(0,s.jsxs)(i.li,{children:["Database tables prefix: should be prefilled with ",(0,s.jsx)(i.code,{children:"piwigo_"})]}),"\n"]}),"\n"]}),"\n"]})]})}function p(e={}){const{wrapper:i}={...(0,o.a)(),...e.components};return i?(0,s.jsx)(i,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,i,n)=>{n.d(i,{Z:()=>l,a:()=>r});var s=n(7294);const o={},t=s.createContext(o);function r(e){const i=s.useContext(t);return s.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function l(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(t.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f81fbd6e.ca33e3f2.js b/assets/js/f81fbd6e.ca33e3f2.js new file mode 100644 index 0000000000..d992710876 --- /dev/null +++ b/assets/js/f81fbd6e.ca33e3f2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[3700],{3769:s=>{s.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/f8354261.7a135f9f.js b/assets/js/f8354261.7a135f9f.js new file mode 100644 index 0000000000..b62637c6f8 --- /dev/null +++ b/assets/js/f8354261.7a135f9f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[8343],{1922:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var i=t(5893),a=t(1151);const o={sidebar_position:4},r="External Access",s={id:"getting-started/external-access",title:"External Access",description:"There are a number of steps required to enable external access to the applications running on your NAS:",source:"@site/docs/getting-started/external-access.md",sourceDirName:"getting-started",slug:"/getting-started/external-access",permalink:"/docs/getting-started/external-access",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/getting-started/external-access.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Configure A Dashboard",permalink:"/docs/getting-started/configure-dashboard"},next:{title:"Applications",permalink:"/docs/category/applications"}},c={},l=[{value:"Domain Name and DNS Configuration",id:"domain-name-and-dns-configuration",level:2},{value:"Enable Traefik",id:"enable-traefik",level:2},{value:"Router Configuration",id:"router-configuration",level:2},{value:"Enable Access To Specific Applications",id:"enable-access-to-specific-applications",level:2}];function d(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",strong:"strong",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"external-access",children:"External Access"}),"\n",(0,i.jsx)(n.p,{children:"There are a number of steps required to enable external access to the applications running on your NAS:"}),"\n",(0,i.jsxs)(n.ol,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#domain-name-and-dns-configuration",children:"Domain Name and DNS Configuration"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#enable-traefik",children:"Enable Traefik"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#router-configuration",children:"Router Configuration"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.a,{href:"#enable-access-to-specific-applications",children:"Enable specific applications for external access"})}),"\n"]}),"\n",(0,i.jsxs)(n.admonition,{type:"danger",children:[(0,i.jsxs)(n.p,{children:["Enabling access to applications externally ",(0,i.jsx)(n.strong,{children:"does not"})," automatically secure them. If you can access an application from within your own network without a username and password, this will also be the case externally."]}),(0,i.jsx)(n.p,{children:"It is your responsibility to ensure that applications you enable external access to are secured appropriately!"})]}),"\n",(0,i.jsx)(n.h2,{id:"domain-name-and-dns-configuration",children:"Domain Name and DNS Configuration"}),"\n",(0,i.jsxs)(n.p,{children:["Set ",(0,i.jsx)(n.code,{children:"ansible_nas_domain"})," to the domain name you want to use for your Ansible-NAS. You'll need somewhere to host the DNS for that domain - Cloudflare is a good free solution. Once you have an account and Cloudflare is hosting the DNS for your domain, create a wildcard DNS entry (",(0,i.jsx)(n.code,{children:"*.myawesomedomain.com"}),") and set it to your current IP address."]}),"\n",(0,i.jsxs)(n.p,{children:["You then need to enable and configure the Cloudflare Dynamic DNS container (",(0,i.jsx)(n.code,{children:"cloudflare_ddns_enabled: true"}),") so the wildcard DNS entry for your domain name is updated if/when your ISP issues you a new IP address."]}),"\n",(0,i.jsx)(n.h2,{id:"enable-traefik",children:"Enable Traefik"}),"\n",(0,i.jsx)(n.p,{children:"Traefik routes traffic from ports 80 (HTTP) and 443 (HTTPS) on your Ansible-NAS box to the relevant application, based on hostname."}),"\n",(0,i.jsxs)(n.p,{children:["Simply set ",(0,i.jsx)(n.code,{children:"traefik_enabled: true"})," in your ",(0,i.jsx)(n.code,{children:"all.yml"}),". By default it listens on ports 80 and 443, but doesn't route any traffic."]}),"\n",(0,i.jsxs)(n.p,{children:["Ensure you set the relevant environment variables for your DNS provider in ",(0,i.jsx)(n.code,{children:"traefik_environment_variables"}),". More info in the ",(0,i.jsx)(n.a,{href:"https://doc.traefik.io/traefik/https/acme/",children:"Traefik ACME docs"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"router-configuration",children:"Router Configuration"}),"\n",(0,i.jsx)(n.p,{children:"You need to map ports 80 and 443 from your router to your Ansible-NAS box."}),"\n",(0,i.jsx)(n.p,{children:"How to do this is entirely dependent on your router (and out of scope of these docs), but if you're using Ansible-NAS then this should be within your skillset. :)"}),"\n",(0,i.jsx)(n.h2,{id:"enable-access-to-specific-applications",children:"Enable Access To Specific Applications"}),"\n",(0,i.jsxs)(n.p,{children:["Every application has a ",(0,i.jsx)(n.code,{children:" _available_externally"})," setting in its ",(0,i.jsx)(n.code,{children:"defaults/main.yml"}),". Setting this to ",(0,i.jsx)(n.code,{children:"true"})," (by overriding it in your nas.yml) will configure Traefik to route ",(0,i.jsx)(n.code,{children:" .yourdomain.com"})," to the application, making it available externally."]})]})}function u(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>s,a:()=>r});var i=t(7294);const a={},o=i.createContext(a);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f9b36fa1.47fb4499.js b/assets/js/f9b36fa1.47fb4499.js new file mode 100644 index 0000000000..e0f880a6d3 --- /dev/null +++ b/assets/js/f9b36fa1.47fb4499.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[6010],{4767:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>r,toc:()=>a});var s=t(5893),i=t(1151);const o={title:"Syncthing"},c=void 0,r={id:"applications/system-tools/syncthing",title:"Syncthing",description:"Homepage//syncthing.net/",source:"@site/docs/applications/system-tools/syncthing.md",sourceDirName:"applications/system-tools",slug:"/applications/system-tools/syncthing",permalink:"/docs/applications/system-tools/syncthing",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/system-tools/syncthing.md",tags:[],version:"current",frontMatter:{title:"Syncthing"},sidebar:"tutorialSidebar",previous:{title:"AWS Route53 Dynamic DNS Updater",permalink:"/docs/applications/system-tools/route53_ddns"},next:{title:"Time Machine",permalink:"/docs/applications/system-tools/timemachine"}},l={},a=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function h(n){const e={a:"a",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",...(0,i.a)(),...n.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(e.p,{children:["Homepage: ",(0,s.jsx)(e.a,{href:"https://syncthing.net/",children:"https://syncthing.net/"})]}),"\n",(0,s.jsxs)(e.p,{children:["Github: ",(0,s.jsx)(e.a,{href:"https://github.com/syncthing/syncthing",children:"https://github.com/syncthing/syncthing"})]}),"\n",(0,s.jsxs)(e.p,{children:["Docker: ",(0,s.jsx)(e.a,{href:"https://hub.docker.com/r/syncthing/syncthing",children:"https://hub.docker.com/r/syncthing/syncthing"})]}),"\n",(0,s.jsx)(e.p,{children:"Syncthing is a continuous file synchronization program. It synchronizes files\nbetween two or more computers. It strives to fulfill the goals below in summary.\nSyncthing should be:"}),"\n",(0,s.jsxs)(e.ol,{children:["\n",(0,s.jsx)(e.li,{children:"Safe From Data Loss"}),"\n",(0,s.jsx)(e.li,{children:"Secure Against Attackers"}),"\n",(0,s.jsx)(e.li,{children:"Easy to Use"}),"\n",(0,s.jsx)(e.li,{children:"Automatic"}),"\n",(0,s.jsx)(e.li,{children:"Universally Available"}),"\n",(0,s.jsx)(e.li,{children:"For Individuals"}),"\n",(0,s.jsx)(e.li,{children:"For eveything else see the goals document"}),"\n"]}),"\n",(0,s.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(e.p,{children:["Set ",(0,s.jsx)(e.code,{children:"syncthing_enabled: true"})," in your ",(0,s.jsx)(e.code,{children:"\\inventories\\[my inventory]\\group_vars\\nas.yml"})," file."]}),"\n",(0,s.jsx)(e.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,s.jsx)(e.p,{children:"Open the web interface at :8384 to configure."})]})}function d(n={}){const{wrapper:e}={...(0,i.a)(),...n.components};return e?(0,s.jsx)(e,{...n,children:(0,s.jsx)(h,{...n})}):h(n)}},1151:(n,e,t)=>{t.d(e,{Z:()=>r,a:()=>c});var s=t(7294);const i={},o=s.createContext(i);function c(n){const e=s.useContext(o);return s.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function r(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(i):n.components||i:c(n.components),s.createElement(o.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/fa1e8305.d758adc3.js b/assets/js/fa1e8305.d758adc3.js new file mode 100644 index 0000000000..f4051e592a --- /dev/null +++ b/assets/js/fa1e8305.d758adc3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[4095],{2882:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>r,toc:()=>l});var n=s(5893),o=s(1151);const a={title:"Home Assistant"},i=void 0,r={id:"applications/home-automation/homeassistant",title:"Home Assistant",description:"Homepage//www.home-assistant.io/",source:"@site/docs/applications/home-automation/homeassistant.md",sourceDirName:"applications/home-automation",slug:"/applications/home-automation/homeassistant",permalink:"/docs/applications/home-automation/homeassistant",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/home-automation/homeassistant.md",tags:[],version:"current",frontMatter:{title:"Home Assistant"},sidebar:"tutorialSidebar",previous:{title:"ESPHome",permalink:"/docs/applications/home-automation/esphome"},next:{title:"Homebridge",permalink:"/docs/applications/home-automation/homebridge"}},c={},l=[{value:"Usage",id:"usage",level:2}];function m(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(t.p,{children:["Homepage: ",(0,n.jsx)(t.a,{href:"https://www.home-assistant.io/",children:"https://www.home-assistant.io/"})]}),"\n",(0,n.jsx)(t.p,{children:"Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts."}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["Set ",(0,n.jsx)(t.code,{children:"homeassistant_enabled: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(t.p,{children:["If you want to access Home Assistant externally, don't forget to set ",(0,n.jsx)(t.code,{children:"homeassistant_available_externally: true"})," in your ",(0,n.jsx)(t.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,n.jsxs)(t.p,{children:["The Home Assistant web interface can be found at ",(0,n.jsx)(t.a,{href:"http://ansible_nas_host_or_ip:8123",children:"http://ansible_nas_host_or_ip:8123"}),"."]})]})}function p(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(m,{...e})}):m(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>r,a:()=>i});var n=s(7294);const o={},a=n.createContext(o);function i(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fc4d05f6.379061c3.js b/assets/js/fc4d05f6.379061c3.js new file mode 100644 index 0000000000..b2356d715b --- /dev/null +++ b/assets/js/fc4d05f6.379061c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[20],{1029:(e,r,o)=>{o.r(r),o.d(r,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>n,metadata:()=>i,toc:()=>l});var s=o(5893),t=o(1151);const n={title:"Overseerr"},a=void 0,i={id:"applications/download-tools/overseerr",title:"Overseerr",description:"Homepage//docs.overseerr.dev",source:"@site/docs/applications/download-tools/overseerr.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/overseerr",permalink:"/docs/applications/download-tools/overseerr",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/overseerr.md",tags:[],version:"current",frontMatter:{title:"Overseerr"},sidebar:"tutorialSidebar",previous:{title:"Ombi",permalink:"/docs/applications/download-tools/ombi"},next:{title:"Prowlarr",permalink:"/docs/applications/download-tools/prowlarr"}},c={},l=[{value:"Usage",id:"usage",level:2}];function d(e){const r={a:"a",code:"code",h2:"h2",p:"p",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(r.p,{children:["Homepage: ",(0,s.jsx)(r.a,{href:"https://docs.overseerr.dev",children:"https://docs.overseerr.dev"})]}),"\n",(0,s.jsxs)(r.p,{children:["Docker Container: ",(0,s.jsx)(r.a,{href:"https://hub.docker.com/r/sctx/overseerr",children:"https://hub.docker.com/r/sctx/overseerr"})]}),"\n",(0,s.jsx)(r.p,{children:"Overseerr is a free and open source software application for managing requests for your media library. It integrates with your existing services, such as Sonarr, Radarr, and Plex!"}),"\n",(0,s.jsx)(r.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(r.p,{children:["Using overseerr: Set ",(0,s.jsx)(r.code,{children:"overseerr_enabled: true"})," in your ",(0,s.jsx)(r.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,s.jsxs)(r.p,{children:["The overseerr web interface can be found at ",(0,s.jsx)(r.a,{href:"http://ansible_nas_host_or_ip:5055",children:"http://ansible_nas_host_or_ip:5055"}),"."]})]})}function p(e={}){const{wrapper:r}={...(0,t.a)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,r,o)=>{o.d(r,{Z:()=>i,a:()=>a});var s=o(7294);const t={},n=s.createContext(t);function a(e){const r=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),s.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fddb1d27.c97bd77d.js b/assets/js/fddb1d27.c97bd77d.js new file mode 100644 index 0000000000..8ddbcc02b0 --- /dev/null +++ b/assets/js/fddb1d27.c97bd77d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[1699],{3088:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>l});var t=o(5893),a=o(1151);const r={title:"Radarr"},i=void 0,s={id:"applications/download-tools/radarr",title:"Radarr",description:"Homepage: radarr",source:"@site/docs/applications/download-tools/radarr.md",sourceDirName:"applications/download-tools",slug:"/applications/download-tools/radarr",permalink:"/docs/applications/download-tools/radarr",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/download-tools/radarr.md",tags:[],version:"current",frontMatter:{title:"Radarr"},sidebar:"tutorialSidebar",previous:{title:"pyLoad",permalink:"/docs/applications/download-tools/pyload"},next:{title:"Sabnzbd",permalink:"/docs/applications/download-tools/sabnzbd"}},d={},l=[{value:"Usage",id:"usage",level:2},{value:"Specific Configuration",id:"specific-configuration",level:2}];function c(e){const n={a:"a",code:"code",em:"em",h2:"h2",p:"p",strong:"strong",...(0,a.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(n.p,{children:["Homepage: ",(0,t.jsx)(n.a,{href:"https://radarr.video/",children:"radarr"})]}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.strong,{children:"Radarr"})," is an independent fork of Sonarr reworked for automatically downloading movies via Usenet and BitTorrent."]}),"\n",(0,t.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,t.jsxs)(n.p,{children:["Set ",(0,t.jsx)(n.code,{children:"radarr_enabled: true"})," in your ",(0,t.jsx)(n.code,{children:"/inventories/[my inventory]/group_vars/nas.yml"})," file."]}),"\n",(0,t.jsxs)(n.p,{children:["The Radarr web interface can be found at ",(0,t.jsx)(n.code,{children:"http://ansible_nas_host_or_ip:7878"})," by default"]}),"\n",(0,t.jsx)(n.h2,{id:"specific-configuration",children:"Specific Configuration"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsxs)(n.strong,{children:["First make sure Radarr has permissions to write and read the ",(0,t.jsx)(n.code,{children:"/download"}),", and ",(0,t.jsx)(n.code,{children:"/movies"})," folders"]}),". Do this by ensuring the ",(0,t.jsx)(n.code,{children:"radarr_movies_directory:"})," and ",(0,t.jsx)(n.code,{children:"radarr_download_directory"})," settings are correct."]}),"\n",(0,t.jsxs)(n.p,{children:["Radarr will get the file path from the Download client. On default settings with Transmission the path is ",(0,t.jsx)(n.code,{children:"/storage/downloads/complete"}),". You will need to create a path mapping in the ",(0,t.jsx)(n.strong,{children:"Remote Path Mappings"})," settings under ",(0,t.jsx)(n.strong,{children:"Download Client"})," to point to your internal path that is by default ",(0,t.jsx)(n.code,{children:"/downloads"}),". ",(0,t.jsxs)(n.em,{children:["If you have difficulties with the path mapping you could also just add a new volume path for the Transmission container and use ",(0,t.jsx)(n.code,{children:"/downloads"})," as the download directory."]})]}),"\n",(0,t.jsxs)(n.p,{children:["For Radarr to understand that the ",(0,t.jsx)(n.code,{children:"/movies"})," folder is a folder, you'll need to add a new subfolder into it.\nYou can also do this by adding a random movie to the folder. Keep in mind to have the internal setting ",(0,t.jsx)(n.strong,{children:"Create empty movie folders"})," on ",(0,t.jsx)(n.strong,{children:"yes"})]}),"\n",(0,t.jsxs)(n.p,{children:["Comprehensive setup information can be found on the ",(0,t.jsx)(n.a,{href:"https://github.com/Radarr/Radarr/wiki/Setup-Guide",children:"Radarr GitHub wiki"})]})]})}function h(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1151:(e,n,o)=>{o.d(n,{Z:()=>s,a:()=>i});var t=o(7294);const a={},r=t.createContext(a);function i(e){const n=t.useContext(r);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),t.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ffd0a506.5d7c035f.js b/assets/js/ffd0a506.5d7c035f.js new file mode 100644 index 0000000000..f9960c6dac --- /dev/null +++ b/assets/js/ffd0a506.5d7c035f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[4750],{8426:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>r});var i=s(5893),n=s(1151);const o={title:"Duplicati"},a=void 0,c={id:"applications/system-tools/duplicati",title:"Duplicati",description:"Homepage//www.duplicati.com/",source:"@site/docs/applications/system-tools/duplicati.md",sourceDirName:"applications/system-tools",slug:"/applications/system-tools/duplicati",permalink:"/docs/applications/system-tools/duplicati",draft:!1,unlisted:!1,editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website/docs/applications/system-tools/duplicati.md",tags:[],version:"current",frontMatter:{title:"Duplicati"},sidebar:"tutorialSidebar",previous:{title:"Duplicacy",permalink:"/docs/applications/system-tools/duplicacy"},next:{title:"Healthchecks.io",permalink:"/docs/applications/system-tools/healthchecks.io"}},l={},r=[{value:"Usage",id:"usage",level:2}];function p(t){const e={a:"a",code:"code",h2:"h2",p:"p",...(0,n.a)(),...t.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(e.p,{children:["Homepage: ",(0,i.jsx)(e.a,{href:"https://www.duplicati.com/",children:"https://www.duplicati.com/"})]}),"\n",(0,i.jsx)(e.p,{children:"Duplicati is free backup software to store encrypted backups online For Windows, macOS and Linux"}),"\n",(0,i.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsxs)(e.p,{children:["Set ",(0,i.jsx)(e.code,{children:"duplicati_enabled: true"})," in your ",(0,i.jsx)(e.code,{children:"inventories/ /group_vars/nas.yml"})," file."]}),"\n",(0,i.jsxs)(e.p,{children:["The Duplicati web interface can be found at ",(0,i.jsx)(e.a,{href:"http://ansible_nas_host_or_ip:8200",children:"http://ansible_nas_host_or_ip:8200"}),"."]})]})}function d(t={}){const{wrapper:e}={...(0,n.a)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(p,{...t})}):p(t)}},1151:(t,e,s)=>{s.d(e,{Z:()=>c,a:()=>a});var i=s(7294);const n={},o=i.createContext(n);function a(t){const e=i.useContext(o);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:a(t.components),i.createElement(o.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/main.ca158c91.js b/assets/js/main.ca158c91.js new file mode 100644 index 0000000000..a47576fb3a --- /dev/null +++ b/assets/js/main.ca158c91.js @@ -0,0 +1,2 @@ +/*! For license information please see main.ca158c91.js.LICENSE.txt */ +(self.webpackChunkansible_nas=self.webpackChunkansible_nas||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(7294);var r=n(8356),o=n.n(r),a=n(6887);const i={"01a85c17":[()=>Promise.all([n.e(532),n.e(4013)]).then(n.bind(n,1223)),"@theme/BlogTagsListPage",1223],"042bda53":[()=>n.e(5909).then(n.bind(n,2506)),"@site/docs/applications/other/silverbullet.md",2506],"0987d6fb":[()=>n.e(6929).then(n.t.bind(n,5745,19)),"/home/runner/work/ansible-nas-old/ansible-nas-old/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"0a00e20c":[()=>n.e(7054).then(n.t.bind(n,5301,19)),"~docs/default/category-docs-tutorialsidebar-category-download-tools-1d6.json",5301],"0c57b061":[()=>n.e(6375).then(n.bind(n,8329)),"@site/docs/applications/monitoring/wireshark.md",8329],"0c914c71":[()=>n.e(9671).then(n.t.bind(n,5168,19)),"~docs/default/category-docs-tutorialsidebar-category-media-serving-c73.json",5168],"0ec50a38":[()=>n.e(6978).then(n.bind(n,6066)),"@site/docs/applications/download-tools/deluge.md",6066],"13139b20":[()=>n.e(3526).then(n.bind(n,5334)),"@site/docs/applications/gaming/minecraft-bedrock-server.md",5334],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,4228)),"@theme/DocCategoryGeneratedIndexPage",4228],"1561f364":[()=>n.e(9649).then(n.bind(n,1169)),"@site/docs/applications/download-tools/utorrent.md",1169],17896441:[()=>Promise.all([n.e(532),n.e(5814),n.e(7918)]).then(n.bind(n,5154)),"@theme/DocItem",5154],"1807758d":[()=>n.e(7348).then(n.t.bind(n,5445,19)),"~docs/default/category-docs-tutorialsidebar-category-applications-22b.json",5445],"18eaf6b3":[()=>n.e(5883).then(n.bind(n,8013)),"@site/docs/applications/system-tools/loki.md",8013],"19b672e0":[()=>n.e(2571).then(n.bind(n,5731)),"@site/docs/applications/system-tools/ddns_updater.md",5731],"1bc56dbc":[()=>n.e(5518).then(n.bind(n,8805)),"@site/docs/applications/home-automation/homebridge.md",8805],"1d85f131":[()=>n.e(3194).then(n.bind(n,9750)),"@site/docs/applications/other/nextcloud.md",9750],"1fe3248d":[()=>n.e(3474).then(n.bind(n,5339)),"@site/docs/applications/development-tools/nomad.md",5339],"2138e6be":[()=>n.e(3247).then(n.bind(n,4695)),"@site/docs/applications/download-tools/sonarr.md",4695],"226554d7":[()=>n.e(1852).then(n.bind(n,9166)),"@site/docs/applications/media-serving/minidlna.md",9166],"22e928db":[()=>n.e(5944).then(n.bind(n,6930)),"@site/docs/applications/other/traefik.md",6930],23438826:[()=>n.e(4940).then(n.bind(n,7470)),"@site/docs/applications/content-management/tiddlywiki.md",7470],"27aabdef":[()=>n.e(3204).then(n.t.bind(n,8375,19)),"~docs/default/category-docs-tutorialsidebar-category-gaming-c86.json",8375],"27fa98f4":[()=>n.e(8970).then(n.bind(n,8493)),"@site/docs/applications/other/gotify.md",8493],"29807bd8":[()=>n.e(9142).then(n.t.bind(n,9571,19)),"~docs/default/category-docs-tutorialsidebar-category-development-tools-ce5.json",9571],"2c884064":[()=>n.e(793).then(n.bind(n,1012)),"@site/docs/applications/content-management/dokuwiki.md",1012],"2cd8ac35":[()=>n.e(1940).then(n.bind(n,2452)),"@site/docs/applications/media-serving/calibre-web.md",2452],"2e52a7ea":[()=>n.e(5318).then(n.bind(n,5969)),"@site/docs/applications/other/firefly.md",5969],"3152febb":[()=>n.e(225).then(n.t.bind(n,3492,19)),"~docs/default/category-docs-tutorialsidebar-category-getting-started-3f9.json",3492],"31d2e3fa":[()=>n.e(7813).then(n.t.bind(n,5539,19)),"~docs/default/category-docs-tutorialsidebar-category-dashboards-7c4.json",5539],"43eccea0":[()=>n.e(3780).then(n.bind(n,4937)),"@site/docs/applications/development-tools/gitea.md",4937],"448920a7":[()=>n.e(7999).then(n.bind(n,3374)),"@site/docs/contributing/add-an-application.md",3374],"45ecb117":[()=>n.e(7589).then(n.t.bind(n,7311,19)),"~docs/default/category-docs-tutorialsidebar-category-other-56b.json",7311],"46eee094":[()=>n.e(5265).then(n.t.bind(n,6187,19)),"~docs/default/category-docs-tutorialsidebar-category-contributing-2d3.json",6187],"48b74e13":[()=>n.e(8917).then(n.bind(n,9534)),"@site/docs/further-configuration/nfs-exports.md",9534],"4a77a1ee":[()=>n.e(7350).then(n.bind(n,915)),"@site/docs/applications/home-automation/esphome.md",915],"4c86d22b":[()=>n.e(7306).then(n.bind(n,6026)),"@site/blog/2022-09-19-welcome/index.md?truncated=true",6026],"4e4945c5":[()=>n.e(1278).then(n.bind(n,8290)),"@site/docs/applications/other/mealie.md",8290],51549392:[()=>n.e(7219).then(n.bind(n,8907)),"@site/docs/applications/system-tools/timemachine.md",8907],"5430a473":[()=>n.e(7602).then(n.bind(n,235)),"@site/docs/applications/development-tools/drone_ci.md",235],"54f44165":[()=>n.e(152).then(n.bind(n,9145)),"@site/docs/getting-started/installation.md",9145],"57b6adb9":[()=>n.e(3024).then(n.bind(n,1803)),"@site/docs/applications/dashboards/dashy.md",1803],"59243b4a":[()=>n.e(4234).then(n.bind(n,4188)),"@site/docs/further-configuration/hardware.md",4188],"5a7afefa":[()=>n.e(9116).then(n.bind(n,3580)),"@site/docs/applications/media-serving/jellyfin.md",3580],"5ac6a52c":[()=>n.e(4361).then(n.bind(n,4476)),"@site/docs/applications/download-tools/get_iplayer.md",4476],"5e95c892":[()=>n.e(9661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"6465d520":[()=>n.e(667).then(n.t.bind(n,4452,19)),"~blog/default/blog-tags-ansible-nas-6ff-list.json",4452],"65d1c99d":[()=>n.e(3412).then(n.bind(n,4765)),"@site/docs/applications/other/wallabag.md",4765],"66c73125":[()=>n.e(9014).then(n.bind(n,9104)),"@site/docs/applications/monitoring/glances.md",9104],"6875c492":[()=>Promise.all([n.e(532),n.e(5814),n.e(130),n.e(8610)]).then(n.bind(n,1714)),"@theme/BlogTagsPostsPage",1714],"6bcf1124":[()=>n.e(6995).then(n.bind(n,711)),"@site/docs/applications/download-tools/prowlarr.md",711],"6f92de8e":[()=>n.e(4186).then(n.bind(n,7469)),"@site/docs/applications/development-tools/gitlab.md",7469],"706e1902":[()=>n.e(5837).then(n.bind(n,4367)),"@site/docs/applications/dashboards/organizr.md",4367],"729f0b03":[()=>n.e(7421).then(n.bind(n,1077)),"@site/docs/applications/development-tools/code-server.md",1077],"738e65e5":[()=>n.e(1839).then(n.bind(n,5846)),"@site/docs/further-configuration/samba-shares.md",5846],"750d9873":[()=>n.e(4814).then(n.bind(n,7822)),"@site/docs/applications/other/thelounge.md",7822],"7645baed":[()=>n.e(356).then(n.t.bind(n,4469,19)),"/home/runner/work/ansible-nas-old/ansible-nas-old/website/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",4469],"78deb359":[()=>n.e(8656).then(n.bind(n,174)),"@site/docs/applications/system-tools/healthchecks.io.md",174],"7ac255b7":[()=>n.e(6604).then(n.bind(n,5175)),"@site/docs/applications/download-tools/couchpotato.md",5175],"7ce075d9":[()=>n.e(2598).then(n.bind(n,9252)),"@site/docs/applications/media-serving/romm.md",9252],"7ffff81a":[()=>n.e(4350).then(n.bind(n,6629)),"@site/docs/applications/media-serving/calibre.md",6629],"814f3328":[()=>n.e(2535).then(n.t.bind(n,5641,19)),"~blog/default/blog-post-list-prop-default.json",5641],"82ad080f":[()=>n.e(7799).then(n.bind(n,2744)),"@site/docs/applications/other/bitwarden.md",2744],"82caa24e":[()=>n.e(8455).then(n.bind(n,3527)),"@site/docs/applications/dashboards/heimdall.md",3527],"8348f0ef":[()=>n.e(4913).then(n.bind(n,1762)),"@site/docs/applications/system-tools/minio.md",1762],"845ee9ac":[()=>n.e(9299).then(n.t.bind(n,3752,19)),"~docs/default/category-docs-tutorialsidebar-category-system-tools-107.json",3752],"846ca615":[()=>n.e(1483).then(n.bind(n,6473)),"@site/docs/applications/home-automation/mosquitto.md",6473],"8593edcb":[()=>n.e(198).then(n.bind(n,9484)),"@site/docs/getting-started/enabling-applications.md",9484],"85bdec23":[()=>n.e(5638).then(n.bind(n,7155)),"@site/docs/applications/download-tools/flaresolverr.md",7155],"8684374b":[()=>n.e(5446).then(n.bind(n,3081)),"@site/docs/applications/media-serving/mymediaforalexa.md",3081],"86e400e1":[()=>n.e(9403).then(n.bind(n,1381)),"@site/docs/applications/gaming/minecraft-server.md",1381],"88b6c1ad":[()=>n.e(1874).then(n.bind(n,9801)),"@site/docs/applications/system-tools/watchtower.md",9801],"8905426d":[()=>n.e(5835).then(n.bind(n,2919)),"@site/docs/applications/news/miniflux.md",2919],"89ba8541":[()=>n.e(2094).then(n.bind(n,1841)),"@site/docs/getting-started/configure-dashboard.md",1841],"8c55fa2f":[()=>n.e(5325).then(n.t.bind(n,5990,19)),"~docs/default/category-docs-tutorialsidebar-category-content-management-8e3.json",5990],"8c72b85b":[()=>n.e(9039).then(n.t.bind(n,8295,19)),"~docs/default/category-docs-tutorialsidebar-category-news-60b.json",8295],"8df2495e":[()=>n.e(1526).then(n.bind(n,5945)),"@site/docs/applications/download-tools/transmission.md",5945],"8ebe0c38":[()=>n.e(8416).then(n.bind(n,9269)),"@site/docs/applications/media-serving/threadfin.md",9269],"9281dee7":[()=>n.e(2833).then(n.bind(n,3604)),"@site/docs/applications/home-automation/openhab.md",3604],"92c7c73e":[()=>n.e(1765).then(n.bind(n,9098)),"@site/docs/applications/monitoring/stats.md",9098],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"93a4bf09":[()=>n.e(6709).then(n.bind(n,5754)),"@site/docs/applications/system-tools/krusader.md",5754],"952c0338":[()=>n.e(6686).then(n.bind(n,5107)),"@site/docs/applications/download-tools/nzbget.md",5107],97201270:[()=>n.e(1996).then(n.bind(n,6008)),"@site/docs/applications/system-tools/promtail.md",6008],"97290eac":[()=>n.e(1037).then(n.bind(n,7537)),"@site/docs/applications/news/freshrss.md",7537],"988e94bb":[()=>n.e(5498).then(n.bind(n,337)),"@site/docs/applications/other/paperless_ng.md",337],"9cf795e3":[()=>n.e(8967).then(n.t.bind(n,1685,19)),"~docs/default/category-docs-tutorialsidebar-category-monitoring-e41.json",1685],"9dcd3851":[()=>n.e(5586).then(n.bind(n,262)),"@site/docs/applications/system-tools/cloudflare_ddns.md",262],"9e4087bc":[()=>n.e(3608).then(n.bind(n,3169)),"@theme/BlogArchivePage",3169],a04ec718:[()=>n.e(6396).then(n.bind(n,9672)),"@site/docs/applications/other/virtual_desktop.md",9672],a0f8a642:[()=>n.e(3571).then(n.bind(n,8564)),"@site/docs/applications/home-automation/n8n.md",8564],a151d981:[()=>n.e(5986).then(n.bind(n,8098)),"@site/docs/applications/download-tools/jackett.md",8098],a1b885bc:[()=>n.e(29).then(n.bind(n,5946)),"@site/docs/applications/download-tools/sabnzbd.md",5946],a49d54d7:[()=>n.e(7187).then(n.t.bind(n,4841,19)),"~blog/default/blog-tags-website-ecf.json",4841],a50a43fb:[()=>n.e(1480).then(n.bind(n,6469)),"@site/docs/applications/content-management/joomla.md",6469],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(5814),n.e(130),n.e(3089)]).then(n.bind(n,46)),"@theme/BlogListPage",46],a6f41b68:[()=>n.e(1479).then(n.bind(n,6262)),"@site/docs/applications/stacks/logging.md",6262],a7023ddc:[()=>n.e(1713).then(n.t.bind(n,3457,19)),"~blog/default/blog-tags-tags-4c2.json",3457],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,7255)),"@theme/DocVersionRoot",7255],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,2674)),"@theme/DocRoot",2674],a970095a:[()=>n.e(9038).then(n.bind(n,1102)),"@site/docs/applications/media-serving/tautulli.md",1102],ab4454dc:[()=>n.e(9225).then(n.t.bind(n,6639,19)),"~docs/default/category-docs-tutorialsidebar-category-stacks-c2c.json",6639],ad09f174:[()=>n.e(1473).then(n.bind(n,4750)),"@site/docs/applications/other/hello_world.md",4750],ad99c96a:[()=>n.e(8308).then(n.bind(n,8297)),"@site/docs/contributing/development-environment.md",8297],adaff3e8:[()=>n.e(4959).then(n.bind(n,938)),"@site/docs/applications/media-serving/emby.md",938],ae3283a5:[()=>n.e(720).then(n.bind(n,8410)),"@site/docs/applications/media-serving/komga.md",8410],b280f023:[()=>n.e(9724).then(n.bind(n,9114)),"@site/docs/applications/download-tools/lidarr.md",9114],b2b675dd:[()=>n.e(533).then(n.t.bind(n,8017,19)),"~blog/default/blog-c06.json",8017],b2f554cd:[()=>n.e(1477).then(n.t.bind(n,10,19)),"~blog/default/blog-archive-80c.json",10],b37ec2af:[()=>n.e(1084).then(n.bind(n,1522)),"@site/docs/applications/media-serving/ubooquity.md",1522],b710f03f:[()=>n.e(9935).then(n.bind(n,2128)),"@site/docs/applications/download-tools/ombi.md",2128],b906a42b:[()=>n.e(729).then(n.bind(n,9886)),"@site/docs/upgrading.md",9886],b9dab9c9:[()=>n.e(1472).then(n.t.bind(n,5758,19)),"~docs/default/category-docs-tutorialsidebar-category-observability-a3f.json",5758],ba258535:[()=>n.e(5550).then(n.t.bind(n,8042,19)),"~blog/default/blog-tags-ansible-nas-6ff.json",8042],bd782b2c:[()=>n.e(2544).then(n.bind(n,2807)),"@site/docs/applications/system-tools/netbootxyz.md",2807],be539c39:[()=>n.e(5207).then(n.bind(n,9287)),"@site/docs/applications/system-tools/portainer.md",9287],c240dca4:[()=>n.e(9351).then(n.bind(n,6558)),"@site/blog/2022-09-19-welcome/index.md",6558],c377a04b:[()=>n.e(6971).then(n.bind(n,9925)),"@site/docs/index.md",9925],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,3261)),"@site/src/pages/index.js",3261],c9b8643b:[()=>n.e(8171).then(n.bind(n,2275)),"@site/docs/applications/download-tools/youtubedlmaterial.md",2275],cad7e91f:[()=>n.e(8458).then(n.bind(n,9260)),"@site/docs/applications/download-tools/bazarr.md",9260],ccc49370:[()=>Promise.all([n.e(532),n.e(5814),n.e(130),n.e(6103)]).then(n.bind(n,5203)),"@theme/BlogPostPage",5203],d1de2f22:[()=>n.e(9465).then(n.bind(n,1065)),"@site/docs/applications/news/rssbridge.md",1065],d22a62cd:[()=>n.e(9741).then(n.t.bind(n,4691,19)),"~docs/default/category-docs-tutorialsidebar-category-home-automation-80b.json",4691],d5fa0a96:[()=>n.e(1868).then(n.bind(n,6972)),"@site/docs/applications/download-tools/mylar.md",6972],d6642739:[()=>n.e(674).then(n.bind(n,5877)),"@site/docs/applications/system-tools/duplicacy.md",5877],d9e16301:[()=>n.e(6217).then(n.bind(n,3514)),"@site/docs/support.md",3514],dc84a1c4:[()=>n.e(1974).then(n.bind(n,3508)),"@site/docs/applications/other/guacamole.md",3508],e34a7319:[()=>n.e(3955).then(n.bind(n,2126)),"@site/docs/further-configuration/migrating-from-freenas.md",2126],e3e38c7a:[()=>n.e(1147).then(n.bind(n,6126)),"@site/docs/applications/download-tools/pyload.md",6126],e435e0fa:[()=>n.e(5414).then(n.bind(n,4123)),"@site/docs/applications/other/octoprint.md",4123],e441f269:[()=>n.e(1977).then(n.bind(n,7709)),"@site/docs/applications/system-tools/route53_ddns.md",7709],e529306b:[()=>n.e(8126).then(n.bind(n,6374)),"@site/docs/applications/gaming/valheim.md",6374],e563856b:[()=>n.e(9073).then(n.bind(n,8337)),"@site/docs/applications/system-tools/cloudcmd.md",8337],e860bafb:[()=>n.e(8421).then(n.bind(n,1277)),"@site/docs/applications/media-serving/airsonic.md",1277],ebdcce7c:[()=>n.e(7767).then(n.bind(n,63)),"@site/docs/applications/monitoring/speedtest.md",63],ecb32864:[()=>n.e(4608).then(n.bind(n,1495)),"@site/docs/applications/media-serving/plex.md",1495],ef5c90a0:[()=>n.e(5216).then(n.t.bind(n,8758,19)),"~blog/default/blog-tags-website-ecf-list.json",8758],efc8ef5c:[()=>n.e(7932).then(n.bind(n,1571)),"@site/docs/applications/observability/grafana.md",1571],f04cdb90:[()=>n.e(4821).then(n.bind(n,1802)),"@site/docs/applications/development-tools/woodpecker_ci.md",1802],f0878079:[()=>n.e(3373).then(n.bind(n,6080)),"@site/docs/applications/media-serving/navidrome.md",6080],f28278b8:[()=>n.e(9276).then(n.t.bind(n,3617,19)),"~docs/default/category-docs-tutorialsidebar-category-further-configuration-67a.json",3617],f3c20bd6:[()=>n.e(7677).then(n.bind(n,1498)),"@site/docs/applications/media-serving/booksonic.md",1498],f4a7a7ec:[()=>n.e(9141).then(n.bind(n,1273)),"@site/docs/applications/dashboards/homepage.md",1273],f6436b4c:[()=>n.e(2801).then(n.bind(n,5597)),"@site/docs/applications/other/mumble.md",5597],f6aca652:[()=>n.e(636).then(n.bind(n,6698)),"@site/docs/applications/media-serving/pytivo.md",6698],f7ab641b:[()=>n.e(3178).then(n.bind(n,3439)),"@site/docs/applications/other/piwigo.md",3439],f81fbd6e:[()=>n.e(3700).then(n.t.bind(n,3769,19)),"/home/runner/work/ansible-nas-old/ansible-nas-old/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],f8354261:[()=>n.e(8343).then(n.bind(n,1922)),"@site/docs/getting-started/external-access.md",1922],f9b36fa1:[()=>n.e(6010).then(n.bind(n,4767)),"@site/docs/applications/system-tools/syncthing.md",4767],fa1e8305:[()=>n.e(4095).then(n.bind(n,2882)),"@site/docs/applications/home-automation/homeassistant.md",2882],fc4d05f6:[()=>n.e(20).then(n.bind(n,1029)),"@site/docs/applications/download-tools/overseerr.md",1029],fddb1d27:[()=>n.e(1699).then(n.bind(n,3088)),"@site/docs/applications/download-tools/radarr.md",3088],ffd0a506:[()=>n.e(4750).then(n.bind(n,8426)),"@site/docs/applications/system-tools/duplicati.md",8426]};var l=n(5893);function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(t)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(9670),u=n(226);function d(e,t){if("*"===e)return o()({loading:s,loader:()=>n.e(1772).then(n.bind(n,1772)),modules:["@theme/NotFound"],webpack:()=>[1772],render(e,t){const n=e.default;return(0,l.jsx)(u.z,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=a[`${e}-${t}`],d={},p=[],f=[],m=(0,c.Z)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),o().Map({loading:s,loader:d,modules:p,webpack:()=>f,render(t,n){const o=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let i=o;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=a}));const a=o.__comp;delete o.__comp;const i=o.__context;return delete o.__context,(0,l.jsx)(u.z,{value:i,children:(0,l.jsx)(a,{...o,...n})})}})}const p=[{path:"/blog/",component:d("/blog/","271"),exact:!0},{path:"/blog/archive/",component:d("/blog/archive/","9e7"),exact:!0},{path:"/blog/tags/",component:d("/blog/tags/","936"),exact:!0},{path:"/blog/tags/ansible-nas/",component:d("/blog/tags/ansible-nas/","e59"),exact:!0},{path:"/blog/tags/website/",component:d("/blog/tags/website/","770"),exact:!0},{path:"/blog/welcome/",component:d("/blog/welcome/","455"),exact:!0},{path:"/docs/",component:d("/docs/","6ed"),routes:[{path:"/docs/",component:d("/docs/","ceb"),routes:[{path:"/docs/",component:d("/docs/","2f0"),routes:[{path:"/docs/",component:d("/docs/","a8c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/content-management/dokuwiki/",component:d("/docs/applications/content-management/dokuwiki/","9d3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/content-management/joomla/",component:d("/docs/applications/content-management/joomla/","5f4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/content-management/tiddlywiki/",component:d("/docs/applications/content-management/tiddlywiki/","a1c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/dashboards/dashy/",component:d("/docs/applications/dashboards/dashy/","c7a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/dashboards/heimdall/",component:d("/docs/applications/dashboards/heimdall/","214"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/dashboards/homepage/",component:d("/docs/applications/dashboards/homepage/","7c4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/dashboards/organizr/",component:d("/docs/applications/dashboards/organizr/","c00"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/development-tools/code-server/",component:d("/docs/applications/development-tools/code-server/","1a9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/development-tools/drone_ci/",component:d("/docs/applications/development-tools/drone_ci/","b49"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/development-tools/gitea/",component:d("/docs/applications/development-tools/gitea/","203"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/development-tools/gitlab/",component:d("/docs/applications/development-tools/gitlab/","7ed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/development-tools/nomad/",component:d("/docs/applications/development-tools/nomad/","22b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/development-tools/woodpecker_ci/",component:d("/docs/applications/development-tools/woodpecker_ci/","036"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/bazarr/",component:d("/docs/applications/download-tools/bazarr/","726"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/couchpotato/",component:d("/docs/applications/download-tools/couchpotato/","0ff"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/deluge/",component:d("/docs/applications/download-tools/deluge/","396"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/flaresolverr/",component:d("/docs/applications/download-tools/flaresolverr/","841"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/get_iplayer/",component:d("/docs/applications/download-tools/get_iplayer/","60d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/jackett/",component:d("/docs/applications/download-tools/jackett/","065"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/lidarr/",component:d("/docs/applications/download-tools/lidarr/","5de"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/mylar/",component:d("/docs/applications/download-tools/mylar/","1b7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/nzbget/",component:d("/docs/applications/download-tools/nzbget/","a2a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/ombi/",component:d("/docs/applications/download-tools/ombi/","ad6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/overseerr/",component:d("/docs/applications/download-tools/overseerr/","c96"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/prowlarr/",component:d("/docs/applications/download-tools/prowlarr/","164"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/pyload/",component:d("/docs/applications/download-tools/pyload/","c9a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/radarr/",component:d("/docs/applications/download-tools/radarr/","2a5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/sabnzbd/",component:d("/docs/applications/download-tools/sabnzbd/","c97"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/sonarr/",component:d("/docs/applications/download-tools/sonarr/","142"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/transmission/",component:d("/docs/applications/download-tools/transmission/","6ff"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/utorrent/",component:d("/docs/applications/download-tools/utorrent/","399"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/download-tools/youtubedlmaterial/",component:d("/docs/applications/download-tools/youtubedlmaterial/","25c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/gaming/minecraft-bedrock-server/",component:d("/docs/applications/gaming/minecraft-bedrock-server/","5dd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/gaming/minecraft-server/",component:d("/docs/applications/gaming/minecraft-server/","52c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/gaming/valheim/",component:d("/docs/applications/gaming/valheim/","770"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/home-automation/esphome/",component:d("/docs/applications/home-automation/esphome/","c40"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/home-automation/homeassistant/",component:d("/docs/applications/home-automation/homeassistant/","b94"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/home-automation/homebridge/",component:d("/docs/applications/home-automation/homebridge/","5e0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/home-automation/mosquitto/",component:d("/docs/applications/home-automation/mosquitto/","181"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/home-automation/n8n/",component:d("/docs/applications/home-automation/n8n/","63b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/home-automation/openhab/",component:d("/docs/applications/home-automation/openhab/","178"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/airsonic/",component:d("/docs/applications/media-serving/airsonic/","36d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/booksonic/",component:d("/docs/applications/media-serving/booksonic/","5f2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/calibre-web/",component:d("/docs/applications/media-serving/calibre-web/","e3e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/calibre/",component:d("/docs/applications/media-serving/calibre/","3cb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/emby/",component:d("/docs/applications/media-serving/emby/","ad8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/jellyfin/",component:d("/docs/applications/media-serving/jellyfin/","4b5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/komga/",component:d("/docs/applications/media-serving/komga/","ae9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/minidlna/",component:d("/docs/applications/media-serving/minidlna/","3e3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/mymediaforalexa/",component:d("/docs/applications/media-serving/mymediaforalexa/","f32"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/navidrome/",component:d("/docs/applications/media-serving/navidrome/","902"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/plex/",component:d("/docs/applications/media-serving/plex/","3f3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/pytivo/",component:d("/docs/applications/media-serving/pytivo/","e3c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/romm/",component:d("/docs/applications/media-serving/romm/","cee"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/tautulli/",component:d("/docs/applications/media-serving/tautulli/","380"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/threadfin/",component:d("/docs/applications/media-serving/threadfin/","4a2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/media-serving/ubooquity/",component:d("/docs/applications/media-serving/ubooquity/","9b4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/monitoring/glances/",component:d("/docs/applications/monitoring/glances/","33c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/monitoring/speedtest/",component:d("/docs/applications/monitoring/speedtest/","f76"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/monitoring/stats/",component:d("/docs/applications/monitoring/stats/","421"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/monitoring/wireshark/",component:d("/docs/applications/monitoring/wireshark/","97c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/news/freshrss/",component:d("/docs/applications/news/freshrss/","586"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/news/miniflux/",component:d("/docs/applications/news/miniflux/","44f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/news/rssbridge/",component:d("/docs/applications/news/rssbridge/","d81"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/observability/grafana/",component:d("/docs/applications/observability/grafana/","0fc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/bitwarden/",component:d("/docs/applications/other/bitwarden/","465"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/firefly/",component:d("/docs/applications/other/firefly/","a24"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/gotify/",component:d("/docs/applications/other/gotify/","aa0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/guacamole/",component:d("/docs/applications/other/guacamole/","fae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/hello_world/",component:d("/docs/applications/other/hello_world/","8ae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/mealie/",component:d("/docs/applications/other/mealie/","8b3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/mumble/",component:d("/docs/applications/other/mumble/","130"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/nextcloud/",component:d("/docs/applications/other/nextcloud/","245"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/octoprint/",component:d("/docs/applications/other/octoprint/","54d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/paperless_ng/",component:d("/docs/applications/other/paperless_ng/","72c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/piwigo/",component:d("/docs/applications/other/piwigo/","9ee"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/silverbullet/",component:d("/docs/applications/other/silverbullet/","c15"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/thelounge/",component:d("/docs/applications/other/thelounge/","9df"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/traefik/",component:d("/docs/applications/other/traefik/","083"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/virtual_desktop/",component:d("/docs/applications/other/virtual_desktop/","ef6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/other/wallabag/",component:d("/docs/applications/other/wallabag/","0cd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/stacks/logging/",component:d("/docs/applications/stacks/logging/","5c6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/cloudcmd/",component:d("/docs/applications/system-tools/cloudcmd/","d66"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/cloudflare_ddns/",component:d("/docs/applications/system-tools/cloudflare_ddns/","779"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/ddns_updater/",component:d("/docs/applications/system-tools/ddns_updater/","da0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/duplicacy/",component:d("/docs/applications/system-tools/duplicacy/","097"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/duplicati/",component:d("/docs/applications/system-tools/duplicati/","9c9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/healthchecks.io/",component:d("/docs/applications/system-tools/healthchecks.io/","add"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/krusader/",component:d("/docs/applications/system-tools/krusader/","9a4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/loki/",component:d("/docs/applications/system-tools/loki/","84b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/minio/",component:d("/docs/applications/system-tools/minio/","76a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/netbootxyz/",component:d("/docs/applications/system-tools/netbootxyz/","504"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/portainer/",component:d("/docs/applications/system-tools/portainer/","b22"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/promtail/",component:d("/docs/applications/system-tools/promtail/","d75"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/route53_ddns/",component:d("/docs/applications/system-tools/route53_ddns/","aff"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/syncthing/",component:d("/docs/applications/system-tools/syncthing/","4e5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/timemachine/",component:d("/docs/applications/system-tools/timemachine/","5c3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/applications/system-tools/watchtower/",component:d("/docs/applications/system-tools/watchtower/","e63"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/applications/",component:d("/docs/category/applications/","3a3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/content-management/",component:d("/docs/category/content-management/","2c9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/contributing/",component:d("/docs/category/contributing/","d1e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/dashboards/",component:d("/docs/category/dashboards/","3ef"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/development-tools/",component:d("/docs/category/development-tools/","7d0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/download-tools/",component:d("/docs/category/download-tools/","494"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/further-configuration/",component:d("/docs/category/further-configuration/","56d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/gaming/",component:d("/docs/category/gaming/","ac7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/getting-started/",component:d("/docs/category/getting-started/","b1c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/home-automation/",component:d("/docs/category/home-automation/","7bd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/media-serving/",component:d("/docs/category/media-serving/","75b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/monitoring/",component:d("/docs/category/monitoring/","62d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/news/",component:d("/docs/category/news/","f93"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/observability/",component:d("/docs/category/observability/","140"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/other/",component:d("/docs/category/other/","638"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/stacks/",component:d("/docs/category/stacks/","b74"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/system-tools/",component:d("/docs/category/system-tools/","672"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/contributing/add-an-application/",component:d("/docs/contributing/add-an-application/","9ae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/contributing/development-environment/",component:d("/docs/contributing/development-environment/","460"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/further-configuration/hardware/",component:d("/docs/further-configuration/hardware/","3a8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/further-configuration/migrating-from-freenas/",component:d("/docs/further-configuration/migrating-from-freenas/","394"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/further-configuration/nfs-exports/",component:d("/docs/further-configuration/nfs-exports/","23c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/further-configuration/samba-shares/",component:d("/docs/further-configuration/samba-shares/","14d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/getting-started/configure-dashboard/",component:d("/docs/getting-started/configure-dashboard/","85c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/getting-started/enabling-applications/",component:d("/docs/getting-started/enabling-applications/","777"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/getting-started/external-access/",component:d("/docs/getting-started/external-access/","829"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/getting-started/installation/",component:d("/docs/getting-started/installation/","0a0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/support/",component:d("/docs/support/","453"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/upgrading/",component:d("/docs/upgrading/","87d"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"/",component:d("/","28a"),exact:!0},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>i});var r=n(7294),o=n(5893);const a=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,o.jsx)(a.Provider,{value:n,children:t})}},7221:(e,t,n)=>{"use strict";var r=n(7294),o=n(745),a=n(3727),i=n(405),l=n(412);const s=[n(2497),n(3310),n(8320),n(2295)];var c=n(723),u=n(6550),d=n(8790),p=n(5893);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(5742),h=n(2263),g=n(4996),b=n(6668),y=n(1944),v=n(4711),w=n(9727),k=n(3320),x=n(8780),S=n(197);function _(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,h.Z)(),r=(0,v.l)(),o=n[e].htmlLang,a=e=>e.replace("-","_");return(0,p.jsxs)(m.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:a(o)}),Object.values(n).filter((e=>o!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:a(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,h.Z)(),{pathname:r}=(0,u.TH)();return e+(0,x.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),o=t?`${n}${t}`:r;return(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("meta",{property:"og:url",content:o}),(0,p.jsx)("link",{rel:"canonical",href:o})]})}function C(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.h})]}),n&&(0,p.jsx)(y.d,{image:n}),(0,p.jsx)(E,{}),(0,p.jsx)(_,{}),(0,p.jsx)(S.Z,{tag:k.HX,locale:e}),(0,p.jsx)(m.Z,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const T=new Map;function j(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var A=n(8934),L=n(8940),N=n(469);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r {const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,N.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),R("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class D extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(P,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(u.AW,{location:t,render:()=>e})})}}const I=D,F="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${F}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n \n\n`}(e)).replace(/{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(9670);const K=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!K.has(e))(e))return!1;K.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(W).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Q(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),O(e))},te=Object.freeze(ee),ne=Boolean(!0);if(l.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.B6,{children:(0,p.jsx)(a.VK,{children:(0,p.jsx)(V,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},l=()=>{if(ne)r.startTransition((()=>{o.hydrateRoot(e,t,{onRecoverableError:n})}));else{const a=o.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{a.render(t)}))}};O(window.location.pathname).then(l)}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>p});var r=n(7294),o=n(6809);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"index","docs":[{"id":"applications/content-management/dokuwiki","path":"/docs/applications/content-management/dokuwiki","sidebar":"tutorialSidebar"},{"id":"applications/content-management/joomla","path":"/docs/applications/content-management/joomla","sidebar":"tutorialSidebar"},{"id":"applications/content-management/tiddlywiki","path":"/docs/applications/content-management/tiddlywiki","sidebar":"tutorialSidebar"},{"id":"applications/dashboards/dashy","path":"/docs/applications/dashboards/dashy","sidebar":"tutorialSidebar"},{"id":"applications/dashboards/heimdall","path":"/docs/applications/dashboards/heimdall","sidebar":"tutorialSidebar"},{"id":"applications/dashboards/homepage","path":"/docs/applications/dashboards/homepage","sidebar":"tutorialSidebar"},{"id":"applications/dashboards/organizr","path":"/docs/applications/dashboards/organizr","sidebar":"tutorialSidebar"},{"id":"applications/development-tools/code-server","path":"/docs/applications/development-tools/code-server","sidebar":"tutorialSidebar"},{"id":"applications/development-tools/drone_ci","path":"/docs/applications/development-tools/drone_ci","sidebar":"tutorialSidebar"},{"id":"applications/development-tools/gitea","path":"/docs/applications/development-tools/gitea","sidebar":"tutorialSidebar"},{"id":"applications/development-tools/gitlab","path":"/docs/applications/development-tools/gitlab","sidebar":"tutorialSidebar"},{"id":"applications/development-tools/nomad","path":"/docs/applications/development-tools/nomad","sidebar":"tutorialSidebar"},{"id":"applications/development-tools/woodpecker_ci","path":"/docs/applications/development-tools/woodpecker_ci","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/bazarr","path":"/docs/applications/download-tools/bazarr","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/couchpotato","path":"/docs/applications/download-tools/couchpotato","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/deluge","path":"/docs/applications/download-tools/deluge","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/flaresolverr","path":"/docs/applications/download-tools/flaresolverr","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/get_iplayer","path":"/docs/applications/download-tools/get_iplayer","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/jackett","path":"/docs/applications/download-tools/jackett","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/lidarr","path":"/docs/applications/download-tools/lidarr","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/mylar","path":"/docs/applications/download-tools/mylar","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/nzbget","path":"/docs/applications/download-tools/nzbget","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/ombi","path":"/docs/applications/download-tools/ombi","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/overseerr","path":"/docs/applications/download-tools/overseerr","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/prowlarr","path":"/docs/applications/download-tools/prowlarr","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/pyload","path":"/docs/applications/download-tools/pyload","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/radarr","path":"/docs/applications/download-tools/radarr","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/sabnzbd","path":"/docs/applications/download-tools/sabnzbd","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/sonarr","path":"/docs/applications/download-tools/sonarr","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/transmission","path":"/docs/applications/download-tools/transmission","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/utorrent","path":"/docs/applications/download-tools/utorrent","sidebar":"tutorialSidebar"},{"id":"applications/download-tools/youtubedlmaterial","path":"/docs/applications/download-tools/youtubedlmaterial","sidebar":"tutorialSidebar"},{"id":"applications/gaming/minecraft-bedrock-server","path":"/docs/applications/gaming/minecraft-bedrock-server","sidebar":"tutorialSidebar"},{"id":"applications/gaming/minecraft-server","path":"/docs/applications/gaming/minecraft-server","sidebar":"tutorialSidebar"},{"id":"applications/gaming/valheim","path":"/docs/applications/gaming/valheim","sidebar":"tutorialSidebar"},{"id":"applications/home-automation/esphome","path":"/docs/applications/home-automation/esphome","sidebar":"tutorialSidebar"},{"id":"applications/home-automation/homeassistant","path":"/docs/applications/home-automation/homeassistant","sidebar":"tutorialSidebar"},{"id":"applications/home-automation/homebridge","path":"/docs/applications/home-automation/homebridge","sidebar":"tutorialSidebar"},{"id":"applications/home-automation/mosquitto","path":"/docs/applications/home-automation/mosquitto","sidebar":"tutorialSidebar"},{"id":"applications/home-automation/n8n","path":"/docs/applications/home-automation/n8n","sidebar":"tutorialSidebar"},{"id":"applications/home-automation/openhab","path":"/docs/applications/home-automation/openhab","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/airsonic","path":"/docs/applications/media-serving/airsonic","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/booksonic","path":"/docs/applications/media-serving/booksonic","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/calibre","path":"/docs/applications/media-serving/calibre","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/calibre-web","path":"/docs/applications/media-serving/calibre-web","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/emby","path":"/docs/applications/media-serving/emby","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/jellyfin","path":"/docs/applications/media-serving/jellyfin","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/komga","path":"/docs/applications/media-serving/komga","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/minidlna","path":"/docs/applications/media-serving/minidlna","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/mymediaforalexa","path":"/docs/applications/media-serving/mymediaforalexa","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/navidrome","path":"/docs/applications/media-serving/navidrome","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/plex","path":"/docs/applications/media-serving/plex","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/pytivo","path":"/docs/applications/media-serving/pytivo","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/romm","path":"/docs/applications/media-serving/romm","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/tautulli","path":"/docs/applications/media-serving/tautulli","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/threadfin","path":"/docs/applications/media-serving/threadfin","sidebar":"tutorialSidebar"},{"id":"applications/media-serving/ubooquity","path":"/docs/applications/media-serving/ubooquity","sidebar":"tutorialSidebar"},{"id":"applications/monitoring/glances","path":"/docs/applications/monitoring/glances","sidebar":"tutorialSidebar"},{"id":"applications/monitoring/speedtest","path":"/docs/applications/monitoring/speedtest","sidebar":"tutorialSidebar"},{"id":"applications/monitoring/stats","path":"/docs/applications/monitoring/stats","sidebar":"tutorialSidebar"},{"id":"applications/monitoring/wireshark","path":"/docs/applications/monitoring/wireshark","sidebar":"tutorialSidebar"},{"id":"applications/news/freshrss","path":"/docs/applications/news/freshrss","sidebar":"tutorialSidebar"},{"id":"applications/news/miniflux","path":"/docs/applications/news/miniflux","sidebar":"tutorialSidebar"},{"id":"applications/news/rssbridge","path":"/docs/applications/news/rssbridge","sidebar":"tutorialSidebar"},{"id":"applications/observability/grafana","path":"/docs/applications/observability/grafana","sidebar":"tutorialSidebar"},{"id":"applications/other/bitwarden","path":"/docs/applications/other/bitwarden","sidebar":"tutorialSidebar"},{"id":"applications/other/firefly","path":"/docs/applications/other/firefly","sidebar":"tutorialSidebar"},{"id":"applications/other/gotify","path":"/docs/applications/other/gotify","sidebar":"tutorialSidebar"},{"id":"applications/other/guacamole","path":"/docs/applications/other/guacamole","sidebar":"tutorialSidebar"},{"id":"applications/other/hello_world","path":"/docs/applications/other/hello_world","sidebar":"tutorialSidebar"},{"id":"applications/other/mealie","path":"/docs/applications/other/mealie","sidebar":"tutorialSidebar"},{"id":"applications/other/mumble","path":"/docs/applications/other/mumble","sidebar":"tutorialSidebar"},{"id":"applications/other/nextcloud","path":"/docs/applications/other/nextcloud","sidebar":"tutorialSidebar"},{"id":"applications/other/octoprint","path":"/docs/applications/other/octoprint","sidebar":"tutorialSidebar"},{"id":"applications/other/paperless_ng","path":"/docs/applications/other/paperless_ng","sidebar":"tutorialSidebar"},{"id":"applications/other/piwigo","path":"/docs/applications/other/piwigo","sidebar":"tutorialSidebar"},{"id":"applications/other/silverbullet","path":"/docs/applications/other/silverbullet","sidebar":"tutorialSidebar"},{"id":"applications/other/thelounge","path":"/docs/applications/other/thelounge","sidebar":"tutorialSidebar"},{"id":"applications/other/traefik","path":"/docs/applications/other/traefik","sidebar":"tutorialSidebar"},{"id":"applications/other/virtual_desktop","path":"/docs/applications/other/virtual_desktop","sidebar":"tutorialSidebar"},{"id":"applications/other/wallabag","path":"/docs/applications/other/wallabag","sidebar":"tutorialSidebar"},{"id":"applications/stacks/logging","path":"/docs/applications/stacks/logging","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/cloudcmd","path":"/docs/applications/system-tools/cloudcmd","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/cloudflare_ddns","path":"/docs/applications/system-tools/cloudflare_ddns","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/ddns_updater","path":"/docs/applications/system-tools/ddns_updater","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/duplicacy","path":"/docs/applications/system-tools/duplicacy","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/duplicati","path":"/docs/applications/system-tools/duplicati","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/healthchecks.io","path":"/docs/applications/system-tools/healthchecks.io","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/krusader","path":"/docs/applications/system-tools/krusader","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/loki","path":"/docs/applications/system-tools/loki","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/minio","path":"/docs/applications/system-tools/minio","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/netbootxyz","path":"/docs/applications/system-tools/netbootxyz","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/portainer","path":"/docs/applications/system-tools/portainer","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/promtail","path":"/docs/applications/system-tools/promtail","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/route53_ddns","path":"/docs/applications/system-tools/route53_ddns","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/syncthing","path":"/docs/applications/system-tools/syncthing","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/timemachine","path":"/docs/applications/system-tools/timemachine","sidebar":"tutorialSidebar"},{"id":"applications/system-tools/watchtower","path":"/docs/applications/system-tools/watchtower","sidebar":"tutorialSidebar"},{"id":"contributing/add-an-application","path":"/docs/contributing/add-an-application","sidebar":"tutorialSidebar"},{"id":"contributing/development-environment","path":"/docs/contributing/development-environment","sidebar":"tutorialSidebar"},{"id":"further-configuration/hardware","path":"/docs/further-configuration/hardware","sidebar":"tutorialSidebar"},{"id":"further-configuration/migrating-from-freenas","path":"/docs/further-configuration/migrating-from-freenas","sidebar":"tutorialSidebar"},{"id":"further-configuration/nfs-exports","path":"/docs/further-configuration/nfs-exports","sidebar":"tutorialSidebar"},{"id":"further-configuration/samba-shares","path":"/docs/further-configuration/samba-shares","sidebar":"tutorialSidebar"},{"id":"getting-started/configure-dashboard","path":"/docs/getting-started/configure-dashboard","sidebar":"tutorialSidebar"},{"id":"getting-started/enabling-applications","path":"/docs/getting-started/enabling-applications","sidebar":"tutorialSidebar"},{"id":"getting-started/external-access","path":"/docs/getting-started/external-access","sidebar":"tutorialSidebar"},{"id":"getting-started/installation","path":"/docs/getting-started/installation","sidebar":"tutorialSidebar"},{"id":"index","path":"/docs/","sidebar":"tutorialSidebar"},{"id":"support","path":"/docs/support","sidebar":"tutorialSidebar"},{"id":"upgrading","path":"/docs/upgrading","sidebar":"tutorialSidebar"},{"id":"/category/getting-started","path":"/docs/category/getting-started","sidebar":"tutorialSidebar"},{"id":"/category/applications","path":"/docs/category/applications","sidebar":"tutorialSidebar"},{"id":"/category/content-management","path":"/docs/category/content-management","sidebar":"tutorialSidebar"},{"id":"/category/dashboards","path":"/docs/category/dashboards","sidebar":"tutorialSidebar"},{"id":"/category/development-tools","path":"/docs/category/development-tools","sidebar":"tutorialSidebar"},{"id":"/category/download-tools","path":"/docs/category/download-tools","sidebar":"tutorialSidebar"},{"id":"/category/gaming","path":"/docs/category/gaming","sidebar":"tutorialSidebar"},{"id":"/category/home-automation","path":"/docs/category/home-automation","sidebar":"tutorialSidebar"},{"id":"/category/media-serving","path":"/docs/category/media-serving","sidebar":"tutorialSidebar"},{"id":"/category/monitoring","path":"/docs/category/monitoring","sidebar":"tutorialSidebar"},{"id":"/category/news","path":"/docs/category/news","sidebar":"tutorialSidebar"},{"id":"/category/observability","path":"/docs/category/observability","sidebar":"tutorialSidebar"},{"id":"/category/other","path":"/docs/category/other","sidebar":"tutorialSidebar"},{"id":"/category/stacks","path":"/docs/category/stacks","sidebar":"tutorialSidebar"},{"id":"/category/system-tools","path":"/docs/category/system-tools","sidebar":"tutorialSidebar"},{"id":"/category/further-configuration","path":"/docs/category/further-configuration","sidebar":"tutorialSidebar"},{"id":"/category/contributing","path":"/docs/category/contributing","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/","label":"index"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"3.0.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.0.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.0.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.0.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.0.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.0.1"}}}');var c=n(5893);const u={siteConfig:o.default,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),o=n(412),a=n(5742),i=n(8780),l=n(6040),s=n(5893);function c(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,s.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,s.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,s.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,s.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)(f,{fallback:()=>(0,s.jsx)(c,{error:t,tryAgain:n}),children:[(0,s.jsx)(a.Z,{children:(0,s.jsx)("title",{children:"Page Error"})}),(0,s.jsx)(l.Z,{children:(0,s.jsx)(c,{error:t,tryAgain:n})})]})}const p=e=>(0,s.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(7294);var r=n(405),o=n(5893);function a(e){return(0,o.jsx)(r.ql,{...e})}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),o=n(3727),a=n(8780),i=n(2263),l=n(3919),s=n(412),c=n(5893);const u=r.createContext({collectLink:()=>{}});var d=n(4996);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.Z)(),{withBaseUrl:k}=(0,d.C)(),x=(0,r.useContext)(u),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const _=p||f;const E=(0,l.Z)(_),C=_?.replace("pathname://","");let T=void 0!==C?(j=C,b&&(e=>e.startsWith("/"))(j)?k(j):j):void 0;var j;T&&E&&(T=(0,a.applyTrailingSlash)(T,{trailingSlash:v,baseUrl:w}));const A=(0,r.useRef)(!1),L=n?o.OL:o.rU,N=s.Z.canUseIntersectionObserver,R=(0,r.useRef)(),P=()=>{A.current||null==T||(window.docusaurus.preload(T),A.current=!0)};(0,r.useEffect)((()=>(!N&&E&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&R.current&&R.current.disconnect()})),[R,T,N,E]);const O=T?.startsWith("#")??!1,D=!T||!E||O;return D||g||x.collectLink(T),D?(0,c.jsx)("a",{ref:S,href:T,..._&&!E&&{target:"_blank",rel:"noopener noreferrer"},...y}):(0,c.jsx)(L,{...y,onMouseEnter:P,onTouchStart:P,innerRef:e=>{S.current=e,N&&e&&E&&(R.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(R.current.unobserve(e),R.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),R.current.observe(e))},to:T,...n&&{isActive:h,activeClassName:m}})}const f=r.forwardRef(p)},1875:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=()=>null},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>s});var r=n(7294),o=n(5893);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(7529);function l(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return a(l({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("IllegalYour Docusaurus site did not load properly.
\nA very common reason is a wrong site baseUrl configuration.
\nCurrent configured baseUrl = ${e} ${"/"===e?" (default value)":""}
\nWe suggest trying baseUrl =
\nchildren",t),new Error("The Docusaurus component only accept simple string values");const i=l({message:t,id:n});return(0,o.jsx)(o.Fragment,{children:a(i,r)})}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),o=n(2263),a=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(8940);function a(){return(0,r.useContext)(o._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(8934);function a(){return(0,r.useContext)(o._)}},469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const o=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const l=o?`${o}.${a}`:a;r(i)?e(i,l):t[l]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>i});var r=n(7294),o=n(5893);const a=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(a),l=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,o.jsx)(a.Provider,{value:l,children:t})}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>h,gA:()=>p,_r:()=>u,Jo:()=>g,zh:()=>d,yW:()=>m,gB:()=>f});var r=n(6550),o=n(2263),a=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const c={},u=()=>i("docusaurus-plugin-content-docs")??c,d=e=>function(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function h(e){const t=d(e),{pathname:n}=(0,r.TH)();return s(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(4865),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(2573),o=n(6809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(6854),n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},2503:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(512),o=n(5999),a=n(6668),i=n(9960);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var s=n(5893);function c(e){let{as:t,id:n,...c}=e;const{navbar:{hideOnScroll:u}}=(0,a.L)();if("h1"===t||!n)return(0,s.jsx)(t,{...c,id:void 0});const d=(0,o.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,s.jsxs)(t,{...c,className:(0,r.Z)("anchor",u?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,s.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":d,title:d,children:"\u200b"})]})}},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(7294);const r={iconExternalLink:"iconExternalLink_nPIU"};var o=n(5893);function a(e){let{width:t=13.5,height:n=13.5}=e;return(0,o.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,o.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},6040:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ft});var r=n(7294),o=n(512),a=n(4763),i=n(1944),l=n(6550),s=n(5999),c=n(5936),u=n(5893);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,l.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,s.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(5281),b=n(9727);const y={skipToContent:"skipToContent_fXgn"};function v(){return(0,u.jsx)(h,{className:y.skipToContent})}var w=n(6668),k=n(9689);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:o=1.2,className:a,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:o,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function _(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,s.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,o.Z)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const E={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,o.Z)(E.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function j(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:r,textColor:o,isCloseable:a}=e;return(0,u.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:o},role:"banner",children:[a&&(0,u.jsx)("div",{className:T.announcementBarPlaceholder}),(0,u.jsx)(C,{className:T.announcementBarContent}),a&&(0,u.jsx)(_,{onClick:n,className:T.announcementBarClose})]})}var A=n(2961),L=n(2466);var N=n(902),R=n(3102);const P=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,A.e)(),t=(0,R.HY)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,N.D9)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return(0,u.jsx)(P.Provider,{value:n,children:t})}function D(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function I(){const e=(0,r.useContext)(P);if(!e)throw new N.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,R.HY)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:D(a)})),[o,a,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:a}=I();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(2949),z=n(2389);function B(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:a}=e;const i=(0,z.Z)(),l=(0,s.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,s.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,o.Z)(U.toggle,t),children:(0,u.jsxs)("button",{className:(0,o.Z)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===r?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite",children:[(0,u.jsx)(B,{className:(0,o.Z)(U.toggleIcon,U.lightToggleIcon)}),(0,u.jsx)($,{className:(0,o.Z)(U.toggleIcon,U.darkToggleIcon)})]})})}const H=r.memo(q),Z={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function G(e){let{className:t}=e;const n=(0,w.L)().navbar.style,r=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,M.I)();return r?null:(0,u.jsx)(H,{className:t,buttonClassName:"dark"===n?Z.darkNavbarColorModeToggle:void 0,value:o,onChange:a})}var V=n(1327);function W(){return(0,u.jsx)(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Q(){const e=(0,A.e)();return(0,u.jsx)("button",{type:"button","aria-label":(0,s.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(W,{}),(0,u.jsx)(G,{className:"margin-right--md"}),(0,u.jsx)(Q,{})]})}var K=n(9960),X=n(4996),J=n(3919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:o,label:a,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...c}=e;const d=(0,X.Z)(r),p=(0,X.Z)(t),f=(0,X.Z)(o,{forcePrependBaseUrl:!0}),m=a&&o&&!(0,J.Z)(o),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[a,m&&(0,u.jsx)(te.Z,{...l&&{width:12,height:12}})]})};return o?(0,u.jsx)(K.Z,{href:s?f:o,...c,...h}):(0,u.jsx)(K.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(p)},...c,...h})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const a=(0,u.jsx)(ne,{className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:a}):a}function oe(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,o.Z)("menu__link",t),...r})})}function ae(e){let{mobile:t=!1,position:n,...r}=e;const o=t?oe:re;return(0,u.jsx)(o,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(6043),le=n(8596),se=n(2263);const ce={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:a,onClick:i,...l}=e;const s=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[s]),(0,u.jsxs)("div",{ref:s,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:l.to?void 0:"#",className:(0,o.Z)("navbar__link",a),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:l.children??l.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(Ee,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:a,onClick:i,...s}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,l.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),(0,u.jsxs)("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,o.Z)(ce.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...s,onClick:e=>{e.preventDefault(),f()},children:s.children??s.label}),(0,u.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(Ee,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,u.jsx)(r,{...n})}var me=n(4711);function he(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_nlXk";var be=n(1875);const ye={navbarSearchContainer:"navbarSearchContainer_Bca1"};function ve(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,o.Z)(n,ye.navbarSearchContainer),children:t})}var we=n(143),ke=n(2802);var xe=n(373);const Se=e=>e.docs.find((t=>t.id===e.mainDocId));const _e={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:o="",...a}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),p=(0,me.l)(),{search:f,hash:m}=(0,l.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${o}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,s.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(fe,{...a,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(he,{className:ge}),g]}),items:h})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(ve,{className:n,children:(0,u.jsx)(be.Z,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:a=!1}=e;const i=a?"li":"div";return(0,u.jsx)(i,{className:(0,o.Z)({navbar__item:!r&&!a,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,we.Iw)(r),i=(0,ke.vY)(t,r),l=a?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>l||!!a?.sidebar&&a.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...o}=e;const{activeDoc:a}=(0,we.Iw)(r),i=(0,ke.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(ae,{exact:!0,...o,isActive:()=>a?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...o}=e;const a=(0,ke.lO)(r)[0],i=t??a.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return(0,u.jsx)(ae,{...o,label:i,to:l})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:o,dropdownItemsAfter:a,...i}=e;const{search:c,hash:d}=(0,l.TH)(),p=(0,we.Iw)(n),f=(0,we.gB)(n),{savePreferredVersionName:m}=(0,xe.J)(n),h=[...o,...f.map((e=>{const t=p.alternateDocVersions[e.name]??Se(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...a],g=(0,ke.lO)(n)[0],b=t&&h.length>1?(0,s.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,y=t&&h.length>1?void 0:Se(g).path;return h.length<=1?(0,u.jsx)(ae,{...i,mobile:t,label:b,to:y,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...i,mobile:t,label:b,to:y,items:h,isActive:r?()=>!1:void 0})}};function Ee(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=_e[r];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(o,{...n})}function Ce(){const e=(0,A.e)(),t=(0,w.L)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(Ee,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Te(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(s.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function je(){const e=0===(0,w.L)().navbar.items.length,t=I();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Te,{onClick:()=>t.hide()}),t.content]})}function Ae(){const e=(0,A.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(F,{header:(0,u.jsx)(Y,{}),primaryMenu:(0,u.jsx)(Ce,{}),secondaryMenu:(0,u.jsx)(je,{})}):null}const Le={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ne(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,o.Z)("navbar-sidebar__backdrop",e.className)})}function Re(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.L)(),i=(0,A.e)(),{navbarRef:l,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,L.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i =l?n(!1):i+c {if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:l,"aria-label":(0,s.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.Z)("navbar","navbar--fixed-top",n&&[Le.navbarHideable,!d&&Le.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Ne,{onClick:i.toggle}),(0,u.jsx)(Ae,{})]})}var Pe=n(8780);const Oe={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function De(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(s.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function Ie(e){let{error:t}=e;const n=(0,Pe.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Oe.errorBoundaryError,children:n})}class Fe extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Me="right";function ze(e){let{width:t=30,height:n=30,className:r,...o}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...o,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function Be(){const{toggle:e,shown:t}=(0,A.e)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,s.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(ze,{})})}const $e={colorModeToggle:"colorModeToggle_DEke"};function Ue(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(Fe,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,u.jsx)(Ee,{...e})},t)))})}function qe(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function He(){const e=(0,A.e)(),t=(0,w.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??Me)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return(0,u.jsx)(qe,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(Be,{}),(0,u.jsx)(W,{}),(0,u.jsx)(Ue,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Ue,{items:r}),(0,u.jsx)(G,{className:$e.colorModeToggle}),!o&&(0,u.jsx)(ve,{children:(0,u.jsx)(be.Z,{})})]})})}function Ze(){return(0,u.jsx)(Re,{children:(0,u.jsx)(He,{})})}function Ge(e){let{item:t}=e;const{to:n,href:r,label:o,prependBaseUrlToHref:a,...i}=t,l=(0,X.Z)(n),s=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(K.Z,{className:"footer__link-item",...r?{href:a?s:r}:{to:l},...i,children:[o,r&&!(0,J.Z)(r)&&(0,u.jsx)(te.Z,{})]})}function Ve(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(Ge,{item:t})},t.href??t.to)}function We(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(Ve,{item:e},t)))})]})}function Qe(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(We,{column:e},t)))})}function Ye(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function Ke(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(Ge,{item:t})}function Xe(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(Ke,{item:e}),t.length!==n+1&&(0,u.jsx)(Ye,{})]},n)))})})}function Je(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(Qe,{columns:t}):(0,u.jsx)(Xe,{links:t})}var et=n(9965);const tt={footerLogoLink:"footerLogoLink_BH7S"};function nt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(et.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function rt(e){let{logo:t}=e;return t.href?(0,u.jsx)(K.Z,{href:t.href,className:tt.footerLogoLink,target:t.target,children:(0,u.jsx)(nt,{logo:t})}):(0,u.jsx)(nt,{logo:t})}function ot(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function at(e){let{style:t,links:n,logo:r,copyright:a}=e;return(0,u.jsx)("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||a)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),a]})]})})}function it(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:o}=e;return(0,u.jsx)(at,{style:o,links:n&&n.length>0&&(0,u.jsx)(Je,{links:n}),logo:r&&(0,u.jsx)(rt,{logo:r}),copyright:t&&(0,u.jsx)(ot,{copyright:t})})}const lt=r.memo(it),st=(0,N.Qc)([M.S,k.pl,L.OC,xe.L5,i.VC,function(e){let{children:t}=e;return(0,u.jsx)(R.n2,{children:(0,u.jsx)(A.M,{children:(0,u.jsx)(O,{children:t})})})}]);function ct(e){let{children:t}=e;return(0,u.jsx)(st,{children:t})}var ut=n(2503);function dt(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(ut.Z,{as:"h1",className:"hero__title",children:(0,u.jsx)(s.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(De,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(Ie,{error:t})})]})})})}const pt={mainWrapper:"mainWrapper_z2l0"};function ft(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,b.t)(),(0,u.jsxs)(ct,{children:[(0,u.jsx)(i.d,{title:l,description:s}),(0,u.jsx)(v,{}),(0,u.jsx)(j,{}),(0,u.jsx)(Ze,{}),(0,u.jsx)("div",{id:d,className:(0,o.Z)(g.k.wrapper.main,pt.mainWrapper,r),children:(0,u.jsx)(a.Z,{fallback:e=>(0,u.jsx)(dt,{...e}),children:t})}),!n&&(0,u.jsx)(lt,{})]})}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(7294);var r=n(9960),o=n(4996),a=n(2263),i=n(6668),l=n(9965),s=n(5893);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,o.Z)(t.src),dark:(0,o.Z)(t.srcDark||t.src)},i=(0,s.jsx)(l.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,a.Z)(),{navbar:{title:n,logo:l}}=(0,i.L)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,o.Z)(l?.href||"/"),m=n?"":t,h=l?.alt??m;return(0,s.jsxs)(r.Z,{to:f,...p,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(c,{logo:l,alt:h,imageClassName:u}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});n(7294);var r=n(5742),o=n(5893);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return(0,o.jsxs)(r.Z,{children:[t&&(0,o.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,o.jsx)("meta",{name:"docusaurus_version",content:n}),a&&(0,o.jsx)("meta",{name:"docusaurus_tag",content:a}),i&&(0,o.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,o.jsx)("meta",{name:"docsearch:version",content:n}),a&&(0,o.jsx)("meta",{name:"docsearch:docusaurus_tag",content:a})]})}},9965:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7294),o=n(512),a=n(2389),i=n(2949);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(5893);function c(e){let{className:t,children:n}=e;const c=(0,a.Z)(),{colorMode:u}=(0,i.I)();return(0,s.jsx)(s.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const a=n({theme:e,className:(0,o.Z)(t,l.themedComponent,l[`themedComponent--${e}`])});return(0,s.jsx)(r.Fragment,{children:a},e)}))})}function u(e){const{sources:t,className:n,alt:r,...o}=e;return(0,s.jsx)(c,{className:n,children:e=>{let{theme:n,className:a}=e;return(0,s.jsx)("img",{src:t[n],alt:r,className:a,...o})}})}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>c,z:()=>b});var r=n(7294),o=n(412),a=n(469),i=n(1442),l=n(5893);const s="ease-in-out";function c(e){let{initialState:t}=e;const[n,o]=(0,r.useState)(t??!1),a=(0,r.useCallback)((()=>{o((e=>!e))}),[]);return{collapsed:n,setCollapsed:o,toggleCollapsed:a}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:o}=e;const a=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=o?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${o?.easing??s}`,height:`${t}px`}}function l(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return p(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,o])}function m(e){if(!o.Z.canUseDOM)return e?u:d}function h(e){let{as:t="div",collapsed:n,children:o,animation:a,onCollapseTransitionEnd:i,className:s,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:a}),(0,l.jsx)(t,{ref:u,style:c?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:s,children:o})}function g(e){let{collapsed:t,...n}=e;const[o,i]=(0,r.useState)(!t),[s,c]=(0,r.useState)(t);return(0,a.Z)((()=>{t||i(!0)}),[t]),(0,a.Z)((()=>{o&&c(t)}),[o,t]),o?(0,l.jsx)(h,{...n,collapsed:s}):null}function b(e){let{lazy:t,...n}=e;const r=t?g:h;return(0,l.jsx)(r,{...n})}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>h,pl:()=>m});var r=n(7294),o=n(2389),a=n(12),i=n(902),l=n(6668),s=n(5893);const c=(0,a.WA)("docusaurus.announcement.dismiss"),u=(0,a.WA)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,o.Z)(),[n,a]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{a(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,s.jsx)(f.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>g});var r=n(7294),o=n(412),a=n(902),i=n(12),l=n(6668),s=n(5893);const c=r.createContext(void 0),u="theme",d=(0,i.WA)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>o.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{d.set(f(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[o,a]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&h(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[o,i])}();return(0,s.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>b});var r=n(7294),o=n(143),a=n(9935),i=n(6668),l=n(2802),s=n(902),c=n(12),u=n(5893);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function h(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return(0,u.jsx)(m.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return l.cE?(0,u.jsx)(g,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function y(){const e=(0,r.useContext)(m);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.m);const t=(0,o.zh)(e),[n,i]=y(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,b:()=>s});var r=n(7294),o=n(902),a=n(5893);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return(0,a.jsx)(l.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(l);if(e===i)throw new o.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>s,q:()=>l});var r=n(7294),o=n(902),a=n(5893);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,a.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new o.i6("DocsVersionProvider");return e}},2961:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>m});var r=n(7294),o=n(3102),a=n(7524),i=n(6550),l=n(902);function s(e){!function(e){const t=(0,i.k6)(),n=(0,l.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var c=n(6668),u=n(5893);const d=r.createContext(void 0);function p(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,c.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const u=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:i})),[e,n,u,i])}function f(e){let{children:t}=e;const n=p();return(0,u.jsx)(d.Provider,{value:n,children:t})}function m(){const e=r.useContext(d);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>c,n2:()=>l});var r=n(7294),o=n(902),a=n(5893);const i=r.createContext(null);function l(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,a.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,l]=a,s=(0,o.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(7294);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>l});var r=n(7294),o=n(412);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){const[e,t]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){t(function(){if(!o.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>i?a.desktop:a.mobile}())}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},2802:(e,t,n)=>{"use strict";n.d(t,{MN:()=>T,LM:()=>m,_F:()=>y,cE:()=>p,jA:()=>h,xz:()=>f,SN:()=>C,lO:()=>S,vY:()=>E,oz:()=>_,s1:()=>x,f:()=>w});var r=n(7294),o=n(6550),a=n(8790),i=n(143),l=n(373),s=n(4477),c=n(1116);function u(e){return Array.from(new Set(e))}var d=n(8596);const p=!!i._r;function f(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=m(t);if(e)return e}}(e):void 0:e.href}function h(){const{pathname:e}=(0,o.TH)(),t=(0,c.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=k({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||b(e.items,t))}function v(e,t){switch(e.type){case"category":return y(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||y(e,t);default:return!0}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(e,t)))),[e,t])}function k(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function x(){const e=(0,c.V)(),{pathname:t}=(0,o.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?k({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>u([t,n,o].filter(Boolean))),[t,n,o])}function _(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function C(e){let{route:t}=e;const n=(0,o.TH)(),r=(0,s.E)(),i=t.routes,l=i.find((e=>(0,o.LX)(n.pathname,e)));if(!l)return null;const c=l.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,a.H)(i),sidebarName:c,sidebarItems:u}}function T(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!m(e)))}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>d,VC:()=>m});var r=n(7294),o=n(512),a=n(5742),i=n(226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(4996),c=n(2263);var u=n(5893);function d(e){let{title:t,description:n,keywords:r,image:o,children:i}=e;const l=function(e){const{siteConfig:t}=(0,c.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),p=o?d(o,{absolute:!0}):void 0;return(0,u.jsxs)(a.Z,{children:[t&&(0,u.jsx)("title",{children:l}),t&&(0,u.jsx)("meta",{property:"og:title",content:l}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),l=(0,o.Z)(i,t);return(0,u.jsxs)(p.Provider,{value:l,children:[(0,u.jsx)(a.Z,{children:(0,u.jsx)("html",{className:l})}),n]})}function m(e){let{children:t}=e;const n=l(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,o.Z)(r,a),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>l,Qc:()=>u,Ql:()=>c,i6:()=>s,zX:()=>i});var r=n(7294),o=n(469),a=n(5893);function i(e){const t=(0,r.useRef)(e);return(0,o.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function l(e){const t=(0,r.useRef)();return(0,o.Z)((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,a.jsx)(a.Fragment,{children:e.reduceRight(((e,t)=>(0,a.jsx)(t,{children:e})),n)})}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),o=n(723),a=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,a.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>c,RF:()=>p});var r=n(7294),o=n(412),a=n(2389),i=(n(469),n(902)),l=n(5893);const s=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(s.Provider,{value:n,children:t})}function u(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const d=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(d()),a=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,a.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&o t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>o});n(2263);const r="default";function o(e,t){return`docs-${e}-${t}`}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294);const r="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=a(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2263),o=n(6550),a=n(8780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.Z)(),{pathname:s}=(0,o.TH)(),c=(0,a.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),u=l===i?e:e.replace(`/${l}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),o=n(6550),a=n(902);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(2263);function o(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>j,Ep:()=>p});var r=n(7462);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r =0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r t?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,h(),w.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t {"use strict";var r=n(9864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g {"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,l],u=0;(s=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:' '};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),c=a.querySelector(r.barSelector),u=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(c,i(e,u,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),c=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},4779:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return l(a(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,l="",u=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],y=n[5],v=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,x="+"===v||"*"===v,S="?"===v||"*"===v,_=n[2]||u,E=b||y;r.push({name:g||a++,prefix:h||"",delimiter:_,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:E?c(E):w?".*":"[^"+s(_)+"]+?"})}}return i {e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes ( .comment
can become.namespace--comment
) or replace them with your defined ones (like.editor__comment
). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements thehighlightAll
andhighlightAllUnder
methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),o=n(9642),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),a.add(e)}))}i.silent=!1,e.exports=i},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=a.length);s++){var c=l[s];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=a[o],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++o;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),y=[];h&&y.push.apply(y,i([h])),y.push(g),b&&y.push.apply(y,i([b])),"string"==typeof c?l.splice.apply(l,[s,1].concat(y)):c.content=y}}else c.content&&i(c.content)}return l}(n.tokens)}}}})}(Prism)},6726:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6726},6500:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var l={},s=e[r];if(s){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,c),t(s.optional,c),t(s.modify,c)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);i=i.map(c),l=(l||[]).map(c);var u=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(s),m=u;o(m);){for(var h in p={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var y in f(b))if(y in u){p[b]=!0;break}for(var v in m=p)u[v]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function c(e){if(e in l)return l[e];s[e]=!0;var o,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)o=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete s[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return l[e]=o}for(var u in n)c(u);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),o=n(3840);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!d.call(m,e)||!d.call(f,e)&&(p.test(e)?m[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);g[t]=new h(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);g[t]=new h(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);g[t]=new h(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=Symbol.for("react.element"),x=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),T=Symbol.for("react.context"),j=Symbol.for("react.forward_ref"),A=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),N=Symbol.for("react.memo"),R=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var P=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var O=Symbol.iterator;function D(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=O&&e[O]||e["@@iterator"])?e:null}var I,F=Object.assign;function M(e){if(void 0===I)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);I=t&&t[1]||""}return"\n"+I+e}var z=!1;function B(e,t){if(!e||z)return"";z=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var o=c.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,l=a.length-1;1<=i&&0<=l&&o[i]!==a[l];)l--;for(;1<=i&&0<=l;i--,l--)if(o[i]!==a[l]){if(1!==i||1!==l)do{if(i--,0>--l||o[i]!==a[l]){var s="\n"+o[i].replace(" at new "," at ");return e.displayName&&s.includes(" ")&&(s=s.replace(" ",e.displayName)),s}}while(1<=i&&0<=l);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?M(e):""}function $(e){switch(e.tag){case 5:return M(e.type);case 16:return M("Lazy");case 13:return M("Suspense");case 19:return M("SuspenseList");case 0:case 2:case 15:return e=B(e.type,!1);case 11:return e=B(e.type.render,!1);case 1:return e=B(e.type,!0);default:return""}}function U(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case S:return"Fragment";case x:return"Portal";case E:return"Profiler";case _:return"StrictMode";case A:return"Suspense";case L:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case j:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case N:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case R:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function q(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(t);case 8:return t===_?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function Z(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function G(e){e._valueTracker||(e._valueTracker=function(e){var t=Z(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function V(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Z(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function W(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Q(e,t){var n=t.checked;return F({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=H(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function K(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function X(e,t){K(e,t);var n=H(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,H(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&W(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o "+t.valueOf().toString()+"",t=ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ue(e,t)}))}:ue);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function he(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=he(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(fe).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=F({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ye(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(a(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(a(62))}}function ve(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,Se=null,_e=null;function Ee(e){if(e=wo(e)){if("function"!=typeof xe)throw Error(a(280));var t=e.stateNode;t&&(t=xo(t),xe(e.stateNode,e.type,t))}}function Ce(e){Se?_e?_e.push(e):_e=[e]:Se=e}function Te(){if(Se){var e=Se,t=_e;if(_e=Se=null,Ee(e),t)for(e=0;e >>=0,0===e?32:31-(lt(e)/st|0)|0},lt=Math.log,st=Math.LN2;var ct=64,ut=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,a=e.pingedLanes,i=268435455&n;if(0!==i){var l=i&~o;0!==l?r=dt(l):0!==(a&=i)&&(r=dt(a))}else 0!==(i=n&~o)?r=dt(i):0!==a&&(r=dt(a));if(0===r)return 0;if(0!==t&&t!==r&&0==(t&o)&&((o=r&-r)>=(a=t&-t)||16===o&&0!=(4194240&a)))return t;if(0!=(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0 n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),o=1< =Dn),Mn=String.fromCharCode(32),zn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==Pn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Un=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Zn(e,t,n,r){Ce(r),0<(t=Gr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Gn=null,Vn=null;function Wn(e){Mr(e,0)}function Qn(e){if(V(ko(e)))return e}function Yn(e,t){if("change"===e)return t}var Kn=!1;if(u){var Xn;if(u){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"==typeof er.oninput}Xn=Jn}else Xn=!1;Kn=Xn&&(!document.documentMode||9 =t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=cr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=W();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=W((e=t.contentWindow).document)}return t}function fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=ur(n,a);var i=ur(n,r);o&&i&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n =document.documentMode,gr=null,br=null,yr=null,vr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==gr||gr!==W(r)||("selectionStart"in(r=gr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},yr&&sr(yr,r)||(yr=r,0<(r=Gr(br,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},Sr={},_r={};function Er(e){if(Sr[e])return Sr[e];if(!xr[e])return e;var t,n=xr[e];for(t in n)if(n.hasOwnProperty(t)&&t in _r)return Sr[e]=n[t];return e}u&&(_r=document.createElement("div").style,"AnimationEvent"in window||(delete xr.animationend.animation,delete xr.animationiteration.animation,delete xr.animationstart.animation),"TransitionEvent"in window||delete xr.transitionend.transition);var Cr=Er("animationend"),Tr=Er("animationiteration"),jr=Er("animationstart"),Ar=Er("transitionend"),Lr=new Map,Nr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Rr(e,t){Lr.set(e,t),s(t,[e])}for(var Pr=0;Pr _o||(e.current=So[_o],So[_o]=null,_o--)}function To(e,t){_o++,So[_o]=e.current,e.current=t}var jo={},Ao=Eo(jo),Lo=Eo(!1),No=jo;function Ro(e,t){var n=e.type.contextTypes;if(!n)return jo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Po(e){return null!=(e=e.childContextTypes)}function Oo(){Co(Lo),Co(Ao)}function Do(e,t,n){if(Ao.current!==jo)throw Error(a(168));To(Ao,t),To(Lo,n)}function Io(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in t))throw Error(a(108,q(e)||"Unknown",o));return F({},n,r)}function Fo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||jo,No=Ao.current,To(Ao,e),To(Lo,Lo.current),!0}function Mo(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=Io(e,t,No),r.__reactInternalMemoizedMergedChildContext=e,Co(Lo),Co(Ao),To(Ao,e)):Co(Lo),To(Lo,n)}var zo=null,Bo=!1,$o=!1;function Uo(e){null===zo?zo=[e]:zo.push(e)}function qo(){if(!$o&&null!==zo){$o=!0;var e=0,t=vt;try{var n=zo;for(vt=1;e >=i,o-=i,Ko=1<<32-it(t)+o|n< h?(g=d,d=null):g=d.sibling;var b=f(o,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(o,d),a=i(b,a,h),null===u?c=b:u.sibling=b,u=b,d=g}if(h===l.length)return n(o,d),aa&&Jo(o,h),c;if(null===d){for(;h g?(b=h,h=null):b=h.sibling;var v=f(o,h,y.value,c);if(null===v){null===h&&(h=b);break}e&&h&&null===v.alternate&&t(o,h),l=i(v,l,g),null===d?u=v:d.sibling=v,d=v,h=b}if(y.done)return n(o,h),aa&&Jo(o,g),u;if(null===h){for(;!y.done;g++,y=s.next())null!==(y=p(o,y.value,c))&&(l=i(y,l,g),null===d?u=y:d.sibling=y,d=y);return aa&&Jo(o,g),u}for(h=r(o,h);!y.done;g++,y=s.next())null!==(y=m(h,o,g,y.value,c))&&(e&&null!==y.alternate&&h.delete(null===y.key?g:y.key),l=i(y,l,g),null===d?u=y:d.sibling=y,d=y);return e&&h.forEach((function(e){return t(o,e)})),aa&&Jo(o,g),u}return function e(r,a,i,s){if("object"==typeof i&&null!==i&&i.type===S&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case k:e:{for(var c=i.key,u=a;null!==u;){if(u.key===c){if((c=i.type)===S){if(7===u.tag){n(r,u.sibling),(a=o(u,i.props.children)).return=r,r=a;break e}}else if(u.elementType===c||"object"==typeof c&&null!==c&&c.$$typeof===R&&Qa(c)===u.type){n(r,u.sibling),(a=o(u,i.props)).ref=Va(r,u,i),a.return=r,r=a;break e}n(r,u);break}t(r,u),u=u.sibling}i.type===S?((a=Ic(i.props.children,r.mode,s,i.key)).return=r,r=a):((s=Dc(i.type,i.key,i.props,null,r.mode,s)).ref=Va(r,a,i),s.return=r,r=s)}return l(r);case x:e:{for(u=i.key;null!==a;){if(a.key===u){if(4===a.tag&&a.stateNode.containerInfo===i.containerInfo&&a.stateNode.implementation===i.implementation){n(r,a.sibling),(a=o(a,i.children||[])).return=r,r=a;break e}n(r,a);break}t(r,a),a=a.sibling}(a=zc(i,r.mode,s)).return=r,r=a}return l(r);case R:return e(r,a,(u=i._init)(i._payload),s)}if(te(i))return h(r,a,i,s);if(D(i))return g(r,a,i,s);Wa(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==a&&6===a.tag?(n(r,a.sibling),(a=o(a,i)).return=r,r=a):(n(r,a),(a=Mc(i,r.mode,s)).return=r,r=a),l(r)):n(r,a)}}var Ka=Ya(!0),Xa=Ya(!1),Ja={},ei=Eo(Ja),ti=Eo(Ja),ni=Eo(Ja);function ri(e){if(e===Ja)throw Error(a(174));return e}function oi(e,t){switch(To(ni,t),To(ti,e),To(ei,Ja),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:se(null,"");break;default:t=se(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Co(ei),To(ei,t)}function ai(){Co(ei),Co(ti),Co(ni)}function ii(e){ri(ni.current);var t=ri(ei.current),n=se(t,e.type);t!==n&&(To(ti,e),To(ei,n))}function li(e){ti.current===e&&(Co(ei),Co(ti))}var si=Eo(0);function ci(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ui=[];function di(){for(var e=0;e n?n:4,e(!0);var r=fi.transition;fi.transition={};try{e(!1),t()}finally{vt=n,fi.transition=r}}function el(){return Ti().memoizedState}function tl(e,t,n){var r=nc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rl(e))ol(t,n);else if(null!==(n=Aa(e,t,n,r))){rc(n,e,r,tc()),al(n,t,r)}}function nl(e,t,n){var r=nc(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rl(e))ol(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=a(i,n);if(o.hasEagerState=!0,o.eagerState=l,lr(l,i)){var s=t.interleaved;return null===s?(o.next=o,ja(t)):(o.next=s.next,s.next=o),void(t.interleaved=o)}}catch(c){}null!==(n=Aa(e,t,o,r))&&(rc(n,e,r,o=tc()),al(n,t,r))}}function rl(e){var t=e.alternate;return e===hi||null!==t&&t===hi}function ol(e,t){vi=yi=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function al(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,yt(e,n)}}var il={readContext:Ca,useCallback:xi,useContext:xi,useEffect:xi,useImperativeHandle:xi,useInsertionEffect:xi,useLayoutEffect:xi,useMemo:xi,useReducer:xi,useRef:xi,useState:xi,useDebugValue:xi,useDeferredValue:xi,useTransition:xi,useMutableSource:xi,useSyncExternalStore:xi,useId:xi,unstable_isNewReconciler:!1},ll={readContext:Ca,useCallback:function(e,t){return Ci().memoizedState=[e,void 0===t?null:t],e},useContext:Ca,useEffect:qi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,$i(4194308,4,Vi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return $i(4194308,4,e,t)},useInsertionEffect:function(e,t){return $i(4,2,e,t)},useMemo:function(e,t){var n=Ci();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ci();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=tl.bind(null,hi,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ci().memoizedState=e},useState:Mi,useDebugValue:Qi,useDeferredValue:function(e){return Ci().memoizedState=e},useTransition:function(){var e=Mi(!1),t=e[0];return e=Ji.bind(null,e[1]),Ci().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=hi,o=Ci();if(aa){if(void 0===n)throw Error(a(407));n=n()}else{if(n=t(),null===Ls)throw Error(a(349));0!=(30&mi)||Pi(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,qi(Di.bind(null,r,i,e),[e]),r.flags|=2048,zi(9,Oi.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ci(),t=Ls.identifierPrefix;if(aa){var n=Xo;t=":"+t+"R"+(n=(Ko&~(1<<32-it(Ko)-1)).toString(32)+n),0<(n=wi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=ki++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},sl={readContext:Ca,useCallback:Yi,useContext:Ca,useEffect:Hi,useImperativeHandle:Wi,useInsertionEffect:Zi,useLayoutEffect:Gi,useMemo:Ki,useReducer:Ai,useRef:Bi,useState:function(){return Ai(ji)},useDebugValue:Qi,useDeferredValue:function(e){return Xi(Ti(),gi.memoizedState,e)},useTransition:function(){return[Ai(ji)[0],Ti().memoizedState]},useMutableSource:Ni,useSyncExternalStore:Ri,useId:el,unstable_isNewReconciler:!1},cl={readContext:Ca,useCallback:Yi,useContext:Ca,useEffect:Hi,useImperativeHandle:Wi,useInsertionEffect:Zi,useLayoutEffect:Gi,useMemo:Ki,useReducer:Li,useRef:Bi,useState:function(){return Li(ji)},useDebugValue:Qi,useDeferredValue:function(e){var t=Ti();return null===gi?t.memoizedState=e:Xi(t,gi.memoizedState,e)},useTransition:function(){return[Li(ji)[0],Ti().memoizedState]},useMutableSource:Ni,useSyncExternalStore:Ri,useId:el,unstable_isNewReconciler:!1};function ul(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o,digest:null}}function dl(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function pl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var fl="function"==typeof WeakMap?WeakMap:Map;function ml(e,t,n){(n=Oa(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Zs||(Zs=!0,Gs=r),pl(0,t)},n}function hl(e,t,n){(n=Oa(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){pl(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){pl(0,t),"function"!=typeof r&&(null===Vs?Vs=new Set([this]):Vs.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function gl(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new fl;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=Cc.bind(null,e,t,n),t.then(e,e))}function bl(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function yl(e,t,n,r,o){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Oa(-1,1)).tag=2,Da(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var vl=w.ReactCurrentOwner,wl=!1;function kl(e,t,n,r){t.child=null===e?Xa(t,null,n,r):Ka(t,e.child,n,r)}function xl(e,t,n,r,o){n=n.render;var a=t.ref;return Ea(t,o),r=_i(e,t,n,r,a,o),n=Ei(),null===e||wl?(aa&&n&&ta(t),t.flags|=1,kl(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Zl(e,t,o))}function Sl(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||Pc(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Dc(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,_l(e,t,a,r,o))}if(a=e.child,0==(e.lanes&o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:sr)(i,r)&&e.ref===t.ref)return Zl(e,t,o)}return t.flags|=1,(e=Oc(a,r)).ref=t.ref,e.return=t,t.child=e}function _l(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(sr(a,r)&&e.ref===t.ref){if(wl=!1,t.pendingProps=r=a,0==(e.lanes&o))return t.lanes=e.lanes,Zl(e,t,o);0!=(131072&e.flags)&&(wl=!0)}}return Tl(e,t,n,r,o)}function El(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},To(Os,Ps),Ps|=n;else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,To(Os,Ps),Ps|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,To(Os,Ps),Ps|=r}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,To(Os,Ps),Ps|=r;return kl(e,t,o,n),t.child}function Cl(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Tl(e,t,n,r,o){var a=Po(n)?No:Ao.current;return a=Ro(t,a),Ea(t,o),n=_i(e,t,n,r,a,o),r=Ei(),null===e||wl?(aa&&r&&ta(t),t.flags|=1,kl(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Zl(e,t,o))}function jl(e,t,n,r,o){if(Po(n)){var a=!0;Fo(t)}else a=!1;if(Ea(t,o),null===t.stateNode)Hl(e,t),Ha(t,n,r),Ga(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=Ca(c):c=Ro(t,c=Po(n)?No:Ao.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==c)&&Za(t,i,r,c),Na=!1;var p=t.memoizedState;i.state=p,Ma(t,r,i,o),s=t.memoizedState,l!==r||p!==s||Lo.current||Na?("function"==typeof u&&($a(t,n,u,r),s=t.memoizedState),(l=Na||qa(t,n,l,r,p,s,c))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=c,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Pa(e,t),l=t.memoizedProps,c=t.type===t.elementType?l:ba(t.type,l),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=Ca(s):s=Ro(t,s=Po(n)?No:Ao.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||p!==s)&&Za(t,i,r,s),Na=!1,p=t.memoizedState,i.state=p,Ma(t,r,i,o);var m=t.memoizedState;l!==d||p!==m||Lo.current||Na?("function"==typeof f&&($a(t,n,f,r),m=t.memoizedState),(c=Na||qa(t,n,c,r,p,m,s)||!1)?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=s,r=c):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Al(e,t,n,r,a,o)}function Al(e,t,n,r,o,a){Cl(e,t);var i=0!=(128&t.flags);if(!r&&!i)return o&&Mo(t,n,!1),Zl(e,t,a);r=t.stateNode,vl.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ka(t,e.child,null,a),t.child=Ka(t,null,l,a)):kl(e,t,l,a),t.memoizedState=r.state,o&&Mo(t,n,!0),t.child}function Ll(e){var t=e.stateNode;t.pendingContext?Do(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Do(0,t.context,!1),oi(e,t.containerInfo)}function Nl(e,t,n,r,o){return ma(),ha(o),t.flags|=256,kl(e,t,n,r),t.child}var Rl,Pl,Ol,Dl,Il={dehydrated:null,treeContext:null,retryLane:0};function Fl(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ml(e,t,n){var r,o=t.pendingProps,i=si.current,l=!1,s=0!=(128&t.flags);if((r=s)||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(l=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),To(si,1&i),null===e)return ua(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(s=o.children,e=o.fallback,l?(o=t.mode,l=t.child,s={mode:"hidden",children:s},0==(1&o)&&null!==l?(l.childLanes=0,l.pendingProps=s):l=Fc(s,o,0,null),e=Ic(e,o,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Fl(n),t.memoizedState=Il,e):zl(t,s));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,o,i,l){if(n)return 256&t.flags?(t.flags&=-257,Bl(e,t,l,r=dl(Error(a(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,o=t.mode,r=Fc({mode:"visible",children:r.children},o,0,null),(i=Ic(i,o,l,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,0!=(1&t.mode)&&Ka(t,e.child,null,l),t.child.memoizedState=Fl(l),t.memoizedState=Il,i);if(0==(1&t.mode))return Bl(e,t,l,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var s=r.dgst;return r=s,Bl(e,t,l,r=dl(i=Error(a(419)),r,void 0))}if(s=0!=(l&e.childLanes),wl||s){if(null!==(r=Ls)){switch(l&-l){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=0!=(o&(r.suspendedLanes|l))?0:o)&&o!==i.retryLane&&(i.retryLane=o,La(e,o),rc(r,e,o,-1))}return gc(),Bl(e,t,l,r=dl(Error(a(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=jc.bind(null,e),o._reactRetry=t,null):(e=i.treeContext,oa=co(o.nextSibling),ra=t,aa=!0,ia=null,null!==e&&(Wo[Qo++]=Ko,Wo[Qo++]=Xo,Wo[Qo++]=Yo,Ko=e.id,Xo=e.overflow,Yo=t),t=zl(t,r.children),t.flags|=4096,t)}(e,t,s,o,r,i,n);if(l){l=o.fallback,s=t.mode,r=(i=e.child).sibling;var c={mode:"hidden",children:o.children};return 0==(1&s)&&t.child!==i?((o=t.child).childLanes=0,o.pendingProps=c,t.deletions=null):(o=Oc(i,c)).subtreeFlags=14680064&i.subtreeFlags,null!==r?l=Oc(r,l):(l=Ic(l,s,n,null)).flags|=2,l.return=t,o.return=t,o.sibling=l,t.child=o,o=l,l=t.child,s=null===(s=e.child.memoizedState)?Fl(n):{baseLanes:s.baseLanes|n,cachePool:null,transitions:s.transitions},l.memoizedState=s,l.childLanes=e.childLanes&~n,t.memoizedState=Il,o}return e=(l=e.child).sibling,o=Oc(l,{mode:"visible",children:o.children}),0==(1&t.mode)&&(o.lanes=n),o.return=t,o.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=o,t.memoizedState=null,o}function zl(e,t){return(t=Fc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Bl(e,t,n,r){return null!==r&&ha(r),Ka(t,e.child,null,n),(e=zl(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function $l(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),_a(e.return,t,n)}function Ul(e,t,n,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=o)}function ql(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(kl(e,t,r.children,n),0!=(2&(r=si.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&$l(e,n,t);else if(19===e.tag)$l(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(To(si,r),0==(1&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===ci(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Ul(t,!1,o,n,a);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===ci(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Ul(t,!0,n,null,a);break;case"together":Ul(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Hl(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Zl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Fs|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Oc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Oc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Gl(e,t){if(!aa)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Vl(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=14680064&o.subtreeFlags,r|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Wl(e,t,n){var r=t.pendingProps;switch(na(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vl(t),null;case 1:case 17:return Po(t.type)&&Oo(),Vl(t),null;case 3:return r=t.stateNode,ai(),Co(Lo),Co(Ao),di(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(pa(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==ia&&(lc(ia),ia=null))),Pl(e,t),Vl(t),null;case 5:li(t);var o=ri(ni.current);if(n=t.type,null!==e&&null!=t.stateNode)Ol(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(a(166));return Vl(t),null}if(e=ri(ei.current),pa(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[fo]=t,r[mo]=i,e=0!=(1&t.mode),n){case"dialog":zr("cancel",r),zr("close",r);break;case"iframe":case"object":case"embed":zr("load",r);break;case"video":case"audio":for(o=0;o <\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[fo]=t,e[mo]=r,Rl(e,t,!1,!1),t.stateNode=e;e:{switch(s=ve(n,r),n){case"dialog":zr("cancel",e),zr("close",e),o=r;break;case"iframe":case"object":case"embed":zr("load",e),o=r;break;case"video":case"audio":for(o=0;o qs&&(t.flags|=128,r=!0,Gl(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ci(s))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Gl(i,!0),null===i.tail&&"hidden"===i.tailMode&&!s.alternate&&!aa)return Vl(t),null}else 2*Ke()-i.renderingStartTime>qs&&1073741824!==n&&(t.flags|=128,r=!0,Gl(i,!1),t.lanes=4194304);i.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=i.last)?n.sibling=s:t.child=s,i.last=s)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ke(),t.sibling=null,n=si.current,To(si,r?1&n|2:1&n),t):(Vl(t),null);case 22:case 23:return pc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&Ps)&&(Vl(t),6&t.subtreeFlags&&(t.flags|=8192)):Vl(t),null;case 24:case 25:return null}throw Error(a(156,t.tag))}function Ql(e,t){switch(na(t),t.tag){case 1:return Po(t.type)&&Oo(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return ai(),Co(Lo),Co(Ao),di(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return li(t),null;case 13:if(Co(si),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(a(340));ma()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Co(si),null;case 4:return ai(),null;case 10:return Sa(t.type._context),null;case 22:case 23:return pc(),null;default:return null}}Rl=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Pl=function(){},Ol=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,ri(ei.current);var a,i=null;switch(n){case"input":o=Q(e,o),r=Q(e,r),i=[];break;case"select":o=F({},o,{value:void 0}),r=F({},r,{value:void 0}),i=[];break;case"textarea":o=re(e,o),r=re(e,r),i=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Jr)}for(u in ye(n,r),n=null,o)if(!r.hasOwnProperty(u)&&o.hasOwnProperty(u)&&null!=o[u])if("style"===u){var s=o[u];for(a in s)s.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(l.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in r){var c=r[u];if(s=null!=o?o[u]:void 0,r.hasOwnProperty(u)&&c!==s&&(null!=c||null!=s))if("style"===u)if(s){for(a in s)!s.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in c)c.hasOwnProperty(a)&&s[a]!==c[a]&&(n||(n={}),n[a]=c[a])}else n||(i||(i=[]),i.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,s=s?s.__html:void 0,null!=c&&s!==c&&(i=i||[]).push(u,c)):"children"===u?"string"!=typeof c&&"number"!=typeof c||(i=i||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(l.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&zr("scroll",e),i||s===c||(i=[])):(i=i||[]).push(u,c))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}},Dl=function(e,t,n,r){n!==r&&(t.flags|=4)};var Yl=!1,Kl=!1,Xl="function"==typeof WeakSet?WeakSet:Set,Jl=null;function es(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){Ec(e,t,r)}else n.current=null}function ts(e,t,n){try{n()}catch(r){Ec(e,t,r)}}var ns=!1;function rs(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var o=r=r.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,void 0!==a&&ts(t,n,a)}o=o.next}while(o!==r)}}function os(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function as(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function is(e){var t=e.alternate;null!==t&&(e.alternate=null,is(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[fo],delete t[mo],delete t[go],delete t[bo],delete t[yo])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ls(e){return 5===e.tag||3===e.tag||4===e.tag}function ss(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ls(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function cs(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(cs(e,t,n),e=e.sibling;null!==e;)cs(e,t,n),e=e.sibling}function us(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(us(e,t,n),e=e.sibling;null!==e;)us(e,t,n),e=e.sibling}var ds=null,ps=!1;function fs(e,t,n){for(n=n.child;null!==n;)ms(e,t,n),n=n.sibling}function ms(e,t,n){if(at&&"function"==typeof at.onCommitFiberUnmount)try{at.onCommitFiberUnmount(ot,n)}catch(l){}switch(n.tag){case 5:Kl||es(n,t);case 6:var r=ds,o=ps;ds=null,fs(e,t,n),ps=o,null!==(ds=r)&&(ps?(e=ds,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):ds.removeChild(n.stateNode));break;case 18:null!==ds&&(ps?(e=ds,n=n.stateNode,8===e.nodeType?so(e.parentNode,n):1===e.nodeType&&so(e,n),Ut(e)):so(ds,n.stateNode));break;case 4:r=ds,o=ps,ds=n.stateNode.containerInfo,ps=!0,fs(e,t,n),ds=r,ps=o;break;case 0:case 11:case 14:case 15:if(!Kl&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){o=r=r.next;do{var a=o,i=a.destroy;a=a.tag,void 0!==i&&(0!=(2&a)||0!=(4&a))&&ts(n,t,i),o=o.next}while(o!==r)}fs(e,t,n);break;case 1:if(!Kl&&(es(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){Ec(n,t,l)}fs(e,t,n);break;case 21:fs(e,t,n);break;case 22:1&n.mode?(Kl=(r=Kl)||null!==n.memoizedState,fs(e,t,n),Kl=r):fs(e,t,n);break;default:fs(e,t,n)}}function hs(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xl),t.forEach((function(t){var r=Ac.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function gs(e,t){var n=t.deletions;if(null!==n)for(var r=0;r o&&(o=l),r&=~i}if(r=o,10<(r=(120>(r=Ke()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Es(r/1960))-r)){e.timeoutHandle=ro(xc.bind(null,e,$s,Hs),r);break}xc(e,$s,Hs);break;default:throw Error(a(329))}}}return oc(e,Ke()),e.callbackNode===n?ac.bind(null,e):null}function ic(e,t){var n=Bs;return e.current.memoizedState.isDehydrated&&(fc(e,t).flags|=256),2!==(e=bc(e,t))&&(t=$s,$s=n,null!==t&&lc(t)),e}function lc(e){null===$s?$s=e:$s.push.apply($s,e)}function sc(e,t){for(t&=~zs,t&=~Ms,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0 e?16:e,null===Qs)var r=!1;else{if(e=Qs,Qs=null,Ys=0,0!=(6&As))throw Error(a(331));var o=As;for(As|=4,Jl=e.current;null!==Jl;){var i=Jl,l=i.child;if(0!=(16&Jl.flags)){var s=i.deletions;if(null!==s){for(var c=0;c Ke()-Us?fc(e,0):zs|=n),oc(e,t)}function Tc(e,t){0===t&&(0==(1&e.mode)?t=1:(t=ut,0==(130023424&(ut<<=1))&&(ut=4194304)));var n=tc();null!==(e=La(e,t))&&(bt(e,t,n),oc(e,n))}function jc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tc(e,n)}function Ac(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(a(314))}null!==r&&r.delete(t),Tc(e,n)}function Lc(e,t){return Ve(e,t)}function Nc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Rc(e,t,n,r){return new Nc(e,t,n,r)}function Pc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Oc(e,t){var n=e.alternate;return null===n?((n=Rc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Dc(e,t,n,r,o,i){var l=2;if(r=e,"function"==typeof e)Pc(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case S:return Ic(n.children,o,i,t);case _:l=8,o|=8;break;case E:return(e=Rc(12,n,t,2|o)).elementType=E,e.lanes=i,e;case A:return(e=Rc(13,n,t,o)).elementType=A,e.lanes=i,e;case L:return(e=Rc(19,n,t,o)).elementType=L,e.lanes=i,e;case P:return Fc(n,o,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:l=10;break e;case T:l=9;break e;case j:l=11;break e;case N:l=14;break e;case R:l=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=Rc(l,n,t,o)).elementType=e,t.type=r,t.lanes=i,t}function Ic(e,t,n,r){return(e=Rc(7,e,r,t)).lanes=n,e}function Fc(e,t,n,r){return(e=Rc(22,e,r,t)).elementType=P,e.lanes=n,e.stateNode={isHidden:!1},e}function Mc(e,t,n){return(e=Rc(6,e,null,t)).lanes=n,e}function zc(e,t,n){return(t=Rc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bc(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function $c(e,t,n,r,o,a,i,l,s){return e=new Bc(e,t,n,l,s),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Rc(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ra(a),e}function Uc(e){if(!e)return jo;e:{if(Ue(e=e._reactInternals)!==e||1!==e.tag)throw Error(a(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Po(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(a(171))}if(1===e.tag){var n=e.type;if(Po(n))return Io(e,n,t)}return t}function qc(e,t,n,r,o,a,i,l,s){return(e=$c(n,r,!0,e,0,a,0,l,s)).context=Uc(null),n=e.current,(a=Oa(r=tc(),o=nc(n))).callback=null!=t?t:null,Da(n,a,o),e.current.lanes=o,bt(e,o,r),oc(e,r),e}function Hc(e,t,n,r){var o=t.current,a=tc(),i=nc(o);return n=Uc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Oa(a,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Da(o,t,i))&&(rc(e,o,i,a),Ia(e,o,i)),i}function Zc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Gc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n {"use strict";var r=n(3935);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,c,u;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!a(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!i.has(s.value[0]))return!1;for(u=e.entries();!(s=u.next()).done;)if(!a(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(s=u.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,c[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==c[s]&&"__v"!==c[s]&&"__o"!==c[s]||!e.$$typeof)&&!a(e[c[s]],i[c[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>Z,ql:()=>J});var r=n(7294),o=n(5697),a=n.n(o),i=n(9590),l=n.n(i),s=n(1143),c=n.n(s),u=n(6774),d=n.n(u);function p(){return p=Object.assign||function(e){for(var t=1;t =0||(o[n]=e[n]);return o}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},y={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},_=function(e){var t=S(e,g.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},E=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o /g,">").replace(/"/g,""").replace(/'/g,"'")},D=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},I=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},F=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},M=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=I(n,o),[r.createElement(g.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=D(n),a=L(t);return o?"<"+e+' data-rh="true" '+o+">"+O(a,r)+""+e+">":"<"+e+' data-rh="true">'+O(a,r)+""+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return I(t)},toString:function(){return D(t)}};default:return{toComponent:function(){return F(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===P.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+""+e+">")}),"")}(e,t,n)}}}},z=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=N(e.metaTags,v),a=N(t,b),i=N(n,y);return{priorityMethods:{toComponent:function(){return[].concat(F(g.META,o.priority),F(g.LINK,a.priority),F(g.SCRIPT,i.priority))},toString:function(){return M(g.META,o.priority,r)+" "+M(g.LINK,a.priority,r)+" "+M(g.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:M(g.BASE,t,r),bodyAttributes:M("bodyAttributes",n,r),htmlAttributes:M("htmlAttributes",o,r),link:M(g.LINK,u,r),meta:M(g.META,d,r),noscript:M(g.NOSCRIPT,a,r),script:M(g.SCRIPT,p,r),style:M(g.STYLE,i,r),title:M(g.TITLE,{title:s,titleAttributes:c},r)}},B=[],$=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=z({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),q=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),H="undefined"!=typeof document,Z=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);Z.canUseDOM=H,Z.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},Z.defaultProps={context:{}},Z.displayName="HelmetProvider";var G=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,r.isEqualNode(e)}))?a.splice(n,1):i.push(r)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:a,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),l=0;l =0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},W=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=L(e)),V(g.TITLE,t)}(u,d);var p={baseTag:G(g.BASE,n),linkTags:G(g.LINK,o),metaTags:G(g.META,a),noscriptTags:G(g.NOSCRIPT,i),scriptTags:G(g.SCRIPT,s),styleTags:G(g.STYLE,c)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),l(e,f,m)},Q=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},o,((t={})[r.type]=i,t.titleAttributes=p({},a),t));case g.BODY:return p({},o,{bodyAttributes:p({},a)});case g.HTML:return p({},o,{htmlAttributes:p({},a)});default:return p({},o,((n={})[r.type]=p({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return c()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),c()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,a=r.children,i=h(r,K),l=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,a),s){case g.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:l,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),o=p({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof $||(a=new $(a.context,a.instances)),a?r.createElement(Y,p({},o,{context:a.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,p({},o,{context:e}))}))},t}(r.Component);J.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case l:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case g:case h:case s:return e;default:return t}}case o:return t}}}function x(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=a,t.Lazy=g,t.Memo=h,t.Portal=o,t.Profiler=l,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||k(e)===u},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===a},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===o},t.isProfiler=function(e){return k(e)===l},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===l||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===s||e.$$typeof===c||e.$$typeof===p||e.$$typeof===y||e.$$typeof===v||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t {"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(6550),o=n(7462),a=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.rs,n,e.map((function(e,n){return a.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.Z)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>v,VK:()=>u,rU:()=>g});var r=n(6550),o=n(5068),a=n(7294),i=n(9318),l=n(7462),s=n(3366),c=n(8776),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o {"use strict";n.d(t,{AW:()=>_,F0:()=>v,LX:()=>S,TH:()=>P,k6:()=>R,rs:()=>L,s6:()=>y});var r=n(5068),o=n(7294),a=n(5697),i=n.n(a),l=n(9318),s=n(8776),c=n(7462),u=n(4779),d=n.n(u),p=(n(9864),n(3366)),f=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=o.createContext||function(e,t){var n,a,l="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,o=arguments.length,a=new Array(o),i=0;i {"use strict";var r=n(7294),o=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,a={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!s.hasOwnProperty(r)&&(a[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===a[r]&&(a[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:u,props:a,_owner:l.current}}t.Fragment=a,t.jsx=c,t.jsxs=c},2408:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=b.prototype;var w=v.prototype=new y;w.constructor=v,h(w,b.prototype),w.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},_={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,r){var o,a={},i=null,l=null;if(null!=t)for(o in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,o)&&!_.hasOwnProperty(o)&&(a[o]=t[o]);var s=arguments.length-2;if(1===s)a.children=r;else if(1 {"use strict";e.exports=n(2408)},5893:(e,t,n)=>{"use strict";e.exports=n(5251)},53:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0>>1,o=e[r];if(!(0>>1;ra(s,n))c a(u,s)?(e[r]=u,e[c]=n,r=c):(e[r]=s,e[l]=n,r=l);else{if(!(c a(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}var c=[],u=[],d=1,p=null,f=3,m=!1,h=!1,g=!1,b="function"==typeof setTimeout?setTimeout:null,y="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(u);null!==t;){if(null===t.callback)o(u);else{if(!(t.startTime<=e))break;o(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function k(e){if(g=!1,w(e),!h)if(null!==r(c))h=!0,P(x);else{var t=r(u);null!==t&&O(k,t.startTime-e)}}function x(e,n){h=!1,g&&(g=!1,y(C),C=-1),m=!0;var a=f;try{for(w(n),p=r(c);null!==p&&(!(p.expirationTime>n)||e&&!A());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var l=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?p.callback=l:p===r(c)&&o(c),w(n)}else o(c);p=r(c)}if(null!==p)var s=!0;else{var d=r(u);null!==d&&O(k,d.startTime-n),s=!1}return s}finally{p=null,f=a,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,_=!1,E=null,C=-1,T=5,j=-1;function A(){return!(t.unstable_now()-j e||125 i?(e.sortIndex=a,n(u,e),null===r(c)&&e===r(u)&&(g?(y(C),C=-1):g=!0,O(k,a-i))):(e.sortIndex=l,n(c,e),h||m||(h=!0,P(x))),e},t.unstable_shouldYield=A,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s {"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"Ansible-NAS",tagline:"Easily build a homelab or NAS replacement with an Ubuntu server and some basic hardware",url:"https://ansible-nas.io",baseUrl:"/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.ico",organizationName:"davestephens",projectName:"ansible-nas",trailingSlash:!0,i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{sidebarPath:"/home/runner/work/ansible-nas-old/ansible-nas-old/website/sidebars.js",editUrl:"https://github.com/davestephens/ansible-nas/tree/main/website"},blog:{showReadingTime:!0},theme:{customCss:"/home/runner/work/ansible-nas-old/ansible-nas-old/website/src/css/custom.css"}}]],themeConfig:{navbar:{title:"Ansible-NAS",items:[{type:"doc",docId:"index",position:"left",label:"Docs"},{type:"doc",docId:"/category/getting-started",position:"left",label:"Getting Started"},{type:"doc",docId:"/category/applications",position:"left",label:"Applications"},{to:"/blog",label:"Blog",position:"left"},{type:"search",position:"right"},{href:"https://github.com/davestephens/ansible-nas",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Getting Started",to:"docs/category/getting-started"},{label:"Support",to:"docs/support"}]},{title:"Community",items:[{label:"Gitter.im",href:"https://gitter.im/Ansible-NAS/Chat"}]},{title:"More",items:[{label:"Blog",to:"/blog"},{label:"GitHub",href:"https://github.com/facebook/docusaurus"}]}],copyright:"Copyright \xa9 2024 David Stephens. Site built with Docusaurus."},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},announcementBar:{id:"support_us",content:'Enjoying Ansible NAS? Please consider supporting further development by buying me a coffee \u2615',backgroundColor:"#fafbfc",textColor:"#091E42",isCloseable:!1},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0}}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>o})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r =0||(o[n]=e[n]);return o}n.d(t,{Z:()=>r})},512:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;to});const o=function(){for(var e,t,n=0,o="",a=arguments.length;n{"use strict";n.d(t,{p1:()=>T,y$:()=>ee});var r,o,a,i,l,s,c,u=n(7294),d=n(512),p=Object.create,f=Object.defineProperty,m=Object.defineProperties,h=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertyNames,y=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&x(e,n,t[n]);if(y)for(var n of y(t))k.call(t,n)&&x(e,n,t[n]);return e},_=(e,t)=>m(e,g(t)),E=(e,t)=>{var n={};for(var r in e)w.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&y)for(var r of y(e))t.indexOf(r)<0&&k.call(e,r)&&(n[r]=e[r]);return n},C=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);S+=x.value.length,x=x.next){var _=x.value;if(t.length>e.length)return;if(!(_ instanceof o)){var E,C=1;if(y){if(!(E=a(k,S,e,b))||E.index>=e.length)break;var T=E.index,j=E.index+E[0].length,A=S;for(A+=x.value.length;T>=A;)A+=(x=x.next).value.length;if(S=A-=x.value.length,x.value instanceof o)continue;for(var L=x;L!==t.tail&&(A d.reach&&(d.reach=O);var D=x.prev;if(R&&(D=s(t,D,R),S+=R.length),c(t,D,C),x=s(t,D,new o(p,g?r.tokenize(N,g):N,v,N)),P&&s(t,x,P),C>1){var I={cause:p+","+m,reach:O};i(e,t,n,x.prev,S,I),d&&I.reach>d.reach&&(d.reach=I.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function c(e,t,n){for(var r=t.next,o=0;o "+a.content+""+a.tag+">"},r}();t.exports=n,n.default=n}},function(){return o||(0,r[b(r)[0]])((o={exports:{}}).exports,o),o.exports}),T=((e,t,n)=>(n=null!=e?p(v(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of b(t))w.call(e,o)||o===n||f(e,o,{get:()=>t[o],enumerable:!(r=h(t,o))||r.enumerable});return e})(!t&&e&&e.__esModule?n:f(n,"default",{value:e,enumerable:!0}),e)))(C());T.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/?[\da-f]{1,8};/i]},T.languages.markup.tag.inside["attr-value"].inside.entity=T.languages.markup.entity,T.languages.markup.doctype.inside["internal-subset"].inside=T.languages.markup,T.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(T.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:T.languages[t]},n.cdata=/^$/i,{"included-cdata":{pattern://i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:T.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},T.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(T.languages.markup.tag,"addAttribute",{value:function(e,t){T.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:T.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),T.languages.html=T.languages.markup,T.languages.mathml=T.languages.markup,T.languages.svg=T.languages.markup,T.languages.xml=T.languages.extend("markup",{}),T.languages.ssml=T.languages.xml,T.languages.atom=T.languages.xml,T.languages.rss=T.languages.xml,a=T,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},s="(?:[^\\\\-]|"+(l=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")",s=RegExp(s+"-"+s),c={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},a.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:l,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:l}},"special-escape":i,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":c}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:l,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":c}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},T.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},T.languages.javascript=T.languages.extend("clike",{"class-name":[T.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),T.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,T.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:T.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:T.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:T.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:T.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:T.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),T.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:T.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),T.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),T.languages.markup&&(T.languages.markup.tag.addInlined("script","javascript"),T.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),T.languages.js=T.languages.javascript,T.languages.actionscript=T.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<|>>?>?|[!=]=?)=?|[~?@]/}),T.languages.actionscript["class-name"].alias="function",delete T.languages.actionscript.parameter,delete T.languages.actionscript["literal-property"],T.languages.markup&&T.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:T.languages.markup}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(T),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},o="doc-comment";if(a=e.languages[t]){var a,i=a[o];if((i=i||(a=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[o])instanceof RegExp&&(i=a[o]={pattern:i}),Array.isArray(i))for(var l=0,s=i.length;l |\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(T),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:]) |: ))*/.source.replace(/ /g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s< >[ \t]+)?)(?:< >)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/< >/g,(function(){return r})).replace(/< >/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s< >[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/< >/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:< >[ \t]+)?)< >(?=\s*:\s)/.source.replace(/< >/g,(function(){return r})).replace(/< >/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(T),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/ /g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_) |_(?:(?!_) )+_)+__\b|\*\*(?:(?!\*) |\*(?:(?!\*) )+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_) |__(?:(?!_) )+__)+_\b|\*(?:(?!\*) |\*\*(?:(?!\*) )+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~) )+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]) )+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]) )+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n ",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(T),T.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:T.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},T.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n ?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function s(t,n,i){var s=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),c=0,u={},d=(s=l(s.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=c++,n="___"+i.toUpperCase()+"_"+r+"___")););return u[n]=e,n})).join(""),n,i),Object.keys(u));return c=0,function t(n){for(var a=0;a =d.length)return;var i,s,p,f,m,h,g,b=n[a];"string"==typeof b||"string"==typeof b.content?(i=d[c],-1!==(g=(h="string"==typeof b?b:b.content).indexOf(i))&&(++c,s=h.substring(0,g),m=u[i],p=void 0,(f={})["interpolation-punctuation"]=o,3===(f=e.tokenize(m,f)).length&&((p=[1,1]).push.apply(p,l(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,m),f=h.substring(g+i.length),m=[],s&&m.push(s),m.push(p),f&&(t(h=[f]),m.push.apply(m,h)),"string"==typeof b?(n.splice.apply(n,[a,1].concat(m)),a+=m.length-1):b.content=m)):(g=b.content,Array.isArray(g)?t(g):t([g]))}}(s),new e.Token(i,s,"language-"+i,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var c={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function u(e){return"string"==typeof e?e:Array.isArray(e)?e.map(u).join(""):u(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in c&&function t(n){for(var r=0,o=n.length;r ]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(T),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?: \s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/ /g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(T),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(T),T.languages.n4js=T.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),T.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),T.languages.n4jsd=T.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/ /g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?: (?:\s*,\s*(?:\*\s*as\s+ |\{[^{}]*\}))?|\*\s*as\s+ |\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+ )?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#? /.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r