Note: Allonis does not fully endorse execution of myServer6 in a hypervisor environment. Doing so should be considered experimental and Allonis does not support this method of operation even though it has been proven to be successful based on these steps.

The enclosed documentation is intended to provide high-level overview of myServer installation in a VM environment. The hypervisor of choice is Proxmox, but several other environments are likely to work as well.

Note:  All instances of myServer require a license.  Please purchase the license at allonis.com shop.

1.) Install Hypervisor. Many examples in terms of how-to on YouTube. Other make/brands may work as well. Allonis recommends Proxmox.

2.) Using Hypervisor administration tool, create new VM using the following recommendations:

  • Operating System: Modern 64 bit Linux (Debian or Ubuntu)
  • VM memory: At least 4gb of memory for the guest
  • VM disk space: At least 32 gb for myServer installation or more if storing images or media files
  • VM network adapter: VM network adapter should be bridged to devices that are to be controlled by myServer. In other words, if myServer is to control FireTV or ROKU (or similar) devices, then myServer VM needs to have IP address on the same network as the FireTV and Roku devices. Note: IP addresses can not change; user needs to either static address or reserve IP address in DHCP via basic networking practices.
  • VM Processors/Cores: At least 1. The more the merrier.
  • User name should be allonis with password of allonis (change username/password accordingly if you feel so necessary to change these).

2a.) Install Linux operating system. (graphic user interface is optional, but may be recommended for users not familiar with linux commands.)

2b.) Download myServer6 installation files, and expand files to the ~/applications/myServer folder (/home/allonis/applications/myServer).

2c.) The following commands are recommended: Note: lines prefixed with # or // are comments:

sudo DEBIAN_FRONTEND=noninteractive apt update && sudo apt upgrade -y

sudo useradd -m allonis

sudo usermod -G sudo,tty,dialout,video,plugdev,games,users,input,netdev,bluetooth,docker,systemd-journal allonis

sudo passwd allonis

sudo apt install nmap

sudo apt install unzip

# set directory permissions

sudo chmod 777 -R /home/allonis/applications/myServer

sudo chmod +x /home/allonis/applications/myServer

# modify sudo group to not prompt for password

sudo visudo

change

%sudo   ALL=(ALL:ALL) ALL

to

%sudo   ALL=(ALL:ALL) NOPASSWD: ALL

save

// open port 80

open port 80

#save configuration permanently

sudo nano /etc/sysctl.d/50-unprivileged-ports.conf

#add

net.ipv4.ip_unprivileged_port_start=0

#save and apply

sudo sysctl --system

# install samba

sudo apt -y install samba

# Edit the samba config file. Add to the bottom of the file

sudo nano /etc/samba/smb.conf

[global]

force user = allonis

force group = allonis

[myServer]

path = /home/allonis/applications/myServer

Comment = myServer shared folder

Browseable = yes

Writeable = yes

only guest = no

create mask = 0777

directory mask = 0777

Public = yes

Guest ok = yes

[myMedia]

path = /home/allonis/applications/media

Comment = Shared media folder

Browseable = yes

Writeable = yes

only guest = no

create mask = 0777

directory mask = 0777

Public = yes

Guest ok = yes

# create a samba user called allonis and set the password to the same password as the OS is using

sudo smbpasswd -a allonis

# restart the Samba daemon

sudo service smbd restart

# install adb (note:  you might want to install latest from Google for Android11 device support)

sudo apt install adb

// node js

curl -fsSL https://deb.nodesource.com/setup_21.x | sudo -E bash - &&\

sudo apt-get install -y nodejs

// docker

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt remove $pkg; done

sudo apt install ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \

  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \

  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \

  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

// install node and npm

npm i frontail -g

// pyatv

sudo apt-get install build-essential libssl-dev libffi-dev python-dev

pip3 install pyatv

// for nfs shares

sudo apt install nfs-common

//expand swap file

sudo fallocate -l 1G /swapfile

sudo chmod 600 /swapfile

sudo mkswap /swapfile

sudo swapon /swapfile

sudo nano /etc/fstab

/swapfile swap swap defaults 0 0

swapon --show

reboot

2d) Create the myServer and myInstaller services:

sudo nano /lib/systemd/system/myServer.service

[Unit]

Description=myServer by Allonis

Wants=network-online.target

After=network-online.target

[Service]

Type=simple

User=allonis

WorkingDirectory=/home/allonis/applications/myServer

ExecStart=/home/allonis/applications/myServer/myServer

KillMode=process

Restart=on-failure

[Install]

WantedBy=multi-user.target

sudo nano /lib/systemd/system/myInstaller.service

[Unit]

Description=myInstaller by Allonis

[Service]

Type=oneshot

User=allonis

WorkingDirectory=/home/allonis/applications/myServer

ExecStart=/home/allonis/applications/myServer/data/linux.arm64/installer.sh

[Install]

WantedBy=multi-user.target

sudo systemctl daemon-reload

sudo systemctl enable myServer

sudo systemctl start myServer

sudo systemctl status myServer

sudo systemctl start myInstaller

2e) Ensure that myServer started successfully:

sudo cat /home/allonis/myServer/logs/myServer.log

2f) Confirm successful operation of myServer and license status - Open web browser and address to myServer6 dashboard. URL is http://ipaddress/dashboard> (replace ipaddress with ipaddress) (case sensitive).