feat: Initial commit
This commit is contained in:
88
INSTALL.md
Normal file
88
INSTALL.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# Installation
|
||||
|
||||
## Requirements
|
||||
|
||||
Any Docker-capable recent Linux box.
|
||||
I am using a fresh Ubuntu Server 20.04 on a repurposed laptop so this guide reflects it,
|
||||
but it would probably work with other distributions and different versions with a few tweaks.
|
||||
|
||||
## Pre-Docker Steps
|
||||
|
||||
### OpenSSH
|
||||
|
||||
If not done during installation, install OpenSSH server for remote connection: `sudo apt install openssh-server`
|
||||
|
||||
### Static IP
|
||||
|
||||
Set a static IP:
|
||||
|
||||
`sudo nano /etc//netplan/00-installer-config.yaml`
|
||||
|
||||
```yaml
|
||||
# This is the network config written by 'subiquity'
|
||||
network:
|
||||
ethernets:
|
||||
enp2s0:
|
||||
dhcp4: no
|
||||
addresses:
|
||||
- 192.168.0.10/24
|
||||
gateway4: 192.168.0.1
|
||||
nameservers:
|
||||
addresses: [8.8.8.8, 8.8.4.4]
|
||||
version: 2
|
||||
```
|
||||
|
||||
Here, `192.168.0.10` is going to be the static IP, and we will use Google's DNS servers. Apply the plan:
|
||||
|
||||
`sudo netplan apply`
|
||||
|
||||
You can check the server uses the right IP with `ip a`.
|
||||
|
||||
### Laptop Specific Configuration
|
||||
|
||||
If the server is installed on a laptop, you may want to disable the suspension when the lid is closed:
|
||||
|
||||
`sudo nano /etc/systemd/logind.conf`
|
||||
|
||||
Replace:
|
||||
- `#HandleLidSwitch=suspend` by `HandleLidSwitch=ignore`
|
||||
- `#LidSwitchIgnoreInhibited=yes` by `LidSwitchIgnoreInhibited=no`
|
||||
|
||||
Then restart: `sudo service systemd-logind restart`
|
||||
|
||||
## Docker Setup
|
||||
|
||||
Install Docker by following [these instructions](https://docs.docker.com/engine/install/ubuntu/).
|
||||
|
||||
Then, [install Compose V2](https://docs.docker.com/compose/cli-command/#install-on-linux).
|
||||
|
||||
For a global installation (both your current user and `root` when using `sudo`),
|
||||
copy `/usr/libexec/docker/cli-plugins` rather than `$HOME/.docker/cli-plugins/docker-compose`.
|
||||
|
||||
You may then run the applications with `sudo docker compose up -d`
|
||||
|
||||
## NFS Share
|
||||
|
||||
It is now time to share the folders to other local devices using NFS, as it is easy to set up and fast.
|
||||
Install the NFS kernel server:
|
||||
|
||||
`sudo apt-get install nfs-kernel-server`
|
||||
|
||||
Then edit `/etc/exports` to configure your shares:
|
||||
|
||||
`/mnt/data/media 192.168.0.0/255.255.255.0(rw,all_squash,nohide,no_subtree_check,anonuid=1000,anongid=1000)`
|
||||
|
||||
This will share the `media` folder to anybody on your local network (192.168.0.x).
|
||||
I purposely left out the `sync` flag that would slow down file transfer.
|
||||
On [some devices](https://forum.kodi.tv/showthread.php?tid=343434) you may need to use the `insecure` option for the share to be available.
|
||||
|
||||
Restart the NFS server to apply the changes: `sudo /etc/init.d/nfs-kernel-server restart`
|
||||
|
||||
On other machines, you can see the shared folder by adding the following to your `/etc/fstab`:
|
||||
|
||||
`192.168.0.10:/mnt/data/media /mnt/nas nfs ro,hard,intr,auto,_netdev 0 0`
|
||||
|
||||
## References
|
||||
|
||||
- [NFS setup](https://askubuntu.com/a/7124)
|
||||
- [Hardlinks and Instant Moves (Atomic-Moves)](https://trash-guides.info/Hardlinks/Hardlinks-and-Instant-Moves/)
|
||||
Reference in New Issue
Block a user