Merge branch 'bcurran3-netbootxyz----addition'

This commit is contained in:
Dave Stephens 2021-02-23 21:49:25 +00:00
commit d7269797af
6 changed files with 80 additions and 1 deletions

View file

@ -29,6 +29,7 @@ Ansible config and a bunch of Docker containers.
* Content management with Joomla
* A dual panel local file manager
* Self-service media request web application
* A PXE server to boot OS images over the network
### Available Applications
@ -64,6 +65,7 @@ Ansible config and a bunch of Docker containers.
* [Mylar](https://github.com/evilhero/mylar) - An automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents
* [MyMediaForAlexa](https://www.mymediaalexa.com/) - Lets you stream your music collection to your alexa device
* [n8n](https://n8n.io") - Nodemation, a node based workflow and automation service like IFTTT.
* [netboot.xyz](https://netboot.xyz/) - a PXE boot server
* [Netdata](https://my-netdata.io/) - An extremely comprehensive system monitoring solution
* [Nextcloud](https://nextcloud.com/) - A self-hosted Dropbox alternative
* [NZBget](https://nzbget.net/) - The most efficient usenet downloader

View file

@ -0,0 +1,15 @@
# netboot.xyz
Homepage: [https://netboot.xyz/](https://netboot.xyz/)
Docker Container: [https://hub.docker.com/r/linuxserver/netbootxyz](https://hub.docker.com/r/linuxserver/netbootxyz)
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. [iPXE](https://ipxe.org/) 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.
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.
## Usage
Set `netbootxyz_enabled: true` in your `inventories/<your_inventory>/nas.yml` file.
The netbooxyz web interface can be found at http://ansible_nas_host_or_ip:3002.

View file

@ -46,6 +46,9 @@ By default, applications can be found on the ports listed below.
| n8n | 5678 | Bridge | HTTP |
| Netdata | 19999 | Bridge | HTTP |
| Nextcloud | 8080 | Bridge | HTTP |
| netbootxyz | 3002 | Bridge | HTTP |
| netbootxyz | 5803 | Bridge | HTTP |
| netbootxyz | 69 | Bridge | TFTP |
| NZBGet | 6789 | Bridge | HTTP |
| Ombi | 3579 | Bridge | HTTP |
| openHAB | 7777 | Host | HTTP |

View file

@ -163,6 +163,11 @@
- n8n_enabled
when: (n8n_enabled | default(False))
- role: netbootxyz
tags:
- netbootxyz
when: (netbootxyz_enabled | default(False))
- role: netdata
tags:
- netdata

View file

@ -0,0 +1,20 @@
---
netbootxyz_enabled: false
netbootxyz_available_externally: "false"
# directories
netbootxyz_config_directory: "{{ docker_home }}/netbootxyz/config"
netbootxyz_assets_directory: "{{ docker_home }}/netbootxyz/assets"
# network
netbootxyz_hostname: netbootxyz
netbootxyz_port_http: "3002"
netbootxyz_port_http2: "5803"
netbootxyz_port_tftp: "69"
# uid/gid
netbootxyz_user_id: "1000"
netbootxyz_group_id: "1000"
# specs
netbootxyz_memory: 1g

View file

@ -0,0 +1,34 @@
---
- name: netbootxyz Directory
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ netbootxyz_config_directory }}"
- "{{ netbootxyz_assets_directory }}"
- name: netbootxyz Docker Container
docker_container:
name: netbootxyz
image: linuxserver/netbootxyz:latest
pull: true
volumes:
- "{{ netbootxyz_config_directory }}:/config:rw"
- "{{ netbootxyz_assets_directory }}:/assets:rw"
ports:
- "{{ netbootxyz_port_http }}:3000"
- "{{ netbootxyz_port_http2 }}:80"
- "{{ netbootxyz_port_tftp }}:69/udp"
memory: "{{ netbootxyz_memory }}"
env:
TZ: "{{ ansible_nas_timezone }}"
PUID: "{{ netbootxyz_user_id }}"
PGID: "{{ netbootxyz_group_id }}"
restart_policy: unless-stopped
labels:
traefik.enable: "{{ netbootxyz_externally }}"
traefik.http.routers.netdata.rule: "Host(`{{ netbootxyz_hostname }}.{{ ansible_nas_domain }}`)"
traefik.http.routers.netdata.tls.certresolver: "letsencrypt"
traefik.http.routers.netdata.tls.domains[0].main: "{{ ansible_nas_domain }}"
traefik.http.routers.netdata.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
traefik.http.services.netdata.loadbalancer.server.port: "80"