diff --git a/docs/applications/traefik.md b/docs/applications/traefik.md index e69de29b..0c68c597 100644 --- a/docs/applications/traefik.md +++ b/docs/applications/traefik.md @@ -0,0 +1,15 @@ +# Traefik + +Homepage: [https://traefik.io](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. + +## Usage + +Set `traefik_enabled: true` in your `group_vars/all.yml` file. + +Traefik's web interface can be found at http://ansible_nas_host_or_ip:8083. + +## Specific Configuration + +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. \ No newline at end of file diff --git a/docs/applications/transmission.md b/docs/applications/transmission.md index e69de29b..17811d83 100644 --- a/docs/applications/transmission.md +++ b/docs/applications/transmission.md @@ -0,0 +1,17 @@ +# Transmission + +Homepage: [https://transmissionbt.com/](https://transmissionbt.com/) + +Transmission is a free BitTorrent client. Two versions are provided - one that tunnels through a VPN and one that connects +directly. + +## Usage + +Set `transmission_enabled: true`, or `transmission_with_openvpn_enabled: true` in your `group_vars/all.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). + +## Specific Configuration + +If you enable Tranmission with OpenVPN, you'll need to copy `group_vars/vpn_credentials.yml.dist` to +`group_vars/vpn_credentials.yml` and fill in your settings. diff --git a/docs/configuration/application_ports.md b/docs/configuration/application_ports.md new file mode 100644 index 00000000..0829bd37 --- /dev/null +++ b/docs/configuration/application_ports.md @@ -0,0 +1,28 @@ +# Application Ports + +By default, applications can be found on the ports listed below. + +| Application | Port | Notes | +|-----------------|--------|-----------| +| Couchpotato | 5050 | | +| Duplicati | 8200 | | +| Emby | 8096 | HTTP | +| Emby | 8920 | HTTPS | +| Gitea | 3001 | Web | +| Gitea | 222 | SSH | +| Glances | 61208 | SSH | +| Grafana | 3000 | | +| Guacamole | 8090 | | +| Heimdall | 10080 | | +| Netdata | 19999 | | +| Nextcloud | 8080 | | +| Plex | 32400 | | +| Portainer | 9000 | | +| Radarr | 7878 | | +| Sickrage | 8081 | | +| Sonarr | 8989 | | +| Tautulli | 8181 | | +| Traefik | 8083 | | +| Transmission | 9091 | with VPN | +| Transmission | 9092 | | +| ZNC | 6677 | | \ No newline at end of file diff --git a/docs/configuration/custom_applications.md b/docs/configuration/custom_applications.md new file mode 100644 index 00000000..71015ff8 --- /dev/null +++ b/docs/configuration/custom_applications.md @@ -0,0 +1,11 @@ +# Custom Applications + +## Using Portainer + +Ensure that you have `portainer_enabled: true` in your `group_vars/all.yml` file, and have run the playbook so that Portainer is up and running. + +Hit Portainer on http://ansible_nas_host_or_ip:9000. You can now deploy an 'App Template' or head to 'Containers' and manually enter container configuration. + +## Using a Custom Ansible Task + +Needs to be docced \ No newline at end of file diff --git a/docs/configuration/web_application_ports.md b/docs/configuration/web_application_ports.md deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/customisation/custom_docker_images.md b/docs/customisation/custom_docker_images.md deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/hardware.md b/docs/hardware.md deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/index.md b/docs/index.md index 8c6a19f7..75181350 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,22 @@ -# Welcome to Ansible-NAS - -![Ansible-NAS Logo](https://github.com/davestephens/ansible-nas/raw/master/misc/ansible-nas.png "Ansible-NAS Logo") +![Ansible-NAS Logo](https://raw.githubusercontent.com/davestephens/ansible-nas/master/misc/ansible-nas.png "Ansible-NAS Logo") 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! + +## Features + +* An awesome dashboard to your home server (Heimdall) +* Any number of Samba shares for you to store your stuff +* A BitTorrent client +* Various media management tools - Sonarr, Sickrage, CouchPotato, Radarr +* Media streaming via Plex or Emby +* A Dropbox replacement via Nextcloud +* Various ways to see stats about your NAS - Glances, dashboards in Grafana +* A backup tool - allows scheduled backups to Amazon S3, OneDrive, Dropbox etc +* An IRC bouncer +* Source control with Gitea +* SSL secured external access to some applications via Traefik +* A Docker host with Portainer management - run anything that's shipped as a Docker container + +## Getting Started + +Head to [installation](installation.md) if you're ready to roll, or [testing](testing.md) if you want to spin up a test VM first. \ No newline at end of file diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 00000000..947a10a2 --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,20 @@ +You can run Ansible-NAS from the computer you plan to use for your NAS, or from a remote controlling machine. The steps for deployment are exactly the same, just pay attention to editing the inventory file in step 7. + +1. Enable the Ubuntu Universe repository: `sudo add-apt-repository universe` + +2. Install Ansible: `sudo apt install ansible` + +3. `git clone https://github.com/davestephens/ansible-nas.git && cd ansible-nas` + +4. Copy `group_vars/all.yml.dist` to `group_vars/all.yml`. + +5. Open up `group_vars/all.yml` and follow the instructions there for configuring your Ansible NAS. + +6. If you plan to use Transmission with OpenVPN, also copy `group_vars/vpn_credentials.yml.dist` to +`group_vars/vpn_credentials.yml` and fill in your settings. + +7. Copy `inventory.dist` to `inventory` and update it. + +8. Install the dependent roles: `ansible-galaxy install -r requirements.yml` (you might need sudo to install Ansible roles) + +9. Run the playbook - something like `ansible-playbook -i inventory nas.yml -b -K` should do you nicely. \ No newline at end of file diff --git a/docs/quick_start.md b/docs/quick_start.md deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/testing.md b/docs/testing.md index 2f70f1a6..48002158 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -1,5 +1,3 @@ -# Testing Ansible-NAS - ## Vagrant A [Vagrant](https://www.vagrantup.com/) Vagrantfile and launch script (`tests/test-vagrant.sh`) are provided to spin up a testing VM. The config in `tests/test.yml` is used by the script to override any existing config in `group_vars/all.yml`. @@ -12,7 +10,7 @@ Once you're done testing, destroy the VM with `vagrant destroy`. ## Travis CI -Travis CI runs some sanity checks against branches. These can be viewed [here](https://github.com/davestephens/ansible-nas/blob/master/.travis.yml). +Travis CI runs some sanity checks against branches once pushed to GitHub. These can be viewed [here](https://github.com/davestephens/ansible-nas/blob/master/.travis.yml). ### ansible-lint diff --git a/docs/upgrading.md b/docs/upgrading.md index f9c58155..d769a826 100644 --- a/docs/upgrading.md +++ b/docs/upgrading.md @@ -1,2 +1,3 @@ # Upgrading +Pull the latest Ansible-NAS repo, merge any new config sections from `group_vars/all.yml.dist` into your `group_vars/all.yml`, then run the playbook. \ No newline at end of file