Difference between revisions of "Template:Installation"
Bakerboy448 (talk | contribs) |
|||
(43 intermediate revisions by 5 users not shown) | |||
Line 68: | Line 68: | ||
= Installing = | = Installing = | ||
== Windows == | == Windows == | ||
− | + | Please see the the {{{ARRNAME}}} website for the Windows installer. | |
== OSX == | == OSX == | ||
− | {{#lst::Installation Misc|{{{ARRNAME2}}} | + | {{#lst::Installation Misc|{{{ARRNAME2}}}_osx_installation}} |
− | |||
== Linux == | == Linux == | ||
− | + | {{#lst::Installation Misc|{{{ARRNAME2}}}_linux_installation}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Auto Start Using Systemd === | === Auto Start Using Systemd === | ||
Most modern Linux distributions have switched to systemd, which involves a simple unit service file which gets enabled and started. It is important to remember that in Linux, capitalization matters. <code>User</code> account names and <code>Group</code> names are typically all lowercase, as are the directory structures mapped to them as part of the home directory. | Most modern Linux distributions have switched to systemd, which involves a simple unit service file which gets enabled and started. It is important to remember that in Linux, capitalization matters. <code>User</code> account names and <code>Group</code> names are typically all lowercase, as are the directory structures mapped to them as part of the home directory. | ||
− | === Preparing the Unit Service File === | + | ==== Preparing the Unit Service File ==== |
Several items may need to be changed to match your installation: | Several items may need to be changed to match your installation: | ||
Line 142: | Line 84: | ||
# <code>ExecStart</code> has several items that should match your installation <code>/opt/{{{ARRNAME}}}/{{{ARRNAME}}}</code> | # <code>ExecStart</code> has several items that should match your installation <code>/opt/{{{ARRNAME}}}/{{{ARRNAME}}}</code> | ||
## Executable Path Default location is <code>/opt/{{{ARRNAME}}}/{{{ARRNAME}}}</code>, but you may need to update if you installed {{{ARRNAME}}} elsewhere. | ## Executable Path Default location is <code>/opt/{{{ARRNAME}}}/{{{ARRNAME}}}</code>, but you may need to update if you installed {{{ARRNAME}}} elsewhere. | ||
− | ## Data Directory Default location is <code>-data=/home/ | + | ## Data Directory Default location is <code>-data=/home/$USER/.config/{{{ARRNAME}}}/</code>, but you may need to update if you want to keep your database and settings elsewhere. |
− | |||
The unit service file should be named <code>{{{ARRNAME}}}.service</code> and the best place for it is <code>/etc/systemd/system/</code>. Alternative locations like <code>/usr/lib/systemd/system/</code> and <code>/lib/systemd/system/</code> may depend on the distribution used. | The unit service file should be named <code>{{{ARRNAME}}}.service</code> and the best place for it is <code>/etc/systemd/system/</code>. Alternative locations like <code>/usr/lib/systemd/system/</code> and <code>/lib/systemd/system/</code> may depend on the distribution used. | ||
− | This example unit assumes that the <code>User</code> and <code>Group</code> are both <code>{{{ARRNAME2}}}</code>, {{{ARRNAME}}}'s executable is placed in <code>/opt/{{{ARRNAME}}}/</code> | + | This example unit assumes that the <code>User</code> and <code>Group</code> are both <code>{{{ARRNAME2}}}</code>, {{{ARRNAME}}}'s executable is placed in <code>/opt/{{{ARRNAME}}}/</code>. Please update the data path to where you want the database, logs, and other metadata stored. |
− | |||
− | |||
− | + | {{#lst::Installation Misc|{{{ARRNAME2}}}_installation_unit_service_file}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === Verify Directory Permissions === | + | ==== Verify Directory Permissions ==== |
Ensure the <code>User</code> that will be running {{{ARRNAME}}} has access to both the executable directory and data directory. | Ensure the <code>User</code> that will be running {{{ARRNAME}}} has access to both the executable directory and data directory. | ||
Running the command <code>ls -lad /directory/</code> will show the permissions for that folder. | Running the command <code>ls -lad /directory/</code> will show the permissions for that folder. | ||
Line 182: | Line 98: | ||
$ ls -lad /opt/{{{ARRNAME}}} | $ ls -lad /opt/{{{ARRNAME}}} | ||
drwxr-xr-x 6 {{{ARRNAME2}}} {{{ARRNAME2}}} 24576 Nov 28 21:30 /opt/{{{ARRNAME}}}/ | drwxr-xr-x 6 {{{ARRNAME2}}} {{{ARRNAME2}}} 24576 Nov 28 21:30 /opt/{{{ARRNAME}}}/ | ||
− | $ ls -lad /home/ | + | $ ls -lad /home/$User/.config/{{{ARRNAME}}}/ |
− | drwxr-xr-x 6 {{{ARRNAME2}}} {{{ARRNAME2}}} 24576 Nov 28 21:30 /home/ | + | drwxr-xr-x 6 {{{ARRNAME2}}} {{{ARRNAME2}}} 24576 Nov 28 21:30 /home/$User/.config/{{{ARRNAME}}}/ |
− | === Enabling and starting the Unit Service File === | + | ==== Enabling and starting the Unit Service File ==== |
Once you have created <code>{{{ARRNAME}}}.service</code>, you will want to enable the service: | Once you have created <code>{{{ARRNAME}}}.service</code>, you will want to enable the service: | ||
sudo systemctl enable {{{ARRNAME}}}.service | sudo systemctl enable {{{ARRNAME}}}.service | ||
Line 202: | Line 118: | ||
CPU: 9.331s | CPU: 9.331s | ||
CGroup: /system.slice/{{{ARRNAME}}}.service | CGroup: /system.slice/{{{ARRNAME}}}.service | ||
− | └─19978 /opt/{{{ARRNAME}}}/{{{ARRNAME}}} -nobrowser -data=/ | + | └─19978 /opt/{{{ARRNAME}}}/{{{ARRNAME}}} -nobrowser -data=/path/to/data/.config/{{{ARRNAME}}}/ |
Mar 07 10:23:44 apollo systemd[1]: Started {{{ARRNAME}}} Service. | Mar 07 10:23:44 apollo systemd[1]: Started {{{ARRNAME}}} Service. | ||
− | == | + | === NGINX Reverse Proxy === |
− | + | A reverse proxy allows you to set up {{{ARRNAME}}} so you can access it from the web without using the port number. Rather than mydomain.com:{{{ARRPORT}}} you would use mydomain.com/{{{ARRNAME}}} instead. | |
− | + | ||
− | + | It is assumed you have NGINX installed. | |
+ | |||
+ | Create a text file named {{{ARRNAME}}}.conf and place it in your default NGINX App directory, typically <code>/etc/nginx/conf.d/apps</code> | ||
+ | # {{{ARRNAME}}} Reverse Proxy | ||
+ | # Be sure to set your Base-URL in {{{ARRNAME}}} | ||
+ | location /{{{ARRNAME2}}} { | ||
+ | proxy_pass http://127.0.0.1:{{{ARRPORT}}}/{{{ARRNAME2}}}; | ||
+ | proxy_set_header X-Real-IP $remote_addr; | ||
+ | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
+ | proxy_set_header X-Forwarded-Proto $scheme; | ||
+ | proxy_http_version 1.1; | ||
+ | proxy_no_cache $cookie_session; | ||
+ | proxy_set_header Upgrade $http_upgrade; | ||
+ | proxy_set_header Connection $http_connection; | ||
+ | # Allow the {{{ARRNAME}}} API | ||
+ | location /{{{ARRNAME2}}}/api { auth_request off; | ||
+ | proxy_pass http://127.0.0.1:{{{ARRPORT}}}/{{{ARRNAME2}}}/api; | ||
+ | } | ||
+ | } | ||
+ | Please note: It is important to ensure that the line <code>proxy_set_header Connection $http_connection;</code> is accurate. The NGINX documentation recommends setting this to <code>Upgrade</code> rather than <code>$http_connection;</code> but this will NOT work. | ||
+ | |||
+ | Once you have saved the file, test your NGINX config: | ||
+ | sudo nginx -t | ||
+ | Which should show this: | ||
+ | nginx: the configuration file /etc/nginx/nginx.conf syntax is ok | ||
+ | nginx: configuration file /etc/nginx/nginx.conf test is successful | ||
+ | Now you can have NGINX reload it's configuration to use the new file: | ||
+ | sudo nginx -s reload | ||
+ | Finally, make sure you add your URL Base to {{{ARRNAME}}}. This should match what you have next to the word Location in the {{{ARRNAME}}}.conf file, with the leading slash, likely this: <code>/{{{ARRNAME2}}}</code> | ||
+ | The URL base can be set here: https://wiki.servarr.com/{{{ARRNAME}}}_Settings#Host | ||
== Docker == | == Docker == | ||
− | + | [https://trash-guides.info/Misc/how-to-set-up-hardlinks-and-atomic-moves/#description Please refer to TRaSH's Guide.] | |
== Docker on unRAID == | == Docker on unRAID == | ||
* Installation of {{{ARRNAME}}} is quite simple when it comes to unRAID as they have made installing Docker containers a breeze. | * Installation of {{{ARRNAME}}} is quite simple when it comes to unRAID as they have made installing Docker containers a breeze. | ||
Line 233: | Line 178: | ||
<li><p> Once the new window appears you will want to use the drop down box next to '''Config Type:''' and make sure that it is set to '''Path'''.<br /> | <li><p> Once the new window appears you will want to use the drop down box next to '''Config Type:''' and make sure that it is set to '''Path'''.<br /> | ||
</p></li> | </p></li> | ||
− | <li><p> From here you will want to fill out all | + | <li><p> From here you will want to fill out all pertinent information:<br /> |
</p></li> | </p></li> | ||
<ol> | <ol> | ||
Line 261: | Line 206: | ||
</p></li> | </p></li> | ||
[[File:unraid-install2.png|frameless|none|250x240px|alt=Select WebUI|Select WebUI]] | [[File:unraid-install2.png|frameless|none|250x240px|alt=Select WebUI|Select WebUI]] | ||
− | <li><p> Now a new browser tab should show up with {{{ARRNAME}}} running in all its glory. | + | <li><p> Now a new browser tab should show up with {{{ARRNAME}}} running in all its glory.<br /> |
</p></li> | </p></li> | ||
</ol> | </ol> |
Latest revision as of 17:52, 29 March 2021
This template is expressly for the steps and processes of installing all the various ARR software on multiple different platforms
Parameter | Description | Type | Status | |
---|---|---|---|---|
ARRNAME | ARRNAME | Name of the ARR
| String | required |
RunArrCommandLinux | RunArrCommandLinux | Command to Start & Run ARR Linux
| String | required |
RunArrCommandOSX | RunArrCommandOSX | Command to Start & Run ARR OSX
| String | required |
ArrExecutableNameWin | ArrExecutableNameWin | Executable Name for Windows
| String | required |
ArrDownloadLink | ArrDownloadLink | Link to the Arr Downloads | URL | required |
ArrLinuxAutoStart | ArrLinuxAutoStart | Autostart file instructions | Unknown | required |
ARRPORT | ARRPORT | Port number for the ARR
| Number | required |
ARRNAME2 | ARRNAME2 | Used for lowercase ARR names, this is not a required field only used if needed
| String | optional |
Installing
Windows
Please see the the {{{ARRNAME}}} website for the Windows installer.
OSX
Linux
Auto Start Using Systemd
Most modern Linux distributions have switched to systemd, which involves a simple unit service file which gets enabled and started. It is important to remember that in Linux, capitalization matters. User
account names and Group
names are typically all lowercase, as are the directory structures mapped to them as part of the home directory.
Preparing the Unit Service File
Several items may need to be changed to match your installation:
User
should match the service account that {{{ARRNAME2}}} will run as.Group
should match the service account group that {{{ARRNAME2}}} will run as.ExecStart
has several items that should match your installation/opt/{{{ARRNAME}}}/{{{ARRNAME}}}
- Executable Path Default location is
/opt/{{{ARRNAME}}}/{{{ARRNAME}}}
, but you may need to update if you installed {{{ARRNAME}}} elsewhere. - Data Directory Default location is
-data=/home/$USER/.config/{{{ARRNAME}}}/
, but you may need to update if you want to keep your database and settings elsewhere.
- Executable Path Default location is
The unit service file should be named {{{ARRNAME}}}.service
and the best place for it is /etc/systemd/system/
. Alternative locations like /usr/lib/systemd/system/
and /lib/systemd/system/
may depend on the distribution used.
This example unit assumes that the User
and Group
are both {{{ARRNAME2}}}
, {{{ARRNAME}}}'s executable is placed in /opt/{{{ARRNAME}}}/
. Please update the data path to where you want the database, logs, and other metadata stored.
Verify Directory Permissions
Ensure the User
that will be running {{{ARRNAME}}} has access to both the executable directory and data directory.
Running the command ls -lad /directory/
will show the permissions for that folder.
Example:
$ ls -lad /opt/{{{ARRNAME}}} drwxr-xr-x 6 {{{ARRNAME2}}} {{{ARRNAME2}}} 24576 Nov 28 21:30 /opt/{{{ARRNAME}}}/ $ ls -lad /home/$User/.config/{{{ARRNAME}}}/ drwxr-xr-x 6 {{{ARRNAME2}}} {{{ARRNAME2}}} 24576 Nov 28 21:30 /home/$User/.config/{{{ARRNAME}}}/
Enabling and starting the Unit Service File
Once you have created {{{ARRNAME}}}.service
, you will want to enable the service:
sudo systemctl enable {{{ARRNAME}}}.service
You are now ready to start {{{ARRNAME}}}. You can do so with the start
command:
sudo systemctl start {{{ARRNAME}}}.service
If you want to verify {{{ARRNAME}}} is running, you can run the status
command:
$ sudo systemctl status {{{ARRNAME}}}.service ● {{{ARRNAME}}}.service - {{{ARRNAME}}}Service Loaded: loaded (/usr/lib/systemd/system/{{{ARRNAME}}}.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2017-03-07 10:23:44 PST; 5min ago Main PID: 19978 ({{{ARRNAME}}}) Tasks: 16 (limit: 4915) Memory: 114.6M CPU: 9.331s CGroup: /system.slice/{{{ARRNAME}}}.service └─19978 /opt/{{{ARRNAME}}}/{{{ARRNAME}}} -nobrowser -data=/path/to/data/.config/{{{ARRNAME}}}/ Mar 07 10:23:44 apollo systemd[1]: Started {{{ARRNAME}}} Service.
NGINX Reverse Proxy
A reverse proxy allows you to set up {{{ARRNAME}}} so you can access it from the web without using the port number. Rather than mydomain.com:{{{ARRPORT}}} you would use mydomain.com/{{{ARRNAME}}} instead.
It is assumed you have NGINX installed.
Create a text file named {{{ARRNAME}}}.conf and place it in your default NGINX App directory, typically /etc/nginx/conf.d/apps
- {{{ARRNAME}}} Reverse Proxy
- Be sure to set your Base-URL in {{{ARRNAME}}}
location /{{{ARRNAME2}}} { proxy_pass http://127.0.0.1:{{{ARRPORT}}}/{{{ARRNAME2}}}; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_no_cache $cookie_session; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; # Allow the {{{ARRNAME}}} API location /{{{ARRNAME2}}}/api { auth_request off; proxy_pass http://127.0.0.1:{{{ARRPORT}}}/{{{ARRNAME2}}}/api; } }
Please note: It is important to ensure that the line proxy_set_header Connection $http_connection;
is accurate. The NGINX documentation recommends setting this to Upgrade
rather than $http_connection;
but this will NOT work.
Once you have saved the file, test your NGINX config:
sudo nginx -t
Which should show this:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Now you can have NGINX reload it's configuration to use the new file:
sudo nginx -s reload
Finally, make sure you add your URL Base to {{{ARRNAME}}}. This should match what you have next to the word Location in the {{{ARRNAME}}}.conf file, with the leading slash, likely this: /{{{ARRNAME2}}}
The URL base can be set here: https://wiki.servarr.com/{{{ARRNAME}}}_Settings#Host
Docker
Please refer to TRaSH's Guide.
Docker on unRAID
- Installation of {{{ARRNAME}}} is quite simple when it comes to unRAID as they have made installing Docker containers a breeze.
Simply head on over to the community applications store on the top bar of your browser.
In the search field type in {{{ARRNAME}}}
Select which docker image you would like to install. There are several to choose from
Depending on which container you go with will determine the steps in which you take. Some containers come preloaded with volumes mapped already. This is really up to your liking how you would like your container volumes to be laid out. It is highly recommended to follow the guide listed here for your volume mapping
Once you have selected which container you are going to go with, you will need to either create the volumes for {{{ARRNAME}}} to be able to use or simply use the pre-filled ones. (Highly recommended to remove the pre-filled and use your own, to remove the pre-filled ones).
To create new volumes simply select the
Add another Path, Port, Variable, Label or Device
text at the bottom above the Apply button.
Once the new window appears you will want to use the drop down box next to Config Type: and make sure that it is set to Path.
From here you will want to fill out all pertinent information:
Name: The name of this path, this can be any unique name more like a note to know what this path is for.
Container Path: This will be the path that {{{ARRNAME}}} will see inside the container
/data
is a favorite
Host Path: This is the path to the host (unRAID) machine, This will be
/mnt/user/<Your User Share>
The last three items Default Value:, Access Mode", and Description: Can be left alone.
Click ADD
Last thing to check is to make sure Host Port for {{{ARRPORT}}} is filled in with
{{{ARRPORT}}}
, UNLESS This port causes any conflicts with any other container. If it does please choose a different port that is not in use.
Click APPLY
Now the {{{ARRNAME}}}'s container is being downloaded, once complete simply click the OK button at the bottom of the new pop up window
Click DOCKER on the top row of your browser.
Now all you will need to do is simply left click on your newly created container and select WebUI.
Now a new browser tab should show up with {{{ARRNAME}}} running in all its glory.
[[File:{{{ARRNAME}}}-unraid-install.png|frameless|none|750px|alt=Installation Options|Installation Options]]
Depending on which container you select you may recieve a pop up asking you to Choose A Branch To Install when in doubt go with the Default :latest
branch
To remove the pre-filled paths simply select the toggle in the upper right from Basic to Advanced view then scroll down to the pre-filled path and click Remove
NOTE If you follow the Docker Guide you will only need one Volume path to be made as all information that {{{ARRNAME}}} will need will be in one share /mnt/user/data