APITestPage

From FriendlyELEC WiKi
Revision as of 05:52, 19 April 2024 by Tzs (Talk | contribs) (updated by API)

Jump to: navigation, search

查看中文

1 OpenMediaVault version

  • OS: Debian 12
  • OpenMediaVault: 7.0.5-1 (Sandworm)
  • Docker: 26.0.1
  • Others: built-in OMV-Extras

2 Earlier version OpenMediaVault

Link to → Getting Started with OpenMediaVault6

3 First Look

Openmediavault7.png

4 Supported platforms

  • RK3328
  • RK3399
  • RK3568
  • RK3588

5 Find IP Address

Since the hostname is set by default to the model of the development board, you can use the "ping" command to obtain the IP address. For example, for CM3588, you can use the following command:

ping CM3588

6 Access the OpenMediaVault web page

Enter the IP address of the development board in your web browser; the default login account for the web interface is:

Username: admin
Password: openmediavault

7 Change admin password

Click on the profile icon in the upper-right corner of the web page, then select "Change Password".

8 Configure the web page timeout duration

Go to System -> Workbench and adjust the "Auto Logout" time setting.

9 Root Login via SSH

ssh pi@YourIPAddress

The default password is "pi".

10 Create the root user

Create the root user and add user to the root and ssh groups:

sudo passwd root
sudo gpasswd -a root root
sudo gpasswd -a root _ssh

You can now use the root user to log in via SSH:

ssh root@IPAddress

11 First Aid Setup

Login to your OMV via SSH as root user:

ssh root@IPAddress

Excute the following command:

omv-firstaid

Something like this should appear:
Omv-firstaid.png

12 Set up your drives

Note: If the hard drive has already been initialized and RAID has been preserved, you should be able to mount it directly.

12.1 Step 1: Wipe drives

Go to Storage -> Disks, choose your storage device, and click the "Wipe" icon to initiate disk erasure (please ensure your data is backed up). Typically, you can opt for a "Quick" erase option.
If wiping isn't effective, you should first remove the shared folder and unmount it.

12.2 Step 2: Configure Software RAID

(Note: OMV does not support RAID for USB-connected devices) The difference between the following two Raid Profiles:

  • MD RAID: has better performance, because it does a better job of parallelizing writes and striping reads.
  • Btrfs RAID: has better data safety, because the checksumming lets it ID which copy of a block is wrong when only one is wrong, and means it can tell if both copies are bad.

More content please refre: [1]

12.2.1 Optional 1: MD RAID

  • Go to Storage -> Multiple Device, click the "+" icon, select the desired RAID level, and apply the settings.


  • Go to Storage" -> "File Systems, click on the "+" icon, and for the type, it's recommended to choose "BTRFS", Select "Single" and devices.
  • If you created a RAID in the previous step, select a device starting with "/dev/md". If it's a USB hard drive, choose "/dev/sda".

After formatting is complete, OpenMediaVault will prompt you to select the file system to mount.

12.2.2 Optional 2: Btrfs RAID

  • Go to Storage -> File Systems click the "+" icon, choose the "BTRFS", choose the RAID level, select your disks, and then save the settings.
  • After formatting is complete, openmediavault will let you choose which file system to mount, it doesn't list all the disks, so you should choose a drive that starts with /dev/nvme.

12.3 Step 3: Create shared folders

Go to Storage -> Shared Folders, click the "+" icon to create two folders named "nfs" and "samba." We will use these folders for testing NFS and Samba sharing in the following steps.
(Note: If there were previously created shared folders on the drive, you can recreate them with the same names, and the data will be preserved.)

13 Create NAS users

Debian system users or Linux users created via the command line may lack certain permissions required for services like Samba and NFS. Therefore, it is recommended to use the OpenMediaVault interface to create a user specifically for accessing Samba and NFS shares. Here, I will create a user and group named "nasuser":

Go to Users -> Groups and then click the "+" icon to create a user group named "nasuser".
Go to Users -> "Users then click the "+" icon to create a user named "nasuser", change user's shell to "/usr/sbin/nologin", and select the "nasuser" and "users" groups.

14 Create a Samba share

Go to Services -> SMB/CIFS -> Settings, check the box at the top for "Enabled," select "SMB1" as the minimum protocol version, and then click "Save"

Go to Services -> SMB/CIFS -> Shares, click the "+" button, and in the "Shared folder" field, select the folder you want to share. as an example, here i select the "samba" folder

Testing:
On a Mac system, right-click Finder, select "Connect to Server", and enter "smb://YourIPAddress" (replace with the actual IP address). An authentication dialog will appear; enter the username "nasuser" and the password to access the share.

15 Create an NFS share

Go to Services -> NFS -> Settings, check the box at the top for "Enabled", and in the "Versions" section, select all versions, including "NFSv2", then click "Save" and apply the settings.

Go to Services -> NFS -> Shares, click the "+" button, and in the "Shared folder" field, select the folder you want to share. here i select the "nfs" folder. In the "Client" section, enter the IP range or specific IPs that are allowed to access the share (e.g., 192.168.1.0/24). Set the permissions to "Read/Write", in the "Extra Options" field, Input:

rw,async,insecure,no_subtree_check,all_squash,anonuid=0,anongid=0

Then click "Save" and apply the settings.

15.1 Testing NFS mounting on a Mac

Viewing OpenMediaVault's NFS Share Information via Command Line:

# showmount -e YourIPAddress
Exports list on YourIPAddress:
/export                             192.168.1.0/24
/export/nfs                         192.168.1.0/24

Right-click Finder on your Mac, select "Connect to Server," and input the following in the address bar:

nfs://YourIPAddress/export/nfs

15.2 Testing NFS mounting on Linux

Installing the NFS client

sudo apt install nfs-common

Start to mount:

sudo mount -t nfs YourIPAddress:/export/nfs /mnt/nfs

Checking the Status

# df -h | grep nfs
YourIPAddress:/export/nfs  7.3G  3.5M  6.8G    1% /mnt/nfs

To configure automatic mounting at boot time, append the following line to the /etc/fstab file:

YourIPAddress:/export/nfs /mnt/nfs nfs defaults 0 0

16 Docker in OMV

16.1 Moving docker storage

Go to Storage -> Shared Folders, and click the "+" icon to create three folders, namely:

docker            -> The Docker data directory, defined in /etc/docker/daemon.json
docker-compose    -> Location of compose files
docker-data       -> Location of persistent container data
docker-app        -> For personal use, storing Dockerfiles and data

Go to Services -> Compose enter the "Settings" interface, and configure the "Shared folder" for "Compose Files" and "Data":
Access the SSH terminal and execute the following command to move Docker data to the shared folder, where "/srv/dev-disk-by-uuid-XXYYZZ/docker" represents the absolute path of the shared folder, which can be obtained from the "Storage" -> "Shared Folders" list on the web interface:

su root
systemctl stop docker.socket docker.service
mv /var/lib/docker/* /srv/dev-disk-by-uuid-XXYYZZ/docker/

On the web interface, set the "Docker storage" to the absolute path of the "docker" shared folder. save the settings and apply, and then reboot the system.

The final value filled on the Gui:

Compose Files's Shared folder  -> on /dev/md0, docker-compose
Data's Shared folder           -> on /dev/md0, docker-data
Docker's Docker storage        -> on /srv/dev-disk-by-uuid-XXYYZZ/docker/

16.2 Install Nextcloud with Docker

Run the following command in the terminal:

su root
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
mkdir nextcloud
cd nextcloud
mkdir data
 
docker run -d -p 8888:80  --name nextcloud \
    -v $PWD/data:/var/www/html --restart=always \
    --privileged=true  arm64v8/nextcloud

you can access the Nextcloud web interface by opening a web browser and navigating to http://YourIPAddress:8888/ (replace YourIPAddress with the actual IP address of your device).

16.3 Install Filebrowser with Docker

Run the following command in the terminal:

su root
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
mkdir filebrowser
cd filebrowser
 
docker run -d -v $(readlink -f /srv/dev-disk-by-uuid-*):/srv \
    -v $PWD/filebrowserconfig.json:/etc/config.json \
    -v $PWD/database.db:/etc/database.db -p 8080:80 \
    --restart=always --name filebrowser \
    filebrowser/filebrowser

After completing the setup, you can access the Filebrowser web interface by opening a web browser and navigating to http://YourIPAddress:8080/ (replace YourIPAddress with the actual IP address of your device). The default username and password for Filebrowser are both "admin".

16.4 Install Jellyfin with Docker

Go to Storage -> Shared Folders, click the "+" icon to create a "media" folder for storing multimedia resources. Then, in the command-line terminal, you can run the following command to install Jellyfin:

su root
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
mkdir jellyfin
cd jellyfin
mkdir config cache
 
docker run -d --name jellyfin \
-v $PWD/config:/config \
-v $PWD/cache:/cache \
-v $(readlink -f /srv/dev-disk-by-uuid-*/media):/media \
-p 8096:8096 \
--restart=always \
jellyfin/jellyfin

After completing the setup, you can access the Jellyfin web interface by opening a web browser and navigating to http://YourIPAddress:8096/ (replace YourIPAddress with the actual IP address of your device). This will allow you to access and manage your media content using Jellyfin.

16.5 Install Portainer with Docker

Run the following command in the terminal:

su root
cd $(readlink -f /srv/dev-disk-by-uuid-*/docker-app)
mkdir portainer
cd portainer
mkdir data
 
docker run -d \
  --name portainer \
  --restart=always \
  -e TZ=Asia/Shanghai \
  -p 8000:8000 \
  -p 9000:9000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v $PWD/data:/data \
  portainer/portainer-ce:latest

After completing the setup, you can access the Portainer web interface by opening a web browser and navigating to http://YourIPAddress:9000/ (replace YourIPAddress with the actual IP address of your device). The default administrator account username and password are both "admin".

17 System Backup and Restore

17.1 Backing up the System in eMMC

Use the tar command to back up the contents of the file system:

su root
cd /
tar --warning=no-file-changed -cvpzf /rootfs.tar.gz \
    --exclude=/rootfs.tar.gz --exclude=/var/lib/docker/runtimes \
    --exclude=/etc/firstuser --exclude=/etc/friendlyelec-release \
    --exclude=/usr/local/first_boot_flag --one-file-system /

17.2 Restoring the System to eMMC

Boot from the SD card, start the Linux system (such as Debian or Ubuntu), and use the following command to query the root partition of the system on eMMC:

root@CM3588:~# sudo parted -s /dev/mmcblk2 unit MiB print | grep rootfs
 8      140MiB   59000MiB  58860MiB  ext4         rootfs

According to the mathematical index 8 mentioned above, the device name for the root partition is /dev/mmcblk2p8. Below, it will be reformatted, mounted, and then the rootfs.tar.gz will be decompressed here:

sudo mkfs.ext4 /dev/mmcblk2p8
sudo mkdir /mnt/rootfs
sudo mount /dev/mmcblk2p8 /mnt/rootfs
sudo tar xvzfp /path/to/rootfs.tar.gz -C /mnt/rootfs --numeric-owner --same-owner
sudo poweroff

After shutting down, remove the SD card, and then power on again to boot the system from eMMC.

18 How to recover files after reinstalling OpenMediaVault

  • Go to Storage -> File System, click on the icon, and select your device in the File System section, then click Save.
  • Go to Storage -> Shared Folders, create shared folders with the same names, such as nfs, samba, docker, docker-app, docker-compose, and docker-data, as shown in this document.