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