First cut of docs ready to roll

This commit is contained in:
David Stephens 2018-12-26 11:43:50 +00:00
parent 60febabd91
commit ef52bc432e
12 changed files with 113 additions and 6 deletions

View file

@ -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.

View file

@ -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.

View file

@ -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 | |

View file

@ -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

View file

View file

@ -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.

20
docs/installation.md Normal file
View file

@ -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.

View file

View file

@ -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

View file

@ -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.